web

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2022 License: MIT Imports: 13 Imported by: 1

Documentation

Overview

Package web embeds the gobenchdata web application, configuration, and utilities

Index

Constants

This section is empty.

Variables

View Source
var (
	// CTX is a context for webdav vfs
	CTX = context.Background()

	// FS is a virtual memory file system
	FS = webdav.NewMemFS()

	// Handler is used to server files through a http handler
	Handler *webdav.Handler

	// HTTP is the http file system
	HTTP http.FileSystem = new(HTTPFS)
)
View Source
var FileAssetsIndex0d65f568Js = []byte("\x76\x61\x72\x20\x5f\x5f\x64\x65\x66\x50\x72\x6f\x70\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x3b\x0a\x76\x61\x72\x20\x5f\x5f\x64\x65\x66\x4e\x6f\x72\x6d\x61\x6c\x50\x72\x6f\x70\x20\x3d\x20\x28\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x6b\x65\x79\x20\x69\x6e\x20\x6f\x62\x6a\x20\x3f\x20\x5f\x5f\x64\x65\x66\x50\x72\x6f\x70\x28\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x7b\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x77\x72\x69\x74\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x3a\x20\x6f\x62\x6a\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x76\x61\x72\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x20\x3d\x20\x28\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x5f\x5f\x64\x65\x66\x4e\x6f\x72\x6d\x61\x6c\x50\x72\x6f\x70\x28\x6f\x62\x6a\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x22\x73\x79\x6d\x62\x6f\x6c\x22\x20\x3f\x20\x6b\x65\x79\x20\x2b\x20\x22\x22\x20\x3a\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x70\x24\x31\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x6f\x6c\x79\x66\x69\x6c\x6c\x28\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6c\x4c\x69\x73\x74\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x6c\x69\x6e\x6b\x22\x29\x2e\x72\x65\x6c\x4c\x69\x73\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x6c\x4c\x69\x73\x74\x20\x26\x26\x20\x72\x65\x6c\x4c\x69\x73\x74\x2e\x73\x75\x70\x70\x6f\x72\x74\x73\x20\x26\x26\x20\x72\x65\x6c\x4c\x69\x73\x74\x2e\x73\x75\x70\x70\x6f\x72\x74\x73\x28\x22\x6d\x6f\x64\x75\x6c\x65\x70\x72\x65\x6c\x6f\x61\x64\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x6b\x20\x6f\x66\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x27\x6c\x69\x6e\x6b\x5b\x72\x65\x6c\x3d\x22\x6d\x6f\x64\x75\x6c\x65\x70\x72\x65\x6c\x6f\x61\x64\x22\x5d\x27\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x50\x72\x65\x6c\x6f\x61\x64\x28\x6c\x69\x6e\x6b\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6e\x65\x77\x20\x4d\x75\x74\x61\x74\x69\x6f\x6e\x4f\x62\x73\x65\x72\x76\x65\x72\x28\x28\x6d\x75\x74\x61\x74\x69\x6f\x6e\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6d\x75\x74\x61\x74\x69\x6f\x6e\x20\x6f\x66\x20\x6d\x75\x74\x61\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x75\x74\x61\x74\x69\x6f\x6e\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x68\x69\x6c\x64\x4c\x69\x73\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x6f\x66\x20\x6d\x75\x74\x61\x74\x69\x6f\x6e\x2e\x61\x64\x64\x65\x64\x4e\x6f\x64\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x2e\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x22\x4c\x49\x4e\x4b\x22\x20\x26\x26\x20\x6e\x6f\x64\x65\x2e\x72\x65\x6c\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x64\x75\x6c\x65\x70\x72\x65\x6c\x6f\x61\x64\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x50\x72\x65\x6c\x6f\x61\x64\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x29\x2e\x6f\x62\x73\x65\x72\x76\x65\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x63\x68\x69\x6c\x64\x4c\x69\x73\x74\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x75\x62\x74\x72\x65\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x46\x65\x74\x63\x68\x4f\x70\x74\x73\x28\x73\x63\x72\x69\x70\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x72\x69\x70\x74\x2e\x69\x6e\x74\x65\x67\x72\x69\x74\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x2e\x69\x6e\x74\x65\x67\x72\x69\x74\x79\x20\x3d\x20\x73\x63\x72\x69\x70\x74\x2e\x69\x6e\x74\x65\x67\x72\x69\x74\x79\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x72\x69\x70\x74\x2e\x72\x65\x66\x65\x72\x72\x65\x72\x70\x6f\x6c\x69\x63\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x2e\x72\x65\x66\x65\x72\x72\x65\x72\x50\x6f\x6c\x69\x63\x79\x20\x3d\x20\x73\x63\x72\x69\x70\x74\x2e\x72\x65\x66\x65\x72\x72\x65\x72\x70\x6f\x6c\x69\x63\x79\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x72\x69\x70\x74\x2e\x63\x72\x6f\x73\x73\x6f\x72\x69\x67\x69\x6e\x20\x3d\x3d\x3d\x20\x22\x75\x73\x65\x2d\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x2e\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x20\x3d\x20\x22\x69\x6e\x63\x6c\x75\x64\x65\x22\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x63\x72\x69\x70\x74\x2e\x63\x72\x6f\x73\x73\x6f\x72\x69\x67\x69\x6e\x20\x3d\x3d\x3d\x20\x22\x61\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x2e\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x20\x3d\x20\x22\x6f\x6d\x69\x74\x22\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x2e\x63\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x20\x3d\x20\x22\x73\x61\x6d\x65\x2d\x6f\x72\x69\x67\x69\x6e\x22\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x72\x6f\x63\x65\x73\x73\x50\x72\x65\x6c\x6f\x61\x64\x28\x6c\x69\x6e\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x6b\x2e\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x6b\x2e\x65\x70\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x20\x3d\x20\x67\x65\x74\x46\x65\x74\x63\x68\x4f\x70\x74\x73\x28\x6c\x69\x6e\x6b\x29\x3b\x0a\x20\x20\x20\x20\x66\x65\x74\x63\x68\x28\x6c\x69\x6e\x6b\x2e\x68\x72\x65\x66\x2c\x20\x66\x65\x74\x63\x68\x4f\x70\x74\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x70\x24\x31\x28\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x61\x6b\x65\x4d\x61\x70\x28\x73\x74\x72\x2c\x20\x65\x78\x70\x65\x63\x74\x73\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x73\x74\x20\x3d\x20\x73\x74\x72\x2e\x73\x70\x6c\x69\x74\x28\x22\x2c\x22\x29\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6c\x69\x73\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x70\x32\x5b\x6c\x69\x73\x74\x5b\x69\x5d\x5d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x78\x70\x65\x63\x74\x73\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x20\x3f\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x21\x21\x6d\x61\x70\x32\x5b\x76\x61\x6c\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x20\x3a\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x21\x21\x6d\x61\x70\x32\x5b\x76\x61\x6c\x5d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x47\x4c\x4f\x42\x41\x4c\x53\x5f\x57\x48\x49\x54\x45\x5f\x4c\x49\x53\x54\x45\x44\x20\x3d\x20\x22\x49\x6e\x66\x69\x6e\x69\x74\x79\x2c\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x2c\x4e\x61\x4e\x2c\x69\x73\x46\x69\x6e\x69\x74\x65\x2c\x69\x73\x4e\x61\x4e\x2c\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x2c\x70\x61\x72\x73\x65\x49\x6e\x74\x2c\x64\x65\x63\x6f\x64\x65\x55\x52\x49\x2c\x64\x65\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x2c\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x4d\x61\x74\x68\x2c\x4e\x75\x6d\x62\x65\x72\x2c\x44\x61\x74\x65\x2c\x41\x72\x72\x61\x79\x2c\x4f\x62\x6a\x65\x63\x74\x2c\x42\x6f\x6f\x6c\x65\x61\x6e\x2c\x53\x74\x72\x69\x6e\x67\x2c\x52\x65\x67\x45\x78\x70\x2c\x4d\x61\x70\x2c\x53\x65\x74\x2c\x4a\x53\x4f\x4e\x2c\x49\x6e\x74\x6c\x2c\x42\x69\x67\x49\x6e\x74\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x47\x6c\x6f\x62\x61\x6c\x6c\x79\x57\x68\x69\x74\x65\x6c\x69\x73\x74\x65\x64\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6d\x61\x6b\x65\x4d\x61\x70\x28\x47\x4c\x4f\x42\x41\x4c\x53\x5f\x57\x48\x49\x54\x45\x5f\x4c\x49\x53\x54\x45\x44\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x70\x65\x63\x69\x61\x6c\x42\x6f\x6f\x6c\x65\x61\x6e\x41\x74\x74\x72\x73\x20\x3d\x20\x60\x69\x74\x65\x6d\x73\x63\x6f\x70\x65\x2c\x61\x6c\x6c\x6f\x77\x66\x75\x6c\x6c\x73\x63\x72\x65\x65\x6e\x2c\x66\x6f\x72\x6d\x6e\x6f\x76\x61\x6c\x69\x64\x61\x74\x65\x2c\x69\x73\x6d\x61\x70\x2c\x6e\x6f\x6d\x6f\x64\x75\x6c\x65\x2c\x6e\x6f\x76\x61\x6c\x69\x64\x61\x74\x65\x2c\x72\x65\x61\x64\x6f\x6e\x6c\x79\x60\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x70\x65\x63\x69\x61\x6c\x42\x6f\x6f\x6c\x65\x61\x6e\x41\x74\x74\x72\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6d\x61\x6b\x65\x4d\x61\x70\x28\x73\x70\x65\x63\x69\x61\x6c\x42\x6f\x6f\x6c\x65\x61\x6e\x41\x74\x74\x72\x73\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x63\x6c\x75\x64\x65\x42\x6f\x6f\x6c\x65\x61\x6e\x41\x74\x74\x72\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x76\x61\x6c\x75\x65\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x22\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x74\x79\x6c\x65\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x76\x61\x6c\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x20\x3d\x20\x76\x61\x6c\x75\x65\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x69\x74\x65\x6d\x29\x20\x3f\x20\x70\x61\x72\x73\x65\x53\x74\x72\x69\x6e\x67\x53\x74\x79\x6c\x65\x28\x69\x74\x65\x6d\x29\x20\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x74\x79\x6c\x65\x28\x69\x74\x65\x6d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x6c\x69\x73\x74\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x52\x45\x20\x3d\x20\x2f\x3b\x28\x3f\x21\x5b\x5e\x28\x5d\x2a\x5c\x29\x29\x2f\x67\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x52\x45\x20\x3d\x20\x2f\x3a\x28\x2e\x2b\x29\x2f\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x53\x74\x72\x69\x6e\x67\x53\x74\x79\x6c\x65\x28\x63\x73\x73\x54\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x74\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x63\x73\x73\x54\x65\x78\x74\x2e\x73\x70\x6c\x69\x74\x28\x6c\x69\x73\x74\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x52\x45\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x69\x74\x65\x6d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6d\x70\x20\x3d\x20\x69\x74\x65\x6d\x2e\x73\x70\x6c\x69\x74\x28\x70\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x52\x45\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x6d\x70\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x72\x65\x74\x5b\x74\x6d\x70\x5b\x30\x5d\x2e\x74\x72\x69\x6d\x28\x29\x5d\x20\x3d\x20\x74\x6d\x70\x5b\x31\x5d\x2e\x74\x72\x69\x6d\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6c\x61\x73\x73\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x76\x61\x6c\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6c\x61\x73\x73\x28\x76\x61\x6c\x75\x65\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x20\x2b\x20\x22\x20\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6e\x61\x6d\x65\x20\x69\x6e\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x5b\x6e\x61\x6d\x65\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x6e\x61\x6d\x65\x20\x2b\x20\x22\x20\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x2e\x74\x72\x69\x6d\x28\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x50\x72\x6f\x70\x73\x28\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x70\x72\x6f\x70\x73\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x6c\x65\x74\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x6b\x6c\x61\x73\x73\x2c\x20\x73\x74\x79\x6c\x65\x20\x7d\x20\x3d\x20\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x6b\x6c\x61\x73\x73\x20\x26\x26\x20\x21\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x6b\x6c\x61\x73\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x2e\x63\x6c\x61\x73\x73\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6c\x61\x73\x73\x28\x6b\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x73\x74\x79\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x2e\x73\x74\x79\x6c\x65\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x74\x79\x6c\x65\x28\x73\x74\x79\x6c\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x6f\x70\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x6f\x6f\x73\x65\x43\x6f\x6d\x70\x61\x72\x65\x41\x72\x72\x61\x79\x73\x28\x61\x2c\x20\x62\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x61\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x62\x2e\x6c\x65\x6e\x67\x74\x68\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x65\x71\x75\x61\x6c\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x65\x71\x75\x61\x6c\x20\x26\x26\x20\x69\x20\x3c\x20\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x71\x75\x61\x6c\x20\x3d\x20\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x61\x5b\x69\x5d\x2c\x20\x62\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x71\x75\x61\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x61\x2c\x20\x62\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x61\x20\x3d\x3d\x3d\x20\x62\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x3d\x20\x69\x73\x44\x61\x74\x65\x28\x61\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x3d\x20\x69\x73\x44\x61\x74\x65\x28\x62\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x7c\x7c\x20\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x26\x26\x20\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x3f\x20\x61\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x20\x3d\x3d\x3d\x20\x62\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x3d\x20\x69\x73\x41\x72\x72\x61\x79\x28\x61\x29\x3b\x0a\x20\x20\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x3d\x20\x69\x73\x41\x72\x72\x61\x79\x28\x62\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x7c\x7c\x20\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x26\x26\x20\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x3f\x20\x6c\x6f\x6f\x73\x65\x43\x6f\x6d\x70\x61\x72\x65\x41\x72\x72\x61\x79\x73\x28\x61\x2c\x20\x62\x29\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x3d\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x61\x29\x3b\x0a\x20\x20\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x3d\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x62\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x7c\x7c\x20\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x20\x7c\x7c\x20\x21\x62\x56\x61\x6c\x69\x64\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x4b\x65\x79\x73\x43\x6f\x75\x6e\x74\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x61\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x4b\x65\x79\x73\x43\x6f\x75\x6e\x74\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x62\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x4b\x65\x79\x73\x43\x6f\x75\x6e\x74\x20\x21\x3d\x3d\x20\x62\x4b\x65\x79\x73\x43\x6f\x75\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x48\x61\x73\x4b\x65\x79\x20\x3d\x20\x61\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x48\x61\x73\x4b\x65\x79\x20\x3d\x20\x62\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x48\x61\x73\x4b\x65\x79\x20\x26\x26\x20\x21\x62\x48\x61\x73\x4b\x65\x79\x20\x7c\x7c\x20\x21\x61\x48\x61\x73\x4b\x65\x79\x20\x26\x26\x20\x62\x48\x61\x73\x4b\x65\x79\x20\x7c\x7c\x20\x21\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x61\x5b\x6b\x65\x79\x5d\x2c\x20\x62\x5b\x6b\x65\x79\x5d\x29\x29\x20\x7b\x0a\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\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x53\x74\x72\x69\x6e\x67\x28\x61\x29\x20\x3d\x3d\x3d\x20\x53\x74\x72\x69\x6e\x67\x28\x62\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x6f\x6f\x73\x65\x49\x6e\x64\x65\x78\x4f\x66\x28\x61\x72\x72\x2c\x20\x76\x61\x6c\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x72\x72\x2e\x66\x69\x6e\x64\x49\x6e\x64\x65\x78\x28\x28\x69\x74\x65\x6d\x29\x20\x3d\x3e\x20\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x69\x74\x65\x6d\x2c\x20\x76\x61\x6c\x29\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x74\x6f\x44\x69\x73\x70\x6c\x61\x79\x53\x74\x72\x69\x6e\x67\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x29\x20\x3f\x20\x76\x61\x6c\x20\x3a\x20\x76\x61\x6c\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x22\x22\x20\x3a\x20\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x29\x20\x7c\x7c\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x29\x20\x26\x26\x20\x28\x76\x61\x6c\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x20\x3d\x3d\x3d\x20\x6f\x62\x6a\x65\x63\x74\x54\x6f\x53\x74\x72\x69\x6e\x67\x20\x7c\x7c\x20\x21\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x29\x29\x20\x3f\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x76\x61\x6c\x2c\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x2c\x20\x32\x29\x20\x3a\x20\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x20\x3d\x20\x28\x5f\x6b\x65\x79\x2c\x20\x76\x61\x6c\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x20\x26\x26\x20\x76\x61\x6c\x2e\x5f\x5f\x76\x5f\x69\x73\x52\x65\x66\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x28\x5f\x6b\x65\x79\x2c\x20\x76\x61\x6c\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4d\x61\x70\x24\x31\x28\x76\x61\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x5b\x60\x4d\x61\x70\x28\x24\x7b\x76\x61\x6c\x2e\x73\x69\x7a\x65\x7d\x29\x60\x5d\x3a\x20\x5b\x2e\x2e\x2e\x76\x61\x6c\x2e\x65\x6e\x74\x72\x69\x65\x73\x28\x29\x5d\x2e\x72\x65\x64\x75\x63\x65\x28\x28\x65\x6e\x74\x72\x69\x65\x73\x2c\x20\x5b\x6b\x65\x79\x2c\x20\x76\x61\x6c\x32\x5d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x74\x72\x69\x65\x73\x5b\x60\x24\x7b\x6b\x65\x79\x7d\x20\x3d\x3e\x60\x5d\x20\x3d\x20\x76\x61\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x6e\x74\x72\x69\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x7b\x7d\x29\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x53\x65\x74\x28\x76\x61\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x5b\x60\x53\x65\x74\x28\x24\x7b\x76\x61\x6c\x2e\x73\x69\x7a\x65\x7d\x29\x60\x5d\x3a\x20\x5b\x2e\x2e\x2e\x76\x61\x6c\x2e\x76\x61\x6c\x75\x65\x73\x28\x29\x5d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x29\x20\x26\x26\x20\x21\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x29\x20\x26\x26\x20\x21\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x3d\x20\x7b\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x45\x4d\x50\x54\x59\x5f\x41\x52\x52\x20\x3d\x20\x5b\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x4e\x4f\x4f\x50\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x4e\x4f\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x52\x45\x20\x3d\x20\x2f\x5e\x6f\x6e\x5b\x5e\x61\x2d\x7a\x5d\x2f\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4f\x6e\x20\x3d\x20\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x6f\x6e\x52\x45\x2e\x74\x65\x73\x74\x28\x6b\x65\x79\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x20\x3d\x20\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x6b\x65\x79\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x22\x6f\x6e\x55\x70\x64\x61\x74\x65\x3a\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x65\x78\x74\x65\x6e\x64\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x6d\x6f\x76\x65\x20\x3d\x20\x28\x61\x72\x72\x2c\x20\x65\x6c\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x20\x3d\x20\x61\x72\x72\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x6c\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x20\x3e\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x61\x72\x72\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x2c\x20\x31\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x4f\x77\x6e\x20\x3d\x20\x28\x76\x61\x6c\x2c\x20\x6b\x65\x79\x29\x20\x3d\x3e\x20\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x2e\x63\x61\x6c\x6c\x28\x76\x61\x6c\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x41\x72\x72\x61\x79\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4d\x61\x70\x24\x31\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x74\x6f\x54\x79\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x29\x20\x3d\x3d\x3d\x20\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x4d\x61\x70\x5d\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x65\x74\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x74\x6f\x54\x79\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x29\x20\x3d\x3d\x3d\x20\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x53\x65\x74\x5d\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x44\x61\x74\x65\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x76\x61\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x44\x61\x74\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x79\x6d\x62\x6f\x6c\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x73\x79\x6d\x62\x6f\x6c\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x76\x61\x6c\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x50\x72\x6f\x6d\x69\x73\x65\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x29\x20\x26\x26\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x2e\x74\x68\x65\x6e\x29\x20\x26\x26\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x2e\x63\x61\x74\x63\x68\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x62\x6a\x65\x63\x74\x54\x6f\x53\x74\x72\x69\x6e\x67\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x6f\x54\x79\x70\x65\x53\x74\x72\x69\x6e\x67\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x6f\x62\x6a\x65\x63\x74\x54\x6f\x53\x74\x72\x69\x6e\x67\x2e\x63\x61\x6c\x6c\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x6f\x52\x61\x77\x54\x79\x70\x65\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x6f\x54\x79\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x29\x2e\x73\x6c\x69\x63\x65\x28\x38\x2c\x20\x2d\x31\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x74\x6f\x54\x79\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x29\x20\x3d\x3d\x3d\x20\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x4f\x62\x6a\x65\x63\x74\x5d\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x4b\x65\x79\x20\x3d\x20\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x22\x4e\x61\x4e\x22\x20\x26\x26\x20\x6b\x65\x79\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x22\x2d\x22\x20\x26\x26\x20\x22\x22\x20\x2b\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6b\x65\x79\x2c\x20\x31\x30\x29\x20\x3d\x3d\x3d\x20\x6b\x65\x79\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x52\x65\x73\x65\x72\x76\x65\x64\x50\x72\x6f\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6d\x61\x6b\x65\x4d\x61\x70\x28\x22\x2c\x6b\x65\x79\x2c\x72\x65\x66\x2c\x72\x65\x66\x5f\x66\x6f\x72\x2c\x72\x65\x66\x5f\x6b\x65\x79\x2c\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x2c\x6f\x6e\x56\x6e\x6f\x64\x65\x4d\x6f\x75\x6e\x74\x65\x64\x2c\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x2c\x6f\x6e\x56\x6e\x6f\x64\x65\x55\x70\x64\x61\x74\x65\x64\x2c\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x2c\x6f\x6e\x56\x6e\x6f\x64\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x53\x74\x72\x69\x6e\x67\x46\x75\x6e\x63\x74\x69\x6f\x6e\x20\x3d\x20\x28\x66\x6e\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x69\x74\x20\x3d\x20\x63\x61\x63\x68\x65\x5b\x73\x74\x72\x5d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x69\x74\x20\x7c\x7c\x20\x28\x63\x61\x63\x68\x65\x5b\x73\x74\x72\x5d\x20\x3d\x20\x66\x6e\x28\x73\x74\x72\x29\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x52\x45\x20\x3d\x20\x2f\x2d\x28\x5c\x77\x29\x2f\x67\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x20\x3d\x20\x63\x61\x63\x68\x65\x53\x74\x72\x69\x6e\x67\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x63\x61\x6d\x65\x6c\x69\x7a\x65\x52\x45\x2c\x20\x28\x5f\x2c\x20\x63\x29\x20\x3d\x3e\x20\x63\x20\x3f\x20\x63\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x20\x3a\x20\x22\x22\x29\x3b\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x52\x45\x20\x3d\x20\x2f\x5c\x42\x28\x5b\x41\x2d\x5a\x5d\x29\x2f\x67\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x20\x3d\x20\x63\x61\x63\x68\x65\x53\x74\x72\x69\x6e\x67\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x52\x45\x2c\x20\x22\x2d\x24\x31\x22\x29\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x61\x70\x69\x74\x61\x6c\x69\x7a\x65\x20\x3d\x20\x63\x61\x63\x68\x65\x53\x74\x72\x69\x6e\x67\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x20\x2b\x20\x73\x74\x72\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x6f\x48\x61\x6e\x64\x6c\x65\x72\x4b\x65\x79\x20\x3d\x20\x63\x61\x63\x68\x65\x53\x74\x72\x69\x6e\x67\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x20\x3f\x20\x60\x6f\x6e\x24\x7b\x63\x61\x70\x69\x74\x61\x6c\x69\x7a\x65\x28\x73\x74\x72\x29\x7d\x60\x20\x3a\x20\x60\x60\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x21\x4f\x62\x6a\x65\x63\x74\x2e\x69\x73\x28\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x76\x6f\x6b\x65\x41\x72\x72\x61\x79\x46\x6e\x73\x20\x3d\x20\x28\x66\x6e\x73\x2c\x20\x61\x72\x67\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x66\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6e\x73\x5b\x69\x5d\x28\x61\x72\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x64\x65\x66\x20\x3d\x20\x28\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x6f\x4e\x75\x6d\x62\x65\x72\x20\x3d\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x76\x61\x6c\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x4e\x61\x4e\x28\x6e\x29\x20\x3f\x20\x76\x61\x6c\x20\x3a\x20\x6e\x3b\x0a\x7d\x3b\x0a\x6c\x65\x74\x20\x5f\x67\x6c\x6f\x62\x61\x6c\x54\x68\x69\x73\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x47\x6c\x6f\x62\x61\x6c\x54\x68\x69\x73\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x67\x6c\x6f\x62\x61\x6c\x54\x68\x69\x73\x20\x7c\x7c\x20\x28\x5f\x67\x6c\x6f\x62\x61\x6c\x54\x68\x69\x73\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x67\x6c\x6f\x62\x61\x6c\x54\x68\x69\x73\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x3f\x20\x67\x6c\x6f\x62\x61\x6c\x54\x68\x69\x73\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x65\x6c\x66\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x3f\x20\x73\x65\x6c\x66\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x77\x69\x6e\x64\x6f\x77\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x3f\x20\x77\x69\x6e\x64\x6f\x77\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x67\x6c\x6f\x62\x61\x6c\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x3f\x20\x67\x6c\x6f\x62\x61\x6c\x20\x3a\x20\x7b\x7d\x29\x3b\x0a\x7d\x3b\x0a\x6c\x65\x74\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x3b\x0a\x63\x6c\x61\x73\x73\x20\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x65\x74\x61\x63\x68\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x66\x66\x65\x63\x74\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x6e\x75\x70\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x65\x74\x61\x63\x68\x65\x64\x20\x26\x26\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x78\x20\x3d\x20\x28\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x2e\x73\x63\x6f\x70\x65\x73\x20\x7c\x7c\x20\x28\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x2e\x73\x63\x6f\x70\x65\x73\x20\x3d\x20\x5b\x5d\x29\x29\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x29\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x75\x6e\x28\x66\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x20\x3d\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x66\x69\x6e\x61\x6c\x6c\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6f\x66\x66\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x74\x6f\x70\x28\x66\x72\x6f\x6d\x50\x61\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x2c\x20\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x30\x2c\x20\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x66\x66\x65\x63\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x3c\x20\x6c\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x66\x66\x65\x63\x74\x73\x5b\x69\x5d\x2e\x73\x74\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x30\x2c\x20\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x6e\x75\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x3c\x20\x6c\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x6e\x75\x70\x73\x5b\x69\x5d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x73\x63\x6f\x70\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x30\x2c\x20\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x63\x6f\x70\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x3c\x20\x6c\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x63\x6f\x70\x65\x73\x5b\x69\x5d\x2e\x73\x74\x6f\x70\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x20\x26\x26\x20\x21\x66\x72\x6f\x6d\x50\x61\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x2e\x73\x63\x6f\x70\x65\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x61\x73\x74\x20\x26\x26\x20\x6c\x61\x73\x74\x20\x21\x3d\x3d\x20\x74\x68\x69\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x2e\x73\x63\x6f\x70\x65\x73\x5b\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x78\x5d\x20\x3d\x20\x6c\x61\x73\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x61\x73\x74\x2e\x69\x6e\x64\x65\x78\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x28\x64\x65\x74\x61\x63\x68\x65\x64\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x28\x64\x65\x74\x61\x63\x68\x65\x64\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x63\x6f\x72\x64\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x28\x65\x66\x66\x65\x63\x74\x32\x2c\x20\x73\x63\x6f\x70\x65\x20\x3d\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x73\x63\x6f\x70\x65\x20\x26\x26\x20\x73\x63\x6f\x70\x65\x2e\x61\x63\x74\x69\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x63\x6f\x70\x65\x2e\x65\x66\x66\x65\x63\x74\x73\x2e\x70\x75\x73\x68\x28\x65\x66\x66\x65\x63\x74\x32\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x53\x63\x6f\x70\x65\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x6e\x53\x63\x6f\x70\x65\x44\x69\x73\x70\x6f\x73\x65\x28\x66\x6e\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x2e\x63\x6c\x65\x61\x6e\x75\x70\x73\x2e\x70\x75\x73\x68\x28\x66\x6e\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x63\x72\x65\x61\x74\x65\x44\x65\x70\x20\x3d\x20\x28\x65\x66\x66\x65\x63\x74\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x70\x20\x3d\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x65\x66\x66\x65\x63\x74\x73\x29\x3b\x0a\x20\x20\x64\x65\x70\x2e\x77\x20\x3d\x20\x30\x3b\x0a\x20\x20\x64\x65\x70\x2e\x6e\x20\x3d\x20\x30\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x70\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x77\x61\x73\x54\x72\x61\x63\x6b\x65\x64\x20\x3d\x20\x28\x64\x65\x70\x29\x20\x3d\x3e\x20\x28\x64\x65\x70\x2e\x77\x20\x26\x20\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x29\x20\x3e\x20\x30\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x54\x72\x61\x63\x6b\x65\x64\x20\x3d\x20\x28\x64\x65\x70\x29\x20\x3d\x3e\x20\x28\x64\x65\x70\x2e\x6e\x20\x26\x20\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x29\x20\x3e\x20\x30\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x69\x74\x44\x65\x70\x4d\x61\x72\x6b\x65\x72\x73\x20\x3d\x20\x28\x7b\x20\x64\x65\x70\x73\x20\x7d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x5b\x69\x5d\x2e\x77\x20\x7c\x3d\x20\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x69\x6e\x61\x6c\x69\x7a\x65\x44\x65\x70\x4d\x61\x72\x6b\x65\x72\x73\x20\x3d\x20\x28\x65\x66\x66\x65\x63\x74\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x64\x65\x70\x73\x20\x7d\x20\x3d\x20\x65\x66\x66\x65\x63\x74\x32\x3b\x0a\x20\x20\x69\x66\x20\x28\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x74\x72\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x70\x20\x3d\x20\x64\x65\x70\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x77\x61\x73\x54\x72\x61\x63\x6b\x65\x64\x28\x64\x65\x70\x29\x20\x26\x26\x20\x21\x6e\x65\x77\x54\x72\x61\x63\x6b\x65\x64\x28\x64\x65\x70\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x2e\x64\x65\x6c\x65\x74\x65\x28\x65\x66\x66\x65\x63\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x5b\x70\x74\x72\x2b\x2b\x5d\x20\x3d\x20\x64\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x70\x2e\x77\x20\x26\x3d\x20\x7e\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x70\x2e\x6e\x20\x26\x3d\x20\x7e\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x70\x74\x72\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x3b\x0a\x6c\x65\x74\x20\x65\x66\x66\x65\x63\x74\x54\x72\x61\x63\x6b\x44\x65\x70\x74\x68\x20\x3d\x20\x30\x3b\x0a\x6c\x65\x74\x20\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x20\x3d\x20\x31\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6d\x61\x78\x4d\x61\x72\x6b\x65\x72\x42\x69\x74\x73\x20\x3d\x20\x33\x30\x3b\x0a\x6c\x65\x74\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x22\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x4d\x41\x50\x5f\x4b\x45\x59\x5f\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x22\x22\x29\x3b\x0a\x63\x6c\x61\x73\x73\x20\x52\x65\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x66\x6e\x2c\x20\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x63\x6f\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6e\x20\x3d\x20\x66\x6e\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x20\x3d\x20\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x70\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x72\x65\x63\x6f\x72\x64\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x28\x74\x68\x69\x73\x2c\x20\x73\x63\x6f\x70\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x75\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6c\x61\x73\x74\x53\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x20\x3d\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x70\x61\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x74\x68\x69\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x20\x3d\x20\x31\x20\x3c\x3c\x20\x2b\x2b\x65\x66\x66\x65\x63\x74\x54\x72\x61\x63\x6b\x44\x65\x70\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x66\x66\x65\x63\x74\x54\x72\x61\x63\x6b\x44\x65\x70\x74\x68\x20\x3c\x3d\x20\x6d\x61\x78\x4d\x61\x72\x6b\x65\x72\x42\x69\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x44\x65\x70\x4d\x61\x72\x6b\x65\x72\x73\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x65\x61\x6e\x75\x70\x45\x66\x66\x65\x63\x74\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x66\x69\x6e\x61\x6c\x6c\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x66\x66\x65\x63\x74\x54\x72\x61\x63\x6b\x44\x65\x70\x74\x68\x20\x3c\x3d\x20\x6d\x61\x78\x4d\x61\x72\x6b\x65\x72\x42\x69\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6e\x61\x6c\x69\x7a\x65\x44\x65\x70\x4d\x61\x72\x6b\x65\x72\x73\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x20\x3d\x20\x31\x20\x3c\x3c\x20\x2d\x2d\x65\x66\x66\x65\x63\x74\x54\x72\x61\x63\x6b\x44\x65\x70\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x20\x3d\x20\x6c\x61\x73\x74\x53\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x65\x66\x65\x72\x53\x74\x6f\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x73\x74\x6f\x70\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x20\x3d\x3d\x3d\x20\x74\x68\x69\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x65\x72\x53\x74\x6f\x70\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6c\x65\x61\x6e\x75\x70\x45\x66\x66\x65\x63\x74\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6f\x6e\x53\x74\x6f\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x53\x74\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6c\x65\x61\x6e\x75\x70\x45\x66\x66\x65\x63\x74\x28\x65\x66\x66\x65\x63\x74\x32\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x64\x65\x70\x73\x20\x7d\x20\x3d\x20\x65\x66\x66\x65\x63\x74\x32\x3b\x0a\x20\x20\x69\x66\x20\x28\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x5b\x69\x5d\x2e\x64\x65\x6c\x65\x74\x65\x28\x65\x66\x66\x65\x63\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x66\x66\x65\x63\x74\x28\x66\x6e\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x66\x6e\x2e\x65\x66\x66\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6e\x20\x3d\x20\x66\x6e\x2e\x65\x66\x66\x65\x63\x74\x2e\x66\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x65\x66\x66\x65\x63\x74\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x28\x66\x6e\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x64\x28\x5f\x65\x66\x66\x65\x63\x74\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x63\x6f\x70\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x63\x6f\x72\x64\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x28\x5f\x65\x66\x66\x65\x63\x74\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x63\x6f\x70\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x6f\x70\x74\x69\x6f\x6e\x73\x20\x7c\x7c\x20\x21\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x61\x7a\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x65\x66\x66\x65\x63\x74\x2e\x72\x75\x6e\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x75\x6e\x6e\x65\x72\x20\x3d\x20\x5f\x65\x66\x66\x65\x63\x74\x2e\x72\x75\x6e\x2e\x62\x69\x6e\x64\x28\x5f\x65\x66\x66\x65\x63\x74\x29\x3b\x0a\x20\x20\x72\x75\x6e\x6e\x65\x72\x2e\x65\x66\x66\x65\x63\x74\x20\x3d\x20\x5f\x65\x66\x66\x65\x63\x74\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x75\x6e\x6e\x65\x72\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x6f\x70\x28\x72\x75\x6e\x6e\x65\x72\x29\x20\x7b\x0a\x20\x20\x72\x75\x6e\x6e\x65\x72\x2e\x65\x66\x66\x65\x63\x74\x2e\x73\x74\x6f\x70\x28\x29\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x72\x61\x63\x6b\x53\x74\x61\x63\x6b\x20\x3d\x20\x5b\x5d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x75\x73\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x20\x7b\x0a\x20\x20\x74\x72\x61\x63\x6b\x53\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x29\x3b\x0a\x20\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x65\x74\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x20\x3d\x20\x74\x72\x61\x63\x6b\x53\x74\x61\x63\x6b\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x20\x3d\x20\x6c\x61\x73\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x72\x75\x65\x20\x3a\x20\x6c\x61\x73\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x61\x63\x6b\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x74\x79\x70\x65\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x20\x26\x26\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x64\x65\x70\x73\x4d\x61\x70\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x4d\x61\x70\x2e\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x65\x70\x73\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x4d\x61\x70\x2e\x73\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x64\x65\x70\x73\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x64\x65\x70\x20\x3d\x20\x64\x65\x70\x73\x4d\x61\x70\x2e\x67\x65\x74\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x4d\x61\x70\x2e\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x64\x65\x70\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x44\x65\x70\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x45\x66\x66\x65\x63\x74\x73\x28\x64\x65\x70\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x61\x63\x6b\x45\x66\x66\x65\x63\x74\x73\x28\x64\x65\x70\x2c\x20\x64\x65\x62\x75\x67\x67\x65\x72\x45\x76\x65\x6e\x74\x45\x78\x74\x72\x61\x49\x6e\x66\x6f\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x66\x66\x65\x63\x74\x54\x72\x61\x63\x6b\x44\x65\x70\x74\x68\x20\x3c\x3d\x20\x6d\x61\x78\x4d\x61\x72\x6b\x65\x72\x42\x69\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6e\x65\x77\x54\x72\x61\x63\x6b\x65\x64\x28\x64\x65\x70\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x70\x2e\x6e\x20\x7c\x3d\x20\x74\x72\x61\x63\x6b\x4f\x70\x42\x69\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x32\x20\x3d\x20\x21\x77\x61\x73\x54\x72\x61\x63\x6b\x65\x64\x28\x64\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x32\x20\x3d\x20\x21\x64\x65\x70\x2e\x68\x61\x73\x28\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x64\x65\x70\x2e\x61\x64\x64\x28\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x29\x3b\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x2e\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x74\x79\x70\x65\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x54\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x70\x73\x4d\x61\x70\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x4d\x61\x70\x2e\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x64\x65\x70\x73\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x64\x65\x70\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x6c\x65\x61\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x64\x65\x70\x73\x20\x3d\x20\x5b\x2e\x2e\x2e\x64\x65\x70\x73\x4d\x61\x70\x2e\x76\x61\x6c\x75\x65\x73\x28\x29\x5d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x6c\x65\x6e\x67\x74\x68\x22\x20\x26\x26\x20\x69\x73\x41\x72\x72\x61\x79\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x64\x65\x70\x73\x4d\x61\x70\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x64\x65\x70\x2c\x20\x6b\x65\x79\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x32\x20\x3d\x3d\x3d\x20\x22\x6c\x65\x6e\x67\x74\x68\x22\x20\x7c\x7c\x20\x6b\x65\x79\x32\x20\x3e\x3d\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x73\x4d\x61\x70\x2e\x67\x65\x74\x28\x6b\x65\x79\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x64\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x41\x72\x72\x61\x79\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x73\x4d\x61\x70\x2e\x67\x65\x74\x28\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x61\x70\x24\x31\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x73\x4d\x61\x70\x2e\x67\x65\x74\x28\x4d\x41\x50\x5f\x4b\x45\x59\x5f\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x4b\x65\x79\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x73\x4d\x61\x70\x2e\x67\x65\x74\x28\x22\x6c\x65\x6e\x67\x74\x68\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x65\x6c\x65\x74\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x41\x72\x72\x61\x79\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x73\x4d\x61\x70\x2e\x67\x65\x74\x28\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x61\x70\x24\x31\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x73\x4d\x61\x70\x2e\x67\x65\x74\x28\x4d\x41\x50\x5f\x4b\x45\x59\x5f\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x29\x3b\x0a\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\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x61\x70\x24\x31\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x65\x70\x73\x4d\x61\x70\x2e\x67\x65\x74\x28\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x64\x65\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x70\x73\x5b\x30\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x45\x66\x66\x65\x63\x74\x73\x28\x64\x65\x70\x73\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x66\x66\x65\x63\x74\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x64\x65\x70\x20\x6f\x66\x20\x64\x65\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x73\x2e\x70\x75\x73\x68\x28\x2e\x2e\x2e\x64\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x45\x66\x66\x65\x63\x74\x73\x28\x63\x72\x65\x61\x74\x65\x44\x65\x70\x28\x65\x66\x66\x65\x63\x74\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x69\x67\x67\x65\x72\x45\x66\x66\x65\x63\x74\x73\x28\x64\x65\x70\x2c\x20\x64\x65\x62\x75\x67\x67\x65\x72\x45\x76\x65\x6e\x74\x45\x78\x74\x72\x61\x49\x6e\x66\x6f\x29\x20\x7b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x65\x66\x66\x65\x63\x74\x32\x20\x6f\x66\x20\x69\x73\x41\x72\x72\x61\x79\x28\x64\x65\x70\x29\x20\x3f\x20\x64\x65\x70\x20\x3a\x20\x5b\x2e\x2e\x2e\x64\x65\x70\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x66\x66\x65\x63\x74\x32\x20\x21\x3d\x3d\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x20\x7c\x7c\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x61\x6c\x6c\x6f\x77\x52\x65\x63\x75\x72\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x66\x66\x65\x63\x74\x32\x2e\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x72\x75\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4e\x6f\x6e\x54\x72\x61\x63\x6b\x61\x62\x6c\x65\x4b\x65\x79\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6d\x61\x6b\x65\x4d\x61\x70\x28\x60\x5f\x5f\x70\x72\x6f\x74\x6f\x5f\x5f\x2c\x5f\x5f\x76\x5f\x69\x73\x52\x65\x66\x2c\x5f\x5f\x69\x73\x56\x75\x65\x60\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x62\x75\x69\x6c\x74\x49\x6e\x53\x79\x6d\x62\x6f\x6c\x73\x20\x3d\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x4e\x61\x6d\x65\x73\x28\x53\x79\x6d\x62\x6f\x6c\x29\x2e\x6d\x61\x70\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x53\x79\x6d\x62\x6f\x6c\x5b\x6b\x65\x79\x5d\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x69\x73\x53\x79\x6d\x62\x6f\x6c\x29\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x47\x65\x74\x74\x65\x72\x28\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x47\x65\x74\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x47\x65\x74\x74\x65\x72\x28\x66\x61\x6c\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x47\x65\x74\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x47\x65\x74\x74\x65\x72\x28\x74\x72\x75\x65\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x47\x65\x74\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x47\x65\x74\x74\x65\x72\x28\x74\x72\x75\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x61\x72\x72\x61\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x41\x72\x72\x61\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x41\x72\x72\x61\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x5b\x22\x69\x6e\x63\x6c\x75\x64\x65\x73\x22\x2c\x20\x22\x69\x6e\x64\x65\x78\x4f\x66\x22\x2c\x20\x22\x6c\x61\x73\x74\x49\x6e\x64\x65\x78\x4f\x66\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x72\x72\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x2c\x20\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x3c\x20\x6c\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x28\x61\x72\x72\x2c\x20\x22\x67\x65\x74\x22\x2c\x20\x69\x20\x2b\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x61\x72\x72\x5b\x6b\x65\x79\x5d\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x7c\x7c\x20\x72\x65\x73\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x72\x72\x5b\x6b\x65\x79\x5d\x28\x2e\x2e\x2e\x61\x72\x67\x73\x2e\x6d\x61\x70\x28\x74\x6f\x52\x61\x77\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x5b\x22\x70\x75\x73\x68\x22\x2c\x20\x22\x70\x6f\x70\x22\x2c\x20\x22\x73\x68\x69\x66\x74\x22\x2c\x20\x22\x75\x6e\x73\x68\x69\x66\x74\x22\x2c\x20\x22\x73\x70\x6c\x69\x63\x65\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x75\x73\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x68\x69\x73\x29\x5b\x6b\x65\x79\x5d\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x65\x74\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x47\x65\x74\x74\x65\x72\x28\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x32\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x5f\x5f\x76\x5f\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x5f\x5f\x76\x5f\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x68\x61\x6c\x6c\x6f\x77\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x20\x26\x26\x20\x72\x65\x63\x65\x69\x76\x65\x72\x20\x3d\x3d\x3d\x20\x28\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3f\x20\x73\x68\x61\x6c\x6c\x6f\x77\x20\x3f\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x61\x70\x20\x3a\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x61\x70\x20\x3a\x20\x73\x68\x61\x6c\x6c\x6f\x77\x20\x3f\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x63\x74\x69\x76\x65\x4d\x61\x70\x20\x3a\x20\x72\x65\x61\x63\x74\x69\x76\x65\x4d\x61\x70\x29\x2e\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x49\x73\x41\x72\x72\x61\x79\x20\x3d\x20\x69\x73\x41\x72\x72\x61\x79\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x61\x72\x67\x65\x74\x49\x73\x41\x72\x72\x61\x79\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x61\x72\x72\x61\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x67\x65\x74\x28\x61\x72\x72\x61\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x79\x6d\x62\x6f\x6c\x28\x6b\x65\x79\x29\x20\x3f\x20\x62\x75\x69\x6c\x74\x49\x6e\x53\x79\x6d\x62\x6f\x6c\x73\x2e\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x3a\x20\x69\x73\x4e\x6f\x6e\x54\x72\x61\x63\x6b\x61\x62\x6c\x65\x4b\x65\x79\x73\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x67\x65\x74\x22\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x6c\x6c\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x72\x65\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x68\x6f\x75\x6c\x64\x55\x6e\x77\x72\x61\x70\x20\x3d\x20\x21\x74\x61\x72\x67\x65\x74\x49\x73\x41\x72\x72\x61\x79\x20\x7c\x7c\x20\x21\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x4b\x65\x79\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x68\x6f\x75\x6c\x64\x55\x6e\x77\x72\x61\x70\x20\x3f\x20\x72\x65\x73\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x72\x65\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x72\x65\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3f\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x28\x72\x65\x73\x29\x20\x3a\x20\x72\x65\x61\x63\x74\x69\x76\x65\x28\x72\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x24\x31\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x53\x65\x74\x74\x65\x72\x28\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x53\x65\x74\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x53\x65\x74\x74\x65\x72\x28\x74\x72\x75\x65\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x53\x65\x74\x74\x65\x72\x28\x73\x68\x61\x6c\x6c\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x32\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x28\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x69\x73\x52\x65\x66\x28\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x21\x69\x73\x52\x65\x66\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x68\x61\x6c\x6c\x6f\x77\x20\x26\x26\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x41\x72\x72\x61\x79\x28\x74\x61\x72\x67\x65\x74\x29\x20\x26\x26\x20\x69\x73\x52\x65\x66\x28\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x21\x69\x73\x52\x65\x66\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x64\x4b\x65\x79\x20\x3d\x20\x69\x73\x41\x72\x72\x61\x79\x28\x74\x61\x72\x67\x65\x74\x29\x20\x26\x26\x20\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x4b\x65\x79\x28\x6b\x65\x79\x29\x20\x3f\x20\x4e\x75\x6d\x62\x65\x72\x28\x6b\x65\x79\x29\x20\x3c\x20\x74\x61\x72\x67\x65\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x68\x61\x73\x4f\x77\x6e\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x73\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x20\x3d\x3d\x3d\x20\x74\x6f\x52\x61\x77\x28\x72\x65\x63\x65\x69\x76\x65\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x68\x61\x64\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x61\x64\x64\x22\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x68\x61\x73\x43\x68\x61\x6e\x67\x65\x64\x28\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x73\x65\x74\x22\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x65\x6c\x65\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x64\x4b\x65\x79\x20\x3d\x20\x68\x61\x73\x4f\x77\x6e\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x74\x61\x72\x67\x65\x74\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x64\x65\x6c\x65\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x73\x75\x6c\x74\x20\x26\x26\x20\x68\x61\x64\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x64\x65\x6c\x65\x74\x65\x22\x2c\x20\x6b\x65\x79\x2c\x20\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x68\x61\x73\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x53\x79\x6d\x62\x6f\x6c\x28\x6b\x65\x79\x29\x20\x7c\x7c\x20\x21\x62\x75\x69\x6c\x74\x49\x6e\x53\x79\x6d\x62\x6f\x6c\x73\x2e\x68\x61\x73\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x68\x61\x73\x22\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x77\x6e\x4b\x65\x79\x73\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x74\x72\x61\x63\x6b\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x69\x74\x65\x72\x61\x74\x65\x22\x2c\x20\x69\x73\x41\x72\x72\x61\x79\x28\x74\x61\x72\x67\x65\x74\x29\x20\x3f\x20\x22\x6c\x65\x6e\x67\x74\x68\x22\x20\x3a\x20\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x6f\x77\x6e\x4b\x65\x79\x73\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x6d\x75\x74\x61\x62\x6c\x65\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x67\x65\x74\x2c\x0a\x20\x20\x73\x65\x74\x3a\x20\x73\x65\x74\x24\x31\x2c\x0a\x20\x20\x64\x65\x6c\x65\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x2c\x0a\x20\x20\x68\x61\x73\x2c\x0a\x20\x20\x6f\x77\x6e\x4b\x65\x79\x73\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x67\x65\x74\x3a\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x47\x65\x74\x2c\x0a\x20\x20\x73\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x64\x65\x6c\x65\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x63\x74\x69\x76\x65\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x6d\x75\x74\x61\x62\x6c\x65\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x7b\x0a\x20\x20\x67\x65\x74\x3a\x20\x73\x68\x61\x6c\x6c\x6f\x77\x47\x65\x74\x2c\x0a\x20\x20\x73\x65\x74\x3a\x20\x73\x68\x61\x6c\x6c\x6f\x77\x53\x65\x74\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x7b\x0a\x20\x20\x67\x65\x74\x3a\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x47\x65\x74\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x6f\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x50\x72\x6f\x74\x6f\x20\x3d\x20\x28\x76\x29\x20\x3d\x3e\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x67\x65\x74\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x4f\x66\x28\x76\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x5b\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x4b\x65\x79\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x21\x3d\x3d\x20\x72\x61\x77\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x72\x61\x63\x6b\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x2c\x20\x22\x67\x65\x74\x22\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x72\x61\x63\x6b\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x2c\x20\x22\x67\x65\x74\x22\x2c\x20\x72\x61\x77\x4b\x65\x79\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x68\x61\x73\x3a\x20\x68\x61\x73\x32\x20\x7d\x20\x3d\x20\x67\x65\x74\x50\x72\x6f\x74\x6f\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x72\x61\x70\x20\x3d\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x32\x20\x3f\x20\x74\x6f\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3a\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3f\x20\x74\x6f\x52\x65\x61\x64\x6f\x6e\x6c\x79\x20\x3a\x20\x74\x6f\x52\x65\x61\x63\x74\x69\x76\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x68\x61\x73\x32\x2e\x63\x61\x6c\x6c\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x77\x72\x61\x70\x28\x74\x61\x72\x67\x65\x74\x2e\x67\x65\x74\x28\x6b\x65\x79\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x68\x61\x73\x32\x2e\x63\x61\x6c\x6c\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x2c\x20\x72\x61\x77\x4b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x77\x72\x61\x70\x28\x74\x61\x72\x67\x65\x74\x2e\x67\x65\x74\x28\x72\x61\x77\x4b\x65\x79\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x20\x21\x3d\x3d\x20\x72\x61\x77\x54\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2e\x67\x65\x74\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x24\x31\x28\x6b\x65\x79\x2c\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x68\x69\x73\x5b\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x4b\x65\x79\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x21\x3d\x3d\x20\x72\x61\x77\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x72\x61\x63\x6b\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x2c\x20\x22\x68\x61\x73\x22\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x72\x61\x63\x6b\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x2c\x20\x22\x68\x61\x73\x22\x2c\x20\x72\x61\x77\x4b\x65\x79\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x72\x61\x77\x4b\x65\x79\x20\x3f\x20\x74\x61\x72\x67\x65\x74\x2e\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x3a\x20\x74\x61\x72\x67\x65\x74\x2e\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x7c\x7c\x20\x74\x61\x72\x67\x65\x74\x2e\x68\x61\x73\x28\x72\x61\x77\x4b\x65\x79\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x69\x7a\x65\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x5b\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x5d\x3b\x0a\x20\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x72\x61\x63\x6b\x28\x74\x6f\x52\x61\x77\x28\x74\x61\x72\x67\x65\x74\x29\x2c\x20\x22\x69\x74\x65\x72\x61\x74\x65\x22\x2c\x20\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x73\x69\x7a\x65\x22\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x64\x64\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x74\x6f\x20\x3d\x20\x67\x65\x74\x50\x72\x6f\x74\x6f\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x64\x4b\x65\x79\x20\x3d\x20\x70\x72\x6f\x74\x6f\x2e\x68\x61\x73\x2e\x63\x61\x6c\x6c\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x68\x61\x64\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2e\x61\x64\x64\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x61\x64\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x24\x31\x24\x31\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x68\x61\x73\x3a\x20\x68\x61\x73\x32\x2c\x20\x67\x65\x74\x3a\x20\x67\x65\x74\x32\x20\x7d\x20\x3d\x20\x67\x65\x74\x50\x72\x6f\x74\x6f\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x64\x4b\x65\x79\x20\x3d\x20\x68\x61\x73\x32\x2e\x63\x61\x6c\x6c\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x68\x61\x64\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x68\x61\x64\x4b\x65\x79\x20\x3d\x20\x68\x61\x73\x32\x2e\x63\x61\x6c\x6c\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x20\x67\x65\x74\x32\x2e\x63\x61\x6c\x6c\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x74\x61\x72\x67\x65\x74\x2e\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x68\x61\x64\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x61\x64\x64\x22\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x68\x61\x73\x43\x68\x61\x6e\x67\x65\x64\x28\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x73\x65\x74\x22\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x65\x6c\x65\x74\x65\x45\x6e\x74\x72\x79\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x68\x61\x73\x3a\x20\x68\x61\x73\x32\x2c\x20\x67\x65\x74\x3a\x20\x67\x65\x74\x32\x20\x7d\x20\x3d\x20\x67\x65\x74\x50\x72\x6f\x74\x6f\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x64\x4b\x65\x79\x20\x3d\x20\x68\x61\x73\x32\x2e\x63\x61\x6c\x6c\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x68\x61\x64\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x68\x61\x64\x4b\x65\x79\x20\x3d\x20\x68\x61\x73\x32\x2e\x63\x61\x6c\x6c\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x32\x20\x3f\x20\x67\x65\x74\x32\x2e\x63\x61\x6c\x6c\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x2e\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x68\x61\x64\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x64\x65\x6c\x65\x74\x65\x22\x2c\x20\x6b\x65\x79\x2c\x20\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6c\x65\x61\x72\x28\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x64\x49\x74\x65\x6d\x73\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x2e\x73\x69\x7a\x65\x20\x21\x3d\x3d\x20\x30\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x65\x61\x72\x28\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x68\x61\x64\x49\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x63\x6c\x65\x61\x72\x22\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x46\x6f\x72\x45\x61\x63\x68\x28\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x2c\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x32\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x72\x45\x61\x63\x68\x28\x63\x61\x6c\x6c\x62\x61\x63\x6b\x2c\x20\x74\x68\x69\x73\x41\x72\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x62\x73\x65\x72\x76\x65\x64\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x6f\x62\x73\x65\x72\x76\x65\x64\x5b\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x5d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x72\x61\x70\x20\x3d\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x32\x20\x3f\x20\x74\x6f\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3a\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3f\x20\x74\x6f\x52\x65\x61\x64\x6f\x6e\x6c\x79\x20\x3a\x20\x74\x6f\x52\x65\x61\x63\x74\x69\x76\x65\x3b\x0a\x20\x20\x20\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x72\x61\x63\x6b\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x2c\x20\x22\x69\x74\x65\x72\x61\x74\x65\x22\x2c\x20\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x76\x61\x6c\x75\x65\x2c\x20\x6b\x65\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x61\x6c\x6c\x62\x61\x63\x6b\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x41\x72\x67\x2c\x20\x77\x72\x61\x70\x28\x76\x61\x6c\x75\x65\x29\x2c\x20\x77\x72\x61\x70\x28\x6b\x65\x79\x29\x2c\x20\x6f\x62\x73\x65\x72\x76\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x49\x74\x65\x72\x61\x62\x6c\x65\x4d\x65\x74\x68\x6f\x64\x28\x6d\x65\x74\x68\x6f\x64\x2c\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x2c\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x32\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x68\x69\x73\x5b\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x5d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x49\x73\x4d\x61\x70\x20\x3d\x20\x69\x73\x4d\x61\x70\x24\x31\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x50\x61\x69\x72\x32\x20\x3d\x20\x6d\x65\x74\x68\x6f\x64\x20\x3d\x3d\x3d\x20\x22\x65\x6e\x74\x72\x69\x65\x73\x22\x20\x7c\x7c\x20\x6d\x65\x74\x68\x6f\x64\x20\x3d\x3d\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x20\x26\x26\x20\x74\x61\x72\x67\x65\x74\x49\x73\x4d\x61\x70\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x4b\x65\x79\x4f\x6e\x6c\x79\x20\x3d\x20\x6d\x65\x74\x68\x6f\x64\x20\x3d\x3d\x3d\x20\x22\x6b\x65\x79\x73\x22\x20\x26\x26\x20\x74\x61\x72\x67\x65\x74\x49\x73\x4d\x61\x70\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x6e\x65\x72\x49\x74\x65\x72\x61\x74\x6f\x72\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x5b\x6d\x65\x74\x68\x6f\x64\x5d\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x72\x61\x70\x20\x3d\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x32\x20\x3f\x20\x74\x6f\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3a\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3f\x20\x74\x6f\x52\x65\x61\x64\x6f\x6e\x6c\x79\x20\x3a\x20\x74\x6f\x52\x65\x61\x63\x74\x69\x76\x65\x3b\x0a\x20\x20\x20\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x72\x61\x63\x6b\x28\x72\x61\x77\x54\x61\x72\x67\x65\x74\x2c\x20\x22\x69\x74\x65\x72\x61\x74\x65\x22\x2c\x20\x69\x73\x4b\x65\x79\x4f\x6e\x6c\x79\x20\x3f\x20\x4d\x41\x50\x5f\x4b\x45\x59\x5f\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x20\x3a\x20\x49\x54\x45\x52\x41\x54\x45\x5f\x4b\x45\x59\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x64\x6f\x6e\x65\x20\x7d\x20\x3d\x20\x69\x6e\x6e\x65\x72\x49\x74\x65\x72\x61\x74\x6f\x72\x2e\x6e\x65\x78\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x6e\x65\x20\x3f\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x64\x6f\x6e\x65\x20\x7d\x20\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x3a\x20\x69\x73\x50\x61\x69\x72\x32\x20\x3f\x20\x5b\x77\x72\x61\x70\x28\x76\x61\x6c\x75\x65\x5b\x30\x5d\x29\x2c\x20\x77\x72\x61\x70\x28\x76\x61\x6c\x75\x65\x5b\x31\x5d\x29\x5d\x20\x3a\x20\x77\x72\x61\x70\x28\x76\x61\x6c\x75\x65\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x6e\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x5b\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x5d\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x65\x6c\x65\x74\x65\x22\x20\x3f\x20\x66\x61\x6c\x73\x65\x20\x3a\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x75\x74\x61\x62\x6c\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x24\x31\x28\x74\x68\x69\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x67\x65\x74\x20\x73\x69\x7a\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x7a\x65\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x68\x61\x73\x3a\x20\x68\x61\x73\x24\x31\x2c\x0a\x20\x20\x20\x20\x61\x64\x64\x2c\x0a\x20\x20\x20\x20\x73\x65\x74\x3a\x20\x73\x65\x74\x24\x31\x24\x31\x2c\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x3a\x20\x64\x65\x6c\x65\x74\x65\x45\x6e\x74\x72\x79\x2c\x0a\x20\x20\x20\x20\x63\x6c\x65\x61\x72\x2c\x0a\x20\x20\x20\x20\x66\x6f\x72\x45\x61\x63\x68\x3a\x20\x63\x72\x65\x61\x74\x65\x46\x6f\x72\x45\x61\x63\x68\x28\x66\x61\x6c\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x24\x31\x28\x74\x68\x69\x73\x2c\x20\x6b\x65\x79\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x67\x65\x74\x20\x73\x69\x7a\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x7a\x65\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x68\x61\x73\x3a\x20\x68\x61\x73\x24\x31\x2c\x0a\x20\x20\x20\x20\x61\x64\x64\x2c\x0a\x20\x20\x20\x20\x73\x65\x74\x3a\x20\x73\x65\x74\x24\x31\x24\x31\x2c\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x3a\x20\x64\x65\x6c\x65\x74\x65\x45\x6e\x74\x72\x79\x2c\x0a\x20\x20\x20\x20\x63\x6c\x65\x61\x72\x2c\x0a\x20\x20\x20\x20\x66\x6f\x72\x45\x61\x63\x68\x3a\x20\x63\x72\x65\x61\x74\x65\x46\x6f\x72\x45\x61\x63\x68\x28\x66\x61\x6c\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x24\x31\x28\x74\x68\x69\x73\x2c\x20\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x67\x65\x74\x20\x73\x69\x7a\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x7a\x65\x28\x74\x68\x69\x73\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x24\x31\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x61\x64\x64\x3a\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x22\x61\x64\x64\x22\x29\x2c\x0a\x20\x20\x20\x20\x73\x65\x74\x3a\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x22\x73\x65\x74\x22\x29\x2c\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x3a\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x22\x64\x65\x6c\x65\x74\x65\x22\x29\x2c\x0a\x20\x20\x20\x20\x63\x6c\x65\x61\x72\x3a\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x22\x63\x6c\x65\x61\x72\x22\x29\x2c\x0a\x20\x20\x20\x20\x66\x6f\x72\x45\x61\x63\x68\x3a\x20\x63\x72\x65\x61\x74\x65\x46\x6f\x72\x45\x61\x63\x68\x28\x74\x72\x75\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x24\x31\x28\x74\x68\x69\x73\x2c\x20\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x67\x65\x74\x20\x73\x69\x7a\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x7a\x65\x28\x74\x68\x69\x73\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x24\x31\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x61\x64\x64\x3a\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x22\x61\x64\x64\x22\x29\x2c\x0a\x20\x20\x20\x20\x73\x65\x74\x3a\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x22\x73\x65\x74\x22\x29\x2c\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x3a\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x22\x64\x65\x6c\x65\x74\x65\x22\x29\x2c\x0a\x20\x20\x20\x20\x63\x6c\x65\x61\x72\x3a\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x65\x74\x68\x6f\x64\x28\x22\x63\x6c\x65\x61\x72\x22\x29\x2c\x0a\x20\x20\x20\x20\x66\x6f\x72\x45\x61\x63\x68\x3a\x20\x63\x72\x65\x61\x74\x65\x46\x6f\x72\x45\x61\x63\x68\x28\x74\x72\x75\x65\x2c\x20\x74\x72\x75\x65\x29\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x72\x61\x74\x6f\x72\x4d\x65\x74\x68\x6f\x64\x73\x20\x3d\x20\x5b\x22\x6b\x65\x79\x73\x22\x2c\x20\x22\x76\x61\x6c\x75\x65\x73\x22\x2c\x20\x22\x65\x6e\x74\x72\x69\x65\x73\x22\x2c\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x5d\x3b\x0a\x20\x20\x69\x74\x65\x72\x61\x74\x6f\x72\x4d\x65\x74\x68\x6f\x64\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6d\x65\x74\x68\x6f\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6d\x75\x74\x61\x62\x6c\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x5b\x6d\x65\x74\x68\x6f\x64\x5d\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x49\x74\x65\x72\x61\x62\x6c\x65\x4d\x65\x74\x68\x6f\x64\x28\x6d\x65\x74\x68\x6f\x64\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x5b\x6d\x65\x74\x68\x6f\x64\x5d\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x49\x74\x65\x72\x61\x62\x6c\x65\x4d\x65\x74\x68\x6f\x64\x28\x6d\x65\x74\x68\x6f\x64\x2c\x20\x74\x72\x75\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x73\x68\x61\x6c\x6c\x6f\x77\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x5b\x6d\x65\x74\x68\x6f\x64\x5d\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x49\x74\x65\x72\x61\x62\x6c\x65\x4d\x65\x74\x68\x6f\x64\x28\x6d\x65\x74\x68\x6f\x64\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x5b\x6d\x65\x74\x68\x6f\x64\x5d\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x49\x74\x65\x72\x61\x62\x6c\x65\x4d\x65\x74\x68\x6f\x64\x28\x6d\x65\x74\x68\x6f\x64\x2c\x20\x74\x72\x75\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x0a\x20\x20\x20\x20\x6d\x75\x74\x61\x62\x6c\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x2c\x0a\x20\x20\x20\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x2c\x0a\x20\x20\x20\x20\x73\x68\x61\x6c\x6c\x6f\x77\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x2c\x0a\x20\x20\x20\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x32\x0a\x20\x20\x5d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x5b\x6d\x75\x74\x61\x62\x6c\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x2c\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x5d\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x47\x65\x74\x74\x65\x72\x28\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x73\x68\x61\x6c\x6c\x6f\x77\x20\x3f\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3f\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x3a\x20\x73\x68\x61\x6c\x6c\x6f\x77\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x3a\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x3f\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x3a\x20\x6d\x75\x74\x61\x62\x6c\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x5f\x5f\x76\x5f\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x5f\x5f\x76\x5f\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x67\x65\x74\x28\x68\x61\x73\x4f\x77\x6e\x28\x69\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x29\x20\x26\x26\x20\x6b\x65\x79\x20\x69\x6e\x20\x74\x61\x72\x67\x65\x74\x20\x3f\x20\x69\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x20\x3a\x20\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x6d\x75\x74\x61\x62\x6c\x65\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x67\x65\x74\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x47\x65\x74\x74\x65\x72\x28\x66\x61\x6c\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x67\x65\x74\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x47\x65\x74\x74\x65\x72\x28\x66\x61\x6c\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x67\x65\x74\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x47\x65\x74\x74\x65\x72\x28\x74\x72\x75\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x67\x65\x74\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x73\x74\x72\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x47\x65\x74\x74\x65\x72\x28\x74\x72\x75\x65\x2c\x20\x74\x72\x75\x65\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x61\x63\x74\x69\x76\x65\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x63\x74\x69\x76\x65\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x61\x72\x67\x65\x74\x54\x79\x70\x65\x4d\x61\x70\x28\x72\x61\x77\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x72\x61\x77\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4f\x62\x6a\x65\x63\x74\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x41\x72\x72\x61\x79\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4d\x61\x70\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x53\x65\x74\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x57\x65\x61\x6b\x4d\x61\x70\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x57\x65\x61\x6b\x53\x65\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x32\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x54\x61\x72\x67\x65\x74\x54\x79\x70\x65\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x5b\x22\x5f\x5f\x76\x5f\x73\x6b\x69\x70\x22\x5d\x20\x7c\x7c\x20\x21\x4f\x62\x6a\x65\x63\x74\x2e\x69\x73\x45\x78\x74\x65\x6e\x73\x69\x62\x6c\x65\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x30\x20\x3a\x20\x74\x61\x72\x67\x65\x74\x54\x79\x70\x65\x4d\x61\x70\x28\x74\x6f\x52\x61\x77\x54\x79\x70\x65\x28\x76\x61\x6c\x75\x65\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x61\x63\x74\x69\x76\x65\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x63\x74\x69\x76\x65\x4f\x62\x6a\x65\x63\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x6d\x75\x74\x61\x62\x6c\x65\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x6d\x75\x74\x61\x62\x6c\x65\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x72\x65\x61\x63\x74\x69\x76\x65\x4d\x61\x70\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x63\x74\x69\x76\x65\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x63\x74\x69\x76\x65\x4f\x62\x6a\x65\x63\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x63\x74\x69\x76\x65\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x63\x74\x69\x76\x65\x4d\x61\x70\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x63\x74\x69\x76\x65\x4f\x62\x6a\x65\x63\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x74\x72\x75\x65\x2c\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x61\x70\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x63\x74\x69\x76\x65\x4f\x62\x6a\x65\x63\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x74\x72\x75\x65\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x4d\x61\x70\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x61\x63\x74\x69\x76\x65\x4f\x62\x6a\x65\x63\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x2c\x20\x62\x61\x73\x65\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x70\x72\x6f\x78\x79\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x74\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x5b\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x5d\x20\x26\x26\x20\x21\x28\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x20\x26\x26\x20\x74\x61\x72\x67\x65\x74\x5b\x22\x5f\x5f\x76\x5f\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x22\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x50\x72\x6f\x78\x79\x20\x3d\x20\x70\x72\x6f\x78\x79\x4d\x61\x70\x2e\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x78\x69\x73\x74\x69\x6e\x67\x50\x72\x6f\x78\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x50\x72\x6f\x78\x79\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x54\x79\x70\x65\x20\x3d\x20\x67\x65\x74\x54\x61\x72\x67\x65\x74\x54\x79\x70\x65\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x78\x79\x20\x3d\x20\x6e\x65\x77\x20\x50\x72\x6f\x78\x79\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x74\x61\x72\x67\x65\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x32\x20\x3f\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3a\x20\x62\x61\x73\x65\x48\x61\x6e\x64\x6c\x65\x72\x73\x29\x3b\x0a\x20\x20\x70\x72\x6f\x78\x79\x4d\x61\x70\x2e\x73\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x70\x72\x6f\x78\x79\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x6f\x78\x79\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x28\x76\x61\x6c\x75\x65\x5b\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x5d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x28\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x5b\x22\x5f\x5f\x76\x5f\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x22\x5d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x28\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x5b\x22\x5f\x5f\x76\x5f\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x22\x5d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x28\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x5b\x22\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x22\x5d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x50\x72\x6f\x78\x79\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x28\x76\x61\x6c\x75\x65\x29\x20\x7c\x7c\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x52\x61\x77\x28\x6f\x62\x73\x65\x72\x76\x65\x64\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x20\x3d\x20\x6f\x62\x73\x65\x72\x76\x65\x64\x20\x26\x26\x20\x6f\x62\x73\x65\x72\x76\x65\x64\x5b\x22\x5f\x5f\x76\x5f\x72\x61\x77\x22\x5d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x20\x3f\x20\x74\x6f\x52\x61\x77\x28\x72\x61\x77\x29\x20\x3a\x20\x6f\x62\x73\x65\x72\x76\x65\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x61\x72\x6b\x52\x61\x77\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x64\x65\x66\x28\x76\x61\x6c\x75\x65\x2c\x20\x22\x5f\x5f\x76\x5f\x73\x6b\x69\x70\x22\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x74\x6f\x52\x65\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x72\x65\x61\x63\x74\x69\x76\x65\x28\x76\x61\x6c\x75\x65\x29\x20\x3a\x20\x76\x61\x6c\x75\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x6f\x52\x65\x61\x64\x6f\x6e\x6c\x79\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x28\x76\x61\x6c\x75\x65\x29\x20\x3a\x20\x76\x61\x6c\x75\x65\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x61\x63\x6b\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x72\x65\x66\x32\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x54\x72\x61\x63\x6b\x20\x26\x26\x20\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x66\x32\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x72\x65\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x45\x66\x66\x65\x63\x74\x73\x28\x72\x65\x66\x32\x2e\x64\x65\x70\x20\x7c\x7c\x20\x28\x72\x65\x66\x32\x2e\x64\x65\x70\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x44\x65\x70\x28\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x69\x67\x67\x65\x72\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x72\x65\x66\x32\x2c\x20\x6e\x65\x77\x56\x61\x6c\x29\x20\x7b\x0a\x20\x20\x72\x65\x66\x32\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x72\x65\x66\x32\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x66\x32\x2e\x64\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x45\x66\x66\x65\x63\x74\x73\x28\x72\x65\x66\x32\x2e\x64\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x52\x65\x66\x28\x72\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x28\x72\x20\x26\x26\x20\x72\x2e\x5f\x5f\x76\x5f\x69\x73\x52\x65\x66\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x66\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x66\x28\x76\x61\x6c\x75\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x66\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x66\x28\x76\x61\x6c\x75\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x66\x28\x72\x61\x77\x56\x61\x6c\x75\x65\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x72\x61\x77\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x52\x65\x66\x49\x6d\x70\x6c\x28\x72\x61\x77\x56\x61\x6c\x75\x65\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x29\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x52\x65\x66\x49\x6d\x70\x6c\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x76\x61\x6c\x75\x65\x2c\x20\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3d\x20\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x70\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x5f\x76\x5f\x69\x73\x52\x65\x66\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x72\x61\x77\x56\x61\x6c\x75\x65\x20\x3d\x20\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3f\x20\x76\x61\x6c\x75\x65\x20\x3a\x20\x74\x6f\x52\x61\x77\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x76\x61\x6c\x75\x65\x20\x3d\x20\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3f\x20\x76\x61\x6c\x75\x65\x20\x3a\x20\x74\x6f\x52\x65\x61\x63\x74\x69\x76\x65\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x20\x76\x61\x6c\x75\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x20\x76\x61\x6c\x75\x65\x28\x6e\x65\x77\x56\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x65\x77\x56\x61\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3f\x20\x6e\x65\x77\x56\x61\x6c\x20\x3a\x20\x74\x6f\x52\x61\x77\x28\x6e\x65\x77\x56\x61\x6c\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x43\x68\x61\x6e\x67\x65\x64\x28\x6e\x65\x77\x56\x61\x6c\x2c\x20\x74\x68\x69\x73\x2e\x5f\x72\x61\x77\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x72\x61\x77\x56\x61\x6c\x75\x65\x20\x3d\x20\x6e\x65\x77\x56\x61\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x5f\x76\x5f\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x20\x3f\x20\x6e\x65\x77\x56\x61\x6c\x20\x3a\x20\x74\x6f\x52\x65\x61\x63\x74\x69\x76\x65\x28\x6e\x65\x77\x56\x61\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x69\x67\x67\x65\x72\x52\x65\x66\x28\x72\x65\x66\x32\x29\x20\x7b\x0a\x20\x20\x74\x72\x69\x67\x67\x65\x72\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x72\x65\x66\x32\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x6e\x72\x65\x66\x28\x72\x65\x66\x32\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x52\x65\x66\x28\x72\x65\x66\x32\x29\x20\x3f\x20\x72\x65\x66\x32\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x72\x65\x66\x32\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x6c\x6c\x6f\x77\x55\x6e\x77\x72\x61\x70\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x67\x65\x74\x3a\x20\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x20\x3d\x3e\x20\x75\x6e\x72\x65\x66\x28\x52\x65\x66\x6c\x65\x63\x74\x2e\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x29\x2c\x0a\x20\x20\x73\x65\x74\x3a\x20\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x21\x69\x73\x52\x65\x66\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x73\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x72\x65\x63\x65\x69\x76\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x72\x6f\x78\x79\x52\x65\x66\x73\x28\x6f\x62\x6a\x65\x63\x74\x57\x69\x74\x68\x52\x65\x66\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x28\x6f\x62\x6a\x65\x63\x74\x57\x69\x74\x68\x52\x65\x66\x73\x29\x20\x3f\x20\x6f\x62\x6a\x65\x63\x74\x57\x69\x74\x68\x52\x65\x66\x73\x20\x3a\x20\x6e\x65\x77\x20\x50\x72\x6f\x78\x79\x28\x6f\x62\x6a\x65\x63\x74\x57\x69\x74\x68\x52\x65\x66\x73\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x55\x6e\x77\x72\x61\x70\x48\x61\x6e\x64\x6c\x65\x72\x73\x29\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x43\x75\x73\x74\x6f\x6d\x52\x65\x66\x49\x6d\x70\x6c\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x66\x61\x63\x74\x6f\x72\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x70\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x5f\x76\x5f\x69\x73\x52\x65\x66\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x67\x65\x74\x3a\x20\x67\x65\x74\x32\x2c\x20\x73\x65\x74\x3a\x20\x73\x65\x74\x32\x20\x7d\x20\x3d\x20\x66\x61\x63\x74\x6f\x72\x79\x28\x28\x29\x20\x3d\x3e\x20\x74\x72\x61\x63\x6b\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x74\x68\x69\x73\x29\x2c\x20\x28\x29\x20\x3d\x3e\x20\x74\x72\x69\x67\x67\x65\x72\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x74\x68\x69\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x20\x3d\x20\x67\x65\x74\x32\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x20\x3d\x20\x73\x65\x74\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x20\x76\x61\x6c\x75\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x20\x76\x61\x6c\x75\x65\x28\x6e\x65\x77\x56\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x28\x6e\x65\x77\x56\x61\x6c\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x75\x73\x74\x6f\x6d\x52\x65\x66\x28\x66\x61\x63\x74\x6f\x72\x79\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x43\x75\x73\x74\x6f\x6d\x52\x65\x66\x49\x6d\x70\x6c\x28\x66\x61\x63\x74\x6f\x72\x79\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x52\x65\x66\x73\x28\x6f\x62\x6a\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x74\x20\x3d\x20\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x62\x6a\x65\x63\x74\x29\x20\x3f\x20\x6e\x65\x77\x20\x41\x72\x72\x61\x79\x28\x6f\x62\x6a\x65\x63\x74\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x6f\x62\x6a\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x74\x6f\x52\x65\x66\x28\x6f\x62\x6a\x65\x63\x74\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x4f\x62\x6a\x65\x63\x74\x52\x65\x66\x49\x6d\x70\x6c\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x5f\x6f\x62\x6a\x65\x63\x74\x2c\x20\x5f\x6b\x65\x79\x2c\x20\x5f\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x6f\x62\x6a\x65\x63\x74\x20\x3d\x20\x5f\x6f\x62\x6a\x65\x63\x74\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x6b\x65\x79\x20\x3d\x20\x5f\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x5f\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x5f\x76\x5f\x69\x73\x52\x65\x66\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x20\x76\x61\x6c\x75\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x6f\x62\x6a\x65\x63\x74\x5b\x74\x68\x69\x73\x2e\x5f\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x20\x3a\x20\x76\x61\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x20\x76\x61\x6c\x75\x65\x28\x6e\x65\x77\x56\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x6f\x62\x6a\x65\x63\x74\x5b\x74\x68\x69\x73\x2e\x5f\x6b\x65\x79\x5d\x20\x3d\x20\x6e\x65\x77\x56\x61\x6c\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x52\x65\x66\x28\x6f\x62\x6a\x65\x63\x74\x2c\x20\x6b\x65\x79\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x20\x3d\x20\x6f\x62\x6a\x65\x63\x74\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x52\x65\x66\x28\x76\x61\x6c\x29\x20\x3f\x20\x76\x61\x6c\x20\x3a\x20\x6e\x65\x77\x20\x4f\x62\x6a\x65\x63\x74\x52\x65\x66\x49\x6d\x70\x6c\x28\x6f\x62\x6a\x65\x63\x74\x2c\x20\x6b\x65\x79\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x29\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x43\x6f\x6d\x70\x75\x74\x65\x64\x52\x65\x66\x49\x6d\x70\x6c\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x5f\x73\x65\x74\x74\x65\x72\x2c\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x2c\x20\x69\x73\x53\x53\x52\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x74\x65\x72\x20\x3d\x20\x5f\x73\x65\x74\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x70\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x5f\x76\x5f\x69\x73\x52\x65\x66\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x64\x69\x72\x74\x79\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x66\x66\x65\x63\x74\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x5f\x64\x69\x72\x74\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x64\x69\x72\x74\x79\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x66\x66\x65\x63\x74\x2e\x63\x6f\x6d\x70\x75\x74\x65\x64\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x66\x66\x65\x63\x74\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x63\x61\x63\x68\x65\x61\x62\x6c\x65\x20\x3d\x20\x21\x69\x73\x53\x53\x52\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x5b\x22\x5f\x5f\x76\x5f\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x22\x5d\x20\x3d\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x20\x76\x61\x6c\x75\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x6c\x66\x32\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x52\x65\x66\x56\x61\x6c\x75\x65\x28\x73\x65\x6c\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x6c\x66\x32\x2e\x5f\x64\x69\x72\x74\x79\x20\x7c\x7c\x20\x21\x73\x65\x6c\x66\x32\x2e\x5f\x63\x61\x63\x68\x65\x61\x62\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x32\x2e\x5f\x64\x69\x72\x74\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x6c\x66\x32\x2e\x5f\x76\x61\x6c\x75\x65\x20\x3d\x20\x73\x65\x6c\x66\x32\x2e\x65\x66\x66\x65\x63\x74\x2e\x72\x75\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x6c\x66\x32\x2e\x5f\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x20\x76\x61\x6c\x75\x65\x28\x6e\x65\x77\x56\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x74\x65\x72\x28\x6e\x65\x77\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x24\x31\x28\x67\x65\x74\x74\x65\x72\x4f\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x64\x65\x62\x75\x67\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x69\x73\x53\x53\x52\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x67\x65\x74\x74\x65\x72\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x65\x74\x74\x65\x72\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x6c\x79\x47\x65\x74\x74\x65\x72\x20\x3d\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x67\x65\x74\x74\x65\x72\x4f\x72\x4f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x6e\x6c\x79\x47\x65\x74\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x67\x65\x74\x74\x65\x72\x4f\x72\x4f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x20\x20\x73\x65\x74\x74\x65\x72\x20\x3d\x20\x4e\x4f\x4f\x50\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x67\x65\x74\x74\x65\x72\x4f\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x67\x65\x74\x3b\x0a\x20\x20\x20\x20\x73\x65\x74\x74\x65\x72\x20\x3d\x20\x67\x65\x74\x74\x65\x72\x4f\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x65\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x52\x65\x66\x20\x3d\x20\x6e\x65\x77\x20\x43\x6f\x6d\x70\x75\x74\x65\x64\x52\x65\x66\x49\x6d\x70\x6c\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x73\x65\x74\x74\x65\x72\x2c\x20\x6f\x6e\x6c\x79\x47\x65\x74\x74\x65\x72\x20\x7c\x7c\x20\x21\x73\x65\x74\x74\x65\x72\x2c\x20\x69\x73\x53\x53\x52\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x52\x65\x66\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x63\x6b\x20\x3d\x20\x5b\x5d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x61\x72\x6e\x24\x31\x28\x6d\x73\x67\x2c\x20\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x70\x61\x75\x73\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x73\x74\x61\x63\x6b\x5b\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x57\x61\x72\x6e\x48\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x77\x61\x72\x6e\x48\x61\x6e\x64\x6c\x65\x72\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x72\x61\x63\x65\x20\x3d\x20\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x63\x65\x28\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x70\x70\x57\x61\x72\x6e\x48\x61\x6e\x64\x6c\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x61\x70\x70\x57\x61\x72\x6e\x48\x61\x6e\x64\x6c\x65\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x31\x31\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x6d\x73\x67\x20\x2b\x20\x61\x72\x67\x73\x2e\x6a\x6f\x69\x6e\x28\x22\x22\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x65\x2e\x6d\x61\x70\x28\x28\x7b\x20\x76\x6e\x6f\x64\x65\x20\x7d\x29\x20\x3d\x3e\x20\x60\x61\x74\x20\x3c\x24\x7b\x66\x6f\x72\x6d\x61\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x4e\x61\x6d\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x29\x7d\x3e\x60\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x5c\x6e\x22\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x65\x0a\x20\x20\x20\x20\x5d\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x61\x72\x6e\x41\x72\x67\x73\x20\x3d\x20\x5b\x60\x5b\x56\x75\x65\x20\x77\x61\x72\x6e\x5d\x3a\x20\x24\x7b\x6d\x73\x67\x7d\x60\x2c\x20\x2e\x2e\x2e\x61\x72\x67\x73\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x61\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x61\x72\x6e\x41\x72\x67\x73\x2e\x70\x75\x73\x68\x28\x60\x0a\x60\x2c\x20\x2e\x2e\x2e\x66\x6f\x72\x6d\x61\x74\x54\x72\x61\x63\x65\x28\x74\x72\x61\x63\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x2e\x2e\x2e\x77\x61\x72\x6e\x41\x72\x67\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x73\x65\x74\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x63\x65\x28\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x20\x3d\x20\x73\x74\x61\x63\x6b\x5b\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x63\x75\x72\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x53\x74\x61\x63\x6b\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x75\x72\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x53\x74\x61\x63\x6b\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x61\x73\x74\x20\x26\x26\x20\x6c\x61\x73\x74\x2e\x76\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x61\x73\x74\x2e\x72\x65\x63\x75\x72\x73\x65\x43\x6f\x75\x6e\x74\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x53\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x3a\x20\x63\x75\x72\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x63\x75\x72\x73\x65\x43\x6f\x75\x6e\x74\x3a\x20\x30\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x70\x61\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x53\x74\x61\x63\x6b\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x72\x6d\x61\x74\x54\x72\x61\x63\x65\x28\x74\x72\x61\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x6f\x67\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x74\x72\x61\x63\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x65\x6e\x74\x72\x79\x2c\x20\x69\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x6f\x67\x73\x2e\x70\x75\x73\x68\x28\x2e\x2e\x2e\x69\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x5b\x5d\x20\x3a\x20\x5b\x60\x0a\x60\x5d\x2c\x20\x2e\x2e\x2e\x66\x6f\x72\x6d\x61\x74\x54\x72\x61\x63\x65\x45\x6e\x74\x72\x79\x28\x65\x6e\x74\x72\x79\x29\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x67\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x72\x6d\x61\x74\x54\x72\x61\x63\x65\x45\x6e\x74\x72\x79\x28\x7b\x20\x76\x6e\x6f\x64\x65\x2c\x20\x72\x65\x63\x75\x72\x73\x65\x43\x6f\x75\x6e\x74\x20\x7d\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x6f\x73\x74\x66\x69\x78\x20\x3d\x20\x72\x65\x63\x75\x72\x73\x65\x43\x6f\x75\x6e\x74\x20\x3e\x20\x30\x20\x3f\x20\x60\x2e\x2e\x2e\x20\x28\x24\x7b\x72\x65\x63\x75\x72\x73\x65\x43\x6f\x75\x6e\x74\x7d\x20\x72\x65\x63\x75\x72\x73\x69\x76\x65\x20\x63\x61\x6c\x6c\x73\x29\x60\x20\x3a\x20\x60\x60\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x52\x6f\x6f\x74\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3f\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x65\x6e\x20\x3d\x20\x60\x20\x61\x74\x20\x3c\x24\x7b\x66\x6f\x72\x6d\x61\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x4e\x61\x6d\x65\x28\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2c\x20\x69\x73\x52\x6f\x6f\x74\x29\x7d\x60\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6c\x6f\x73\x65\x20\x3d\x20\x60\x3e\x60\x20\x2b\x20\x70\x6f\x73\x74\x66\x69\x78\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x3f\x20\x5b\x6f\x70\x65\x6e\x2c\x20\x2e\x2e\x2e\x66\x6f\x72\x6d\x61\x74\x50\x72\x6f\x70\x73\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x29\x2c\x20\x63\x6c\x6f\x73\x65\x5d\x20\x3a\x20\x5b\x6f\x70\x65\x6e\x20\x2b\x20\x63\x6c\x6f\x73\x65\x5d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x72\x6d\x61\x74\x50\x72\x6f\x70\x73\x28\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x6b\x65\x79\x73\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x33\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x2e\x70\x75\x73\x68\x28\x2e\x2e\x2e\x66\x6f\x72\x6d\x61\x74\x50\x72\x6f\x70\x28\x6b\x65\x79\x2c\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x29\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x2e\x70\x75\x73\x68\x28\x60\x20\x2e\x2e\x2e\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x72\x6d\x61\x74\x50\x72\x6f\x70\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x72\x61\x77\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x20\x3f\x20\x76\x61\x6c\x75\x65\x20\x3a\x20\x5b\x60\x24\x7b\x6b\x65\x79\x7d\x3d\x24\x7b\x76\x61\x6c\x75\x65\x7d\x60\x5d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x20\x3f\x20\x76\x61\x6c\x75\x65\x20\x3a\x20\x5b\x60\x24\x7b\x6b\x65\x79\x7d\x3d\x24\x7b\x76\x61\x6c\x75\x65\x7d\x60\x5d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x66\x6f\x72\x6d\x61\x74\x50\x72\x6f\x70\x28\x6b\x65\x79\x2c\x20\x74\x6f\x52\x61\x77\x28\x76\x61\x6c\x75\x65\x2e\x76\x61\x6c\x75\x65\x29\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x20\x3f\x20\x76\x61\x6c\x75\x65\x20\x3a\x20\x5b\x60\x24\x7b\x6b\x65\x79\x7d\x3d\x52\x65\x66\x3c\x60\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x60\x3e\x60\x5d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x60\x24\x7b\x6b\x65\x79\x7d\x3d\x66\x6e\x24\x7b\x76\x61\x6c\x75\x65\x2e\x6e\x61\x6d\x65\x20\x3f\x20\x60\x3c\x24\x7b\x76\x61\x6c\x75\x65\x2e\x6e\x61\x6d\x65\x7d\x3e\x60\x20\x3a\x20\x60\x60\x7d\x60\x5d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x20\x3f\x20\x76\x61\x6c\x75\x65\x20\x3a\x20\x5b\x60\x24\x7b\x6b\x65\x79\x7d\x3d\x60\x2c\x20\x76\x61\x6c\x75\x65\x5d\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x66\x6e\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x2c\x20\x61\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x3b\x0a\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x61\x72\x67\x73\x20\x3f\x20\x66\x6e\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3a\x20\x66\x6e\x28\x29\x3b\x0a\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x65\x72\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x66\x6e\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x2c\x20\x61\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x66\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x66\x6e\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x2c\x20\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x20\x26\x26\x20\x69\x73\x50\x72\x6f\x6d\x69\x73\x65\x28\x72\x65\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x2e\x63\x61\x74\x63\x68\x28\x28\x65\x72\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x66\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x73\x2e\x70\x75\x73\x68\x28\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x66\x6e\x5b\x69\x5d\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x2c\x20\x61\x72\x67\x73\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x61\x6e\x64\x6c\x65\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x2c\x20\x74\x68\x72\x6f\x77\x49\x6e\x44\x65\x76\x20\x3d\x20\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x65\x78\x74\x56\x4e\x6f\x64\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3f\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x75\x72\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x70\x6f\x73\x65\x64\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x72\x72\x6f\x72\x49\x6e\x66\x6f\x20\x3d\x20\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x75\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x48\x6f\x6f\x6b\x73\x20\x3d\x20\x63\x75\x72\x2e\x65\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x48\x6f\x6f\x6b\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x65\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x48\x6f\x6f\x6b\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x48\x6f\x6f\x6b\x73\x5b\x69\x5d\x28\x65\x72\x72\x2c\x20\x65\x78\x70\x6f\x73\x65\x64\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x65\x72\x72\x6f\x72\x49\x6e\x66\x6f\x29\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x75\x72\x20\x3d\x20\x63\x75\x72\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x65\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x65\x72\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x70\x70\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x61\x70\x70\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x31\x30\x2c\x20\x5b\x65\x72\x72\x2c\x20\x65\x78\x70\x6f\x73\x65\x64\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x65\x72\x72\x6f\x72\x49\x6e\x66\x6f\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x6f\x67\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x74\x79\x70\x65\x2c\x20\x63\x6f\x6e\x74\x65\x78\x74\x56\x4e\x6f\x64\x65\x2c\x20\x74\x68\x72\x6f\x77\x49\x6e\x44\x65\x76\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x6f\x67\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x74\x79\x70\x65\x2c\x20\x63\x6f\x6e\x74\x65\x78\x74\x56\x4e\x6f\x64\x65\x2c\x20\x74\x68\x72\x6f\x77\x49\x6e\x44\x65\x76\x20\x3d\x20\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x65\x72\x72\x6f\x72\x28\x65\x72\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x6c\x65\x74\x20\x69\x73\x46\x6c\x75\x73\x68\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x6c\x65\x74\x20\x69\x73\x46\x6c\x75\x73\x68\x50\x65\x6e\x64\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x71\x75\x65\x75\x65\x20\x3d\x20\x5b\x5d\x3b\x0a\x6c\x65\x74\x20\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x70\x65\x6e\x64\x69\x6e\x67\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x6c\x65\x74\x20\x61\x63\x74\x69\x76\x65\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x6c\x65\x74\x20\x70\x72\x65\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x70\x65\x6e\x64\x69\x6e\x67\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x6c\x65\x74\x20\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x6c\x65\x74\x20\x70\x6f\x73\x74\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x50\x72\x6f\x6d\x69\x73\x65\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x50\x72\x6f\x6d\x69\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x46\x6c\x75\x73\x68\x50\x72\x6f\x6d\x69\x73\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x50\x72\x65\x46\x6c\x75\x73\x68\x50\x61\x72\x65\x6e\x74\x4a\x6f\x62\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x65\x78\x74\x54\x69\x63\x6b\x28\x66\x6e\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x32\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x46\x6c\x75\x73\x68\x50\x72\x6f\x6d\x69\x73\x65\x20\x7c\x7c\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x50\x72\x6f\x6d\x69\x73\x65\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6e\x20\x3f\x20\x70\x32\x2e\x74\x68\x65\x6e\x28\x74\x68\x69\x73\x20\x3f\x20\x66\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x20\x3a\x20\x66\x6e\x29\x20\x3a\x20\x70\x32\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6e\x64\x49\x6e\x73\x65\x72\x74\x69\x6f\x6e\x49\x6e\x64\x65\x78\x28\x69\x64\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x2b\x20\x31\x3b\x0a\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x20\x3d\x20\x71\x75\x65\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x73\x74\x61\x72\x74\x20\x3c\x20\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x69\x64\x64\x6c\x65\x20\x3d\x20\x73\x74\x61\x72\x74\x20\x2b\x20\x65\x6e\x64\x20\x3e\x3e\x3e\x20\x31\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x69\x64\x64\x6c\x65\x4a\x6f\x62\x49\x64\x20\x3d\x20\x67\x65\x74\x49\x64\x28\x71\x75\x65\x75\x65\x5b\x6d\x69\x64\x64\x6c\x65\x5d\x29\x3b\x0a\x20\x20\x20\x20\x6d\x69\x64\x64\x6c\x65\x4a\x6f\x62\x49\x64\x20\x3c\x20\x69\x64\x20\x3f\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x6d\x69\x64\x64\x6c\x65\x20\x2b\x20\x31\x20\x3a\x20\x65\x6e\x64\x20\x3d\x20\x6d\x69\x64\x64\x6c\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x61\x72\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x71\x75\x65\x75\x65\x4a\x6f\x62\x28\x6a\x6f\x62\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x28\x21\x71\x75\x65\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7c\x7c\x20\x21\x71\x75\x65\x75\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x6a\x6f\x62\x2c\x20\x69\x73\x46\x6c\x75\x73\x68\x69\x6e\x67\x20\x26\x26\x20\x6a\x6f\x62\x2e\x61\x6c\x6c\x6f\x77\x52\x65\x63\x75\x72\x73\x65\x20\x3f\x20\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x2b\x20\x31\x20\x3a\x20\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x29\x29\x20\x26\x26\x20\x6a\x6f\x62\x20\x21\x3d\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x50\x72\x65\x46\x6c\x75\x73\x68\x50\x61\x72\x65\x6e\x74\x4a\x6f\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6a\x6f\x62\x2e\x69\x64\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x2e\x70\x75\x73\x68\x28\x6a\x6f\x62\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x2e\x73\x70\x6c\x69\x63\x65\x28\x66\x69\x6e\x64\x49\x6e\x73\x65\x72\x74\x69\x6f\x6e\x49\x6e\x64\x65\x78\x28\x6a\x6f\x62\x2e\x69\x64\x29\x2c\x20\x30\x2c\x20\x6a\x6f\x62\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x71\x75\x65\x75\x65\x46\x6c\x75\x73\x68\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x71\x75\x65\x75\x65\x46\x6c\x75\x73\x68\x28\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x46\x6c\x75\x73\x68\x69\x6e\x67\x20\x26\x26\x20\x21\x69\x73\x46\x6c\x75\x73\x68\x50\x65\x6e\x64\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x73\x46\x6c\x75\x73\x68\x50\x65\x6e\x64\x69\x6e\x67\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x46\x6c\x75\x73\x68\x50\x72\x6f\x6d\x69\x73\x65\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x50\x72\x6f\x6d\x69\x73\x65\x2e\x74\x68\x65\x6e\x28\x66\x6c\x75\x73\x68\x4a\x6f\x62\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x76\x61\x6c\x69\x64\x61\x74\x65\x4a\x6f\x62\x28\x6a\x6f\x62\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x20\x3d\x20\x71\x75\x65\x75\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x6a\x6f\x62\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x20\x3e\x20\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x71\x75\x65\x75\x65\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x2c\x20\x31\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x71\x75\x65\x75\x65\x43\x62\x28\x63\x62\x2c\x20\x61\x63\x74\x69\x76\x65\x51\x75\x65\x75\x65\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x51\x75\x65\x75\x65\x2c\x20\x69\x6e\x64\x65\x78\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x41\x72\x72\x61\x79\x28\x63\x62\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x63\x74\x69\x76\x65\x51\x75\x65\x75\x65\x20\x7c\x7c\x20\x21\x61\x63\x74\x69\x76\x65\x51\x75\x65\x75\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x62\x2c\x20\x63\x62\x2e\x61\x6c\x6c\x6f\x77\x52\x65\x63\x75\x72\x73\x65\x20\x3f\x20\x69\x6e\x64\x65\x78\x20\x2b\x20\x31\x20\x3a\x20\x69\x6e\x64\x65\x78\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x51\x75\x65\x75\x65\x2e\x70\x75\x73\x68\x28\x63\x62\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x51\x75\x65\x75\x65\x2e\x70\x75\x73\x68\x28\x2e\x2e\x2e\x63\x62\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x71\x75\x65\x75\x65\x46\x6c\x75\x73\x68\x28\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x71\x75\x65\x75\x65\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x28\x63\x62\x29\x20\x7b\x0a\x20\x20\x71\x75\x65\x75\x65\x43\x62\x28\x63\x62\x2c\x20\x61\x63\x74\x69\x76\x65\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x2c\x20\x70\x72\x65\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x28\x63\x62\x29\x20\x7b\x0a\x20\x20\x71\x75\x65\x75\x65\x43\x62\x28\x63\x62\x2c\x20\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x2c\x20\x70\x6f\x73\x74\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6c\x75\x73\x68\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x73\x65\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x4a\x6f\x62\x20\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x70\x65\x6e\x64\x69\x6e\x67\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x50\x72\x65\x46\x6c\x75\x73\x68\x50\x61\x72\x65\x6e\x74\x4a\x6f\x62\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x4a\x6f\x62\x3b\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x20\x3d\x20\x5b\x2e\x2e\x2e\x6e\x65\x77\x20\x53\x65\x74\x28\x70\x65\x6e\x64\x69\x6e\x67\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x29\x5d\x3b\x0a\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x70\x72\x65\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x20\x70\x72\x65\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3c\x20\x61\x63\x74\x69\x76\x65\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x70\x72\x65\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x5b\x70\x72\x65\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x5d\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x70\x72\x65\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x50\x72\x65\x46\x6c\x75\x73\x68\x50\x61\x72\x65\x6e\x74\x4a\x6f\x62\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x66\x6c\x75\x73\x68\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x73\x65\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x4a\x6f\x62\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6c\x75\x73\x68\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x73\x65\x65\x6e\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x70\x65\x6e\x64\x69\x6e\x67\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x64\x75\x70\x65\x64\x20\x3d\x20\x5b\x2e\x2e\x2e\x6e\x65\x77\x20\x53\x65\x74\x28\x70\x65\x6e\x64\x69\x6e\x67\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x29\x5d\x3b\x0a\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x70\x75\x73\x68\x28\x2e\x2e\x2e\x64\x65\x64\x75\x70\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x20\x3d\x20\x64\x65\x64\x75\x70\x65\x64\x3b\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x73\x6f\x72\x74\x28\x28\x61\x2c\x20\x62\x29\x20\x3d\x3e\x20\x67\x65\x74\x49\x64\x28\x61\x29\x20\x2d\x20\x67\x65\x74\x49\x64\x28\x62\x29\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x70\x6f\x73\x74\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x20\x70\x6f\x73\x74\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3c\x20\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x70\x6f\x73\x74\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x5b\x70\x6f\x73\x74\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x5d\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x70\x6f\x73\x74\x46\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x49\x64\x20\x3d\x20\x28\x6a\x6f\x62\x29\x20\x3d\x3e\x20\x6a\x6f\x62\x2e\x69\x64\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x49\x6e\x66\x69\x6e\x69\x74\x79\x20\x3a\x20\x6a\x6f\x62\x2e\x69\x64\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6c\x75\x73\x68\x4a\x6f\x62\x73\x28\x73\x65\x65\x6e\x29\x20\x7b\x0a\x20\x20\x69\x73\x46\x6c\x75\x73\x68\x50\x65\x6e\x64\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x73\x46\x6c\x75\x73\x68\x69\x6e\x67\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x66\x6c\x75\x73\x68\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x73\x65\x65\x6e\x29\x3b\x0a\x20\x20\x71\x75\x65\x75\x65\x2e\x73\x6f\x72\x74\x28\x28\x61\x2c\x20\x62\x29\x20\x3d\x3e\x20\x67\x65\x74\x49\x64\x28\x61\x29\x20\x2d\x20\x67\x65\x74\x49\x64\x28\x62\x29\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x65\x63\x6b\x20\x3d\x20\x4e\x4f\x4f\x50\x3b\x0a\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x20\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3c\x20\x71\x75\x65\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6a\x6f\x62\x20\x3d\x20\x71\x75\x65\x75\x65\x5b\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6a\x6f\x62\x20\x26\x26\x20\x6a\x6f\x62\x2e\x61\x63\x74\x69\x76\x65\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x61\x6c\x73\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x6a\x6f\x62\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x31\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x66\x69\x6e\x61\x6c\x6c\x79\x20\x7b\x0a\x20\x20\x20\x20\x66\x6c\x75\x73\x68\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x71\x75\x65\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x66\x6c\x75\x73\x68\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x73\x46\x6c\x75\x73\x68\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x46\x6c\x75\x73\x68\x50\x72\x6f\x6d\x69\x73\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x71\x75\x65\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7c\x7c\x20\x70\x65\x6e\x64\x69\x6e\x67\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7c\x7c\x20\x70\x65\x6e\x64\x69\x6e\x67\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6c\x75\x73\x68\x4a\x6f\x62\x73\x28\x73\x65\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x6c\x65\x74\x20\x64\x65\x76\x74\x6f\x6f\x6c\x73\x3b\x0a\x6c\x65\x74\x20\x62\x75\x66\x66\x65\x72\x20\x3d\x20\x5b\x5d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x44\x65\x76\x74\x6f\x6f\x6c\x73\x48\x6f\x6f\x6b\x28\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x2c\x20\x5f\x62\x3b\x0a\x20\x20\x64\x65\x76\x74\x6f\x6f\x6c\x73\x20\x3d\x20\x68\x6f\x6f\x6b\x3b\x0a\x20\x20\x69\x66\x20\x28\x64\x65\x76\x74\x6f\x6f\x6c\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x64\x65\x76\x74\x6f\x6f\x6c\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x7b\x20\x65\x76\x65\x6e\x74\x2c\x20\x61\x72\x67\x73\x20\x7d\x29\x20\x3d\x3e\x20\x64\x65\x76\x74\x6f\x6f\x6c\x73\x2e\x65\x6d\x69\x74\x28\x65\x76\x65\x6e\x74\x2c\x20\x2e\x2e\x2e\x61\x72\x67\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x77\x69\x6e\x64\x6f\x77\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x26\x26\x20\x77\x69\x6e\x64\x6f\x77\x2e\x48\x54\x4d\x4c\x45\x6c\x65\x6d\x65\x6e\x74\x20\x26\x26\x20\x21\x28\x28\x5f\x62\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x75\x73\x65\x72\x41\x67\x65\x6e\x74\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x62\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x62\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x6a\x73\x64\x6f\x6d\x22\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x70\x6c\x61\x79\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x2e\x5f\x5f\x56\x55\x45\x5f\x44\x45\x56\x54\x4f\x4f\x4c\x53\x5f\x48\x4f\x4f\x4b\x5f\x52\x45\x50\x4c\x41\x59\x5f\x5f\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x2e\x5f\x5f\x56\x55\x45\x5f\x44\x45\x56\x54\x4f\x4f\x4c\x53\x5f\x48\x4f\x4f\x4b\x5f\x52\x45\x50\x4c\x41\x59\x5f\x5f\x20\x7c\x7c\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x72\x65\x70\x6c\x61\x79\x2e\x70\x75\x73\x68\x28\x28\x6e\x65\x77\x48\x6f\x6f\x6b\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x44\x65\x76\x74\x6f\x6f\x6c\x73\x48\x6f\x6f\x6b\x28\x6e\x65\x77\x48\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x65\x76\x74\x6f\x6f\x6c\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2e\x5f\x5f\x56\x55\x45\x5f\x44\x45\x56\x54\x4f\x4f\x4c\x53\x5f\x48\x4f\x4f\x4b\x5f\x52\x45\x50\x4c\x41\x59\x5f\x5f\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x33\x65\x33\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6d\x69\x74\x24\x31\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x65\x76\x65\x6e\x74\x2c\x20\x2e\x2e\x2e\x72\x61\x77\x41\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x7c\x7c\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x6c\x65\x74\x20\x61\x72\x67\x73\x20\x3d\x20\x72\x61\x77\x41\x72\x67\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x32\x20\x3d\x20\x65\x76\x65\x6e\x74\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x22\x75\x70\x64\x61\x74\x65\x3a\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x64\x65\x6c\x41\x72\x67\x20\x3d\x20\x69\x73\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x32\x20\x26\x26\x20\x65\x76\x65\x6e\x74\x2e\x73\x6c\x69\x63\x65\x28\x37\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x6c\x41\x72\x67\x20\x26\x26\x20\x6d\x6f\x64\x65\x6c\x41\x72\x67\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x4b\x65\x79\x20\x3d\x20\x60\x24\x7b\x6d\x6f\x64\x65\x6c\x41\x72\x67\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x22\x20\x3f\x20\x22\x6d\x6f\x64\x65\x6c\x22\x20\x3a\x20\x6d\x6f\x64\x65\x6c\x41\x72\x67\x7d\x4d\x6f\x64\x69\x66\x69\x65\x72\x73\x60\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6e\x75\x6d\x62\x65\x72\x2c\x20\x74\x72\x69\x6d\x20\x7d\x20\x3d\x20\x70\x72\x6f\x70\x73\x5b\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x4b\x65\x79\x5d\x20\x7c\x7c\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x69\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x72\x67\x73\x20\x3d\x20\x72\x61\x77\x41\x72\x67\x73\x2e\x6d\x61\x70\x28\x28\x61\x29\x20\x3d\x3e\x20\x61\x2e\x74\x72\x69\x6d\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6e\x75\x6d\x62\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x72\x67\x73\x20\x3d\x20\x72\x61\x77\x41\x72\x67\x73\x2e\x6d\x61\x70\x28\x74\x6f\x4e\x75\x6d\x62\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x6e\x64\x6c\x65\x72\x4e\x61\x6d\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x70\x72\x6f\x70\x73\x5b\x68\x61\x6e\x64\x6c\x65\x72\x4e\x61\x6d\x65\x20\x3d\x20\x74\x6f\x48\x61\x6e\x64\x6c\x65\x72\x4b\x65\x79\x28\x65\x76\x65\x6e\x74\x29\x5d\x20\x7c\x7c\x20\x70\x72\x6f\x70\x73\x5b\x68\x61\x6e\x64\x6c\x65\x72\x4e\x61\x6d\x65\x20\x3d\x20\x74\x6f\x48\x61\x6e\x64\x6c\x65\x72\x4b\x65\x79\x28\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x65\x76\x65\x6e\x74\x29\x29\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x68\x61\x6e\x64\x6c\x65\x72\x20\x26\x26\x20\x69\x73\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x70\x72\x6f\x70\x73\x5b\x68\x61\x6e\x64\x6c\x65\x72\x4e\x61\x6d\x65\x20\x3d\x20\x74\x6f\x48\x61\x6e\x64\x6c\x65\x72\x4b\x65\x79\x28\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x65\x76\x65\x6e\x74\x29\x29\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x68\x61\x6e\x64\x6c\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x68\x61\x6e\x64\x6c\x65\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x36\x2c\x20\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x63\x65\x48\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x70\x72\x6f\x70\x73\x5b\x68\x61\x6e\x64\x6c\x65\x72\x4e\x61\x6d\x65\x20\x2b\x20\x60\x4f\x6e\x63\x65\x60\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x6e\x63\x65\x48\x61\x6e\x64\x6c\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x74\x65\x64\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x74\x65\x64\x5b\x68\x61\x6e\x64\x6c\x65\x72\x4e\x61\x6d\x65\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x74\x65\x64\x5b\x68\x61\x6e\x64\x6c\x65\x72\x4e\x61\x6d\x65\x5d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x6f\x6e\x63\x65\x48\x61\x6e\x64\x6c\x65\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x36\x2c\x20\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x45\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x28\x63\x6f\x6d\x70\x2c\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2c\x20\x61\x73\x4d\x69\x78\x69\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x20\x3d\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x65\x6d\x69\x74\x73\x43\x61\x63\x68\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x64\x20\x3d\x20\x63\x61\x63\x68\x65\x2e\x67\x65\x74\x28\x63\x6f\x6d\x70\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x61\x63\x68\x65\x64\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x61\x63\x68\x65\x64\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x20\x3d\x20\x63\x6f\x6d\x70\x2e\x65\x6d\x69\x74\x73\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x45\x78\x74\x65\x6e\x64\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x6f\x6d\x70\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x74\x65\x6e\x64\x45\x6d\x69\x74\x73\x20\x3d\x20\x28\x72\x61\x77\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x46\x72\x6f\x6d\x45\x78\x74\x65\x6e\x64\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x45\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x28\x72\x61\x77\x32\x2c\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x46\x72\x6f\x6d\x45\x78\x74\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x45\x78\x74\x65\x6e\x64\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x64\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x2c\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x46\x72\x6f\x6d\x45\x78\x74\x65\x6e\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x73\x4d\x69\x78\x69\x6e\x20\x26\x26\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x6d\x69\x78\x69\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x6d\x69\x78\x69\x6e\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x65\x78\x74\x65\x6e\x64\x45\x6d\x69\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x70\x2e\x65\x78\x74\x65\x6e\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x64\x45\x6d\x69\x74\x73\x28\x63\x6f\x6d\x70\x2e\x65\x78\x74\x65\x6e\x64\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x70\x2e\x6d\x69\x78\x69\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x70\x2e\x6d\x69\x78\x69\x6e\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x65\x78\x74\x65\x6e\x64\x45\x6d\x69\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x72\x61\x77\x20\x26\x26\x20\x21\x68\x61\x73\x45\x78\x74\x65\x6e\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x63\x68\x65\x2e\x73\x65\x74\x28\x63\x6f\x6d\x70\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x72\x61\x77\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x61\x77\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x64\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x2c\x20\x72\x61\x77\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x61\x63\x68\x65\x2e\x73\x65\x74\x28\x63\x6f\x6d\x70\x2c\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x45\x6d\x69\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x6f\x70\x74\x69\x6f\x6e\x73\x20\x7c\x7c\x20\x21\x69\x73\x4f\x6e\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6b\x65\x79\x20\x3d\x20\x6b\x65\x79\x2e\x73\x6c\x69\x63\x65\x28\x32\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x4f\x6e\x63\x65\x24\x2f\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x4f\x77\x6e\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x5b\x30\x5d\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x20\x2b\x20\x6b\x65\x79\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x29\x20\x7c\x7c\x20\x68\x61\x73\x4f\x77\x6e\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x6b\x65\x79\x29\x29\x20\x7c\x7c\x20\x68\x61\x73\x4f\x77\x6e\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x6f\x70\x65\x49\x64\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x6f\x70\x65\x49\x64\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x74\x79\x70\x65\x2e\x5f\x5f\x73\x63\x6f\x70\x65\x49\x64\x20\x7c\x7c\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x65\x76\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x75\x73\x68\x53\x63\x6f\x70\x65\x49\x64\x28\x69\x64\x29\x20\x7b\x0a\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x6f\x70\x65\x49\x64\x20\x3d\x20\x69\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x6f\x70\x53\x63\x6f\x70\x65\x49\x64\x28\x29\x20\x7b\x0a\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x6f\x70\x65\x49\x64\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x77\x69\x74\x68\x53\x63\x6f\x70\x65\x49\x64\x20\x3d\x20\x28\x5f\x69\x64\x29\x20\x3d\x3e\x20\x77\x69\x74\x68\x43\x74\x78\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x69\x74\x68\x43\x74\x78\x28\x66\x6e\x2c\x20\x63\x74\x78\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x73\x4e\x6f\x6e\x53\x63\x6f\x70\x65\x64\x53\x6c\x6f\x74\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6e\x3b\x0a\x20\x20\x69\x66\x20\x28\x66\x6e\x2e\x5f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6e\x64\x65\x72\x46\x6e\x57\x69\x74\x68\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x6e\x64\x65\x72\x46\x6e\x57\x69\x74\x68\x43\x6f\x6e\x74\x65\x78\x74\x2e\x5f\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x42\x6c\x6f\x63\x6b\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x66\x6e\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x70\x72\x65\x76\x49\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x6e\x64\x65\x72\x46\x6e\x57\x69\x74\x68\x43\x6f\x6e\x74\x65\x78\x74\x2e\x5f\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x42\x6c\x6f\x63\x6b\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x6e\x64\x65\x72\x46\x6e\x57\x69\x74\x68\x43\x6f\x6e\x74\x65\x78\x74\x2e\x5f\x6e\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x72\x65\x6e\x64\x65\x72\x46\x6e\x57\x69\x74\x68\x43\x6f\x6e\x74\x65\x78\x74\x2e\x5f\x63\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x72\x65\x6e\x64\x65\x72\x46\x6e\x57\x69\x74\x68\x43\x6f\x6e\x74\x65\x78\x74\x2e\x5f\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x6e\x64\x65\x72\x46\x6e\x57\x69\x74\x68\x43\x6f\x6e\x74\x65\x78\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x61\x72\x6b\x41\x74\x74\x72\x73\x41\x63\x63\x65\x73\x73\x65\x64\x28\x29\x20\x7b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x6e\x64\x65\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x52\x6f\x6f\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x6f\x78\x79\x2c\x20\x77\x69\x74\x68\x50\x72\x6f\x78\x79\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x5b\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x5d\x2c\x20\x73\x6c\x6f\x74\x73\x2c\x20\x61\x74\x74\x72\x73\x2c\x20\x65\x6d\x69\x74\x2c\x20\x72\x65\x6e\x64\x65\x72\x3a\x20\x72\x65\x6e\x64\x65\x72\x32\x2c\x20\x72\x65\x6e\x64\x65\x72\x43\x61\x63\x68\x65\x2c\x20\x64\x61\x74\x61\x2c\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x63\x74\x78\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x41\x74\x74\x72\x73\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x20\x20\x6c\x65\x74\x20\x66\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x41\x74\x74\x72\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x78\x79\x54\x6f\x55\x73\x65\x20\x3d\x20\x77\x69\x74\x68\x50\x72\x6f\x78\x79\x20\x7c\x7c\x20\x70\x72\x6f\x78\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x72\x65\x6e\x64\x65\x72\x32\x2e\x63\x61\x6c\x6c\x28\x70\x72\x6f\x78\x79\x54\x6f\x55\x73\x65\x2c\x20\x70\x72\x6f\x78\x79\x54\x6f\x55\x73\x65\x2c\x20\x72\x65\x6e\x64\x65\x72\x43\x61\x63\x68\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x64\x61\x74\x61\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x41\x74\x74\x72\x73\x20\x3d\x20\x61\x74\x74\x72\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6e\x64\x65\x72\x33\x20\x3d\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x61\x6c\x73\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x72\x65\x6e\x64\x65\x72\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x3f\x20\x72\x65\x6e\x64\x65\x72\x33\x28\x70\x72\x6f\x70\x73\x2c\x20\x66\x61\x6c\x73\x65\x20\x3f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x74\x20\x61\x74\x74\x72\x73\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x72\x6b\x41\x74\x74\x72\x73\x41\x63\x63\x65\x73\x73\x65\x64\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x74\x74\x72\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6d\x69\x74\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x3a\x20\x7b\x20\x61\x74\x74\x72\x73\x2c\x20\x73\x6c\x6f\x74\x73\x2c\x20\x65\x6d\x69\x74\x20\x7d\x29\x20\x3a\x20\x72\x65\x6e\x64\x65\x72\x33\x28\x70\x72\x6f\x70\x73\x2c\x20\x6e\x75\x6c\x6c\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x41\x74\x74\x72\x73\x20\x3d\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x70\x72\x6f\x70\x73\x20\x3f\x20\x61\x74\x74\x72\x73\x20\x3a\x20\x67\x65\x74\x46\x75\x6e\x63\x74\x69\x6f\x6e\x61\x6c\x46\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x28\x61\x74\x74\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x65\x72\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x62\x6c\x6f\x63\x6b\x53\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x72\x6f\x6f\x74\x20\x3d\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x66\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x41\x74\x74\x72\x73\x20\x26\x26\x20\x69\x6e\x68\x65\x72\x69\x74\x41\x74\x74\x72\x73\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x66\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x41\x74\x74\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7d\x20\x3d\x20\x72\x6f\x6f\x74\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x28\x31\x20\x7c\x20\x36\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x20\x26\x26\x20\x6b\x65\x79\x73\x2e\x73\x6f\x6d\x65\x28\x69\x73\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x41\x74\x74\x72\x73\x20\x3d\x20\x66\x69\x6c\x74\x65\x72\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x66\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x41\x74\x74\x72\x73\x2c\x20\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x6f\x6f\x74\x20\x3d\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x72\x6f\x6f\x74\x2c\x20\x66\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x41\x74\x74\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x6f\x6f\x74\x2e\x64\x69\x72\x73\x20\x3d\x20\x72\x6f\x6f\x74\x2e\x64\x69\x72\x73\x20\x3f\x20\x72\x6f\x6f\x74\x2e\x64\x69\x72\x73\x2e\x63\x6f\x6e\x63\x61\x74\x28\x76\x6e\x6f\x64\x65\x2e\x64\x69\x72\x73\x29\x20\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x64\x69\x72\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x6f\x6f\x74\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x72\x6f\x6f\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x70\x72\x65\x76\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6c\x74\x65\x72\x53\x69\x6e\x67\x6c\x65\x52\x6f\x6f\x74\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x73\x69\x6e\x67\x6c\x65\x52\x6f\x6f\x74\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x7c\x7c\x20\x63\x68\x69\x6c\x64\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x3d\x3d\x20\x22\x76\x2d\x69\x66\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x69\x6e\x67\x6c\x65\x52\x6f\x6f\x74\x29\x20\x7b\x0a\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\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x69\x6e\x67\x6c\x65\x52\x6f\x6f\x74\x20\x3d\x20\x63\x68\x69\x6c\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x6e\x67\x6c\x65\x52\x6f\x6f\x74\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x46\x75\x6e\x63\x74\x69\x6f\x6e\x61\x6c\x46\x61\x6c\x6c\x74\x68\x72\x6f\x75\x67\x68\x20\x3d\x20\x28\x61\x74\x74\x72\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x61\x74\x74\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x63\x6c\x61\x73\x73\x22\x20\x7c\x7c\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x73\x74\x79\x6c\x65\x22\x20\x7c\x7c\x20\x69\x73\x4f\x6e\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x28\x72\x65\x73\x20\x7c\x7c\x20\x28\x72\x65\x73\x20\x3d\x20\x7b\x7d\x29\x29\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x69\x6c\x74\x65\x72\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x20\x3d\x20\x28\x61\x74\x74\x72\x73\x2c\x20\x70\x72\x6f\x70\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x61\x74\x74\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x6b\x65\x79\x29\x20\x7c\x7c\x20\x21\x28\x6b\x65\x79\x2e\x73\x6c\x69\x63\x65\x28\x39\x29\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x68\x6f\x75\x6c\x64\x55\x70\x64\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x2c\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x72\x6f\x70\x73\x3a\x20\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x3a\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x7d\x20\x3d\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x72\x6f\x70\x73\x3a\x20\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x3a\x20\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x7d\x20\x3d\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6d\x69\x74\x73\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x65\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x2e\x64\x69\x72\x73\x20\x7c\x7c\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x26\x26\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3e\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x31\x30\x32\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x50\x72\x6f\x70\x73\x43\x68\x61\x6e\x67\x65\x64\x28\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x2c\x20\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x2c\x20\x65\x6d\x69\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x2e\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x21\x3d\x3d\x20\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x26\x26\x20\x21\x69\x73\x45\x6d\x69\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6d\x69\x74\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\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\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x7c\x7c\x20\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x7c\x7c\x20\x21\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x2e\x24\x73\x74\x61\x62\x6c\x65\x29\x20\x7b\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x20\x3d\x3d\x3d\x20\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x50\x72\x6f\x70\x73\x43\x68\x61\x6e\x67\x65\x64\x28\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x2c\x20\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x2c\x20\x65\x6d\x69\x74\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x50\x72\x6f\x70\x73\x43\x68\x61\x6e\x67\x65\x64\x28\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x2c\x20\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x2c\x20\x65\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x4b\x65\x79\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x4b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x29\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6e\x65\x78\x74\x4b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x6e\x65\x78\x74\x4b\x65\x79\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x21\x3d\x3d\x20\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x26\x26\x20\x21\x69\x73\x45\x6d\x69\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x70\x64\x61\x74\x65\x48\x4f\x43\x48\x6f\x73\x74\x45\x6c\x28\x7b\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x20\x7d\x2c\x20\x65\x6c\x29\x20\x7b\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x70\x61\x72\x65\x6e\x74\x20\x26\x26\x20\x70\x61\x72\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x3d\x3d\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x28\x76\x6e\x6f\x64\x65\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x2e\x76\x6e\x6f\x64\x65\x29\x2e\x65\x6c\x20\x3d\x20\x65\x6c\x3b\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x28\x74\x79\x70\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x2e\x5f\x5f\x69\x73\x53\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x53\x75\x73\x70\x65\x6e\x73\x65\x49\x6d\x70\x6c\x20\x3d\x20\x7b\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\x53\x75\x73\x70\x65\x6e\x73\x65\x22\x2c\x0a\x20\x20\x5f\x5f\x69\x73\x53\x75\x73\x70\x65\x6e\x73\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x28\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x53\x75\x73\x70\x65\x6e\x73\x65\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x68\x79\x64\x72\x61\x74\x65\x3a\x20\x68\x79\x64\x72\x61\x74\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x63\x72\x65\x61\x74\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x42\x6f\x75\x6e\x64\x61\x72\x79\x2c\x0a\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x53\x75\x73\x70\x65\x6e\x73\x65\x49\x6d\x70\x6c\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x69\x67\x67\x65\x72\x45\x76\x65\x6e\x74\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x5b\x6e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x6f\x75\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x3a\x20\x70\x61\x74\x63\x68\x2c\x20\x6f\x3a\x20\x7b\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x20\x7d\x20\x7d\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x42\x6f\x75\x6e\x64\x61\x72\x79\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x3b\x0a\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x2c\x20\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x45\x76\x65\x6e\x74\x28\x76\x6e\x6f\x64\x65\x2c\x20\x22\x6f\x6e\x50\x65\x6e\x64\x69\x6e\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x45\x76\x65\x6e\x74\x28\x76\x6e\x6f\x64\x65\x2c\x20\x22\x6f\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x22\x29\x3b\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x3b\x0a\x20\x20\x20\x20\x73\x65\x74\x41\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x74\x63\x68\x53\x75\x73\x70\x65\x6e\x73\x65\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x7b\x20\x70\x3a\x20\x70\x61\x74\x63\x68\x2c\x20\x75\x6d\x3a\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x2c\x20\x6f\x3a\x20\x7b\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x20\x7d\x20\x7d\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x6e\x32\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x6e\x31\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x76\x6e\x6f\x64\x65\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x6e\x31\x2e\x65\x6c\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x20\x3d\x20\x6e\x32\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x46\x61\x6c\x6c\x62\x61\x63\x6b\x20\x3d\x20\x6e\x32\x2e\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2c\x20\x69\x73\x49\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x2c\x20\x69\x73\x48\x79\x64\x72\x61\x74\x69\x6e\x67\x20\x7d\x20\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x20\x3d\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2c\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3c\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x49\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x6e\x65\x77\x46\x61\x6c\x6c\x62\x61\x63\x6b\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x41\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x6e\x65\x77\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x48\x79\x64\x72\x61\x74\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x48\x79\x64\x72\x61\x74\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x20\x3d\x20\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x65\x66\x66\x65\x63\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\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\x69\x66\x20\x28\x69\x73\x49\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3c\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x6e\x65\x77\x46\x61\x6c\x6c\x62\x61\x63\x6b\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x41\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x6e\x65\x77\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x20\x26\x26\x20\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3c\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x20\x26\x26\x20\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x41\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x45\x76\x65\x6e\x74\x28\x6e\x32\x2c\x20\x22\x6f\x6e\x50\x65\x6e\x64\x69\x6e\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x20\x3d\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x6e\x65\x77\x42\x72\x61\x6e\x63\x68\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3c\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x69\x6d\x65\x6f\x75\x74\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x20\x7d\x20\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x69\x6d\x65\x6f\x75\x74\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x20\x3d\x3d\x3d\x20\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x66\x61\x6c\x6c\x62\x61\x63\x6b\x28\x6e\x65\x77\x46\x61\x6c\x6c\x62\x61\x63\x6b\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\x7d\x2c\x20\x74\x69\x6d\x65\x6f\x75\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x69\x6d\x65\x6f\x75\x74\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x66\x61\x6c\x6c\x62\x61\x63\x6b\x28\x6e\x65\x77\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x42\x6f\x75\x6e\x64\x61\x72\x79\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x69\x73\x48\x79\x64\x72\x61\x74\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x3a\x20\x70\x61\x74\x63\x68\x2c\x20\x6d\x3a\x20\x6d\x6f\x76\x65\x2c\x20\x75\x6d\x3a\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x2c\x20\x6e\x3a\x20\x6e\x65\x78\x74\x2c\x20\x6f\x3a\x20\x7b\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x20\x72\x65\x6d\x6f\x76\x65\x3a\x20\x72\x65\x6d\x6f\x76\x65\x32\x20\x7d\x20\x7d\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x3d\x20\x74\x6f\x4e\x75\x6d\x62\x65\x72\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x74\x69\x6d\x65\x6f\x75\x74\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x69\x73\x53\x56\x47\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x0a\x20\x20\x20\x20\x68\x69\x64\x64\x65\x6e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x0a\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x2c\x0a\x20\x20\x20\x20\x64\x65\x70\x73\x3a\x20\x30\x2c\x0a\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x3a\x20\x30\x2c\x0a\x20\x20\x20\x20\x74\x69\x6d\x65\x6f\x75\x74\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x3a\x20\x2d\x31\x2c\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x69\x73\x49\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x69\x73\x48\x79\x64\x72\x61\x74\x69\x6e\x67\x2c\x0a\x20\x20\x20\x20\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x73\x3a\x20\x5b\x5d\x2c\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x72\x65\x73\x75\x6d\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x6e\x6f\x64\x65\x3a\x20\x76\x6e\x6f\x64\x65\x32\x2c\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x2c\x20\x65\x66\x66\x65\x63\x74\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3a\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x3a\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x20\x7d\x20\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x48\x79\x64\x72\x61\x74\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x48\x79\x64\x72\x61\x74\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x72\x65\x73\x75\x6d\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x6c\x61\x79\x45\x6e\x74\x65\x72\x20\x3d\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x20\x26\x26\x20\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x26\x26\x20\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x75\x74\x2d\x69\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x6c\x61\x79\x45\x6e\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x61\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x20\x3d\x3d\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x2c\x20\x61\x6e\x63\x68\x6f\x72\x32\x2c\x20\x30\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\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x61\x6e\x63\x68\x6f\x72\x3a\x20\x61\x6e\x63\x68\x6f\x72\x32\x20\x7d\x20\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x32\x20\x3d\x20\x6e\x65\x78\x74\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x32\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\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\x21\x64\x65\x6c\x61\x79\x45\x6e\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x2c\x20\x61\x6e\x63\x68\x6f\x72\x32\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x41\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x49\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x61\x72\x65\x6e\x74\x32\x20\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x55\x6e\x72\x65\x73\x6f\x6c\x76\x65\x64\x41\x6e\x63\x65\x73\x74\x6f\x72\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x70\x61\x72\x65\x6e\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x32\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x32\x2e\x65\x66\x66\x65\x63\x74\x73\x2e\x70\x75\x73\x68\x28\x2e\x2e\x2e\x65\x66\x66\x65\x63\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x55\x6e\x72\x65\x73\x6f\x6c\x76\x65\x64\x41\x6e\x63\x65\x73\x74\x6f\x72\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\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\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x32\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x32\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x68\x61\x73\x55\x6e\x72\x65\x73\x6f\x6c\x76\x65\x64\x41\x6e\x63\x65\x73\x74\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x28\x65\x66\x66\x65\x63\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x65\x66\x66\x65\x63\x74\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x45\x76\x65\x6e\x74\x28\x76\x6e\x6f\x64\x65\x32\x2c\x20\x22\x6f\x6e\x52\x65\x73\x6f\x6c\x76\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x28\x66\x61\x6c\x6c\x62\x61\x63\x6b\x56\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x6e\x6f\x64\x65\x3a\x20\x76\x6e\x6f\x64\x65\x32\x2c\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3a\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x3a\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x2c\x20\x69\x73\x53\x56\x47\x3a\x20\x69\x73\x53\x56\x47\x32\x20\x7d\x20\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x45\x76\x65\x6e\x74\x28\x76\x6e\x6f\x64\x65\x32\x2c\x20\x22\x6f\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x63\x68\x6f\x72\x32\x20\x3d\x20\x6e\x65\x78\x74\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x75\x6e\x74\x46\x61\x6c\x6c\x62\x61\x63\x6b\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x49\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x20\x7b\x0a\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\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x56\x4e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x2c\x20\x61\x6e\x63\x68\x6f\x72\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x53\x56\x47\x32\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x41\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x56\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x6c\x61\x79\x45\x6e\x74\x65\x72\x20\x3d\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x56\x4e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x26\x26\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x56\x4e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x75\x74\x2d\x69\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x6c\x61\x79\x45\x6e\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x61\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x20\x3d\x20\x6d\x6f\x75\x6e\x74\x46\x61\x6c\x6c\x62\x61\x63\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x49\x6e\x46\x61\x6c\x6c\x62\x61\x63\x6b\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x65\x6c\x61\x79\x45\x6e\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x46\x61\x6c\x6c\x62\x61\x63\x6b\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x2c\x20\x61\x6e\x63\x68\x6f\x72\x32\x2c\x20\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x20\x26\x26\x20\x6d\x6f\x76\x65\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x2c\x20\x61\x6e\x63\x68\x6f\x72\x32\x2c\x20\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6e\x65\x78\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x20\x26\x26\x20\x6e\x65\x78\x74\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x44\x65\x70\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x73\x65\x74\x75\x70\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x49\x6e\x50\x65\x6e\x64\x69\x6e\x67\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x21\x21\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x49\x6e\x50\x65\x6e\x64\x69\x6e\x67\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x79\x64\x72\x61\x74\x65\x64\x45\x6c\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x73\x79\x6e\x63\x44\x65\x70\x2e\x63\x61\x74\x63\x68\x28\x28\x65\x72\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x74\x68\x65\x6e\x28\x28\x61\x73\x79\x6e\x63\x53\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x20\x7c\x7c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x20\x7c\x7c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x20\x21\x3d\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x49\x64\x29\x20\x7b\x0a\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\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x73\x79\x6e\x63\x52\x65\x73\x6f\x6c\x76\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x6e\x6f\x64\x65\x3a\x20\x76\x6e\x6f\x64\x65\x32\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x53\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x61\x73\x79\x6e\x63\x53\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x79\x64\x72\x61\x74\x65\x64\x45\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x32\x2e\x65\x6c\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x64\x45\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x20\x3d\x20\x21\x68\x79\x64\x72\x61\x74\x65\x64\x45\x6c\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x75\x70\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x76\x6e\x6f\x64\x65\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x28\x68\x79\x64\x72\x61\x74\x65\x64\x45\x6c\x20\x7c\x7c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x2e\x65\x6c\x29\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x64\x45\x6c\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x6e\x65\x78\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x29\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x32\x28\x70\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x48\x4f\x43\x48\x6f\x73\x74\x45\x6c\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x76\x6e\x6f\x64\x65\x32\x2e\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x49\x6e\x50\x65\x6e\x64\x69\x6e\x67\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x26\x26\x20\x2d\x2d\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x79\x64\x72\x61\x74\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x42\x6f\x75\x6e\x64\x61\x72\x79\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\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\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x6c\x6f\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x33\x32\x3b\x0a\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x53\x6c\x6f\x74\x28\x69\x73\x53\x6c\x6f\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3f\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x3a\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x20\x3d\x20\x69\x73\x53\x6c\x6f\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3f\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x53\x6c\x6f\x74\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x66\x61\x6c\x6c\x62\x61\x63\x6b\x29\x20\x3a\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x75\x73\x70\x65\x6e\x73\x65\x53\x6c\x6f\x74\x28\x73\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x62\x6c\x6f\x63\x6b\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x72\x61\x63\x6b\x42\x6c\x6f\x63\x6b\x20\x3d\x20\x69\x73\x42\x6c\x6f\x63\x6b\x54\x72\x65\x65\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x73\x2e\x5f\x63\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x61\x63\x6b\x42\x6c\x6f\x63\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x2e\x5f\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x73\x20\x3d\x20\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x61\x63\x6b\x42\x6c\x6f\x63\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x2e\x5f\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x6c\x6f\x63\x6b\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6c\x6f\x73\x65\x42\x6c\x6f\x63\x6b\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x69\x6e\x67\x6c\x65\x43\x68\x69\x6c\x64\x20\x3d\x20\x66\x69\x6c\x74\x65\x72\x53\x69\x6e\x67\x6c\x65\x52\x6f\x6f\x74\x28\x73\x29\x3b\x0a\x20\x20\x20\x20\x73\x20\x3d\x20\x73\x69\x6e\x67\x6c\x65\x43\x68\x69\x6c\x64\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x73\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x62\x6c\x6f\x63\x6b\x20\x26\x26\x20\x21\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x62\x6c\x6f\x63\x6b\x2e\x66\x69\x6c\x74\x65\x72\x28\x28\x63\x29\x20\x3d\x3e\x20\x63\x20\x21\x3d\x3d\x20\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x71\x75\x65\x75\x65\x45\x66\x66\x65\x63\x74\x57\x69\x74\x68\x53\x75\x73\x70\x65\x6e\x73\x65\x28\x66\x6e\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x26\x26\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x66\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x65\x66\x66\x65\x63\x74\x73\x2e\x70\x75\x73\x68\x28\x2e\x2e\x2e\x66\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x65\x66\x66\x65\x63\x74\x73\x2e\x70\x75\x73\x68\x28\x66\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x28\x66\x6e\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x41\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x62\x72\x61\x6e\x63\x68\x29\x20\x7b\x0a\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x20\x3d\x20\x62\x72\x61\x6e\x63\x68\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x7d\x20\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6c\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x20\x3d\x20\x62\x72\x61\x6e\x63\x68\x2e\x65\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x26\x26\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x3d\x3d\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x20\x3d\x20\x65\x6c\x3b\x0a\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x48\x4f\x43\x48\x6f\x73\x74\x45\x6c\x28\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x65\x6c\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x72\x6f\x76\x69\x64\x65\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x29\x0a\x20\x20\x20\x20\x3b\x0a\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x76\x69\x64\x65\x73\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x65\x6e\x74\x50\x72\x6f\x76\x69\x64\x65\x73\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x2e\x70\x72\x6f\x76\x69\x64\x65\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x50\x72\x6f\x76\x69\x64\x65\x73\x20\x3d\x3d\x3d\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x70\x61\x72\x65\x6e\x74\x50\x72\x6f\x76\x69\x64\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x6a\x65\x63\x74\x28\x6b\x65\x79\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x2c\x20\x74\x72\x65\x61\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x73\x46\x61\x63\x74\x6f\x72\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x7c\x7c\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x3a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x2e\x70\x72\x6f\x76\x69\x64\x65\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x26\x26\x20\x6b\x65\x79\x20\x69\x6e\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x65\x61\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x73\x46\x61\x63\x74\x6f\x72\x79\x20\x26\x26\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x29\x20\x3f\x20\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x2e\x63\x61\x6c\x6c\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x29\x20\x3a\x20\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x61\x74\x63\x68\x45\x66\x66\x65\x63\x74\x28\x65\x66\x66\x65\x63\x74\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x57\x61\x74\x63\x68\x28\x65\x66\x66\x65\x63\x74\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x61\x74\x63\x68\x50\x6f\x73\x74\x45\x66\x66\x65\x63\x74\x28\x65\x66\x66\x65\x63\x74\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x57\x61\x74\x63\x68\x28\x65\x66\x66\x65\x63\x74\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x7b\x20\x66\x6c\x75\x73\x68\x3a\x20\x22\x70\x6f\x73\x74\x22\x20\x7d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x61\x74\x63\x68\x53\x79\x6e\x63\x45\x66\x66\x65\x63\x74\x28\x65\x66\x66\x65\x63\x74\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x57\x61\x74\x63\x68\x28\x65\x66\x66\x65\x63\x74\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x7b\x20\x66\x6c\x75\x73\x68\x3a\x20\x22\x73\x79\x6e\x63\x22\x20\x7d\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x49\x4e\x49\x54\x49\x41\x4c\x5f\x57\x41\x54\x43\x48\x45\x52\x5f\x56\x41\x4c\x55\x45\x20\x3d\x20\x7b\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x61\x74\x63\x68\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x63\x62\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x57\x61\x74\x63\x68\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x63\x62\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x6f\x57\x61\x74\x63\x68\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x63\x62\x2c\x20\x7b\x20\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x2c\x20\x64\x65\x65\x70\x2c\x20\x66\x6c\x75\x73\x68\x2c\x20\x6f\x6e\x54\x72\x61\x63\x6b\x2c\x20\x6f\x6e\x54\x72\x69\x67\x67\x65\x72\x20\x7d\x20\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x67\x65\x74\x74\x65\x72\x3b\x0a\x20\x20\x6c\x65\x74\x20\x66\x6f\x72\x63\x65\x54\x72\x69\x67\x67\x65\x72\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x69\x73\x4d\x75\x6c\x74\x69\x53\x6f\x75\x72\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x73\x6f\x75\x72\x63\x65\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x63\x65\x54\x72\x69\x67\x67\x65\x72\x20\x3d\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x64\x65\x65\x70\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x73\x4d\x75\x6c\x74\x69\x53\x6f\x75\x72\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x63\x65\x54\x72\x69\x67\x67\x65\x72\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x73\x6f\x6d\x65\x28\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x73\x6f\x75\x72\x63\x65\x2e\x6d\x61\x70\x28\x28\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x28\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x61\x76\x65\x72\x73\x65\x28\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x73\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7b\x0a\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\x63\x6c\x65\x61\x6e\x75\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x65\x61\x6e\x75\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x33\x2c\x20\x5b\x6f\x6e\x43\x6c\x65\x61\x6e\x75\x70\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x4e\x4f\x4f\x50\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x62\x20\x26\x26\x20\x64\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x61\x73\x65\x47\x65\x74\x74\x65\x72\x20\x3d\x20\x67\x65\x74\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x74\x72\x61\x76\x65\x72\x73\x65\x28\x62\x61\x73\x65\x47\x65\x74\x74\x65\x72\x28\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x63\x6c\x65\x61\x6e\x75\x70\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6f\x6e\x43\x6c\x65\x61\x6e\x75\x70\x20\x3d\x20\x28\x66\x6e\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6c\x65\x61\x6e\x75\x70\x20\x3d\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x6f\x6e\x53\x74\x6f\x70\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x66\x6e\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x34\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x49\x6e\x53\x53\x52\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x6f\x6e\x43\x6c\x65\x61\x6e\x75\x70\x20\x3d\x20\x4e\x4f\x4f\x50\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x63\x62\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x33\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x74\x74\x65\x72\x28\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x4d\x75\x6c\x74\x69\x53\x6f\x75\x72\x63\x65\x20\x3f\x20\x5b\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6c\x65\x61\x6e\x75\x70\x0a\x20\x20\x20\x20\x20\x20\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x4f\x4f\x50\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x20\x69\x73\x4d\x75\x6c\x74\x69\x53\x6f\x75\x72\x63\x65\x20\x3f\x20\x5b\x5d\x20\x3a\x20\x49\x4e\x49\x54\x49\x41\x4c\x5f\x57\x41\x54\x43\x48\x45\x52\x5f\x56\x41\x4c\x55\x45\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6a\x6f\x62\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x66\x66\x65\x63\x74\x32\x2e\x61\x63\x74\x69\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x20\x3d\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x72\x75\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x65\x70\x20\x7c\x7c\x20\x66\x6f\x72\x63\x65\x54\x72\x69\x67\x67\x65\x72\x20\x7c\x7c\x20\x28\x69\x73\x4d\x75\x6c\x74\x69\x53\x6f\x75\x72\x63\x65\x20\x3f\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x2e\x73\x6f\x6d\x65\x28\x28\x76\x2c\x20\x69\x29\x20\x3d\x3e\x20\x68\x61\x73\x43\x68\x61\x6e\x67\x65\x64\x28\x76\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x5b\x69\x5d\x29\x29\x20\x3a\x20\x68\x61\x73\x43\x68\x61\x6e\x67\x65\x64\x28\x6e\x65\x77\x56\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x29\x20\x7c\x7c\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6c\x65\x61\x6e\x75\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x65\x61\x6e\x75\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x63\x62\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x33\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x49\x4e\x49\x54\x49\x41\x4c\x5f\x57\x41\x54\x43\x48\x45\x52\x5f\x56\x41\x4c\x55\x45\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6c\x65\x61\x6e\x75\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x72\x75\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x6a\x6f\x62\x2e\x61\x6c\x6c\x6f\x77\x52\x65\x63\x75\x72\x73\x65\x20\x3d\x20\x21\x21\x63\x62\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x3b\x0a\x20\x20\x69\x66\x20\x28\x66\x6c\x75\x73\x68\x20\x3d\x3d\x3d\x20\x22\x73\x79\x6e\x63\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x20\x3d\x20\x6a\x6f\x62\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x66\x6c\x75\x73\x68\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x73\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x6a\x6f\x62\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x7c\x7c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x28\x6a\x6f\x62\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6a\x6f\x62\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x66\x66\x65\x63\x74\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x73\x63\x68\x65\x64\x75\x6c\x65\x72\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6d\x6d\x65\x64\x69\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6a\x6f\x62\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x72\x75\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x66\x6c\x75\x73\x68\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x73\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x65\x66\x66\x65\x63\x74\x32\x2e\x72\x75\x6e\x2e\x62\x69\x6e\x64\x28\x65\x66\x66\x65\x63\x74\x32\x29\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x72\x75\x6e\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x73\x74\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x63\x6f\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x63\x6f\x70\x65\x2e\x65\x66\x66\x65\x63\x74\x73\x2c\x20\x65\x66\x66\x65\x63\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x57\x61\x74\x63\x68\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x72\x6f\x78\x79\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x3f\x20\x73\x6f\x75\x72\x63\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x2e\x22\x29\x20\x3f\x20\x63\x72\x65\x61\x74\x65\x50\x61\x74\x68\x47\x65\x74\x74\x65\x72\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x73\x6f\x75\x72\x63\x65\x29\x20\x3a\x20\x28\x29\x20\x3d\x3e\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x5b\x73\x6f\x75\x72\x63\x65\x5d\x20\x3a\x20\x73\x6f\x75\x72\x63\x65\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x62\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x62\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x62\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x68\x61\x6e\x64\x6c\x65\x72\x3b\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x75\x72\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x64\x6f\x57\x61\x74\x63\x68\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x63\x62\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x75\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x63\x75\x72\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x50\x61\x74\x68\x47\x65\x74\x74\x65\x72\x28\x63\x74\x78\x2c\x20\x70\x61\x74\x68\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x67\x6d\x65\x6e\x74\x73\x20\x3d\x20\x70\x61\x74\x68\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x75\x72\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x73\x65\x67\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x63\x75\x72\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x75\x72\x20\x3d\x20\x63\x75\x72\x5b\x73\x65\x67\x6d\x65\x6e\x74\x73\x5b\x69\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x75\x72\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x61\x76\x65\x72\x73\x65\x28\x76\x61\x6c\x75\x65\x2c\x20\x73\x65\x65\x6e\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x29\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x5b\x22\x5f\x5f\x76\x5f\x73\x6b\x69\x70\x22\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x65\x6e\x20\x3d\x20\x73\x65\x65\x6e\x20\x7c\x7c\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x65\x65\x6e\x2e\x68\x61\x73\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x65\x6e\x2e\x61\x64\x64\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x61\x76\x65\x72\x73\x65\x28\x76\x61\x6c\x75\x65\x2e\x76\x61\x6c\x75\x65\x2c\x20\x73\x65\x65\x6e\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x76\x61\x6c\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x76\x65\x72\x73\x65\x28\x76\x61\x6c\x75\x65\x5b\x69\x5d\x2c\x20\x73\x65\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x53\x65\x74\x28\x76\x61\x6c\x75\x65\x29\x20\x7c\x7c\x20\x69\x73\x4d\x61\x70\x24\x31\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x76\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x76\x65\x72\x73\x65\x28\x76\x2c\x20\x73\x65\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x76\x65\x72\x73\x65\x28\x76\x61\x6c\x75\x65\x5b\x6b\x65\x79\x5d\x2c\x20\x73\x65\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x53\x74\x61\x74\x65\x28\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x74\x65\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x69\x73\x4c\x65\x61\x76\x69\x6e\x67\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x69\x6e\x67\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x6f\x6e\x4d\x6f\x75\x6e\x74\x65\x64\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x61\x74\x65\x2e\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x61\x74\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x69\x6e\x67\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x61\x74\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x20\x3d\x20\x5b\x46\x75\x6e\x63\x74\x69\x6f\x6e\x2c\x20\x41\x72\x72\x61\x79\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x42\x61\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x49\x6d\x70\x6c\x20\x3d\x20\x7b\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x60\x42\x61\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x60\x2c\x0a\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x6d\x6f\x64\x65\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x20\x20\x61\x70\x70\x65\x61\x72\x3a\x20\x42\x6f\x6f\x6c\x65\x61\x6e\x2c\x0a\x20\x20\x20\x20\x70\x65\x72\x73\x69\x73\x74\x65\x64\x3a\x20\x42\x6f\x6f\x6c\x65\x61\x6e\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x45\x6e\x74\x65\x72\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x41\x66\x74\x65\x72\x45\x6e\x74\x65\x72\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x45\x6e\x74\x65\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x4c\x65\x61\x76\x65\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x4c\x65\x61\x76\x65\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x41\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x4c\x65\x61\x76\x65\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x41\x70\x70\x65\x61\x72\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x41\x66\x74\x65\x72\x41\x70\x70\x65\x61\x72\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x3a\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x73\x65\x74\x75\x70\x28\x70\x72\x6f\x70\x73\x2c\x20\x7b\x20\x73\x6c\x6f\x74\x73\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x74\x65\x20\x3d\x20\x75\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x53\x74\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x72\x65\x76\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x73\x6c\x6f\x74\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x26\x26\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x52\x61\x77\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x73\x6c\x6f\x74\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x28\x29\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x7c\x7c\x20\x21\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x63\x20\x6f\x66\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6d\x6f\x64\x65\x20\x7d\x20\x3d\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x61\x74\x65\x2e\x69\x73\x4c\x65\x61\x76\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x6d\x70\x74\x79\x50\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x28\x63\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x20\x3d\x20\x67\x65\x74\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x43\x68\x69\x6c\x64\x28\x63\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x6d\x70\x74\x79\x50\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x28\x63\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x74\x65\x72\x48\x6f\x6f\x6b\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x69\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2c\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x73\x74\x61\x74\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x69\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2c\x20\x65\x6e\x74\x65\x72\x48\x6f\x6f\x6b\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x43\x68\x69\x6c\x64\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x20\x3d\x20\x6f\x6c\x64\x43\x68\x69\x6c\x64\x20\x26\x26\x20\x67\x65\x74\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x43\x68\x69\x6c\x64\x28\x6f\x6c\x64\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x20\x7d\x20\x3d\x20\x69\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x20\x3d\x20\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x21\x3d\x3d\x20\x70\x72\x65\x76\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x20\x3d\x20\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x20\x26\x26\x20\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x26\x26\x20\x28\x21\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x69\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2c\x20\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x29\x20\x7c\x7c\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x4b\x65\x79\x43\x68\x61\x6e\x67\x65\x64\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x65\x61\x76\x69\x6e\x67\x48\x6f\x6f\x6b\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2c\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x73\x74\x61\x74\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2c\x20\x6c\x65\x61\x76\x69\x6e\x67\x48\x6f\x6f\x6b\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x75\x74\x2d\x69\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x74\x65\x2e\x69\x73\x4c\x65\x61\x76\x69\x6e\x67\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x61\x76\x69\x6e\x67\x48\x6f\x6f\x6b\x73\x2e\x61\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x74\x65\x2e\x69\x73\x4c\x65\x61\x76\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x6d\x70\x74\x79\x50\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x28\x63\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x69\x6e\x2d\x6f\x75\x74\x22\x20\x26\x26\x20\x69\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x61\x76\x69\x6e\x67\x48\x6f\x6f\x6b\x73\x2e\x64\x65\x6c\x61\x79\x4c\x65\x61\x76\x65\x20\x3d\x20\x28\x65\x6c\x2c\x20\x65\x61\x72\x6c\x79\x52\x65\x6d\x6f\x76\x65\x2c\x20\x64\x65\x6c\x61\x79\x65\x64\x4c\x65\x61\x76\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x20\x3d\x20\x67\x65\x74\x4c\x65\x61\x76\x69\x6e\x67\x4e\x6f\x64\x65\x73\x46\x6f\x72\x54\x79\x70\x65\x28\x73\x74\x61\x74\x65\x2c\x20\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x5b\x53\x74\x72\x69\x6e\x67\x28\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x2e\x6b\x65\x79\x29\x5d\x20\x3d\x20\x6f\x6c\x64\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x6c\x65\x61\x76\x65\x43\x62\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x61\x72\x6c\x79\x52\x65\x6d\x6f\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x6c\x65\x61\x76\x65\x43\x62\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x65\x6e\x74\x65\x72\x48\x6f\x6f\x6b\x73\x2e\x64\x65\x6c\x61\x79\x65\x64\x4c\x65\x61\x76\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x74\x65\x72\x48\x6f\x6f\x6b\x73\x2e\x64\x65\x6c\x61\x79\x65\x64\x4c\x65\x61\x76\x65\x20\x3d\x20\x64\x65\x6c\x61\x79\x65\x64\x4c\x65\x61\x76\x65\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x69\x6c\x64\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x42\x61\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x42\x61\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x49\x6d\x70\x6c\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x4c\x65\x61\x76\x69\x6e\x67\x4e\x6f\x64\x65\x73\x46\x6f\x72\x54\x79\x70\x65\x28\x73\x74\x61\x74\x65\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x20\x7d\x20\x3d\x20\x73\x74\x61\x74\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x20\x3d\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x2e\x67\x65\x74\x28\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x2e\x73\x65\x74\x28\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2c\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x73\x74\x61\x74\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x61\x70\x70\x65\x61\x72\x2c\x20\x6d\x6f\x64\x65\x2c\x20\x70\x65\x72\x73\x69\x73\x74\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x2c\x20\x6f\x6e\x45\x6e\x74\x65\x72\x2c\x20\x6f\x6e\x41\x66\x74\x65\x72\x45\x6e\x74\x65\x72\x2c\x20\x6f\x6e\x45\x6e\x74\x65\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x2c\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x4c\x65\x61\x76\x65\x2c\x20\x6f\x6e\x4c\x65\x61\x76\x65\x2c\x20\x6f\x6e\x41\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x2c\x20\x6f\x6e\x4c\x65\x61\x76\x65\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x2c\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x41\x70\x70\x65\x61\x72\x2c\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x2c\x20\x6f\x6e\x41\x66\x74\x65\x72\x41\x70\x70\x65\x61\x72\x2c\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x20\x7d\x20\x3d\x20\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x53\x74\x72\x69\x6e\x67\x28\x76\x6e\x6f\x64\x65\x2e\x6b\x65\x79\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x20\x3d\x20\x67\x65\x74\x4c\x65\x61\x76\x69\x6e\x67\x4e\x6f\x64\x65\x73\x46\x6f\x72\x54\x79\x70\x65\x28\x73\x74\x61\x74\x65\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x32\x20\x3d\x20\x28\x68\x6f\x6f\x6b\x2c\x20\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x68\x6f\x6f\x6b\x20\x26\x26\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x68\x6f\x6f\x6b\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x39\x2c\x20\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x6f\x6f\x6b\x73\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x6d\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x70\x65\x72\x73\x69\x73\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x62\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x68\x6f\x6f\x6b\x20\x3d\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x74\x61\x74\x65\x2e\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x70\x70\x65\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x6f\x6b\x20\x3d\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x41\x70\x70\x65\x61\x72\x20\x7c\x7c\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x5f\x6c\x65\x61\x76\x65\x43\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x6c\x65\x61\x76\x65\x43\x62\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x20\x3d\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x20\x26\x26\x20\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x29\x20\x26\x26\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x2e\x65\x6c\x2e\x5f\x6c\x65\x61\x76\x65\x43\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x2e\x65\x6c\x2e\x5f\x6c\x65\x61\x76\x65\x43\x62\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x32\x28\x68\x6f\x6f\x6b\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x65\x6e\x74\x65\x72\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x68\x6f\x6f\x6b\x20\x3d\x20\x6f\x6e\x45\x6e\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x61\x66\x74\x65\x72\x48\x6f\x6f\x6b\x20\x3d\x20\x6f\x6e\x41\x66\x74\x65\x72\x45\x6e\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x61\x6e\x63\x65\x6c\x48\x6f\x6f\x6b\x20\x3d\x20\x6f\x6e\x45\x6e\x74\x65\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x74\x61\x74\x65\x2e\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x70\x70\x65\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x6f\x6b\x20\x3d\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x20\x7c\x7c\x20\x6f\x6e\x45\x6e\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x66\x74\x65\x72\x48\x6f\x6f\x6b\x20\x3d\x20\x6f\x6e\x41\x66\x74\x65\x72\x41\x70\x70\x65\x61\x72\x20\x7c\x7c\x20\x6f\x6e\x41\x66\x74\x65\x72\x45\x6e\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6e\x63\x65\x6c\x48\x6f\x6f\x6b\x20\x3d\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x20\x7c\x7c\x20\x6f\x6e\x45\x6e\x74\x65\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x61\x6c\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x6e\x65\x20\x3d\x20\x65\x6c\x2e\x5f\x65\x6e\x74\x65\x72\x43\x62\x20\x3d\x20\x28\x63\x61\x6e\x63\x65\x6c\x6c\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x61\x6c\x6c\x65\x64\x29\x0a\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\x63\x61\x6c\x6c\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x61\x6e\x63\x65\x6c\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x32\x28\x63\x61\x6e\x63\x65\x6c\x48\x6f\x6f\x6b\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x32\x28\x61\x66\x74\x65\x72\x48\x6f\x6f\x6b\x2c\x20\x5b\x65\x6c\x5d\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\x68\x6f\x6f\x6b\x73\x2e\x64\x65\x6c\x61\x79\x65\x64\x4c\x65\x61\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x6f\x6b\x73\x2e\x64\x65\x6c\x61\x79\x65\x64\x4c\x65\x61\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x65\x6e\x74\x65\x72\x43\x62\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x6f\x6f\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x6f\x6b\x28\x65\x6c\x2c\x20\x64\x6f\x6e\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x6f\x6f\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6c\x65\x61\x76\x65\x28\x65\x6c\x2c\x20\x72\x65\x6d\x6f\x76\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x32\x20\x3d\x20\x53\x74\x72\x69\x6e\x67\x28\x76\x6e\x6f\x64\x65\x2e\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x5f\x65\x6e\x74\x65\x72\x43\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x65\x6e\x74\x65\x72\x43\x62\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x61\x74\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x6d\x6f\x76\x65\x32\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x32\x28\x6f\x6e\x42\x65\x66\x6f\x72\x65\x4c\x65\x61\x76\x65\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x61\x6c\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x6e\x65\x20\x3d\x20\x65\x6c\x2e\x5f\x6c\x65\x61\x76\x65\x43\x62\x20\x3d\x20\x28\x63\x61\x6e\x63\x65\x6c\x6c\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x61\x6c\x6c\x65\x64\x29\x0a\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\x63\x61\x6c\x6c\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x32\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x61\x6e\x63\x65\x6c\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x32\x28\x6f\x6e\x4c\x65\x61\x76\x65\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x32\x28\x6f\x6e\x41\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x6c\x65\x61\x76\x65\x43\x62\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x61\x76\x69\x6e\x67\x56\x4e\x6f\x64\x65\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x32\x5d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6e\x4c\x65\x61\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x4c\x65\x61\x76\x65\x28\x65\x6c\x2c\x20\x64\x6f\x6e\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6e\x4c\x65\x61\x76\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x63\x6c\x6f\x6e\x65\x28\x76\x6e\x6f\x64\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x76\x6e\x6f\x64\x65\x32\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x73\x74\x61\x74\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x6f\x6f\x6b\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6d\x70\x74\x79\x50\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x28\x76\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x43\x68\x69\x6c\x64\x28\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x28\x76\x6e\x6f\x64\x65\x29\x20\x3f\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3f\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x30\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x76\x6e\x6f\x64\x65\x2c\x20\x68\x6f\x6f\x6b\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x2c\x20\x68\x6f\x6f\x6b\x73\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x68\x6f\x6f\x6b\x73\x2e\x63\x6c\x6f\x6e\x65\x28\x76\x6e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x68\x6f\x6f\x6b\x73\x2e\x63\x6c\x6f\x6e\x65\x28\x76\x6e\x6f\x64\x65\x2e\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x68\x6f\x6f\x6b\x73\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x52\x61\x77\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x6b\x65\x65\x70\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x74\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6b\x65\x79\x65\x64\x46\x72\x61\x67\x6d\x65\x6e\x74\x43\x6f\x75\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x4b\x65\x79\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x63\x68\x69\x6c\x64\x2e\x6b\x65\x79\x20\x3a\x20\x53\x74\x72\x69\x6e\x67\x28\x70\x61\x72\x65\x6e\x74\x4b\x65\x79\x29\x20\x2b\x20\x53\x74\x72\x69\x6e\x67\x28\x63\x68\x69\x6c\x64\x2e\x6b\x65\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x63\x68\x69\x6c\x64\x2e\x6b\x65\x79\x20\x3a\x20\x69\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x65\x64\x46\x72\x61\x67\x6d\x65\x6e\x74\x43\x6f\x75\x6e\x74\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x72\x65\x74\x2e\x63\x6f\x6e\x63\x61\x74\x28\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x52\x61\x77\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x68\x69\x6c\x64\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x6b\x65\x65\x70\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6b\x65\x79\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x65\x70\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x7c\x7c\x20\x63\x68\x69\x6c\x64\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x70\x75\x73\x68\x28\x6b\x65\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x2c\x20\x7b\x20\x6b\x65\x79\x20\x7d\x29\x20\x3a\x20\x63\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x65\x64\x46\x72\x61\x67\x6d\x65\x6e\x74\x43\x6f\x75\x6e\x74\x20\x3e\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x72\x65\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x5b\x69\x5d\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3d\x20\x2d\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x65\x66\x69\x6e\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x3f\x20\x7b\x20\x73\x65\x74\x75\x70\x3a\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6e\x61\x6d\x65\x3a\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6e\x61\x6d\x65\x20\x7d\x20\x3a\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x20\x3d\x20\x28\x69\x29\x20\x3d\x3e\x20\x21\x21\x69\x2e\x74\x79\x70\x65\x2e\x5f\x5f\x61\x73\x79\x6e\x63\x4c\x6f\x61\x64\x65\x72\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x65\x66\x69\x6e\x65\x41\x73\x79\x6e\x63\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x7b\x20\x6c\x6f\x61\x64\x65\x72\x3a\x20\x73\x6f\x75\x72\x63\x65\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x0a\x20\x20\x20\x20\x6c\x6f\x61\x64\x65\x72\x2c\x0a\x20\x20\x20\x20\x6c\x6f\x61\x64\x69\x6e\x67\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x64\x65\x6c\x61\x79\x20\x3d\x20\x32\x30\x30\x2c\x0a\x20\x20\x20\x20\x74\x69\x6d\x65\x6f\x75\x74\x2c\x0a\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x69\x62\x6c\x65\x20\x3d\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x3a\x20\x75\x73\x65\x72\x4f\x6e\x45\x72\x72\x6f\x72\x0a\x20\x20\x7d\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x70\x65\x6e\x64\x69\x6e\x67\x52\x65\x71\x75\x65\x73\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x43\x6f\x6d\x70\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x74\x72\x69\x65\x73\x20\x3d\x20\x30\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x74\x72\x79\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x72\x69\x65\x73\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x52\x65\x71\x75\x65\x73\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x61\x64\x28\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x6f\x61\x64\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x74\x68\x69\x73\x52\x65\x71\x75\x65\x73\x74\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x65\x6e\x64\x69\x6e\x67\x52\x65\x71\x75\x65\x73\x74\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x52\x65\x71\x75\x65\x73\x74\x20\x3d\x20\x70\x65\x6e\x64\x69\x6e\x67\x52\x65\x71\x75\x65\x73\x74\x20\x3d\x20\x6c\x6f\x61\x64\x65\x72\x28\x29\x2e\x63\x61\x74\x63\x68\x28\x28\x65\x72\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x72\x72\x20\x3d\x20\x65\x72\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x45\x72\x72\x6f\x72\x20\x3f\x20\x65\x72\x72\x20\x3a\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x53\x74\x72\x69\x6e\x67\x28\x65\x72\x72\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x75\x73\x65\x72\x4f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x72\x6f\x6d\x69\x73\x65\x28\x28\x72\x65\x73\x6f\x6c\x76\x65\x32\x2c\x20\x72\x65\x6a\x65\x63\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x73\x65\x72\x52\x65\x74\x72\x79\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x28\x72\x65\x74\x72\x79\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x73\x65\x72\x46\x61\x69\x6c\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x72\x65\x6a\x65\x63\x74\x28\x65\x72\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x73\x65\x72\x4f\x6e\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x75\x73\x65\x72\x52\x65\x74\x72\x79\x2c\x20\x75\x73\x65\x72\x46\x61\x69\x6c\x2c\x20\x72\x65\x74\x72\x69\x65\x73\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x65\x72\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x2e\x74\x68\x65\x6e\x28\x28\x63\x6f\x6d\x70\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x52\x65\x71\x75\x65\x73\x74\x20\x21\x3d\x3d\x20\x70\x65\x6e\x64\x69\x6e\x67\x52\x65\x71\x75\x65\x73\x74\x20\x26\x26\x20\x70\x65\x6e\x64\x69\x6e\x67\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x65\x6e\x64\x69\x6e\x67\x52\x65\x71\x75\x65\x73\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x70\x20\x26\x26\x20\x28\x63\x6f\x6d\x70\x2e\x5f\x5f\x65\x73\x4d\x6f\x64\x75\x6c\x65\x20\x7c\x7c\x20\x63\x6f\x6d\x70\x5b\x53\x79\x6d\x62\x6f\x6c\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x54\x61\x67\x5d\x20\x3d\x3d\x3d\x20\x22\x4d\x6f\x64\x75\x6c\x65\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x70\x20\x3d\x20\x63\x6f\x6d\x70\x2e\x64\x65\x66\x61\x75\x6c\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x43\x6f\x6d\x70\x20\x3d\x20\x63\x6f\x6d\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x3b\x0a\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x66\x69\x6e\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x7b\x0a\x20\x20\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\x41\x73\x79\x6e\x63\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x57\x72\x61\x70\x70\x65\x72\x22\x2c\x0a\x20\x20\x20\x20\x5f\x5f\x61\x73\x79\x6e\x63\x4c\x6f\x61\x64\x65\x72\x3a\x20\x6c\x6f\x61\x64\x2c\x0a\x20\x20\x20\x20\x67\x65\x74\x20\x5f\x5f\x61\x73\x79\x6e\x63\x52\x65\x73\x6f\x6c\x76\x65\x64\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x43\x6f\x6d\x70\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x73\x65\x74\x75\x70\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x6f\x6c\x76\x65\x64\x43\x6f\x6d\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x6e\x65\x72\x43\x6f\x6d\x70\x28\x72\x65\x73\x6f\x6c\x76\x65\x64\x43\x6f\x6d\x70\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x45\x72\x72\x6f\x72\x20\x3d\x20\x28\x65\x72\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x52\x65\x71\x75\x65\x73\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x31\x33\x2c\x20\x21\x65\x72\x72\x6f\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x69\x62\x6c\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x7c\x7c\x20\x69\x73\x49\x6e\x53\x53\x52\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x6f\x61\x64\x28\x29\x2e\x74\x68\x65\x6e\x28\x28\x63\x6f\x6d\x70\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x6e\x65\x72\x43\x6f\x6d\x70\x28\x63\x6f\x6d\x70\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x63\x61\x74\x63\x68\x28\x28\x65\x72\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x65\x72\x72\x6f\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3f\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x65\x72\x72\x6f\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x3a\x20\x65\x72\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x6f\x61\x64\x65\x64\x20\x3d\x20\x72\x65\x66\x28\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x72\x72\x6f\x72\x20\x3d\x20\x72\x65\x66\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x6c\x61\x79\x65\x64\x20\x3d\x20\x72\x65\x66\x28\x21\x21\x64\x65\x6c\x61\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x6c\x61\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x61\x79\x65\x64\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x64\x65\x6c\x61\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x69\x6d\x65\x6f\x75\x74\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6c\x6f\x61\x64\x65\x64\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x21\x65\x72\x72\x6f\x72\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x72\x72\x20\x3d\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x41\x73\x79\x6e\x63\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x74\x69\x6d\x65\x64\x20\x6f\x75\x74\x20\x61\x66\x74\x65\x72\x20\x24\x7b\x74\x69\x6d\x65\x6f\x75\x74\x7d\x6d\x73\x2e\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x65\x72\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x69\x6d\x65\x6f\x75\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x6c\x6f\x61\x64\x28\x29\x2e\x74\x68\x65\x6e\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x6f\x61\x64\x65\x64\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x20\x26\x26\x20\x69\x73\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x2e\x76\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x4a\x6f\x62\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x2e\x75\x70\x64\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x63\x61\x74\x63\x68\x28\x28\x65\x72\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x65\x72\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x6f\x61\x64\x65\x64\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x43\x6f\x6d\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x6e\x65\x72\x43\x6f\x6d\x70\x28\x72\x65\x73\x6f\x6c\x76\x65\x64\x43\x6f\x6d\x70\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x65\x72\x72\x6f\x72\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x65\x72\x72\x6f\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x65\x72\x72\x6f\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x3a\x20\x65\x72\x72\x6f\x72\x2e\x76\x61\x6c\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6c\x6f\x61\x64\x69\x6e\x67\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x26\x26\x20\x21\x64\x65\x6c\x61\x79\x65\x64\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x6c\x6f\x61\x64\x69\x6e\x67\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x6e\x65\x72\x43\x6f\x6d\x70\x28\x63\x6f\x6d\x70\x2c\x20\x7b\x20\x76\x6e\x6f\x64\x65\x3a\x20\x7b\x20\x72\x65\x66\x3a\x20\x72\x65\x66\x32\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x7d\x20\x7d\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x63\x6f\x6d\x70\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x76\x6e\x6f\x64\x65\x2e\x72\x65\x66\x20\x3d\x20\x72\x65\x66\x32\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2e\x5f\x5f\x69\x73\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x49\x6d\x70\x6c\x20\x3d\x20\x7b\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x60\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x60\x2c\x0a\x20\x20\x5f\x5f\x69\x73\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x63\x6c\x75\x64\x65\x3a\x20\x5b\x53\x74\x72\x69\x6e\x67\x2c\x20\x52\x65\x67\x45\x78\x70\x2c\x20\x41\x72\x72\x61\x79\x5d\x2c\x0a\x20\x20\x20\x20\x65\x78\x63\x6c\x75\x64\x65\x3a\x20\x5b\x53\x74\x72\x69\x6e\x67\x2c\x20\x52\x65\x67\x45\x78\x70\x2c\x20\x41\x72\x72\x61\x79\x5d\x2c\x0a\x20\x20\x20\x20\x6d\x61\x78\x3a\x20\x5b\x53\x74\x72\x69\x6e\x67\x2c\x20\x4e\x75\x6d\x62\x65\x72\x5d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x73\x65\x74\x75\x70\x28\x70\x72\x6f\x70\x73\x2c\x20\x7b\x20\x73\x6c\x6f\x74\x73\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x72\x65\x64\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x63\x74\x78\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x68\x61\x72\x65\x64\x43\x6f\x6e\x74\x65\x78\x74\x2e\x72\x65\x6e\x64\x65\x72\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x6c\x6f\x74\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x3a\x20\x7b\x20\x70\x3a\x20\x70\x61\x74\x63\x68\x2c\x20\x6d\x3a\x20\x6d\x6f\x76\x65\x2c\x20\x75\x6d\x3a\x20\x5f\x75\x6e\x6d\x6f\x75\x6e\x74\x2c\x20\x6f\x3a\x20\x7b\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x20\x7d\x20\x7d\x20\x7d\x20\x3d\x20\x73\x68\x61\x72\x65\x64\x43\x6f\x6e\x74\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x6f\x72\x61\x67\x65\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\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\x73\x68\x61\x72\x65\x64\x43\x6f\x6e\x74\x65\x78\x74\x2e\x61\x63\x74\x69\x76\x61\x74\x65\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x30\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x76\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x69\x73\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x41\x72\x72\x61\x79\x46\x6e\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x61\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x4d\x6f\x75\x6e\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x70\x61\x72\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x73\x68\x61\x72\x65\x64\x43\x6f\x6e\x74\x65\x78\x74\x2e\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x73\x74\x6f\x72\x61\x67\x65\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x31\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x64\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x41\x72\x72\x61\x79\x46\x6e\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x64\x61\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x70\x61\x72\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x32\x2e\x69\x73\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x65\x74\x53\x68\x61\x70\x65\x46\x6c\x61\x67\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x5f\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x76\x6e\x6f\x64\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x72\x75\x6e\x65\x43\x61\x63\x68\x65\x28\x66\x69\x6c\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x63\x68\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6b\x65\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x61\x6d\x65\x20\x3d\x20\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x4e\x61\x6d\x65\x28\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x61\x6d\x65\x20\x26\x26\x20\x28\x21\x66\x69\x6c\x74\x65\x72\x20\x7c\x7c\x20\x21\x66\x69\x6c\x74\x65\x72\x28\x6e\x61\x6d\x65\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x75\x6e\x65\x43\x61\x63\x68\x65\x45\x6e\x74\x72\x79\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x72\x75\x6e\x65\x43\x61\x63\x68\x65\x45\x6e\x74\x72\x79\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x64\x20\x3d\x20\x63\x61\x63\x68\x65\x2e\x67\x65\x74\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x75\x72\x72\x65\x6e\x74\x20\x7c\x7c\x20\x63\x61\x63\x68\x65\x64\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x63\x61\x63\x68\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x75\x72\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x65\x74\x53\x68\x61\x70\x65\x46\x6c\x61\x67\x28\x63\x75\x72\x72\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x63\x68\x65\x2e\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x73\x2e\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x77\x61\x74\x63\x68\x28\x28\x29\x20\x3d\x3e\x20\x5b\x70\x72\x6f\x70\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x2c\x20\x70\x72\x6f\x70\x73\x2e\x65\x78\x63\x6c\x75\x64\x65\x5d\x2c\x20\x28\x5b\x69\x6e\x63\x6c\x75\x64\x65\x2c\x20\x65\x78\x63\x6c\x75\x64\x65\x5d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x63\x6c\x75\x64\x65\x20\x26\x26\x20\x70\x72\x75\x6e\x65\x43\x61\x63\x68\x65\x28\x28\x6e\x61\x6d\x65\x29\x20\x3d\x3e\x20\x6d\x61\x74\x63\x68\x65\x73\x28\x69\x6e\x63\x6c\x75\x64\x65\x2c\x20\x6e\x61\x6d\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x78\x63\x6c\x75\x64\x65\x20\x26\x26\x20\x70\x72\x75\x6e\x65\x43\x61\x63\x68\x65\x28\x28\x6e\x61\x6d\x65\x29\x20\x3d\x3e\x20\x21\x6d\x61\x74\x63\x68\x65\x73\x28\x65\x78\x63\x6c\x75\x64\x65\x2c\x20\x6e\x61\x6d\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x7b\x20\x66\x6c\x75\x73\x68\x3a\x20\x22\x70\x6f\x73\x74\x22\x2c\x20\x64\x65\x65\x70\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x65\x6e\x64\x69\x6e\x67\x43\x61\x63\x68\x65\x4b\x65\x79\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x53\x75\x62\x74\x72\x65\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x65\x6e\x64\x69\x6e\x67\x43\x61\x63\x68\x65\x4b\x65\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x63\x68\x65\x2e\x73\x65\x74\x28\x70\x65\x6e\x64\x69\x6e\x67\x43\x61\x63\x68\x65\x4b\x65\x79\x2c\x20\x67\x65\x74\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x61\x63\x68\x65\x53\x75\x62\x74\x72\x65\x65\x29\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x55\x70\x64\x61\x74\x65\x64\x28\x63\x61\x63\x68\x65\x53\x75\x62\x74\x72\x65\x65\x29\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x63\x68\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x61\x63\x68\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x75\x62\x54\x72\x65\x65\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x67\x65\x74\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x28\x73\x75\x62\x54\x72\x65\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x61\x63\x68\x65\x64\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x65\x74\x53\x68\x61\x70\x65\x46\x6c\x61\x67\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x61\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x64\x61\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x61\x20\x26\x26\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x64\x61\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\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\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x63\x61\x63\x68\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x43\x61\x63\x68\x65\x4b\x65\x79\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x6c\x6f\x74\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x29\x20\x7b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x73\x6c\x6f\x74\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x56\x4e\x6f\x64\x65\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x69\x73\x56\x4e\x6f\x64\x65\x28\x72\x61\x77\x56\x4e\x6f\x64\x65\x29\x20\x7c\x7c\x20\x21\x28\x72\x61\x77\x56\x4e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x34\x29\x20\x26\x26\x20\x21\x28\x72\x61\x77\x56\x4e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x56\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x67\x65\x74\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x28\x72\x61\x77\x56\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x70\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x61\x6d\x65\x20\x3d\x20\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x4e\x61\x6d\x65\x28\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x20\x3f\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2e\x5f\x5f\x61\x73\x79\x6e\x63\x52\x65\x73\x6f\x6c\x76\x65\x64\x20\x7c\x7c\x20\x7b\x7d\x20\x3a\x20\x63\x6f\x6d\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x69\x6e\x63\x6c\x75\x64\x65\x2c\x20\x65\x78\x63\x6c\x75\x64\x65\x2c\x20\x6d\x61\x78\x20\x7d\x20\x3d\x20\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x63\x6c\x75\x64\x65\x20\x26\x26\x20\x28\x21\x6e\x61\x6d\x65\x20\x7c\x7c\x20\x21\x6d\x61\x74\x63\x68\x65\x73\x28\x69\x6e\x63\x6c\x75\x64\x65\x2c\x20\x6e\x61\x6d\x65\x29\x29\x20\x7c\x7c\x20\x65\x78\x63\x6c\x75\x64\x65\x20\x26\x26\x20\x6e\x61\x6d\x65\x20\x26\x26\x20\x6d\x61\x74\x63\x68\x65\x73\x28\x65\x78\x63\x6c\x75\x64\x65\x2c\x20\x6e\x61\x6d\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x56\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x6b\x65\x79\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x63\x6f\x6d\x70\x20\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x64\x56\x4e\x6f\x64\x65\x20\x3d\x20\x63\x61\x63\x68\x65\x2e\x67\x65\x74\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x61\x77\x56\x4e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x77\x56\x4e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x70\x65\x6e\x64\x69\x6e\x67\x43\x61\x63\x68\x65\x4b\x65\x79\x20\x3d\x20\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x61\x63\x68\x65\x64\x56\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x20\x3d\x20\x63\x61\x63\x68\x65\x64\x56\x4e\x6f\x64\x65\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x63\x61\x63\x68\x65\x64\x56\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x76\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7c\x3d\x20\x35\x31\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x73\x2e\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x73\x2e\x61\x64\x64\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x73\x2e\x61\x64\x64\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x78\x20\x26\x26\x20\x6b\x65\x79\x73\x2e\x73\x69\x7a\x65\x20\x3e\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6d\x61\x78\x2c\x20\x31\x30\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x75\x6e\x65\x43\x61\x63\x68\x65\x45\x6e\x74\x72\x79\x28\x6b\x65\x79\x73\x2e\x76\x61\x6c\x75\x65\x73\x28\x29\x2e\x6e\x65\x78\x74\x28\x29\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7c\x3d\x20\x32\x35\x36\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x56\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x20\x3d\x20\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x49\x6d\x70\x6c\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x61\x74\x63\x68\x65\x73\x28\x70\x61\x74\x74\x65\x72\x6e\x2c\x20\x6e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x70\x61\x74\x74\x65\x72\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x6f\x6d\x65\x28\x28\x70\x32\x29\x20\x3d\x3e\x20\x6d\x61\x74\x63\x68\x65\x73\x28\x70\x32\x2c\x20\x6e\x61\x6d\x65\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x70\x61\x74\x74\x65\x72\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x70\x6c\x69\x74\x28\x22\x2c\x22\x29\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x6e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x74\x65\x72\x6e\x2e\x74\x65\x73\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x74\x74\x65\x72\x6e\x2e\x74\x65\x73\x74\x28\x6e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x6e\x41\x63\x74\x69\x76\x61\x74\x65\x64\x28\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x48\x6f\x6f\x6b\x28\x68\x6f\x6f\x6b\x2c\x20\x22\x61\x22\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x6e\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x28\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x48\x6f\x6f\x6b\x28\x68\x6f\x6f\x6b\x2c\x20\x22\x64\x61\x22\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x48\x6f\x6f\x6b\x28\x68\x6f\x6f\x6b\x2c\x20\x74\x79\x70\x65\x2c\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x72\x61\x70\x70\x65\x64\x48\x6f\x6f\x6b\x20\x3d\x20\x68\x6f\x6f\x6b\x2e\x5f\x5f\x77\x64\x63\x20\x7c\x7c\x20\x28\x68\x6f\x6f\x6b\x2e\x5f\x5f\x77\x64\x63\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x75\x72\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x75\x72\x72\x65\x6e\x74\x2e\x69\x73\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x6f\x6f\x6b\x28\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x69\x6e\x6a\x65\x63\x74\x48\x6f\x6f\x6b\x28\x74\x79\x70\x65\x2c\x20\x77\x72\x61\x70\x70\x65\x64\x48\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x75\x72\x72\x65\x6e\x74\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x28\x63\x75\x72\x72\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x2e\x76\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6a\x65\x63\x74\x54\x6f\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x52\x6f\x6f\x74\x28\x77\x72\x61\x70\x70\x65\x64\x48\x6f\x6f\x6b\x2c\x20\x74\x79\x70\x65\x2c\x20\x74\x61\x72\x67\x65\x74\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x6a\x65\x63\x74\x54\x6f\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x52\x6f\x6f\x74\x28\x68\x6f\x6f\x6b\x2c\x20\x74\x79\x70\x65\x2c\x20\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x65\x70\x41\x6c\x69\x76\x65\x52\x6f\x6f\x74\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x20\x3d\x20\x69\x6e\x6a\x65\x63\x74\x48\x6f\x6f\x6b\x28\x74\x79\x70\x65\x2c\x20\x68\x6f\x6f\x6b\x2c\x20\x6b\x65\x65\x70\x41\x6c\x69\x76\x65\x52\x6f\x6f\x74\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x6f\x6e\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x28\x6b\x65\x65\x70\x41\x6c\x69\x76\x65\x52\x6f\x6f\x74\x5b\x74\x79\x70\x65\x5d\x2c\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x29\x3b\x0a\x20\x20\x7d\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x65\x74\x53\x68\x61\x70\x65\x46\x6c\x61\x67\x28\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x32\x35\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x2d\x3d\x20\x32\x35\x36\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x35\x31\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x2d\x3d\x20\x35\x31\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x3d\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x49\x6e\x6e\x65\x72\x43\x68\x69\x6c\x64\x28\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x20\x3f\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3a\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x6a\x65\x63\x74\x48\x6f\x6f\x6b\x28\x74\x79\x70\x65\x2c\x20\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x70\x72\x65\x70\x65\x6e\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x6f\x6f\x6b\x73\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x5b\x74\x79\x70\x65\x5d\x20\x7c\x7c\x20\x28\x74\x61\x72\x67\x65\x74\x5b\x74\x79\x70\x65\x5d\x20\x3d\x20\x5b\x5d\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x72\x61\x70\x70\x65\x64\x48\x6f\x6f\x6b\x20\x3d\x20\x68\x6f\x6f\x6b\x2e\x5f\x5f\x77\x65\x68\x20\x7c\x7c\x20\x28\x68\x6f\x6f\x6b\x2e\x5f\x5f\x77\x65\x68\x20\x3d\x20\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x75\x73\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x2c\x20\x74\x79\x70\x65\x2c\x20\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x65\x74\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x70\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x6f\x6b\x73\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x77\x72\x61\x70\x70\x65\x64\x48\x6f\x6f\x6b\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x6f\x6b\x73\x2e\x70\x75\x73\x68\x28\x77\x72\x61\x70\x70\x65\x64\x48\x6f\x6f\x6b\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x77\x72\x61\x70\x70\x65\x64\x48\x6f\x6f\x6b\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x28\x6c\x69\x66\x65\x63\x79\x63\x6c\x65\x29\x20\x3d\x3e\x20\x28\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x3d\x3e\x20\x28\x21\x69\x73\x49\x6e\x53\x53\x52\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x20\x7c\x7c\x20\x6c\x69\x66\x65\x63\x79\x63\x6c\x65\x20\x3d\x3d\x3d\x20\x22\x73\x70\x22\x29\x20\x26\x26\x20\x69\x6e\x6a\x65\x63\x74\x48\x6f\x6f\x6b\x28\x6c\x69\x66\x65\x63\x79\x63\x6c\x65\x2c\x20\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x62\x6d\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x4d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x6d\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x62\x75\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x55\x70\x64\x61\x74\x65\x64\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x75\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x62\x75\x6d\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x75\x6d\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x53\x65\x72\x76\x65\x72\x50\x72\x65\x66\x65\x74\x63\x68\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x73\x70\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x52\x65\x6e\x64\x65\x72\x54\x72\x69\x67\x67\x65\x72\x65\x64\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x72\x74\x67\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x52\x65\x6e\x64\x65\x72\x54\x72\x61\x63\x6b\x65\x64\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x6f\x6f\x6b\x28\x22\x72\x74\x63\x22\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x6e\x45\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x28\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x69\x6e\x6a\x65\x63\x74\x48\x6f\x6f\x6b\x28\x22\x65\x63\x22\x2c\x20\x68\x6f\x6f\x6b\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x73\x68\x6f\x75\x6c\x64\x43\x61\x63\x68\x65\x41\x63\x63\x65\x73\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x70\x70\x6c\x79\x4f\x70\x74\x69\x6f\x6e\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x4d\x65\x72\x67\x65\x64\x4f\x70\x74\x69\x6f\x6e\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x78\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x63\x74\x78\x3b\x0a\x20\x20\x73\x68\x6f\x75\x6c\x64\x43\x61\x63\x68\x65\x41\x63\x63\x65\x73\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x65\x66\x6f\x72\x65\x43\x72\x65\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x24\x31\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x65\x66\x6f\x72\x65\x43\x72\x65\x61\x74\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x22\x62\x63\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x0a\x20\x20\x20\x20\x64\x61\x74\x61\x3a\x20\x64\x61\x74\x61\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x3a\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x6d\x65\x74\x68\x6f\x64\x73\x2c\x0a\x20\x20\x20\x20\x77\x61\x74\x63\x68\x3a\x20\x77\x61\x74\x63\x68\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x3a\x20\x70\x72\x6f\x76\x69\x64\x65\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x69\x6e\x6a\x65\x63\x74\x3a\x20\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x2c\x0a\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x2c\x0a\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x61\x63\x74\x69\x76\x61\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x62\x65\x66\x6f\x72\x65\x44\x65\x73\x74\x72\x6f\x79\x2c\x0a\x20\x20\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x2c\x0a\x20\x20\x20\x20\x64\x65\x73\x74\x72\x6f\x79\x65\x64\x2c\x0a\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x2c\x0a\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x3a\x20\x72\x65\x6e\x64\x65\x72\x32\x2c\x0a\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x54\x72\x61\x63\x6b\x65\x64\x2c\x0a\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x54\x72\x69\x67\x67\x65\x72\x65\x64\x2c\x0a\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x2c\x0a\x20\x20\x20\x20\x73\x65\x72\x76\x65\x72\x50\x72\x65\x66\x65\x74\x63\x68\x2c\x0a\x20\x20\x20\x20\x65\x78\x70\x6f\x73\x65\x2c\x0a\x20\x20\x20\x20\x69\x6e\x68\x65\x72\x69\x74\x41\x74\x74\x72\x73\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x2c\x0a\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2c\x0a\x20\x20\x20\x20\x66\x69\x6c\x74\x65\x72\x73\x0a\x20\x20\x7d\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x65\x63\x6b\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x49\x6e\x6a\x65\x63\x74\x69\x6f\x6e\x73\x28\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x63\x74\x78\x2c\x20\x63\x68\x65\x63\x6b\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x75\x6e\x77\x72\x61\x70\x49\x6e\x6a\x65\x63\x74\x65\x64\x52\x65\x66\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6d\x65\x74\x68\x6f\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x6d\x65\x74\x68\x6f\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x74\x68\x6f\x64\x48\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x6d\x65\x74\x68\x6f\x64\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x65\x74\x68\x6f\x64\x48\x61\x6e\x64\x6c\x65\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x74\x78\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x6d\x65\x74\x68\x6f\x64\x48\x61\x6e\x64\x6c\x65\x72\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x64\x61\x74\x61\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x61\x74\x61\x20\x3d\x20\x64\x61\x74\x61\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x61\x6c\x6c\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x64\x61\x74\x61\x20\x3d\x20\x72\x65\x61\x63\x74\x69\x76\x65\x28\x64\x61\x74\x61\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x73\x68\x6f\x75\x6c\x64\x43\x61\x63\x68\x65\x41\x63\x63\x65\x73\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x70\x75\x74\x65\x64\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x20\x3d\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x32\x20\x3d\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x70\x74\x29\x20\x3f\x20\x6f\x70\x74\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x20\x3a\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x70\x74\x2e\x67\x65\x74\x29\x20\x3f\x20\x6f\x70\x74\x2e\x67\x65\x74\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x20\x3a\x20\x4e\x4f\x4f\x50\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x32\x20\x3d\x20\x21\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x70\x74\x29\x20\x26\x26\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x70\x74\x2e\x73\x65\x74\x29\x20\x3f\x20\x6f\x70\x74\x2e\x73\x65\x74\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x20\x3a\x20\x4e\x4f\x4f\x50\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x20\x3d\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x74\x3a\x20\x67\x65\x74\x32\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x3a\x20\x73\x65\x74\x32\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\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\x63\x74\x78\x2c\x20\x6b\x65\x79\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x74\x3a\x20\x28\x29\x20\x3d\x3e\x20\x63\x2e\x76\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x3a\x20\x28\x76\x29\x20\x3d\x3e\x20\x63\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x77\x61\x74\x63\x68\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x77\x61\x74\x63\x68\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x57\x61\x74\x63\x68\x65\x72\x28\x77\x61\x74\x63\x68\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x6b\x65\x79\x5d\x2c\x20\x63\x74\x78\x2c\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x76\x69\x64\x65\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x3d\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x70\x72\x6f\x76\x69\x64\x65\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x3f\x20\x70\x72\x6f\x76\x69\x64\x65\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x61\x6c\x6c\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x20\x3a\x20\x70\x72\x6f\x76\x69\x64\x65\x4f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x20\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x6f\x77\x6e\x4b\x65\x79\x73\x28\x70\x72\x6f\x76\x69\x64\x65\x73\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x28\x6b\x65\x79\x2c\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x5b\x6b\x65\x79\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x72\x65\x61\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x24\x31\x28\x63\x72\x65\x61\x74\x65\x64\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x22\x63\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x72\x65\x67\x69\x73\x74\x65\x72\x2c\x20\x68\x6f\x6f\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x68\x6f\x6f\x6b\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x6f\x6b\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x5f\x68\x6f\x6f\x6b\x29\x20\x3d\x3e\x20\x72\x65\x67\x69\x73\x74\x65\x72\x28\x5f\x68\x6f\x6f\x6b\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x68\x6f\x6f\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x28\x68\x6f\x6f\x6b\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x42\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x2c\x20\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x4d\x6f\x75\x6e\x74\x65\x64\x2c\x20\x6d\x6f\x75\x6e\x74\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x2c\x20\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x55\x70\x64\x61\x74\x65\x64\x2c\x20\x75\x70\x64\x61\x74\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x41\x63\x74\x69\x76\x61\x74\x65\x64\x2c\x20\x61\x63\x74\x69\x76\x61\x74\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x2c\x20\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x45\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x2c\x20\x65\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x52\x65\x6e\x64\x65\x72\x54\x72\x61\x63\x6b\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x54\x72\x61\x63\x6b\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x52\x65\x6e\x64\x65\x72\x54\x72\x69\x67\x67\x65\x72\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x54\x72\x69\x67\x67\x65\x72\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x2c\x20\x62\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x2c\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x4c\x69\x66\x65\x63\x79\x63\x6c\x65\x48\x6f\x6f\x6b\x28\x6f\x6e\x53\x65\x72\x76\x65\x72\x50\x72\x65\x66\x65\x74\x63\x68\x2c\x20\x73\x65\x72\x76\x65\x72\x50\x72\x65\x66\x65\x74\x63\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x65\x78\x70\x6f\x73\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x78\x70\x6f\x73\x65\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x70\x6f\x73\x65\x64\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x64\x20\x7c\x7c\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x64\x20\x3d\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x78\x70\x6f\x73\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\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\x73\x65\x64\x2c\x20\x6b\x65\x79\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x74\x3a\x20\x28\x29\x20\x3d\x3e\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x5b\x6b\x65\x79\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x3a\x20\x28\x76\x61\x6c\x29\x20\x3d\x3e\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x64\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x6e\x64\x65\x72\x32\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x72\x65\x6e\x64\x65\x72\x20\x3d\x3d\x3d\x20\x4e\x4f\x4f\x50\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x72\x65\x6e\x64\x65\x72\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x68\x65\x72\x69\x74\x41\x74\x74\x72\x73\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x6e\x68\x65\x72\x69\x74\x41\x74\x74\x72\x73\x20\x3d\x20\x69\x6e\x68\x65\x72\x69\x74\x41\x74\x74\x72\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x29\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x49\x6e\x6a\x65\x63\x74\x69\x6f\x6e\x73\x28\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x63\x74\x78\x2c\x20\x63\x68\x65\x63\x6b\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x20\x3d\x20\x4e\x4f\x4f\x50\x2c\x20\x75\x6e\x77\x72\x61\x70\x52\x65\x66\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x49\x6e\x6a\x65\x63\x74\x28\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x20\x3d\x20\x69\x6e\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x6f\x70\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x20\x69\x6e\x20\x6f\x70\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x20\x3d\x20\x69\x6e\x6a\x65\x63\x74\x28\x6f\x70\x74\x2e\x66\x72\x6f\x6d\x20\x7c\x7c\x20\x6b\x65\x79\x2c\x20\x6f\x70\x74\x2e\x64\x65\x66\x61\x75\x6c\x74\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x20\x3d\x20\x69\x6e\x6a\x65\x63\x74\x28\x6f\x70\x74\x2e\x66\x72\x6f\x6d\x20\x7c\x7c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x20\x3d\x20\x69\x6e\x6a\x65\x63\x74\x28\x6f\x70\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x69\x6e\x6a\x65\x63\x74\x65\x64\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x75\x6e\x77\x72\x61\x70\x52\x65\x66\x29\x20\x7b\x0a\x20\x20\x20\x20\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\x63\x74\x78\x2c\x20\x6b\x65\x79\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x74\x3a\x20\x28\x29\x20\x3d\x3e\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x2e\x76\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x3a\x20\x28\x76\x29\x20\x3d\x3e\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x74\x78\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x24\x31\x28\x68\x6f\x6f\x6b\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x69\x73\x41\x72\x72\x61\x79\x28\x68\x6f\x6f\x6b\x29\x20\x3f\x20\x68\x6f\x6f\x6b\x2e\x6d\x61\x70\x28\x28\x68\x32\x29\x20\x3d\x3e\x20\x68\x32\x2e\x62\x69\x6e\x64\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x29\x29\x20\x3a\x20\x68\x6f\x6f\x6b\x2e\x62\x69\x6e\x64\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x29\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x79\x70\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x57\x61\x74\x63\x68\x65\x72\x28\x72\x61\x77\x2c\x20\x63\x74\x78\x2c\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x6b\x65\x79\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x2e\x22\x29\x20\x3f\x20\x63\x72\x65\x61\x74\x65\x50\x61\x74\x68\x47\x65\x74\x74\x65\x72\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x6b\x65\x79\x29\x20\x3a\x20\x28\x29\x20\x3d\x3e\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x72\x61\x77\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x63\x74\x78\x5b\x72\x61\x77\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x68\x61\x6e\x64\x6c\x65\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x61\x74\x63\x68\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x61\x77\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x77\x61\x74\x63\x68\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x72\x61\x77\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x72\x61\x77\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x72\x61\x77\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x61\x77\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x72\x29\x20\x3d\x3e\x20\x63\x72\x65\x61\x74\x65\x57\x61\x74\x63\x68\x65\x72\x28\x72\x2c\x20\x63\x74\x78\x2c\x20\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x2c\x20\x6b\x65\x79\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x61\x77\x2e\x68\x61\x6e\x64\x6c\x65\x72\x29\x20\x3f\x20\x72\x61\x77\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x62\x69\x6e\x64\x28\x70\x75\x62\x6c\x69\x63\x54\x68\x69\x73\x29\x20\x3a\x20\x63\x74\x78\x5b\x72\x61\x77\x2e\x68\x61\x6e\x64\x6c\x65\x72\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x68\x61\x6e\x64\x6c\x65\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x61\x74\x63\x68\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x2c\x20\x72\x61\x77\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x4d\x65\x72\x67\x65\x64\x4f\x70\x74\x69\x6f\x6e\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x61\x73\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6d\x69\x78\x69\x6e\x73\x2c\x20\x65\x78\x74\x65\x6e\x64\x73\x3a\x20\x65\x78\x74\x65\x6e\x64\x73\x4f\x70\x74\x69\x6f\x6e\x73\x20\x7d\x20\x3d\x20\x62\x61\x73\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6d\x69\x78\x69\x6e\x73\x3a\x20\x67\x6c\x6f\x62\x61\x6c\x4d\x69\x78\x69\x6e\x73\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x43\x61\x63\x68\x65\x3a\x20\x63\x61\x63\x68\x65\x2c\x20\x63\x6f\x6e\x66\x69\x67\x3a\x20\x7b\x20\x6f\x70\x74\x69\x6f\x6e\x4d\x65\x72\x67\x65\x53\x74\x72\x61\x74\x65\x67\x69\x65\x73\x20\x7d\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x64\x20\x3d\x20\x63\x61\x63\x68\x65\x2e\x67\x65\x74\x28\x62\x61\x73\x65\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x61\x63\x68\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x3d\x20\x63\x61\x63\x68\x65\x64\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x67\x6c\x6f\x62\x61\x6c\x4d\x69\x78\x69\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x21\x6d\x69\x78\x69\x6e\x73\x20\x26\x26\x20\x21\x65\x78\x74\x65\x6e\x64\x73\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x3d\x20\x62\x61\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x67\x6c\x6f\x62\x61\x6c\x4d\x69\x78\x69\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x67\x6c\x6f\x62\x61\x6c\x4d\x69\x78\x69\x6e\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6d\x29\x20\x3d\x3e\x20\x6d\x65\x72\x67\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x72\x65\x73\x6f\x6c\x76\x65\x64\x2c\x20\x6d\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x4d\x65\x72\x67\x65\x53\x74\x72\x61\x74\x65\x67\x69\x65\x73\x2c\x20\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6d\x65\x72\x67\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x72\x65\x73\x6f\x6c\x76\x65\x64\x2c\x20\x62\x61\x73\x65\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x4d\x65\x72\x67\x65\x53\x74\x72\x61\x74\x65\x67\x69\x65\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x61\x63\x68\x65\x2e\x73\x65\x74\x28\x62\x61\x73\x65\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x6f\x2c\x20\x66\x72\x6f\x6d\x2c\x20\x73\x74\x72\x61\x74\x73\x2c\x20\x61\x73\x4d\x69\x78\x69\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6d\x69\x78\x69\x6e\x73\x2c\x20\x65\x78\x74\x65\x6e\x64\x73\x3a\x20\x65\x78\x74\x65\x6e\x64\x73\x4f\x70\x74\x69\x6f\x6e\x73\x20\x7d\x20\x3d\x20\x66\x72\x6f\x6d\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x78\x74\x65\x6e\x64\x73\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x6d\x65\x72\x67\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x6f\x2c\x20\x65\x78\x74\x65\x6e\x64\x73\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x73\x74\x72\x61\x74\x73\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6d\x69\x78\x69\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x6d\x69\x78\x69\x6e\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6d\x29\x20\x3d\x3e\x20\x6d\x65\x72\x67\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x6f\x2c\x20\x6d\x2c\x20\x73\x74\x72\x61\x74\x73\x2c\x20\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x66\x72\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x73\x4d\x69\x78\x69\x6e\x20\x26\x26\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x65\x78\x70\x6f\x73\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x61\x74\x20\x3d\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x4f\x70\x74\x69\x6f\x6e\x4d\x65\x72\x67\x65\x53\x74\x72\x61\x74\x73\x5b\x6b\x65\x79\x5d\x20\x7c\x7c\x20\x73\x74\x72\x61\x74\x73\x20\x26\x26\x20\x73\x74\x72\x61\x74\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x6f\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x73\x74\x72\x61\x74\x20\x3f\x20\x73\x74\x72\x61\x74\x28\x74\x6f\x5b\x6b\x65\x79\x5d\x2c\x20\x66\x72\x6f\x6d\x5b\x6b\x65\x79\x5d\x29\x20\x3a\x20\x66\x72\x6f\x6d\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x6f\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x4f\x70\x74\x69\x6f\x6e\x4d\x65\x72\x67\x65\x53\x74\x72\x61\x74\x73\x20\x3d\x20\x7b\x0a\x20\x20\x64\x61\x74\x61\x3a\x20\x6d\x65\x72\x67\x65\x44\x61\x74\x61\x46\x6e\x2c\x0a\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x6d\x65\x72\x67\x65\x4f\x62\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x65\x6d\x69\x74\x73\x3a\x20\x6d\x65\x72\x67\x65\x4f\x62\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x6d\x65\x74\x68\x6f\x64\x73\x3a\x20\x6d\x65\x72\x67\x65\x4f\x62\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x4f\x62\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x43\x72\x65\x61\x74\x65\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x6d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x75\x70\x64\x61\x74\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x44\x65\x73\x74\x72\x6f\x79\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x64\x65\x73\x74\x72\x6f\x79\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x61\x63\x74\x69\x76\x61\x74\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x65\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x73\x65\x72\x76\x65\x72\x50\x72\x65\x66\x65\x74\x63\x68\x3a\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x3a\x20\x6d\x65\x72\x67\x65\x4f\x62\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3a\x20\x6d\x65\x72\x67\x65\x4f\x62\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x77\x61\x74\x63\x68\x3a\x20\x6d\x65\x72\x67\x65\x57\x61\x74\x63\x68\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x3a\x20\x6d\x65\x72\x67\x65\x44\x61\x74\x61\x46\x6e\x2c\x0a\x20\x20\x69\x6e\x6a\x65\x63\x74\x3a\x20\x6d\x65\x72\x67\x65\x49\x6e\x6a\x65\x63\x74\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x44\x61\x74\x61\x46\x6e\x28\x74\x6f\x2c\x20\x66\x72\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x66\x72\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x6f\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x6f\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x72\x6f\x6d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x64\x44\x61\x74\x61\x46\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x78\x74\x65\x6e\x64\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x6f\x29\x20\x3f\x20\x74\x6f\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x29\x20\x3a\x20\x74\x6f\x2c\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x66\x72\x6f\x6d\x29\x20\x3f\x20\x66\x72\x6f\x6d\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x29\x20\x3a\x20\x66\x72\x6f\x6d\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x49\x6e\x6a\x65\x63\x74\x28\x74\x6f\x2c\x20\x66\x72\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x65\x72\x67\x65\x4f\x62\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x49\x6e\x6a\x65\x63\x74\x28\x74\x6f\x29\x2c\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x49\x6e\x6a\x65\x63\x74\x28\x66\x72\x6f\x6d\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x49\x6e\x6a\x65\x63\x74\x28\x72\x61\x77\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x72\x61\x77\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x72\x61\x77\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x5b\x72\x61\x77\x5b\x69\x5d\x5d\x20\x3d\x20\x72\x61\x77\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x28\x74\x6f\x2c\x20\x66\x72\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x6f\x20\x3f\x20\x5b\x2e\x2e\x2e\x6e\x65\x77\x20\x53\x65\x74\x28\x5b\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x6f\x2c\x20\x66\x72\x6f\x6d\x29\x29\x5d\x20\x3a\x20\x66\x72\x6f\x6d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x4f\x62\x6a\x65\x63\x74\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x6f\x2c\x20\x66\x72\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x6f\x20\x3f\x20\x65\x78\x74\x65\x6e\x64\x28\x65\x78\x74\x65\x6e\x64\x28\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x2c\x20\x74\x6f\x29\x2c\x20\x66\x72\x6f\x6d\x29\x20\x3a\x20\x66\x72\x6f\x6d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x57\x61\x74\x63\x68\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x6f\x2c\x20\x66\x72\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x6f\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x72\x6f\x6d\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x66\x72\x6f\x6d\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x6f\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x72\x67\x65\x64\x20\x3d\x20\x65\x78\x74\x65\x6e\x64\x28\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x2c\x20\x74\x6f\x29\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x66\x72\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x6d\x65\x72\x67\x65\x64\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x6d\x65\x72\x67\x65\x41\x73\x41\x72\x72\x61\x79\x28\x74\x6f\x5b\x6b\x65\x79\x5d\x2c\x20\x66\x72\x6f\x6d\x5b\x6b\x65\x79\x5d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x65\x72\x67\x65\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x50\x72\x6f\x70\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x69\x73\x53\x74\x61\x74\x65\x66\x75\x6c\x2c\x20\x69\x73\x53\x53\x52\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x74\x74\x72\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x64\x65\x66\x28\x61\x74\x74\x72\x73\x2c\x20\x49\x6e\x74\x65\x72\x6e\x61\x6c\x4f\x62\x6a\x65\x63\x74\x4b\x65\x79\x2c\x20\x31\x29\x3b\x0a\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x44\x65\x66\x61\x75\x6c\x74\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x73\x65\x74\x46\x75\x6c\x6c\x50\x72\x6f\x70\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x61\x74\x74\x72\x73\x29\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x30\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x6b\x65\x79\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x61\x74\x65\x66\x75\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x20\x3d\x20\x69\x73\x53\x53\x52\x20\x3f\x20\x70\x72\x6f\x70\x73\x20\x3a\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x63\x74\x69\x76\x65\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x74\x79\x70\x65\x2e\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x20\x3d\x20\x61\x74\x74\x72\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x20\x3d\x20\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x74\x74\x72\x73\x20\x3d\x20\x61\x74\x74\x72\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x70\x64\x61\x74\x65\x50\x72\x6f\x70\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x72\x61\x77\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x72\x6f\x70\x73\x2c\x20\x61\x74\x74\x72\x73\x2c\x20\x76\x6e\x6f\x64\x65\x3a\x20\x7b\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x7d\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x43\x75\x72\x72\x65\x6e\x74\x50\x72\x6f\x70\x73\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x6f\x70\x74\x69\x6f\x6e\x73\x5d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x28\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x7c\x7c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3e\x20\x30\x29\x20\x26\x26\x20\x21\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x54\x6f\x55\x70\x64\x61\x74\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x70\x72\x6f\x70\x73\x54\x6f\x55\x70\x64\x61\x74\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6b\x65\x79\x20\x3d\x20\x70\x72\x6f\x70\x73\x54\x6f\x55\x70\x64\x61\x74\x65\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x69\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x4f\x77\x6e\x28\x61\x74\x74\x72\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\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\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x64\x4b\x65\x79\x20\x3d\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x5b\x63\x61\x6d\x65\x6c\x69\x7a\x65\x64\x4b\x65\x79\x5d\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x56\x61\x6c\x75\x65\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x72\x61\x77\x43\x75\x72\x72\x65\x6e\x74\x50\x72\x6f\x70\x73\x2c\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x64\x4b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x74\x46\x75\x6c\x6c\x50\x72\x6f\x70\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x61\x74\x74\x72\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6b\x65\x62\x61\x62\x4b\x65\x79\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x72\x61\x77\x43\x75\x72\x72\x65\x6e\x74\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x61\x77\x50\x72\x6f\x70\x73\x20\x7c\x7c\x20\x21\x68\x61\x73\x4f\x77\x6e\x28\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x29\x20\x26\x26\x20\x28\x28\x6b\x65\x62\x61\x62\x4b\x65\x79\x20\x3d\x20\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x6b\x65\x79\x29\x29\x20\x3d\x3d\x3d\x20\x6b\x65\x79\x20\x7c\x7c\x20\x21\x68\x61\x73\x4f\x77\x6e\x28\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x6b\x65\x62\x61\x62\x4b\x65\x79\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x61\x77\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x20\x26\x26\x20\x28\x72\x61\x77\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x72\x61\x77\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x5b\x6b\x65\x62\x61\x62\x4b\x65\x79\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x56\x61\x6c\x75\x65\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x72\x61\x77\x43\x75\x72\x72\x65\x6e\x74\x50\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x74\x74\x72\x73\x20\x21\x3d\x3d\x20\x72\x61\x77\x43\x75\x72\x72\x65\x6e\x74\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x61\x74\x74\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x61\x77\x50\x72\x6f\x70\x73\x20\x7c\x7c\x20\x21\x68\x61\x73\x4f\x77\x6e\x28\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x29\x20\x26\x26\x20\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x24\x31\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x22\x73\x65\x74\x22\x2c\x20\x22\x24\x61\x74\x74\x72\x73\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x46\x75\x6c\x6c\x50\x72\x6f\x70\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x61\x74\x74\x72\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x5d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x61\x77\x43\x61\x73\x74\x56\x61\x6c\x75\x65\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x61\x77\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x73\x65\x72\x76\x65\x64\x50\x72\x6f\x70\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x61\x6d\x65\x6c\x4b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x63\x61\x6d\x65\x6c\x4b\x65\x79\x20\x3d\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x6b\x65\x79\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x20\x7c\x7c\x20\x21\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x61\x6d\x65\x6c\x4b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x5b\x63\x61\x6d\x65\x6c\x4b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x72\x61\x77\x43\x61\x73\x74\x56\x61\x6c\x75\x65\x73\x20\x7c\x7c\x20\x28\x72\x61\x77\x43\x61\x73\x74\x56\x61\x6c\x75\x65\x73\x20\x3d\x20\x7b\x7d\x29\x29\x5b\x63\x61\x6d\x65\x6c\x4b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x69\x73\x45\x6d\x69\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x6b\x65\x79\x20\x69\x6e\x20\x61\x74\x74\x72\x73\x29\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x74\x72\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x43\x75\x72\x72\x65\x6e\x74\x50\x72\x6f\x70\x73\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x73\x74\x56\x61\x6c\x75\x65\x73\x20\x3d\x20\x72\x61\x77\x43\x61\x73\x74\x56\x61\x6c\x75\x65\x73\x20\x7c\x7c\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x56\x61\x6c\x75\x65\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x72\x61\x77\x43\x75\x72\x72\x65\x6e\x74\x50\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x2c\x20\x63\x61\x73\x74\x56\x61\x6c\x75\x65\x73\x5b\x6b\x65\x79\x5d\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x21\x68\x61\x73\x4f\x77\x6e\x28\x63\x61\x73\x74\x56\x61\x6c\x75\x65\x73\x2c\x20\x6b\x65\x79\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x41\x74\x74\x72\x73\x43\x68\x61\x6e\x67\x65\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x56\x61\x6c\x75\x65\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x73\x41\x62\x73\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x44\x65\x66\x61\x75\x6c\x74\x20\x3d\x20\x68\x61\x73\x4f\x77\x6e\x28\x6f\x70\x74\x2c\x20\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x44\x65\x66\x61\x75\x6c\x74\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x6f\x70\x74\x2e\x64\x65\x66\x61\x75\x6c\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x46\x75\x6e\x63\x74\x69\x6f\x6e\x20\x26\x26\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x72\x6f\x70\x73\x44\x65\x66\x61\x75\x6c\x74\x73\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x44\x65\x66\x61\x75\x6c\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x70\x72\x6f\x70\x73\x44\x65\x66\x61\x75\x6c\x74\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x70\x72\x6f\x70\x73\x44\x65\x66\x61\x75\x6c\x74\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x2e\x63\x61\x6c\x6c\x28\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x5b\x30\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x62\x73\x65\x6e\x74\x20\x26\x26\x20\x21\x68\x61\x73\x44\x65\x66\x61\x75\x6c\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x70\x74\x5b\x31\x5d\x20\x26\x26\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x22\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x6b\x65\x79\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x50\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x28\x63\x6f\x6d\x70\x2c\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2c\x20\x61\x73\x4d\x69\x78\x69\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x20\x3d\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x70\x72\x6f\x70\x73\x43\x61\x63\x68\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x64\x20\x3d\x20\x63\x61\x63\x68\x65\x2e\x67\x65\x74\x28\x63\x6f\x6d\x70\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x61\x63\x68\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x61\x63\x68\x65\x64\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x20\x3d\x20\x63\x6f\x6d\x70\x2e\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x45\x78\x74\x65\x6e\x64\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x6f\x6d\x70\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x74\x65\x6e\x64\x50\x72\x6f\x70\x73\x20\x3d\x20\x28\x72\x61\x77\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x61\x73\x45\x78\x74\x65\x6e\x64\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x70\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x73\x5d\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x50\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x28\x72\x61\x77\x32\x2c\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x64\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x2c\x20\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x2e\x70\x75\x73\x68\x28\x2e\x2e\x2e\x6b\x65\x79\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x73\x4d\x69\x78\x69\x6e\x20\x26\x26\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x6d\x69\x78\x69\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x6d\x69\x78\x69\x6e\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x65\x78\x74\x65\x6e\x64\x50\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x70\x2e\x65\x78\x74\x65\x6e\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x64\x50\x72\x6f\x70\x73\x28\x63\x6f\x6d\x70\x2e\x65\x78\x74\x65\x6e\x64\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x70\x2e\x6d\x69\x78\x69\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x70\x2e\x6d\x69\x78\x69\x6e\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x65\x78\x74\x65\x6e\x64\x50\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x72\x61\x77\x20\x26\x26\x20\x21\x68\x61\x73\x45\x78\x74\x65\x6e\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x63\x68\x65\x2e\x73\x65\x74\x28\x63\x6f\x6d\x70\x2c\x20\x45\x4d\x50\x54\x59\x5f\x41\x52\x52\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x45\x4d\x50\x54\x59\x5f\x41\x52\x52\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x72\x61\x77\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x72\x61\x77\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x4b\x65\x79\x20\x3d\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x72\x61\x77\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x69\x64\x61\x74\x65\x50\x72\x6f\x70\x4e\x61\x6d\x65\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x4b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x5b\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x4b\x65\x79\x5d\x20\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x72\x61\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x72\x61\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x4b\x65\x79\x20\x3d\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x69\x64\x61\x74\x65\x50\x72\x6f\x70\x4e\x61\x6d\x65\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x4b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x20\x3d\x20\x72\x61\x77\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x5b\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x4b\x65\x79\x5d\x20\x3d\x20\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x70\x74\x29\x20\x7c\x7c\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x70\x74\x29\x20\x3f\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x6f\x70\x74\x20\x7d\x20\x3a\x20\x6f\x70\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x6f\x6f\x6c\x65\x61\x6e\x49\x6e\x64\x65\x78\x20\x3d\x20\x67\x65\x74\x54\x79\x70\x65\x49\x6e\x64\x65\x78\x28\x42\x6f\x6f\x6c\x65\x61\x6e\x2c\x20\x70\x72\x6f\x70\x2e\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x69\x6e\x67\x49\x6e\x64\x65\x78\x20\x3d\x20\x67\x65\x74\x54\x79\x70\x65\x49\x6e\x64\x65\x78\x28\x53\x74\x72\x69\x6e\x67\x2c\x20\x70\x72\x6f\x70\x2e\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x5b\x30\x5d\x20\x3d\x20\x62\x6f\x6f\x6c\x65\x61\x6e\x49\x6e\x64\x65\x78\x20\x3e\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x5b\x31\x5d\x20\x3d\x20\x73\x74\x72\x69\x6e\x67\x49\x6e\x64\x65\x78\x20\x3c\x20\x30\x20\x7c\x7c\x20\x62\x6f\x6f\x6c\x65\x61\x6e\x49\x6e\x64\x65\x78\x20\x3c\x20\x73\x74\x72\x69\x6e\x67\x49\x6e\x64\x65\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x6f\x6f\x6c\x65\x61\x6e\x49\x6e\x64\x65\x78\x20\x3e\x20\x2d\x31\x20\x7c\x7c\x20\x68\x61\x73\x4f\x77\x6e\x28\x70\x72\x6f\x70\x2c\x20\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x2e\x70\x75\x73\x68\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x4b\x65\x79\x29\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x5b\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x2c\x20\x6e\x65\x65\x64\x43\x61\x73\x74\x4b\x65\x79\x73\x5d\x3b\x0a\x20\x20\x63\x61\x63\x68\x65\x2e\x73\x65\x74\x28\x63\x6f\x6d\x70\x2c\x20\x72\x65\x73\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x76\x61\x6c\x69\x64\x61\x74\x65\x50\x72\x6f\x70\x4e\x61\x6d\x65\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x22\x24\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x54\x79\x70\x65\x28\x63\x74\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x63\x74\x6f\x72\x20\x26\x26\x20\x63\x74\x6f\x72\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x6d\x61\x74\x63\x68\x28\x2f\x5e\x5c\x73\x2a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x28\x5c\x77\x2b\x29\x2f\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x74\x63\x68\x20\x3f\x20\x6d\x61\x74\x63\x68\x5b\x31\x5d\x20\x3a\x20\x63\x74\x6f\x72\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x22\x6e\x75\x6c\x6c\x22\x20\x3a\x20\x22\x22\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x53\x61\x6d\x65\x54\x79\x70\x65\x28\x61\x2c\x20\x62\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x54\x79\x70\x65\x28\x61\x29\x20\x3d\x3d\x3d\x20\x67\x65\x74\x54\x79\x70\x65\x28\x62\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x54\x79\x70\x65\x49\x6e\x64\x65\x78\x28\x74\x79\x70\x65\x2c\x20\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x73\x2e\x66\x69\x6e\x64\x49\x6e\x64\x65\x78\x28\x28\x74\x29\x20\x3d\x3e\x20\x69\x73\x53\x61\x6d\x65\x54\x79\x70\x65\x28\x74\x2c\x20\x74\x79\x70\x65\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x53\x61\x6d\x65\x54\x79\x70\x65\x28\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x73\x2c\x20\x74\x79\x70\x65\x29\x20\x3f\x20\x30\x20\x3a\x20\x2d\x31\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x31\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x49\x6e\x74\x65\x72\x6e\x61\x6c\x4b\x65\x79\x20\x3d\x20\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x6b\x65\x79\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x5f\x22\x20\x7c\x7c\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x24\x73\x74\x61\x62\x6c\x65\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x6c\x6f\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x76\x61\x6c\x75\x65\x2e\x6d\x61\x70\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x29\x20\x3a\x20\x5b\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x29\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x6c\x6f\x74\x20\x3d\x20\x28\x6b\x65\x79\x2c\x20\x72\x61\x77\x53\x6c\x6f\x74\x2c\x20\x63\x74\x78\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x77\x69\x74\x68\x43\x74\x78\x28\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x6c\x6f\x74\x56\x61\x6c\x75\x65\x28\x72\x61\x77\x53\x6c\x6f\x74\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x29\x3b\x0a\x20\x20\x7d\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x2e\x5f\x63\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x4f\x62\x6a\x65\x63\x74\x53\x6c\x6f\x74\x73\x20\x3d\x20\x28\x72\x61\x77\x53\x6c\x6f\x74\x73\x2c\x20\x73\x6c\x6f\x74\x73\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x78\x20\x3d\x20\x72\x61\x77\x53\x6c\x6f\x74\x73\x2e\x5f\x63\x74\x78\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x72\x61\x77\x53\x6c\x6f\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x49\x6e\x74\x65\x72\x6e\x61\x6c\x4b\x65\x79\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x72\x61\x77\x53\x6c\x6f\x74\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x6c\x6f\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x6c\x6f\x74\x56\x61\x6c\x75\x65\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x53\x6c\x6f\x74\x73\x20\x3d\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x6c\x6f\x74\x56\x61\x6c\x75\x65\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x6c\x6f\x74\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x69\x74\x53\x6c\x6f\x74\x73\x20\x3d\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x33\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x79\x70\x65\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x5f\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x6c\x6f\x74\x73\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x22\x5f\x22\x2c\x20\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x4f\x62\x6a\x65\x63\x74\x53\x6c\x6f\x74\x73\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x6c\x6f\x74\x73\x20\x3d\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x6c\x6f\x74\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x53\x6c\x6f\x74\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x64\x65\x66\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x6c\x6f\x74\x73\x2c\x20\x49\x6e\x74\x65\x72\x6e\x61\x6c\x4f\x62\x6a\x65\x63\x74\x4b\x65\x79\x2c\x20\x31\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x75\x70\x64\x61\x74\x65\x53\x6c\x6f\x74\x73\x20\x3d\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x6e\x6f\x64\x65\x2c\x20\x73\x6c\x6f\x74\x73\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6e\x65\x65\x64\x44\x65\x6c\x65\x74\x69\x6f\x6e\x43\x68\x65\x63\x6b\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x64\x65\x6c\x65\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x61\x72\x69\x73\x6f\x6e\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x33\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x79\x70\x65\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x5f\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x26\x26\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x65\x64\x44\x65\x6c\x65\x74\x69\x6f\x6e\x43\x68\x65\x63\x6b\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x78\x74\x65\x6e\x64\x28\x73\x6c\x6f\x74\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x26\x26\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x73\x6c\x6f\x74\x73\x2e\x5f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x65\x64\x44\x65\x6c\x65\x74\x69\x6f\x6e\x43\x68\x65\x63\x6b\x20\x3d\x20\x21\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x24\x73\x74\x61\x62\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x4f\x62\x6a\x65\x63\x74\x53\x6c\x6f\x74\x73\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x73\x6c\x6f\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x61\x72\x69\x73\x6f\x6e\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x53\x6c\x6f\x74\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x61\x72\x69\x73\x6f\x6e\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x7b\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x31\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6e\x65\x65\x64\x44\x65\x6c\x65\x74\x69\x6f\x6e\x43\x68\x65\x63\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x73\x6c\x6f\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x49\x6e\x74\x65\x72\x6e\x61\x6c\x4b\x65\x79\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x21\x28\x6b\x65\x79\x20\x69\x6e\x20\x64\x65\x6c\x65\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x61\x72\x69\x73\x6f\x6e\x54\x61\x72\x67\x65\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x73\x6c\x6f\x74\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x69\x74\x68\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x28\x76\x6e\x6f\x64\x65\x2c\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x74\x65\x72\x6e\x61\x6c\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x67\x65\x74\x45\x78\x70\x6f\x73\x65\x50\x72\x6f\x78\x79\x28\x69\x6e\x74\x65\x72\x6e\x61\x6c\x49\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7c\x7c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x69\x6e\x64\x69\x6e\x67\x73\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x64\x69\x72\x73\x20\x7c\x7c\x20\x28\x76\x6e\x6f\x64\x65\x2e\x64\x69\x72\x73\x20\x3d\x20\x5b\x5d\x29\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x5b\x64\x69\x72\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x61\x72\x67\x2c\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x20\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x5d\x20\x3d\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x64\x69\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x69\x72\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x64\x69\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x64\x3a\x20\x64\x69\x72\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x72\x2e\x64\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x76\x65\x72\x73\x65\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x62\x69\x6e\x64\x69\x6e\x67\x73\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x69\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x0a\x20\x20\x20\x20\x20\x20\x61\x72\x67\x2c\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x6e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x69\x6e\x64\x69\x6e\x67\x73\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x64\x69\x72\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x42\x69\x6e\x64\x69\x6e\x67\x73\x20\x3d\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x20\x26\x26\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x2e\x64\x69\x72\x73\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x62\x69\x6e\x64\x69\x6e\x67\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x69\x6e\x64\x69\x6e\x67\x20\x3d\x20\x62\x69\x6e\x64\x69\x6e\x67\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6c\x64\x42\x69\x6e\x64\x69\x6e\x67\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x62\x69\x6e\x64\x69\x6e\x67\x2e\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x3d\x20\x6f\x6c\x64\x42\x69\x6e\x64\x69\x6e\x67\x73\x5b\x69\x5d\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x68\x6f\x6f\x6b\x20\x3d\x20\x62\x69\x6e\x64\x69\x6e\x67\x2e\x64\x69\x72\x5b\x6e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x68\x6f\x6f\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x75\x73\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x68\x6f\x6f\x6b\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x38\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x0a\x20\x20\x20\x20\x20\x20\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x65\x74\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x61\x70\x70\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x73\x4e\x61\x74\x69\x76\x65\x54\x61\x67\x3a\x20\x4e\x4f\x2c\x0a\x20\x20\x20\x20\x20\x20\x70\x65\x72\x66\x6f\x72\x6d\x61\x6e\x63\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x67\x6c\x6f\x62\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x3a\x20\x7b\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x4d\x65\x72\x67\x65\x53\x74\x72\x61\x74\x65\x67\x69\x65\x73\x3a\x20\x7b\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x0a\x20\x20\x20\x20\x20\x20\x77\x61\x72\x6e\x48\x61\x6e\x64\x6c\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x70\x69\x6c\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6d\x69\x78\x69\x6e\x73\x3a\x20\x5b\x5d\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x3a\x20\x7b\x7d\x2c\x0a\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3a\x20\x7b\x7d\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x2c\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x43\x61\x63\x68\x65\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x43\x61\x63\x68\x65\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x2c\x0a\x20\x20\x20\x20\x65\x6d\x69\x74\x73\x43\x61\x63\x68\x65\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x75\x69\x64\x20\x3d\x20\x30\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x41\x50\x49\x28\x72\x65\x6e\x64\x65\x72\x32\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x32\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x32\x28\x72\x6f\x6f\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x72\x6f\x6f\x74\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x6f\x6f\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x6f\x6f\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x72\x6f\x6f\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x6f\x6f\x74\x50\x72\x6f\x70\x73\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x21\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x72\x6f\x6f\x74\x50\x72\x6f\x70\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x6f\x6f\x74\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x50\x6c\x75\x67\x69\x6e\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x32\x20\x3d\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e\x61\x70\x70\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x5f\x75\x69\x64\x3a\x20\x75\x69\x64\x2b\x2b\x2c\x0a\x20\x20\x20\x20\x20\x20\x5f\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3a\x20\x72\x6f\x6f\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x5f\x70\x72\x6f\x70\x73\x3a\x20\x72\x6f\x6f\x74\x50\x72\x6f\x70\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x5f\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x20\x20\x5f\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x63\x6f\x6e\x74\x65\x78\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x5f\x69\x6e\x73\x74\x61\x6e\x63\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x67\x65\x74\x20\x63\x6f\x6e\x66\x69\x67\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x20\x63\x6f\x6e\x66\x69\x67\x28\x76\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x75\x73\x65\x28\x70\x6c\x75\x67\x69\x6e\x2c\x20\x2e\x2e\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x50\x6c\x75\x67\x69\x6e\x73\x2e\x68\x61\x73\x28\x70\x6c\x75\x67\x69\x6e\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x70\x6c\x75\x67\x69\x6e\x20\x26\x26\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x70\x6c\x75\x67\x69\x6e\x2e\x69\x6e\x73\x74\x61\x6c\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x50\x6c\x75\x67\x69\x6e\x73\x2e\x61\x64\x64\x28\x70\x6c\x75\x67\x69\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6c\x75\x67\x69\x6e\x2e\x69\x6e\x73\x74\x61\x6c\x6c\x28\x61\x70\x70\x32\x2c\x20\x2e\x2e\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x70\x6c\x75\x67\x69\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x50\x6c\x75\x67\x69\x6e\x73\x2e\x61\x64\x64\x28\x70\x6c\x75\x67\x69\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6c\x75\x67\x69\x6e\x28\x61\x70\x70\x32\x2c\x20\x2e\x2e\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x70\x70\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x6d\x69\x78\x69\x6e\x28\x6d\x69\x78\x69\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x6f\x6e\x74\x65\x78\x74\x2e\x6d\x69\x78\x69\x6e\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x6d\x69\x78\x69\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e\x6d\x69\x78\x69\x6e\x73\x2e\x70\x75\x73\x68\x28\x6d\x69\x78\x69\x6e\x29\x3b\x0a\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\x61\x70\x70\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6e\x61\x6d\x65\x2c\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x5b\x6e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x5b\x6e\x61\x6d\x65\x5d\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x70\x70\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x28\x6e\x61\x6d\x65\x2c\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x69\x72\x65\x63\x74\x69\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x5b\x6e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x5b\x6e\x61\x6d\x65\x5d\x20\x3d\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x70\x70\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x28\x72\x6f\x6f\x74\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x69\x73\x48\x79\x64\x72\x61\x74\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x72\x6f\x6f\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x72\x6f\x6f\x74\x50\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x63\x6f\x6e\x74\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x48\x79\x64\x72\x61\x74\x65\x20\x26\x26\x20\x68\x79\x64\x72\x61\x74\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x79\x64\x72\x61\x74\x65\x32\x28\x76\x6e\x6f\x64\x65\x2c\x20\x72\x6f\x6f\x74\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x32\x28\x76\x6e\x6f\x64\x65\x2c\x20\x72\x6f\x6f\x74\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x70\x70\x32\x2e\x5f\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x72\x6f\x6f\x74\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x6f\x6f\x74\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x5f\x5f\x76\x75\x65\x5f\x61\x70\x70\x5f\x5f\x20\x3d\x20\x61\x70\x70\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x45\x78\x70\x6f\x73\x65\x50\x72\x6f\x78\x79\x28\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7c\x7c\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x70\x72\x6f\x78\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x32\x28\x6e\x75\x6c\x6c\x2c\x20\x61\x70\x70\x32\x2e\x5f\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x70\x70\x32\x2e\x5f\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x5f\x5f\x76\x75\x65\x5f\x61\x70\x70\x5f\x5f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e\x70\x72\x6f\x76\x69\x64\x65\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x70\x70\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x70\x70\x32\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x52\x65\x66\x28\x72\x61\x77\x52\x65\x66\x2c\x20\x6f\x6c\x64\x52\x61\x77\x52\x65\x66\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x72\x61\x77\x52\x65\x66\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x61\x77\x52\x65\x66\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x72\x2c\x20\x69\x29\x20\x3d\x3e\x20\x73\x65\x74\x52\x65\x66\x28\x72\x2c\x20\x6f\x6c\x64\x52\x61\x77\x52\x65\x66\x20\x26\x26\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x6c\x64\x52\x61\x77\x52\x65\x66\x29\x20\x3f\x20\x6f\x6c\x64\x52\x61\x77\x52\x65\x66\x5b\x69\x5d\x20\x3a\x20\x6f\x6c\x64\x52\x61\x77\x52\x65\x66\x29\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x29\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x20\x26\x26\x20\x21\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x66\x56\x61\x6c\x75\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x34\x20\x3f\x20\x67\x65\x74\x45\x78\x70\x6f\x73\x65\x50\x72\x6f\x78\x79\x28\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7c\x7c\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x70\x72\x6f\x78\x79\x20\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x72\x65\x66\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x69\x3a\x20\x6f\x77\x6e\x65\x72\x2c\x20\x72\x3a\x20\x72\x65\x66\x32\x20\x7d\x20\x3d\x20\x72\x61\x77\x52\x65\x66\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x52\x65\x66\x20\x3d\x20\x6f\x6c\x64\x52\x61\x77\x52\x65\x66\x20\x26\x26\x20\x6f\x6c\x64\x52\x61\x77\x52\x65\x66\x2e\x72\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x66\x73\x20\x3d\x20\x6f\x77\x6e\x65\x72\x2e\x72\x65\x66\x73\x20\x3d\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x3f\x20\x6f\x77\x6e\x65\x72\x2e\x72\x65\x66\x73\x20\x3d\x20\x7b\x7d\x20\x3a\x20\x6f\x77\x6e\x65\x72\x2e\x72\x65\x66\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x20\x3d\x20\x6f\x77\x6e\x65\x72\x2e\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x6c\x64\x52\x65\x66\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6f\x6c\x64\x52\x65\x66\x20\x21\x3d\x3d\x20\x72\x65\x66\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x6f\x6c\x64\x52\x65\x66\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x66\x73\x5b\x6f\x6c\x64\x52\x65\x66\x5d\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x4f\x77\x6e\x28\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x6f\x6c\x64\x52\x65\x66\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x5b\x6f\x6c\x64\x52\x65\x66\x5d\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x6f\x6c\x64\x52\x65\x66\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6c\x64\x52\x65\x66\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x65\x66\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x72\x65\x66\x32\x2c\x20\x6f\x77\x6e\x65\x72\x2c\x20\x31\x32\x2c\x20\x5b\x76\x61\x6c\x75\x65\x2c\x20\x72\x65\x66\x73\x5d\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x69\x73\x53\x74\x72\x69\x6e\x67\x20\x3d\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x72\x65\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x69\x73\x52\x65\x66\x20\x3d\x20\x69\x73\x52\x65\x66\x28\x72\x65\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x5f\x69\x73\x53\x74\x72\x69\x6e\x67\x20\x7c\x7c\x20\x5f\x69\x73\x52\x65\x66\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x53\x65\x74\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x61\x77\x52\x65\x66\x2e\x66\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x3d\x20\x5f\x69\x73\x53\x74\x72\x69\x6e\x67\x20\x3f\x20\x72\x65\x66\x73\x5b\x72\x65\x66\x32\x5d\x20\x3a\x20\x72\x65\x66\x32\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x41\x72\x72\x61\x79\x28\x65\x78\x69\x73\x74\x69\x6e\x67\x29\x20\x26\x26\x20\x72\x65\x6d\x6f\x76\x65\x28\x65\x78\x69\x73\x74\x69\x6e\x67\x2c\x20\x72\x65\x66\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x41\x72\x72\x61\x79\x28\x65\x78\x69\x73\x74\x69\x6e\x67\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x5f\x69\x73\x53\x74\x72\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x73\x5b\x72\x65\x66\x32\x5d\x20\x3d\x20\x5b\x72\x65\x66\x56\x61\x6c\x75\x65\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x4f\x77\x6e\x28\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x72\x65\x66\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x5b\x72\x65\x66\x32\x5d\x20\x3d\x20\x72\x65\x66\x73\x5b\x72\x65\x66\x32\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\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x32\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x5b\x72\x65\x66\x56\x61\x6c\x75\x65\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x61\x77\x52\x65\x66\x2e\x6b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x73\x5b\x72\x61\x77\x52\x65\x66\x2e\x6b\x5d\x20\x3d\x20\x72\x65\x66\x32\x2e\x76\x61\x6c\x75\x65\x3b\x0a\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\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x65\x78\x69\x73\x74\x69\x6e\x67\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x72\x65\x66\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x2e\x70\x75\x73\x68\x28\x72\x65\x66\x56\x61\x6c\x75\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x5f\x69\x73\x53\x74\x72\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x73\x5b\x72\x65\x66\x32\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x4f\x77\x6e\x28\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x72\x65\x66\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x5b\x72\x65\x66\x32\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x52\x65\x66\x28\x72\x65\x66\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x32\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x61\x77\x52\x65\x66\x2e\x6b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x73\x5b\x72\x61\x77\x52\x65\x66\x2e\x6b\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x53\x65\x74\x2e\x69\x64\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x64\x6f\x53\x65\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x53\x65\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x6c\x65\x74\x20\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x56\x47\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x20\x3d\x3e\x20\x2f\x73\x76\x67\x2f\x2e\x74\x65\x73\x74\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x55\x52\x49\x29\x20\x26\x26\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x74\x61\x67\x4e\x61\x6d\x65\x20\x21\x3d\x3d\x20\x22\x66\x6f\x72\x65\x69\x67\x6e\x4f\x62\x6a\x65\x63\x74\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x6e\x6f\x64\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x38\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x46\x75\x6e\x63\x74\x69\x6f\x6e\x73\x28\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6d\x74\x3a\x20\x6d\x6f\x75\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x3a\x20\x70\x61\x74\x63\x68\x2c\x20\x6f\x3a\x20\x7b\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x3a\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x32\x2c\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x2c\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x20\x72\x65\x6d\x6f\x76\x65\x3a\x20\x72\x65\x6d\x6f\x76\x65\x32\x2c\x20\x69\x6e\x73\x65\x72\x74\x2c\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x7d\x20\x7d\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x79\x64\x72\x61\x74\x65\x32\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x68\x61\x73\x43\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x28\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6c\x75\x73\x68\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x66\x6c\x75\x73\x68\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x26\x26\x20\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x65\x72\x72\x6f\x72\x28\x60\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x6c\x65\x74\x65\x64\x20\x62\x75\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x6d\x69\x73\x6d\x61\x74\x63\x68\x65\x73\x2e\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x20\x3d\x20\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x53\x74\x61\x72\x74\x20\x3d\x20\x69\x73\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x6e\x6f\x64\x65\x29\x20\x26\x26\x20\x6e\x6f\x64\x65\x2e\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x5b\x22\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x68\x61\x6e\x64\x6c\x65\x4d\x69\x73\x6d\x61\x74\x63\x68\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x69\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x53\x74\x61\x72\x74\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x2c\x20\x72\x65\x66\x3a\x20\x72\x65\x66\x32\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x6d\x54\x79\x70\x65\x20\x3d\x20\x6e\x6f\x64\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x54\x65\x78\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x6d\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6f\x6e\x4d\x69\x73\x6d\x61\x74\x63\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x2e\x64\x61\x74\x61\x20\x21\x3d\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x64\x61\x74\x61\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x6d\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x38\x20\x7c\x7c\x20\x69\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x53\x74\x61\x72\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6f\x6e\x4d\x69\x73\x6d\x61\x74\x63\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x74\x61\x74\x69\x63\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x6d\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6f\x6e\x4d\x69\x73\x6d\x61\x74\x63\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x65\x64\x54\x6f\x41\x64\x6f\x70\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x21\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x76\x6e\x6f\x64\x65\x2e\x73\x74\x61\x74\x69\x63\x43\x6f\x75\x6e\x74\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x65\x64\x54\x6f\x41\x64\x6f\x70\x74\x43\x6f\x6e\x74\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x2b\x3d\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x2e\x6f\x75\x74\x65\x72\x48\x54\x4d\x4c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3d\x3d\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x73\x74\x61\x74\x69\x63\x43\x6f\x75\x6e\x74\x20\x2d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x65\x78\x74\x4e\x6f\x64\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\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x65\x78\x74\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x53\x74\x61\x72\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6f\x6e\x4d\x69\x73\x6d\x61\x74\x63\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x6d\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x31\x20\x7c\x7c\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x20\x21\x3d\x3d\x20\x6e\x6f\x64\x65\x2e\x74\x61\x67\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6f\x6e\x4d\x69\x73\x6d\x61\x74\x63\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x3d\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x69\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x53\x74\x61\x72\x74\x20\x3f\x20\x6c\x6f\x63\x61\x74\x65\x43\x6c\x6f\x73\x69\x6e\x67\x41\x73\x79\x6e\x63\x41\x6e\x63\x68\x6f\x72\x28\x6e\x6f\x64\x65\x29\x20\x3a\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x75\x62\x54\x72\x65\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x53\x74\x61\x72\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x46\x72\x61\x67\x6d\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x62\x54\x72\x65\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3f\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x20\x3a\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x6e\x6f\x64\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x33\x20\x3f\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x56\x4e\x6f\x64\x65\x28\x22\x22\x29\x20\x3a\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x22\x64\x69\x76\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\x73\x75\x62\x54\x72\x65\x65\x2e\x65\x6c\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x73\x75\x62\x54\x72\x65\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x6d\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x6f\x6e\x4d\x69\x73\x6d\x61\x74\x63\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2e\x68\x79\x64\x72\x61\x74\x65\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2e\x68\x79\x64\x72\x61\x74\x65\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x28\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x29\x29\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x49\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x66\x32\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x52\x65\x66\x28\x72\x65\x66\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x79\x64\x72\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3d\x20\x28\x65\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x7c\x7c\x20\x21\x21\x76\x6e\x6f\x64\x65\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x64\x69\x72\x73\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6f\x72\x63\x65\x50\x61\x74\x63\x68\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x69\x6e\x70\x75\x74\x22\x20\x26\x26\x20\x64\x69\x72\x73\x20\x7c\x7c\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x70\x74\x69\x6f\x6e\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x66\x6f\x72\x63\x65\x50\x61\x74\x63\x68\x56\x61\x6c\x75\x65\x20\x7c\x7c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x63\x72\x65\x61\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x6f\x72\x63\x65\x50\x61\x74\x63\x68\x56\x61\x6c\x75\x65\x20\x7c\x7c\x20\x21\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x7c\x7c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x28\x31\x36\x20\x7c\x20\x33\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x6f\x72\x63\x65\x50\x61\x74\x63\x68\x56\x61\x6c\x75\x65\x20\x26\x26\x20\x6b\x65\x79\x2e\x65\x6e\x64\x73\x57\x69\x74\x68\x28\x22\x76\x61\x6c\x75\x65\x22\x29\x20\x7c\x7c\x20\x69\x73\x4f\x6e\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x21\x69\x73\x52\x65\x73\x65\x72\x76\x65\x64\x50\x72\x6f\x70\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x32\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x43\x6c\x69\x63\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x32\x28\x65\x6c\x2c\x20\x22\x6f\x6e\x43\x6c\x69\x63\x6b\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x43\x6c\x69\x63\x6b\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x73\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x73\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x4d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7c\x7c\x20\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x45\x66\x66\x65\x63\x74\x57\x69\x74\x68\x53\x75\x73\x70\x65\x6e\x73\x65\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x73\x20\x26\x26\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x73\x20\x26\x26\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x6d\x6f\x75\x6e\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x20\x26\x26\x20\x21\x28\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x28\x70\x72\x6f\x70\x73\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x7c\x7c\x20\x70\x72\x6f\x70\x73\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x65\x6c\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x65\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x75\x72\x20\x3d\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x6e\x65\x78\x74\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x32\x28\x63\x75\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x21\x3d\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x6c\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x79\x64\x72\x61\x74\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x28\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x7c\x7c\x20\x21\x21\x70\x61\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6c\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3f\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x20\x3a\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x54\x65\x78\x74\x20\x26\x26\x20\x21\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x79\x64\x72\x61\x74\x65\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x3d\x20\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x3a\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x3d\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x3f\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2e\x63\x6f\x6e\x63\x61\x74\x28\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x20\x3a\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x26\x26\x20\x69\x73\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x6e\x65\x78\x74\x29\x20\x26\x26\x20\x6e\x65\x78\x74\x2e\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x5d\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x65\x78\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x28\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x60\x5d\x60\x29\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x65\x78\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x6e\x64\x6c\x65\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x69\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x68\x61\x73\x4d\x69\x73\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x6c\x6f\x63\x61\x74\x65\x43\x6c\x6f\x73\x69\x6e\x67\x41\x73\x79\x6e\x63\x41\x6e\x63\x68\x6f\x72\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x32\x20\x3d\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x32\x20\x26\x26\x20\x6e\x65\x78\x74\x32\x20\x21\x3d\x3d\x20\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x32\x28\x6e\x65\x78\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x32\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x65\x78\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x6f\x63\x61\x74\x65\x43\x6c\x6f\x73\x69\x6e\x67\x41\x73\x79\x6e\x63\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x20\x3d\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x20\x26\x26\x20\x69\x73\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x2e\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x5b\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x74\x63\x68\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x2e\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x5d\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x74\x63\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x74\x63\x68\x2d\x2d\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x68\x79\x64\x72\x61\x74\x65\x32\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x5d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x20\x3d\x20\x71\x75\x65\x75\x65\x45\x66\x66\x65\x63\x74\x57\x69\x74\x68\x53\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x61\x73\x65\x43\x72\x65\x61\x74\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x61\x73\x65\x43\x72\x65\x61\x74\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x63\x72\x65\x61\x74\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x46\x75\x6e\x63\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x61\x73\x65\x43\x72\x65\x61\x74\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x63\x72\x65\x61\x74\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x46\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x67\x65\x74\x47\x6c\x6f\x62\x61\x6c\x54\x68\x69\x73\x28\x29\x3b\x0a\x20\x20\x74\x61\x72\x67\x65\x74\x2e\x5f\x5f\x56\x55\x45\x5f\x5f\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x69\x6e\x73\x65\x72\x74\x3a\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x2c\x20\x72\x65\x6d\x6f\x76\x65\x3a\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x2c\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x3a\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3a\x20\x68\x6f\x73\x74\x43\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x3a\x20\x68\x6f\x73\x74\x43\x72\x65\x61\x74\x65\x54\x65\x78\x74\x2c\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x3a\x20\x68\x6f\x73\x74\x43\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x73\x65\x74\x54\x65\x78\x74\x3a\x20\x68\x6f\x73\x74\x53\x65\x74\x54\x65\x78\x74\x2c\x20\x73\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x54\x65\x78\x74\x3a\x20\x68\x6f\x73\x74\x53\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x54\x65\x78\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3a\x20\x68\x6f\x73\x74\x50\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x3a\x20\x68\x6f\x73\x74\x4e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x2c\x20\x73\x65\x74\x53\x63\x6f\x70\x65\x49\x64\x3a\x20\x68\x6f\x73\x74\x53\x65\x74\x53\x63\x6f\x70\x65\x49\x64\x20\x3d\x20\x4e\x4f\x4f\x50\x2c\x20\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x3a\x20\x68\x6f\x73\x74\x43\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x2c\x20\x69\x6e\x73\x65\x72\x74\x53\x74\x61\x74\x69\x63\x43\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x53\x74\x61\x74\x69\x63\x43\x6f\x6e\x74\x65\x6e\x74\x20\x7d\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x74\x63\x68\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x53\x56\x47\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3d\x20\x21\x21\x6e\x32\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x3d\x20\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x26\x26\x20\x21\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x6e\x31\x2c\x20\x6e\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x67\x65\x74\x4e\x65\x78\x74\x48\x6f\x73\x74\x4e\x6f\x64\x65\x28\x6e\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x6e\x31\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x31\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3d\x3d\x3d\x20\x2d\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x2c\x20\x72\x65\x66\x3a\x20\x72\x65\x66\x32\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7d\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x54\x65\x78\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x54\x65\x78\x74\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x43\x6f\x6d\x6d\x65\x6e\x74\x4e\x6f\x64\x65\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x74\x61\x74\x69\x63\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x53\x74\x61\x74\x69\x63\x4e\x6f\x64\x65\x28\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x2e\x70\x72\x6f\x63\x65\x73\x73\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x2e\x70\x72\x6f\x63\x65\x73\x73\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x66\x32\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x52\x65\x66\x28\x72\x65\x66\x32\x2c\x20\x6e\x31\x20\x26\x26\x20\x6e\x31\x2e\x72\x65\x66\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x6e\x32\x20\x7c\x7c\x20\x6e\x31\x2c\x20\x21\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x54\x65\x78\x74\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x68\x6f\x73\x74\x43\x72\x65\x61\x74\x65\x54\x65\x78\x74\x28\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6c\x20\x3d\x20\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x6e\x31\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x21\x3d\x3d\x20\x6e\x31\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x53\x65\x74\x54\x65\x78\x74\x28\x65\x6c\x2c\x20\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x43\x6f\x6d\x6d\x65\x6e\x74\x4e\x6f\x64\x65\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x68\x6f\x73\x74\x43\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x7c\x7c\x20\x22\x22\x29\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x6e\x31\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x75\x6e\x74\x53\x74\x61\x74\x69\x63\x4e\x6f\x64\x65\x20\x3d\x20\x28\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x73\x53\x56\x47\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x5b\x6e\x32\x2e\x65\x6c\x2c\x20\x6e\x32\x2e\x61\x6e\x63\x68\x6f\x72\x5d\x20\x3d\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x53\x74\x61\x74\x69\x63\x43\x6f\x6e\x74\x65\x6e\x74\x28\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6e\x32\x2e\x65\x6c\x2c\x20\x6e\x32\x2e\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x76\x65\x53\x74\x61\x74\x69\x63\x4e\x6f\x64\x65\x20\x3d\x20\x28\x7b\x20\x65\x6c\x2c\x20\x61\x6e\x63\x68\x6f\x72\x20\x7d\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x65\x6c\x20\x26\x26\x20\x65\x6c\x20\x21\x3d\x3d\x20\x61\x6e\x63\x68\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x68\x6f\x73\x74\x4e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x65\x6c\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x20\x3d\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x61\x6e\x63\x68\x6f\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6d\x6f\x76\x65\x53\x74\x61\x74\x69\x63\x4e\x6f\x64\x65\x20\x3d\x20\x28\x7b\x20\x65\x6c\x2c\x20\x61\x6e\x63\x68\x6f\x72\x20\x7d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x65\x6c\x20\x26\x26\x20\x65\x6c\x20\x21\x3d\x3d\x20\x61\x6e\x63\x68\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x68\x6f\x73\x74\x4e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x20\x3d\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x28\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x73\x53\x56\x47\x20\x3d\x20\x69\x73\x53\x56\x47\x20\x7c\x7c\x20\x6e\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x73\x76\x67\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x75\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x65\x6c\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x69\x72\x73\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x20\x26\x26\x20\x68\x6f\x73\x74\x43\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x20\x3d\x20\x68\x6f\x73\x74\x43\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x20\x3d\x20\x68\x6f\x73\x74\x43\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x69\x73\x2c\x20\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x53\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x54\x65\x78\x74\x28\x65\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x65\x6c\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x20\x26\x26\x20\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x66\x6f\x72\x65\x69\x67\x6e\x4f\x62\x6a\x65\x63\x74\x22\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x63\x72\x65\x61\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x21\x3d\x3d\x20\x22\x76\x61\x6c\x75\x65\x22\x20\x26\x26\x20\x21\x69\x73\x52\x65\x73\x65\x72\x76\x65\x64\x50\x72\x6f\x70\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x22\x76\x61\x6c\x75\x65\x22\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x22\x76\x61\x6c\x75\x65\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x53\x63\x6f\x70\x65\x49\x64\x28\x65\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x73\x63\x6f\x70\x65\x49\x64\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x65\x64\x43\x61\x6c\x6c\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x20\x3d\x20\x28\x21\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x7c\x7c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x26\x26\x20\x21\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x29\x20\x26\x26\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x26\x26\x20\x21\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x70\x65\x72\x73\x69\x73\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x65\x64\x43\x61\x6c\x6c\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x62\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x65\x6c\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x4d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7c\x7c\x20\x6e\x65\x65\x64\x43\x61\x6c\x6c\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x20\x7c\x7c\x20\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x26\x26\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x65\x64\x43\x61\x6c\x6c\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x20\x26\x26\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x65\x6e\x74\x65\x72\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x73\x20\x26\x26\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x6d\x6f\x75\x6e\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x53\x63\x6f\x70\x65\x49\x64\x20\x3d\x20\x28\x65\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x73\x63\x6f\x70\x65\x49\x64\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x6f\x70\x65\x49\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x53\x65\x74\x53\x63\x6f\x70\x65\x49\x64\x28\x65\x6c\x2c\x20\x73\x63\x6f\x70\x65\x49\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x53\x65\x74\x53\x63\x6f\x70\x65\x49\x64\x28\x65\x6c\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x73\x75\x62\x54\x72\x65\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x53\x63\x6f\x70\x65\x49\x64\x28\x65\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2e\x73\x63\x6f\x70\x65\x49\x64\x2c\x20\x70\x61\x72\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2e\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x30\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x73\x74\x61\x72\x74\x3b\x20\x69\x20\x3c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3f\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x29\x20\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x63\x68\x69\x6c\x64\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x74\x63\x68\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6c\x20\x3d\x20\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x6e\x31\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x64\x69\x72\x73\x20\x7d\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x7c\x3d\x20\x6e\x31\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x31\x2e\x70\x72\x6f\x70\x73\x20\x7c\x7c\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x32\x2e\x70\x72\x6f\x70\x73\x20\x7c\x7c\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x3b\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x26\x26\x20\x74\x6f\x67\x67\x6c\x65\x52\x65\x63\x75\x72\x73\x65\x28\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x6e\x32\x2c\x20\x6e\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x6e\x32\x2c\x20\x6e\x31\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x26\x26\x20\x74\x6f\x67\x67\x6c\x65\x52\x65\x63\x75\x72\x73\x65\x28\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x72\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x53\x56\x47\x20\x3d\x20\x69\x73\x53\x56\x47\x20\x26\x26\x20\x6e\x32\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x66\x6f\x72\x65\x69\x67\x6e\x4f\x62\x6a\x65\x63\x74\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x42\x6c\x6f\x63\x6b\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x65\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x61\x72\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x65\x6c\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x61\x72\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x73\x28\x65\x6c\x2c\x20\x6e\x32\x2c\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x2c\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6c\x64\x50\x72\x6f\x70\x73\x2e\x63\x6c\x61\x73\x73\x20\x21\x3d\x3d\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2e\x63\x6c\x61\x73\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2e\x63\x6c\x61\x73\x73\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x22\x73\x74\x79\x6c\x65\x22\x2c\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x2e\x73\x74\x79\x6c\x65\x2c\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2e\x73\x74\x79\x6c\x65\x2c\x20\x69\x73\x53\x56\x47\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\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x54\x6f\x55\x70\x64\x61\x74\x65\x20\x3d\x20\x6e\x32\x2e\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x70\x72\x6f\x70\x73\x54\x6f\x55\x70\x64\x61\x74\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x70\x72\x6f\x70\x73\x54\x6f\x55\x70\x64\x61\x74\x65\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x21\x3d\x3d\x20\x70\x72\x65\x76\x20\x7c\x7c\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x76\x61\x6c\x75\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x70\x72\x65\x76\x2c\x20\x6e\x65\x78\x74\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6e\x31\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x21\x3d\x3d\x20\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x53\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x54\x65\x78\x74\x28\x65\x6c\x2c\x20\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x26\x26\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x73\x28\x65\x6c\x2c\x20\x6e\x32\x2c\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x2c\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x55\x70\x64\x61\x74\x65\x64\x29\x20\x7c\x7c\x20\x64\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x26\x26\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x6e\x32\x2c\x20\x6e\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x73\x20\x26\x26\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x6e\x32\x2c\x20\x6e\x31\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x75\x70\x64\x61\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x74\x63\x68\x42\x6c\x6f\x63\x6b\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x28\x6f\x6c\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x6e\x65\x77\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6e\x65\x77\x43\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x56\x4e\x6f\x64\x65\x20\x3d\x20\x6f\x6c\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x56\x4e\x6f\x64\x65\x20\x3d\x20\x6e\x65\x77\x43\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x6f\x6c\x64\x56\x4e\x6f\x64\x65\x2e\x65\x6c\x20\x26\x26\x20\x28\x6f\x6c\x64\x56\x4e\x6f\x64\x65\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x7c\x7c\x20\x21\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x6f\x6c\x64\x56\x4e\x6f\x64\x65\x2c\x20\x6e\x65\x77\x56\x4e\x6f\x64\x65\x29\x20\x7c\x7c\x20\x6f\x6c\x64\x56\x4e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x28\x36\x20\x7c\x20\x36\x34\x29\x29\x20\x3f\x20\x68\x6f\x73\x74\x50\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x28\x6f\x6c\x64\x56\x4e\x6f\x64\x65\x2e\x65\x6c\x29\x20\x3a\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6f\x6c\x64\x56\x4e\x6f\x64\x65\x2c\x20\x6e\x65\x77\x56\x4e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x73\x20\x3d\x20\x28\x65\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x2c\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6c\x64\x50\x72\x6f\x70\x73\x20\x21\x3d\x3d\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x73\x65\x72\x76\x65\x64\x50\x72\x6f\x70\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x21\x3d\x3d\x20\x70\x72\x65\x76\x20\x26\x26\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x22\x76\x61\x6c\x75\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x70\x72\x65\x76\x2c\x20\x6e\x65\x78\x74\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6c\x64\x50\x72\x6f\x70\x73\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x52\x65\x73\x65\x72\x76\x65\x64\x50\x72\x6f\x70\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x21\x28\x6b\x65\x79\x20\x69\x6e\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x22\x76\x61\x6c\x75\x65\x22\x20\x69\x6e\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x50\x61\x74\x63\x68\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x22\x76\x61\x6c\x75\x65\x22\x2c\x20\x6f\x6c\x64\x50\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x2c\x20\x6e\x65\x77\x50\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x74\x61\x72\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x6e\x31\x20\x3f\x20\x6e\x31\x2e\x65\x6c\x20\x3a\x20\x68\x6f\x73\x74\x43\x72\x65\x61\x74\x65\x54\x65\x78\x74\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x45\x6e\x64\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x32\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x31\x20\x3f\x20\x6e\x31\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3a\x20\x68\x6f\x73\x74\x43\x72\x65\x61\x74\x65\x54\x65\x78\x74\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x3a\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x7d\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x3d\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x3f\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2e\x63\x6f\x6e\x63\x61\x74\x28\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x20\x3a\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x66\x72\x61\x67\x6d\x65\x6e\x74\x53\x74\x61\x72\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x66\x72\x61\x67\x6d\x65\x6e\x74\x45\x6e\x64\x41\x6e\x63\x68\x6f\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x45\x6e\x64\x41\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3e\x20\x30\x20\x26\x26\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x36\x34\x20\x26\x26\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x26\x26\x20\x6e\x31\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x42\x6c\x6f\x63\x6b\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x6b\x65\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x26\x26\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x76\x65\x72\x73\x65\x53\x74\x61\x74\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x66\x72\x61\x67\x6d\x65\x6e\x74\x45\x6e\x64\x41\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x63\x65\x73\x73\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6e\x32\x2e\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x3d\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x35\x31\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x63\x74\x78\x2e\x61\x63\x74\x69\x76\x61\x74\x65\x28\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x75\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x28\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x28\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x63\x74\x78\x2e\x72\x65\x6e\x64\x65\x72\x65\x72\x20\x3d\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x75\x70\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x73\x79\x6e\x63\x44\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x26\x26\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x67\x69\x73\x74\x65\x72\x44\x65\x70\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x73\x65\x74\x75\x70\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2e\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x43\x6f\x6d\x6d\x65\x6e\x74\x4e\x6f\x64\x65\x28\x6e\x75\x6c\x6c\x2c\x20\x70\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x73\x65\x74\x75\x70\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x70\x64\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x6e\x31\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x55\x70\x64\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x73\x79\x6e\x63\x44\x65\x70\x20\x26\x26\x20\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x73\x79\x6e\x63\x52\x65\x73\x6f\x6c\x76\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x50\x72\x65\x52\x65\x6e\x64\x65\x72\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x6e\x32\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x6e\x65\x78\x74\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x61\x6c\x69\x64\x61\x74\x65\x4a\x6f\x62\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x75\x70\x64\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x6e\x31\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x6e\x31\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x75\x70\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x20\x3d\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x55\x70\x64\x61\x74\x65\x46\x6e\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x65\x6c\x2c\x20\x70\x72\x6f\x70\x73\x20\x7d\x20\x3d\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x62\x6d\x2c\x20\x6d\x2c\x20\x70\x61\x72\x65\x6e\x74\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x56\x4e\x6f\x64\x65\x20\x3d\x20\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x28\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x67\x67\x6c\x65\x52\x65\x63\x75\x72\x73\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x41\x72\x72\x61\x79\x46\x6e\x73\x28\x62\x6d\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\x21\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x56\x4e\x6f\x64\x65\x20\x26\x26\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x67\x67\x6c\x65\x52\x65\x63\x75\x72\x73\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x20\x26\x26\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x79\x64\x72\x61\x74\x65\x53\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x52\x6f\x6f\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x28\x65\x6c\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x56\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2e\x5f\x5f\x61\x73\x79\x6e\x63\x4c\x6f\x61\x64\x65\x72\x28\x29\x2e\x74\x68\x65\x6e\x28\x28\x29\x20\x3d\x3e\x20\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x20\x26\x26\x20\x68\x79\x64\x72\x61\x74\x65\x53\x75\x62\x54\x72\x65\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x79\x64\x72\x61\x74\x65\x53\x75\x62\x54\x72\x65\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x52\x6f\x6f\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x73\x75\x62\x54\x72\x65\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2e\x65\x6c\x20\x3d\x20\x73\x75\x62\x54\x72\x65\x65\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x6d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\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\x21\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x56\x4e\x6f\x64\x65\x20\x26\x26\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x4d\x6f\x75\x6e\x74\x65\x64\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x63\x6f\x70\x65\x64\x49\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x20\x3d\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x73\x63\x6f\x70\x65\x64\x49\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x29\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\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\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x32\x35\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x20\x26\x26\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x4e\x6f\x64\x65\x20\x3d\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x6e\x65\x78\x74\x2c\x20\x62\x75\x2c\x20\x75\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6f\x72\x69\x67\x69\x6e\x4e\x65\x78\x74\x20\x3d\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x67\x67\x6c\x65\x52\x65\x63\x75\x72\x73\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x2e\x65\x6c\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x50\x72\x65\x52\x65\x6e\x64\x65\x72\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x6e\x65\x78\x74\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x75\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x41\x72\x72\x61\x79\x46\x6e\x73\x28\x62\x75\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\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x6e\x65\x78\x74\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x6e\x65\x78\x74\x2e\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x6e\x65\x78\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x67\x67\x6c\x65\x52\x65\x63\x75\x72\x73\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x54\x72\x65\x65\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x52\x6f\x6f\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x54\x72\x65\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x20\x3d\x20\x6e\x65\x78\x74\x54\x72\x65\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x70\x72\x65\x76\x54\x72\x65\x65\x2c\x20\x6e\x65\x78\x74\x54\x72\x65\x65\x2c\x20\x68\x6f\x73\x74\x50\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x28\x70\x72\x65\x76\x54\x72\x65\x65\x2e\x65\x6c\x29\x2c\x20\x67\x65\x74\x4e\x65\x78\x74\x48\x6f\x73\x74\x4e\x6f\x64\x65\x28\x70\x72\x65\x76\x54\x72\x65\x65\x29\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x2e\x65\x6c\x20\x3d\x20\x6e\x65\x78\x74\x54\x72\x65\x65\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x72\x69\x67\x69\x6e\x4e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x48\x4f\x43\x48\x6f\x73\x74\x45\x6c\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x6e\x65\x78\x74\x54\x72\x65\x65\x2e\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x75\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x75\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\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\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x6e\x65\x78\x74\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x6e\x65\x78\x74\x2e\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x55\x70\x64\x61\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x6e\x65\x78\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x66\x66\x65\x63\x74\x32\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x66\x66\x65\x63\x74\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x28\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x55\x70\x64\x61\x74\x65\x46\x6e\x2c\x20\x28\x29\x20\x3d\x3e\x20\x71\x75\x65\x75\x65\x4a\x6f\x62\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x75\x70\x64\x61\x74\x65\x29\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x63\x6f\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x70\x64\x61\x74\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x75\x70\x64\x61\x74\x65\x20\x3d\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x72\x75\x6e\x2e\x62\x69\x6e\x64\x28\x65\x66\x66\x65\x63\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x2e\x69\x64\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x75\x69\x64\x3b\x0a\x20\x20\x20\x20\x74\x6f\x67\x67\x6c\x65\x52\x65\x63\x75\x72\x73\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x70\x64\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x50\x72\x65\x52\x65\x6e\x64\x65\x72\x20\x3d\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x20\x3d\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x6e\x65\x78\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x50\x72\x6f\x70\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2c\x20\x70\x72\x65\x76\x50\x72\x6f\x70\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x53\x6c\x6f\x74\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x6e\x65\x78\x74\x56\x4e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x70\x61\x75\x73\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x66\x6c\x75\x73\x68\x50\x72\x65\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x76\x6f\x69\x64\x20\x30\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x75\x70\x64\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x73\x65\x74\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x74\x63\x68\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x31\x20\x3d\x20\x6e\x31\x20\x26\x26\x20\x6e\x31\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x53\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x3d\x20\x6e\x31\x20\x3f\x20\x6e\x31\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x32\x20\x3d\x20\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7d\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x4b\x65\x79\x65\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x31\x2c\x20\x63\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x32\x35\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x55\x6e\x6b\x65\x79\x65\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x31\x2c\x20\x63\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x53\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x31\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\x20\x21\x3d\x3d\x20\x63\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x53\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x54\x65\x78\x74\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x53\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x4b\x65\x79\x65\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x31\x2c\x20\x63\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x31\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x53\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x53\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x54\x65\x78\x74\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\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\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x74\x63\x68\x55\x6e\x6b\x65\x79\x65\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x28\x63\x31\x2c\x20\x63\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x31\x20\x3d\x20\x63\x31\x20\x7c\x7c\x20\x45\x4d\x50\x54\x59\x5f\x41\x52\x52\x3b\x0a\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x63\x32\x20\x7c\x7c\x20\x45\x4d\x50\x54\x59\x5f\x41\x52\x52\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x4c\x65\x6e\x67\x74\x68\x20\x3d\x20\x63\x31\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x4c\x65\x6e\x67\x74\x68\x20\x3d\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x6d\x6f\x6e\x4c\x65\x6e\x67\x74\x68\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x6f\x6c\x64\x4c\x65\x6e\x67\x74\x68\x2c\x20\x6e\x65\x77\x4c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x6f\x6d\x6d\x6f\x6e\x4c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x20\x3d\x20\x63\x32\x5b\x69\x5d\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3f\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x32\x5b\x69\x5d\x29\x20\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x63\x32\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x63\x31\x5b\x69\x5d\x2c\x20\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6c\x64\x4c\x65\x6e\x67\x74\x68\x20\x3e\x20\x6e\x65\x77\x4c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x31\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6d\x6d\x6f\x6e\x4c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x63\x6f\x6d\x6d\x6f\x6e\x4c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x74\x63\x68\x4b\x65\x79\x65\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x28\x63\x31\x2c\x20\x63\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x32\x20\x3d\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x65\x31\x20\x3d\x20\x63\x31\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x65\x32\x20\x3d\x20\x6c\x32\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x69\x20\x3c\x3d\x20\x65\x31\x20\x26\x26\x20\x69\x20\x3c\x3d\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x31\x20\x3d\x20\x63\x31\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x32\x20\x3d\x20\x63\x32\x5b\x69\x5d\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3f\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x32\x5b\x69\x5d\x29\x20\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x63\x32\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x6e\x31\x2c\x20\x6e\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x69\x20\x3c\x3d\x20\x65\x31\x20\x26\x26\x20\x69\x20\x3c\x3d\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x31\x20\x3d\x20\x63\x31\x5b\x65\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x32\x20\x3d\x20\x63\x32\x5b\x65\x32\x5d\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3f\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x32\x5b\x65\x32\x5d\x29\x20\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x63\x32\x5b\x65\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x6e\x31\x2c\x20\x6e\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x31\x2d\x2d\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2d\x2d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3e\x20\x65\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3c\x3d\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x50\x6f\x73\x20\x3d\x20\x65\x32\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x65\x78\x74\x50\x6f\x73\x20\x3c\x20\x6c\x32\x20\x3f\x20\x63\x32\x5b\x6e\x65\x78\x74\x50\x6f\x73\x5d\x2e\x65\x6c\x20\x3a\x20\x70\x61\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x69\x20\x3c\x3d\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x63\x32\x5b\x69\x5d\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3f\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x32\x5b\x69\x5d\x29\x20\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x63\x32\x5b\x69\x5d\x29\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x20\x3e\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x69\x20\x3c\x3d\x20\x65\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x63\x31\x5b\x69\x5d\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x31\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x32\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x54\x6f\x4e\x65\x77\x49\x6e\x64\x65\x78\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x73\x32\x3b\x20\x69\x20\x3c\x3d\x20\x65\x32\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x20\x3d\x20\x63\x32\x5b\x69\x5d\x20\x3d\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3f\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x32\x5b\x69\x5d\x29\x20\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x63\x32\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x2e\x6b\x65\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x54\x6f\x4e\x65\x77\x49\x6e\x64\x65\x78\x4d\x61\x70\x2e\x73\x65\x74\x28\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x2e\x6b\x65\x79\x2c\x20\x69\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6a\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x61\x74\x63\x68\x65\x64\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x42\x65\x50\x61\x74\x63\x68\x65\x64\x20\x3d\x20\x65\x32\x20\x2d\x20\x73\x32\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6d\x6f\x76\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6d\x61\x78\x4e\x65\x77\x49\x6e\x64\x65\x78\x53\x6f\x46\x61\x72\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x49\x6e\x64\x65\x78\x54\x6f\x4f\x6c\x64\x49\x6e\x64\x65\x78\x4d\x61\x70\x20\x3d\x20\x6e\x65\x77\x20\x41\x72\x72\x61\x79\x28\x74\x6f\x42\x65\x50\x61\x74\x63\x68\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x74\x6f\x42\x65\x50\x61\x74\x63\x68\x65\x64\x3b\x20\x69\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x49\x6e\x64\x65\x78\x54\x6f\x4f\x6c\x64\x49\x6e\x64\x65\x78\x4d\x61\x70\x5b\x69\x5d\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x73\x31\x3b\x20\x69\x20\x3c\x3d\x20\x65\x31\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x20\x3d\x20\x63\x31\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x63\x68\x65\x64\x20\x3e\x3d\x20\x74\x6f\x42\x65\x50\x61\x74\x63\x68\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x77\x49\x6e\x64\x65\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x2e\x6b\x65\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x49\x6e\x64\x65\x78\x20\x3d\x20\x6b\x65\x79\x54\x6f\x4e\x65\x77\x49\x6e\x64\x65\x78\x4d\x61\x70\x2e\x67\x65\x74\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x2e\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6a\x20\x3d\x20\x73\x32\x3b\x20\x6a\x20\x3c\x3d\x20\x65\x32\x3b\x20\x6a\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x77\x49\x6e\x64\x65\x78\x54\x6f\x4f\x6c\x64\x49\x6e\x64\x65\x78\x4d\x61\x70\x5b\x6a\x20\x2d\x20\x73\x32\x5d\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x2c\x20\x63\x32\x5b\x6a\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x49\x6e\x64\x65\x78\x20\x3d\x20\x6a\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x77\x49\x6e\x64\x65\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x49\x6e\x64\x65\x78\x54\x6f\x4f\x6c\x64\x49\x6e\x64\x65\x78\x4d\x61\x70\x5b\x6e\x65\x77\x49\x6e\x64\x65\x78\x20\x2d\x20\x73\x32\x5d\x20\x3d\x20\x69\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x77\x49\x6e\x64\x65\x78\x20\x3e\x3d\x20\x6d\x61\x78\x4e\x65\x77\x49\x6e\x64\x65\x78\x53\x6f\x46\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x78\x4e\x65\x77\x49\x6e\x64\x65\x78\x53\x6f\x46\x61\x72\x20\x3d\x20\x6e\x65\x77\x49\x6e\x64\x65\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x2c\x20\x63\x32\x5b\x6e\x65\x77\x49\x6e\x64\x65\x78\x5d\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x65\x64\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x63\x72\x65\x61\x73\x69\x6e\x67\x4e\x65\x77\x49\x6e\x64\x65\x78\x53\x65\x71\x75\x65\x6e\x63\x65\x20\x3d\x20\x6d\x6f\x76\x65\x64\x20\x3f\x20\x67\x65\x74\x53\x65\x71\x75\x65\x6e\x63\x65\x28\x6e\x65\x77\x49\x6e\x64\x65\x78\x54\x6f\x4f\x6c\x64\x49\x6e\x64\x65\x78\x4d\x61\x70\x29\x20\x3a\x20\x45\x4d\x50\x54\x59\x5f\x41\x52\x52\x3b\x0a\x20\x20\x20\x20\x20\x20\x6a\x20\x3d\x20\x69\x6e\x63\x72\x65\x61\x73\x69\x6e\x67\x4e\x65\x77\x49\x6e\x64\x65\x78\x53\x65\x71\x75\x65\x6e\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x74\x6f\x42\x65\x50\x61\x74\x63\x68\x65\x64\x20\x2d\x20\x31\x3b\x20\x69\x20\x3e\x3d\x20\x30\x3b\x20\x69\x2d\x2d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x73\x32\x20\x2b\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x20\x3d\x20\x63\x32\x5b\x6e\x65\x78\x74\x49\x6e\x64\x65\x78\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x65\x78\x74\x49\x6e\x64\x65\x78\x20\x2b\x20\x31\x20\x3c\x20\x6c\x32\x20\x3f\x20\x63\x32\x5b\x6e\x65\x78\x74\x49\x6e\x64\x65\x78\x20\x2b\x20\x31\x5d\x2e\x65\x6c\x20\x3a\x20\x70\x61\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x77\x49\x6e\x64\x65\x78\x54\x6f\x4f\x6c\x64\x49\x6e\x64\x65\x78\x4d\x61\x70\x5b\x69\x5d\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x6e\x75\x6c\x6c\x2c\x20\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6d\x6f\x76\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6a\x20\x3c\x20\x30\x20\x7c\x7c\x20\x69\x20\x21\x3d\x3d\x20\x69\x6e\x63\x72\x65\x61\x73\x69\x6e\x67\x4e\x65\x77\x49\x6e\x64\x65\x78\x53\x65\x71\x75\x65\x6e\x63\x65\x5b\x6a\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x6e\x65\x78\x74\x43\x68\x69\x6c\x64\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6a\x2d\x2d\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x76\x65\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x6d\x6f\x76\x65\x54\x79\x70\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x65\x6c\x2c\x20\x74\x79\x70\x65\x2c\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x6d\x6f\x76\x65\x54\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x6d\x6f\x76\x65\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x6d\x6f\x76\x65\x54\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x2e\x6d\x6f\x76\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x65\x6c\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x6d\x6f\x76\x65\x54\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x74\x61\x74\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x53\x74\x61\x74\x69\x63\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x65\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x6d\x6f\x76\x65\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x32\x20\x26\x26\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x20\x26\x26\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x65\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x76\x65\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x62\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x65\x6c\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x65\x6e\x74\x65\x72\x28\x65\x6c\x29\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6c\x65\x61\x76\x65\x2c\x20\x64\x65\x6c\x61\x79\x4c\x65\x61\x76\x65\x2c\x20\x61\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x20\x7d\x20\x3d\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6d\x6f\x76\x65\x33\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x65\x6c\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x65\x72\x66\x6f\x72\x6d\x4c\x65\x61\x76\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x61\x76\x65\x28\x65\x6c\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x33\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x20\x26\x26\x20\x61\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x28\x29\x3b\x0a\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\x69\x66\x20\x28\x64\x65\x6c\x61\x79\x4c\x65\x61\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x61\x79\x4c\x65\x61\x76\x65\x28\x65\x6c\x2c\x20\x72\x65\x6d\x6f\x76\x65\x33\x2c\x20\x70\x65\x72\x66\x6f\x72\x6d\x4c\x65\x61\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x65\x72\x66\x6f\x72\x6d\x4c\x65\x61\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x49\x6e\x73\x65\x72\x74\x28\x65\x6c\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x72\x65\x66\x3a\x20\x72\x65\x66\x32\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x69\x72\x73\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x66\x32\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x52\x65\x66\x28\x72\x65\x66\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x32\x35\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x63\x74\x78\x2e\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x68\x6f\x75\x6c\x64\x49\x6e\x76\x6f\x6b\x65\x44\x69\x72\x73\x20\x3d\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x20\x26\x26\x20\x64\x69\x72\x73\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x68\x6f\x75\x6c\x64\x49\x6e\x76\x6f\x6b\x65\x56\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x21\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x49\x6e\x76\x6f\x6b\x65\x56\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x26\x26\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x42\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x49\x6e\x76\x6f\x6b\x65\x44\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x62\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2e\x72\x65\x6d\x6f\x76\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x26\x26\x20\x28\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x7c\x7c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3e\x20\x30\x20\x26\x26\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x36\x34\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x26\x26\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x26\x20\x28\x31\x32\x38\x20\x7c\x20\x32\x35\x36\x29\x20\x7c\x7c\x20\x21\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x26\x26\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x32\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x49\x6e\x76\x6f\x6b\x65\x56\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x26\x26\x20\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6f\x6e\x56\x6e\x6f\x64\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x29\x20\x7c\x7c\x20\x73\x68\x6f\x75\x6c\x64\x49\x6e\x76\x6f\x6b\x65\x44\x69\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x20\x26\x26\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x48\x6f\x6f\x6b\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x68\x6f\x75\x6c\x64\x49\x6e\x76\x6f\x6b\x65\x44\x69\x72\x73\x20\x26\x26\x20\x69\x6e\x76\x6f\x6b\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x48\x6f\x6f\x6b\x28\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x22\x75\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6d\x6f\x76\x65\x32\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x2c\x20\x65\x6c\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\x65\x6c\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x74\x61\x74\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x53\x74\x61\x74\x69\x63\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x65\x72\x66\x6f\x72\x6d\x52\x65\x6d\x6f\x76\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x26\x26\x20\x21\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x70\x65\x72\x73\x69\x73\x74\x65\x64\x20\x26\x26\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x61\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x61\x66\x74\x65\x72\x4c\x65\x61\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x20\x26\x26\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x26\x26\x20\x21\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x70\x65\x72\x73\x69\x73\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6c\x65\x61\x76\x65\x2c\x20\x64\x65\x6c\x61\x79\x4c\x65\x61\x76\x65\x20\x7d\x20\x3d\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x65\x72\x66\x6f\x72\x6d\x4c\x65\x61\x76\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x6c\x65\x61\x76\x65\x28\x65\x6c\x2c\x20\x70\x65\x72\x66\x6f\x72\x6d\x52\x65\x6d\x6f\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x6c\x61\x79\x4c\x65\x61\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x61\x79\x4c\x65\x61\x76\x65\x28\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x2c\x20\x70\x65\x72\x66\x6f\x72\x6d\x52\x65\x6d\x6f\x76\x65\x2c\x20\x70\x65\x72\x66\x6f\x72\x6d\x4c\x65\x61\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x65\x72\x66\x6f\x72\x6d\x4c\x65\x61\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x65\x72\x66\x6f\x72\x6d\x52\x65\x6d\x6f\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6d\x6f\x76\x65\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x3d\x20\x28\x63\x75\x72\x2c\x20\x65\x6e\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x75\x72\x20\x21\x3d\x3d\x20\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x68\x6f\x73\x74\x4e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x63\x75\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x28\x63\x75\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x75\x72\x20\x3d\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x28\x65\x6e\x64\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x62\x75\x6d\x2c\x20\x73\x63\x6f\x70\x65\x2c\x20\x75\x70\x64\x61\x74\x65\x2c\x20\x73\x75\x62\x54\x72\x65\x65\x2c\x20\x75\x6d\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x62\x75\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x41\x72\x72\x61\x79\x46\x6e\x73\x28\x62\x75\x6d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x73\x63\x6f\x70\x65\x2e\x73\x74\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x75\x70\x64\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x73\x75\x62\x54\x72\x65\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x75\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x75\x6d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x52\x65\x6e\x64\x65\x72\x45\x66\x66\x65\x63\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x20\x26\x26\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x20\x26\x26\x20\x21\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x73\x79\x6e\x63\x44\x65\x70\x20\x26\x26\x20\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x73\x79\x6e\x63\x52\x65\x73\x6f\x6c\x76\x65\x64\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x49\x64\x20\x3d\x3d\x3d\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x2d\x2d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2e\x64\x65\x70\x73\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x30\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x73\x74\x61\x72\x74\x3b\x20\x69\x20\x3c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x4e\x65\x78\x74\x48\x6f\x73\x74\x4e\x6f\x64\x65\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x4e\x65\x78\x74\x48\x6f\x73\x74\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x6e\x65\x78\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x6f\x73\x74\x4e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x7c\x7c\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6e\x64\x65\x72\x32\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x69\x73\x53\x56\x47\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x5f\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x5f\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x5f\x76\x6e\x6f\x64\x65\x20\x7c\x7c\x20\x6e\x75\x6c\x6c\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x6c\x75\x73\x68\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x5f\x76\x6e\x6f\x64\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x70\x3a\x20\x70\x61\x74\x63\x68\x2c\x0a\x20\x20\x20\x20\x75\x6d\x3a\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x2c\x0a\x20\x20\x20\x20\x6d\x3a\x20\x6d\x6f\x76\x65\x2c\x0a\x20\x20\x20\x20\x72\x3a\x20\x72\x65\x6d\x6f\x76\x65\x32\x2c\x0a\x20\x20\x20\x20\x6d\x74\x3a\x20\x6d\x6f\x75\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x6d\x63\x3a\x20\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x0a\x20\x20\x20\x20\x70\x63\x3a\x20\x70\x61\x74\x63\x68\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x0a\x20\x20\x20\x20\x70\x62\x63\x3a\x20\x70\x61\x74\x63\x68\x42\x6c\x6f\x63\x6b\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x0a\x20\x20\x20\x20\x6e\x3a\x20\x67\x65\x74\x4e\x65\x78\x74\x48\x6f\x73\x74\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x6f\x3a\x20\x6f\x70\x74\x69\x6f\x6e\x73\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x79\x64\x72\x61\x74\x65\x32\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x72\x65\x61\x74\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x46\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x5b\x68\x79\x64\x72\x61\x74\x65\x32\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x4e\x6f\x64\x65\x5d\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x46\x6e\x73\x28\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x3a\x20\x72\x65\x6e\x64\x65\x72\x32\x2c\x0a\x20\x20\x20\x20\x68\x79\x64\x72\x61\x74\x65\x3a\x20\x68\x79\x64\x72\x61\x74\x65\x32\x2c\x0a\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x3a\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x41\x50\x49\x28\x72\x65\x6e\x64\x65\x72\x32\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x32\x29\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x67\x67\x6c\x65\x52\x65\x63\x75\x72\x73\x65\x28\x7b\x20\x65\x66\x66\x65\x63\x74\x3a\x20\x65\x66\x66\x65\x63\x74\x32\x2c\x20\x75\x70\x64\x61\x74\x65\x20\x7d\x2c\x20\x61\x6c\x6c\x6f\x77\x65\x64\x29\x20\x7b\x0a\x20\x20\x65\x66\x66\x65\x63\x74\x32\x2e\x61\x6c\x6c\x6f\x77\x52\x65\x63\x75\x72\x73\x65\x20\x3d\x20\x75\x70\x64\x61\x74\x65\x2e\x61\x6c\x6c\x6f\x77\x52\x65\x63\x75\x72\x73\x65\x20\x3d\x20\x61\x6c\x6c\x6f\x77\x65\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x61\x76\x65\x72\x73\x65\x53\x74\x61\x74\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x73\x68\x61\x6c\x6c\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x31\x20\x3d\x20\x6e\x31\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x32\x20\x3d\x20\x6e\x32\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x63\x68\x31\x29\x20\x26\x26\x20\x69\x73\x41\x72\x72\x61\x79\x28\x63\x68\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x68\x31\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x31\x20\x3d\x20\x63\x68\x31\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x32\x20\x3d\x20\x63\x68\x32\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x20\x26\x26\x20\x21\x63\x32\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3c\x3d\x20\x30\x20\x7c\x7c\x20\x63\x32\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3d\x3d\x3d\x20\x33\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x63\x68\x32\x5b\x69\x5d\x20\x3d\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x68\x32\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x65\x6c\x20\x3d\x20\x63\x31\x2e\x65\x6c\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\x73\x68\x61\x6c\x6c\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x76\x65\x72\x73\x65\x53\x74\x61\x74\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x31\x2c\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x53\x65\x71\x75\x65\x6e\x63\x65\x28\x61\x72\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x32\x20\x3d\x20\x61\x72\x72\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x5b\x30\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x69\x2c\x20\x6a\x2c\x20\x75\x2c\x20\x76\x2c\x20\x63\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x65\x6e\x20\x3d\x20\x61\x72\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6c\x65\x6e\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x72\x72\x49\x20\x3d\x20\x61\x72\x72\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x72\x49\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6a\x20\x3d\x20\x72\x65\x73\x75\x6c\x74\x5b\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x72\x5b\x6a\x5d\x20\x3c\x20\x61\x72\x72\x49\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x32\x5b\x69\x5d\x20\x3d\x20\x6a\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x2e\x70\x75\x73\x68\x28\x69\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x75\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x20\x3d\x20\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x75\x20\x3c\x20\x76\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x20\x3d\x20\x75\x20\x2b\x20\x76\x20\x3e\x3e\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x72\x5b\x72\x65\x73\x75\x6c\x74\x5b\x63\x5d\x5d\x20\x3c\x20\x61\x72\x72\x49\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x20\x3d\x20\x63\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x20\x3d\x20\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x72\x49\x20\x3c\x20\x61\x72\x72\x5b\x72\x65\x73\x75\x6c\x74\x5b\x75\x5d\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x75\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x32\x5b\x69\x5d\x20\x3d\x20\x72\x65\x73\x75\x6c\x74\x5b\x75\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x5b\x75\x5d\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x75\x20\x3d\x20\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x76\x20\x3d\x20\x72\x65\x73\x75\x6c\x74\x5b\x75\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x75\x2d\x2d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x73\x75\x6c\x74\x5b\x75\x5d\x20\x3d\x20\x76\x3b\x0a\x20\x20\x20\x20\x76\x20\x3d\x20\x70\x32\x5b\x76\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x75\x6c\x74\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x20\x3d\x20\x28\x74\x79\x70\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x2e\x5f\x5f\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x20\x3d\x20\x28\x70\x72\x6f\x70\x73\x29\x20\x3d\x3e\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x28\x70\x72\x6f\x70\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x70\x72\x6f\x70\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x20\x3d\x3d\x3d\x20\x22\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x54\x61\x72\x67\x65\x74\x53\x56\x47\x20\x3d\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x26\x26\x20\x74\x61\x72\x67\x65\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x28\x70\x72\x6f\x70\x73\x2c\x20\x73\x65\x6c\x65\x63\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x53\x65\x6c\x65\x63\x74\x6f\x72\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x74\x6f\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x74\x61\x72\x67\x65\x74\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x65\x6c\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x73\x65\x6c\x65\x63\x74\x28\x74\x61\x72\x67\x65\x74\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x53\x65\x6c\x65\x63\x74\x6f\x72\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x54\x65\x6c\x65\x70\x6f\x72\x74\x49\x6d\x70\x6c\x20\x3d\x20\x7b\x0a\x20\x20\x5f\x5f\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6d\x63\x3a\x20\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x63\x3a\x20\x70\x61\x74\x63\x68\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x62\x63\x3a\x20\x70\x61\x74\x63\x68\x42\x6c\x6f\x63\x6b\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x6f\x3a\x20\x7b\x20\x69\x6e\x73\x65\x72\x74\x2c\x20\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x2c\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x2c\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x7d\x20\x7d\x20\x3d\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x69\x73\x61\x62\x6c\x65\x64\x20\x3d\x20\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x28\x6e\x32\x2e\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x7d\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x31\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x20\x3d\x20\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x69\x6e\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x32\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x28\x70\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x28\x6d\x61\x69\x6e\x41\x6e\x63\x68\x6f\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x6e\x32\x2e\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x61\x72\x67\x65\x74\x28\x6e\x32\x2e\x70\x72\x6f\x70\x73\x2c\x20\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x32\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x28\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x53\x56\x47\x20\x3d\x20\x69\x73\x53\x56\x47\x20\x7c\x7c\x20\x69\x73\x54\x61\x72\x67\x65\x74\x53\x56\x47\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x2c\x20\x61\x6e\x63\x68\x6f\x72\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x32\x2c\x20\x61\x6e\x63\x68\x6f\x72\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x73\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6d\x61\x69\x6e\x41\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x75\x6e\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x65\x6c\x20\x3d\x20\x6e\x31\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x69\x6e\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x32\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x31\x2e\x61\x6e\x63\x68\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x6e\x32\x2e\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x6e\x31\x2e\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x32\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x31\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x61\x73\x44\x69\x73\x61\x62\x6c\x65\x64\x20\x3d\x20\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x28\x6e\x31\x2e\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x77\x61\x73\x44\x69\x73\x61\x62\x6c\x65\x64\x20\x3f\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3a\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x77\x61\x73\x44\x69\x73\x61\x62\x6c\x65\x64\x20\x3f\x20\x6d\x61\x69\x6e\x41\x6e\x63\x68\x6f\x72\x20\x3a\x20\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x73\x53\x56\x47\x20\x3d\x20\x69\x73\x53\x56\x47\x20\x7c\x7c\x20\x69\x73\x54\x61\x72\x67\x65\x74\x53\x56\x47\x28\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x42\x6c\x6f\x63\x6b\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x76\x65\x72\x73\x65\x53\x74\x61\x74\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x31\x2c\x20\x6e\x32\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x73\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x77\x61\x73\x44\x69\x73\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x54\x65\x6c\x65\x70\x6f\x72\x74\x28\x6e\x32\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x6d\x61\x69\x6e\x41\x6e\x63\x68\x6f\x72\x2c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x6e\x32\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x6e\x32\x2e\x70\x72\x6f\x70\x73\x2e\x74\x6f\x29\x20\x21\x3d\x3d\x20\x28\x6e\x31\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x6e\x31\x2e\x70\x72\x6f\x70\x73\x2e\x74\x6f\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x54\x61\x72\x67\x65\x74\x20\x3d\x20\x6e\x32\x2e\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x61\x72\x67\x65\x74\x28\x6e\x32\x2e\x70\x72\x6f\x70\x73\x2c\x20\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x54\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x54\x65\x6c\x65\x70\x6f\x72\x74\x28\x6e\x32\x2c\x20\x6e\x65\x78\x74\x54\x61\x72\x67\x65\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x77\x61\x73\x44\x69\x73\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x54\x65\x6c\x65\x70\x6f\x72\x74\x28\x6e\x32\x2c\x20\x74\x61\x72\x67\x65\x74\x2c\x20\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x69\x6e\x74\x65\x72\x6e\x61\x6c\x73\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x72\x65\x6d\x6f\x76\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x7b\x20\x75\x6d\x3a\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x2c\x20\x6f\x3a\x20\x7b\x20\x72\x65\x6d\x6f\x76\x65\x3a\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x20\x7d\x20\x7d\x2c\x20\x64\x6f\x52\x65\x6d\x6f\x76\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x74\x61\x72\x67\x65\x74\x2c\x20\x70\x72\x6f\x70\x73\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x28\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x52\x65\x6d\x6f\x76\x65\x20\x7c\x7c\x20\x21\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x28\x70\x72\x6f\x70\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x6f\x73\x74\x52\x65\x6d\x6f\x76\x65\x28\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x28\x63\x68\x69\x6c\x64\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x74\x72\x75\x65\x2c\x20\x21\x21\x63\x68\x69\x6c\x64\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x6d\x6f\x76\x65\x3a\x20\x6d\x6f\x76\x65\x54\x65\x6c\x65\x70\x6f\x72\x74\x2c\x0a\x20\x20\x68\x79\x64\x72\x61\x74\x65\x3a\x20\x68\x79\x64\x72\x61\x74\x65\x54\x65\x6c\x65\x70\x6f\x72\x74\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x6f\x76\x65\x54\x65\x6c\x65\x70\x6f\x72\x74\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x7b\x20\x6f\x3a\x20\x7b\x20\x69\x6e\x73\x65\x72\x74\x20\x7d\x2c\x20\x6d\x3a\x20\x6d\x6f\x76\x65\x20\x7d\x2c\x20\x6d\x6f\x76\x65\x54\x79\x70\x65\x20\x3d\x20\x32\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6d\x6f\x76\x65\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x28\x76\x6e\x6f\x64\x65\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x65\x6c\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x72\x6f\x70\x73\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x52\x65\x6f\x72\x64\x65\x72\x20\x3d\x20\x6d\x6f\x76\x65\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x32\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x6f\x72\x64\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x28\x65\x6c\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x52\x65\x6f\x72\x64\x65\x72\x20\x7c\x7c\x20\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x28\x70\x72\x6f\x70\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x52\x65\x6f\x72\x64\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x65\x72\x74\x28\x61\x6e\x63\x68\x6f\x72\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x41\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x79\x64\x72\x61\x74\x65\x54\x65\x6c\x65\x70\x6f\x72\x74\x28\x6e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x2c\x20\x7b\x20\x6f\x3a\x20\x7b\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x2c\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x20\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x20\x7d\x20\x7d\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x61\x72\x67\x65\x74\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2c\x20\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x4e\x6f\x64\x65\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x2e\x5f\x6c\x70\x61\x20\x7c\x7c\x20\x74\x61\x72\x67\x65\x74\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x29\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x74\x61\x72\x67\x65\x74\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x68\x79\x64\x72\x61\x74\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x74\x61\x72\x67\x65\x74\x4e\x6f\x64\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x74\x61\x72\x67\x65\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2e\x5f\x6c\x70\x61\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x20\x26\x26\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x76\x6e\x6f\x64\x65\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x26\x26\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x28\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x54\x65\x6c\x65\x70\x6f\x72\x74\x20\x3d\x20\x54\x65\x6c\x65\x70\x6f\x72\x74\x49\x6d\x70\x6c\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x43\x4f\x4d\x50\x4f\x4e\x45\x4e\x54\x53\x20\x3d\x20\x22\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x44\x49\x52\x45\x43\x54\x49\x56\x45\x53\x20\x3d\x20\x22\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x22\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6e\x61\x6d\x65\x2c\x20\x6d\x61\x79\x62\x65\x53\x65\x6c\x66\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x41\x73\x73\x65\x74\x28\x43\x4f\x4d\x50\x4f\x4e\x45\x4e\x54\x53\x2c\x20\x6e\x61\x6d\x65\x2c\x20\x74\x72\x75\x65\x2c\x20\x6d\x61\x79\x62\x65\x53\x65\x6c\x66\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x29\x20\x7c\x7c\x20\x6e\x61\x6d\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x4e\x55\x4c\x4c\x5f\x44\x59\x4e\x41\x4d\x49\x43\x5f\x43\x4f\x4d\x50\x4f\x4e\x45\x4e\x54\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x44\x79\x6e\x61\x6d\x69\x63\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x41\x73\x73\x65\x74\x28\x43\x4f\x4d\x50\x4f\x4e\x45\x4e\x54\x53\x2c\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x66\x61\x6c\x73\x65\x29\x20\x7c\x7c\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x7c\x7c\x20\x4e\x55\x4c\x4c\x5f\x44\x59\x4e\x41\x4d\x49\x43\x5f\x43\x4f\x4d\x50\x4f\x4e\x45\x4e\x54\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x28\x6e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x41\x73\x73\x65\x74\x28\x44\x49\x52\x45\x43\x54\x49\x56\x45\x53\x2c\x20\x6e\x61\x6d\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x41\x73\x73\x65\x74\x28\x74\x79\x70\x65\x2c\x20\x6e\x61\x6d\x65\x2c\x20\x77\x61\x72\x6e\x4d\x69\x73\x73\x69\x6e\x67\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x6d\x61\x79\x62\x65\x53\x65\x6c\x66\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x7c\x7c\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x43\x4f\x4d\x50\x4f\x4e\x45\x4e\x54\x53\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x6c\x66\x4e\x61\x6d\x65\x20\x3d\x20\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x4e\x61\x6d\x65\x28\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x6c\x66\x4e\x61\x6d\x65\x20\x26\x26\x20\x28\x73\x65\x6c\x66\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x6e\x61\x6d\x65\x20\x7c\x7c\x20\x73\x65\x6c\x66\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x6e\x61\x6d\x65\x29\x20\x7c\x7c\x20\x73\x65\x6c\x66\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x63\x61\x70\x69\x74\x61\x6c\x69\x7a\x65\x28\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x6e\x61\x6d\x65\x29\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x5b\x74\x79\x70\x65\x5d\x20\x7c\x7c\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5b\x74\x79\x70\x65\x5d\x2c\x20\x6e\x61\x6d\x65\x29\x20\x7c\x7c\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x5b\x74\x79\x70\x65\x5d\x2c\x20\x6e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x20\x26\x26\x20\x6d\x61\x79\x62\x65\x53\x65\x6c\x66\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x72\x65\x67\x69\x73\x74\x72\x79\x2c\x20\x6e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x67\x69\x73\x74\x72\x79\x20\x26\x26\x20\x28\x72\x65\x67\x69\x73\x74\x72\x79\x5b\x6e\x61\x6d\x65\x5d\x20\x7c\x7c\x20\x72\x65\x67\x69\x73\x74\x72\x79\x5b\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x6e\x61\x6d\x65\x29\x5d\x20\x7c\x7c\x20\x72\x65\x67\x69\x73\x74\x72\x79\x5b\x63\x61\x70\x69\x74\x61\x6c\x69\x7a\x65\x28\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x6e\x61\x6d\x65\x29\x29\x5d\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x54\x65\x78\x74\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x53\x74\x61\x74\x69\x63\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x62\x6c\x6f\x63\x6b\x53\x74\x61\x63\x6b\x20\x3d\x20\x5b\x5d\x3b\x0a\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x64\x69\x73\x61\x62\x6c\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x62\x6c\x6f\x63\x6b\x53\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x20\x3d\x20\x64\x69\x73\x61\x62\x6c\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x5b\x5d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6c\x6f\x73\x65\x42\x6c\x6f\x63\x6b\x28\x29\x20\x7b\x0a\x20\x20\x62\x6c\x6f\x63\x6b\x53\x74\x61\x63\x6b\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x20\x3d\x20\x62\x6c\x6f\x63\x6b\x53\x74\x61\x63\x6b\x5b\x62\x6c\x6f\x63\x6b\x53\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x7c\x7c\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x69\x73\x42\x6c\x6f\x63\x6b\x54\x72\x65\x65\x45\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x31\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x42\x6c\x6f\x63\x6b\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x69\x73\x42\x6c\x6f\x63\x6b\x54\x72\x65\x65\x45\x6e\x61\x62\x6c\x65\x64\x20\x2b\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x75\x70\x42\x6c\x6f\x63\x6b\x28\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x76\x6e\x6f\x64\x65\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x69\x73\x42\x6c\x6f\x63\x6b\x54\x72\x65\x65\x45\x6e\x61\x62\x6c\x65\x64\x20\x3e\x20\x30\x20\x3f\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x20\x7c\x7c\x20\x45\x4d\x50\x54\x59\x5f\x41\x52\x52\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x63\x6c\x6f\x73\x65\x42\x6c\x6f\x63\x6b\x28\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x42\x6c\x6f\x63\x6b\x54\x72\x65\x65\x45\x6e\x61\x62\x6c\x65\x64\x20\x3e\x20\x30\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x2e\x70\x75\x73\x68\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x75\x70\x42\x6c\x6f\x63\x6b\x28\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x74\x72\x75\x65\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x42\x6c\x6f\x63\x6b\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x75\x70\x42\x6c\x6f\x63\x6b\x28\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x2c\x20\x74\x72\x75\x65\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x56\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x76\x61\x6c\x75\x65\x2e\x5f\x5f\x76\x5f\x69\x73\x56\x4e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x53\x61\x6d\x65\x56\x4e\x6f\x64\x65\x54\x79\x70\x65\x28\x6e\x31\x2c\x20\x6e\x32\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x31\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x6e\x32\x2e\x74\x79\x70\x65\x20\x26\x26\x20\x6e\x31\x2e\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x6e\x32\x2e\x6b\x65\x79\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x56\x4e\x6f\x64\x65\x41\x72\x67\x73\x28\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x65\x72\x29\x20\x7b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x49\x6e\x74\x65\x72\x6e\x61\x6c\x4f\x62\x6a\x65\x63\x74\x4b\x65\x79\x20\x3d\x20\x60\x5f\x5f\x76\x49\x6e\x74\x65\x72\x6e\x61\x6c\x60\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x4b\x65\x79\x20\x3d\x20\x28\x7b\x20\x6b\x65\x79\x20\x7d\x29\x20\x3d\x3e\x20\x6b\x65\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x6b\x65\x79\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x52\x65\x66\x20\x3d\x20\x28\x7b\x20\x72\x65\x66\x3a\x20\x72\x65\x66\x32\x2c\x20\x72\x65\x66\x5f\x6b\x65\x79\x2c\x20\x72\x65\x66\x5f\x66\x6f\x72\x20\x7d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x66\x32\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x72\x65\x66\x32\x29\x20\x7c\x7c\x20\x69\x73\x52\x65\x66\x28\x72\x65\x66\x32\x29\x20\x7c\x7c\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x65\x66\x32\x29\x20\x3f\x20\x7b\x20\x69\x3a\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x72\x3a\x20\x72\x65\x66\x32\x2c\x20\x6b\x3a\x20\x72\x65\x66\x5f\x6b\x65\x79\x2c\x20\x66\x3a\x20\x21\x21\x72\x65\x66\x5f\x66\x6f\x72\x20\x7d\x20\x3a\x20\x72\x65\x66\x32\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3d\x20\x30\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x3d\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x3f\x20\x30\x20\x3a\x20\x31\x2c\x20\x69\x73\x42\x6c\x6f\x63\x6b\x4e\x6f\x64\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x6e\x65\x65\x64\x46\x75\x6c\x6c\x43\x68\x69\x6c\x64\x72\x65\x6e\x4e\x6f\x72\x6d\x61\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x76\x5f\x69\x73\x56\x4e\x6f\x64\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x5f\x5f\x76\x5f\x73\x6b\x69\x70\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x2c\x0a\x20\x20\x20\x20\x6b\x65\x79\x3a\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x4b\x65\x79\x28\x70\x72\x6f\x70\x73\x29\x2c\x0a\x20\x20\x20\x20\x72\x65\x66\x3a\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x52\x65\x66\x28\x70\x72\x6f\x70\x73\x29\x2c\x0a\x20\x20\x20\x20\x73\x63\x6f\x70\x65\x49\x64\x3a\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x6f\x70\x65\x49\x64\x2c\x0a\x20\x20\x20\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x64\x69\x72\x73\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x65\x6c\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x74\x61\x74\x69\x63\x43\x6f\x75\x6e\x74\x3a\x20\x30\x2c\x0a\x20\x20\x20\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x0a\x20\x20\x20\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x2c\x0a\x20\x20\x20\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x3a\x20\x6e\x75\x6c\x6c\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x69\x66\x20\x28\x6e\x65\x65\x64\x46\x75\x6c\x6c\x43\x68\x69\x6c\x64\x72\x65\x6e\x4e\x6f\x72\x6d\x61\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x2e\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7c\x3d\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x3f\x20\x38\x20\x3a\x20\x31\x36\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x42\x6c\x6f\x63\x6b\x54\x72\x65\x65\x45\x6e\x61\x62\x6c\x65\x64\x20\x3e\x20\x30\x20\x26\x26\x20\x21\x69\x73\x42\x6c\x6f\x63\x6b\x4e\x6f\x64\x65\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x20\x26\x26\x20\x28\x76\x6e\x6f\x64\x65\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3e\x20\x30\x20\x7c\x7c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x29\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x21\x3d\x3d\x20\x33\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x2e\x70\x75\x73\x68\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x20\x3d\x20\x5f\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x5f\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3d\x20\x30\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x73\x42\x6c\x6f\x63\x6b\x4e\x6f\x64\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x79\x70\x65\x20\x7c\x7c\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x4e\x55\x4c\x4c\x5f\x44\x59\x4e\x41\x4d\x49\x43\x5f\x43\x4f\x4d\x50\x4f\x4e\x45\x4e\x54\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6c\x6f\x6e\x65\x64\x20\x3d\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x63\x6c\x6f\x6e\x65\x64\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6c\x6f\x6e\x65\x64\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x43\x6c\x61\x73\x73\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x74\x79\x70\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x74\x79\x70\x65\x2e\x5f\x5f\x76\x63\x63\x4f\x70\x74\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x67\x75\x61\x72\x64\x52\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x6b\x6c\x61\x73\x73\x2c\x20\x73\x74\x79\x6c\x65\x20\x7d\x20\x3d\x20\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x6c\x61\x73\x73\x20\x26\x26\x20\x21\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x6b\x6c\x61\x73\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x2e\x63\x6c\x61\x73\x73\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6c\x61\x73\x73\x28\x6b\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x73\x74\x79\x6c\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x72\x6f\x78\x79\x28\x73\x74\x79\x6c\x65\x29\x20\x26\x26\x20\x21\x69\x73\x41\x72\x72\x61\x79\x28\x73\x74\x79\x6c\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x20\x3d\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x73\x74\x79\x6c\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x2e\x73\x74\x79\x6c\x65\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x74\x79\x6c\x65\x28\x73\x74\x79\x6c\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x3d\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x74\x79\x70\x65\x29\x20\x3f\x20\x31\x20\x3a\x20\x69\x73\x53\x75\x73\x70\x65\x6e\x73\x65\x28\x74\x79\x70\x65\x29\x20\x3f\x20\x31\x32\x38\x20\x3a\x20\x69\x73\x54\x65\x6c\x65\x70\x6f\x72\x74\x28\x74\x79\x70\x65\x29\x20\x3f\x20\x36\x34\x20\x3a\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x74\x79\x70\x65\x29\x20\x3f\x20\x34\x20\x3a\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x79\x70\x65\x29\x20\x3f\x20\x32\x20\x3a\x20\x30\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x2c\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x20\x69\x73\x42\x6c\x6f\x63\x6b\x4e\x6f\x64\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x75\x61\x72\x64\x52\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x28\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x70\x72\x6f\x70\x73\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x50\x72\x6f\x78\x79\x28\x70\x72\x6f\x70\x73\x29\x20\x7c\x7c\x20\x49\x6e\x74\x65\x72\x6e\x61\x6c\x4f\x62\x6a\x65\x63\x74\x4b\x65\x79\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x20\x3f\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x70\x72\x6f\x70\x73\x29\x20\x3a\x20\x70\x72\x6f\x70\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x2c\x20\x6d\x65\x72\x67\x65\x52\x65\x66\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x72\x6f\x70\x73\x2c\x20\x72\x65\x66\x3a\x20\x72\x65\x66\x32\x2c\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x72\x67\x65\x64\x50\x72\x6f\x70\x73\x20\x3d\x20\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x20\x3f\x20\x6d\x65\x72\x67\x65\x50\x72\x6f\x70\x73\x28\x70\x72\x6f\x70\x73\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x29\x20\x3a\x20\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6c\x6f\x6e\x65\x64\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x76\x5f\x69\x73\x56\x4e\x6f\x64\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x5f\x5f\x76\x5f\x73\x6b\x69\x70\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x6d\x65\x72\x67\x65\x64\x50\x72\x6f\x70\x73\x2c\x0a\x20\x20\x20\x20\x6b\x65\x79\x3a\x20\x6d\x65\x72\x67\x65\x64\x50\x72\x6f\x70\x73\x20\x26\x26\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x4b\x65\x79\x28\x6d\x65\x72\x67\x65\x64\x50\x72\x6f\x70\x73\x29\x2c\x0a\x20\x20\x20\x20\x72\x65\x66\x3a\x20\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x20\x26\x26\x20\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x2e\x72\x65\x66\x20\x3f\x20\x6d\x65\x72\x67\x65\x52\x65\x66\x20\x26\x26\x20\x72\x65\x66\x32\x20\x3f\x20\x69\x73\x41\x72\x72\x61\x79\x28\x72\x65\x66\x32\x29\x20\x3f\x20\x72\x65\x66\x32\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x52\x65\x66\x28\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x29\x29\x20\x3a\x20\x5b\x72\x65\x66\x32\x2c\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x52\x65\x66\x28\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x29\x5d\x20\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x52\x65\x66\x28\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x29\x20\x3a\x20\x72\x65\x66\x32\x2c\x0a\x20\x20\x20\x20\x73\x63\x6f\x70\x65\x49\x64\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x73\x63\x6f\x70\x65\x49\x64\x2c\x0a\x20\x20\x20\x20\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x2c\x0a\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x74\x61\x72\x67\x65\x74\x2c\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x74\x61\x72\x67\x65\x74\x41\x6e\x63\x68\x6f\x72\x2c\x0a\x20\x20\x20\x20\x73\x74\x61\x74\x69\x63\x43\x6f\x75\x6e\x74\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x73\x74\x61\x74\x69\x63\x43\x6f\x75\x6e\x74\x2c\x0a\x20\x20\x20\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x2c\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x3a\x20\x65\x78\x74\x72\x61\x50\x72\x6f\x70\x73\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x3f\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x3f\x20\x31\x36\x20\x3a\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x7c\x20\x31\x36\x20\x3a\x20\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x2c\x0a\x20\x20\x20\x20\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x64\x79\x6e\x61\x6d\x69\x63\x50\x72\x6f\x70\x73\x2c\x0a\x20\x20\x20\x20\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x64\x79\x6e\x61\x6d\x69\x63\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x0a\x20\x20\x20\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2c\x0a\x20\x20\x20\x20\x64\x69\x72\x73\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x64\x69\x72\x73\x2c\x0a\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x0a\x20\x20\x20\x20\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x20\x26\x26\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x2e\x73\x73\x43\x6f\x6e\x74\x65\x6e\x74\x29\x2c\x0a\x20\x20\x20\x20\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x20\x26\x26\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x2e\x73\x73\x46\x61\x6c\x6c\x62\x61\x63\x6b\x29\x2c\x0a\x20\x20\x20\x20\x65\x6c\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x2c\x0a\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6c\x6f\x6e\x65\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x56\x4e\x6f\x64\x65\x28\x74\x65\x78\x74\x20\x3d\x20\x22\x20\x22\x2c\x20\x66\x6c\x61\x67\x20\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x54\x65\x78\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x65\x78\x74\x2c\x20\x66\x6c\x61\x67\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x69\x63\x56\x4e\x6f\x64\x65\x28\x63\x6f\x6e\x74\x65\x6e\x74\x2c\x20\x6e\x75\x6d\x62\x65\x72\x4f\x66\x4e\x6f\x64\x65\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x53\x74\x61\x74\x69\x63\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x29\x3b\x0a\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x74\x61\x74\x69\x63\x43\x6f\x75\x6e\x74\x20\x3d\x20\x6e\x75\x6d\x62\x65\x72\x4f\x66\x4e\x6f\x64\x65\x73\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x56\x4e\x6f\x64\x65\x28\x74\x65\x78\x74\x20\x3d\x20\x22\x22\x2c\x20\x61\x73\x42\x6c\x6f\x63\x6b\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x73\x42\x6c\x6f\x63\x6b\x20\x3f\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x42\x6c\x6f\x63\x6b\x28\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x65\x78\x74\x29\x29\x20\x3a\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x65\x78\x74\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x63\x68\x69\x6c\x64\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x63\x68\x69\x6c\x64\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x46\x72\x61\x67\x6d\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x68\x69\x6c\x64\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x68\x69\x6c\x64\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x54\x65\x78\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x53\x74\x72\x69\x6e\x67\x28\x63\x68\x69\x6c\x64\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6c\x6f\x6e\x65\x49\x66\x4d\x6f\x75\x6e\x74\x65\x64\x28\x63\x68\x69\x6c\x64\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x69\x6c\x64\x2e\x65\x6c\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x68\x69\x6c\x64\x2e\x6d\x65\x6d\x6f\x20\x3f\x20\x63\x68\x69\x6c\x64\x20\x3a\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x76\x6e\x6f\x64\x65\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x74\x79\x70\x65\x20\x3d\x20\x30\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x31\x36\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x28\x31\x20\x7c\x20\x36\x34\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6c\x6f\x74\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x64\x65\x66\x61\x75\x6c\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6c\x6f\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x2e\x5f\x63\x20\x26\x26\x20\x28\x73\x6c\x6f\x74\x2e\x5f\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x76\x6e\x6f\x64\x65\x2c\x20\x73\x6c\x6f\x74\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x2e\x5f\x63\x20\x26\x26\x20\x28\x73\x6c\x6f\x74\x2e\x5f\x64\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x33\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6c\x6f\x74\x46\x6c\x61\x67\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x5f\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x6c\x6f\x74\x46\x6c\x61\x67\x20\x26\x26\x20\x21\x28\x49\x6e\x74\x65\x72\x6e\x61\x6c\x4f\x62\x6a\x65\x63\x74\x4b\x65\x79\x20\x69\x6e\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x5f\x63\x74\x78\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x6c\x6f\x74\x46\x6c\x61\x67\x20\x3d\x3d\x3d\x20\x33\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x6c\x6f\x74\x73\x2e\x5f\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x5f\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x5f\x20\x3d\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x70\x61\x74\x63\x68\x46\x6c\x61\x67\x20\x7c\x3d\x20\x31\x30\x32\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x7b\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x5f\x63\x74\x78\x3a\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x33\x32\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x53\x74\x72\x69\x6e\x67\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x36\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x31\x36\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x5b\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x38\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x7c\x3d\x20\x74\x79\x70\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x50\x72\x6f\x70\x73\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x74\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x61\x72\x67\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x4d\x65\x72\x67\x65\x20\x3d\x20\x61\x72\x67\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x74\x6f\x4d\x65\x72\x67\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x63\x6c\x61\x73\x73\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x74\x2e\x63\x6c\x61\x73\x73\x20\x21\x3d\x3d\x20\x74\x6f\x4d\x65\x72\x67\x65\x2e\x63\x6c\x61\x73\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x63\x6c\x61\x73\x73\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6c\x61\x73\x73\x28\x5b\x72\x65\x74\x2e\x63\x6c\x61\x73\x73\x2c\x20\x74\x6f\x4d\x65\x72\x67\x65\x2e\x63\x6c\x61\x73\x73\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x73\x74\x79\x6c\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x2e\x73\x74\x79\x6c\x65\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x74\x79\x6c\x65\x28\x5b\x72\x65\x74\x2e\x73\x74\x79\x6c\x65\x2c\x20\x74\x6f\x4d\x65\x72\x67\x65\x2e\x73\x74\x79\x6c\x65\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x6e\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x3d\x20\x72\x65\x74\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x63\x6f\x6d\x69\x6e\x67\x20\x3d\x20\x74\x6f\x4d\x65\x72\x67\x65\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x63\x6f\x6d\x69\x6e\x67\x20\x26\x26\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x21\x3d\x3d\x20\x69\x6e\x63\x6f\x6d\x69\x6e\x67\x20\x26\x26\x20\x21\x28\x69\x73\x41\x72\x72\x61\x79\x28\x65\x78\x69\x73\x74\x69\x6e\x67\x29\x20\x26\x26\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x69\x6e\x63\x6f\x6d\x69\x6e\x67\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x20\x3f\x20\x5b\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x78\x69\x73\x74\x69\x6e\x67\x2c\x20\x69\x6e\x63\x6f\x6d\x69\x6e\x67\x29\x20\x3a\x20\x69\x6e\x63\x6f\x6d\x69\x6e\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x21\x3d\x3d\x20\x22\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x74\x6f\x4d\x65\x72\x67\x65\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x76\x6f\x6b\x65\x56\x4e\x6f\x64\x65\x48\x6f\x6f\x6b\x28\x68\x6f\x6f\x6b\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x68\x6f\x6f\x6b\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x37\x2c\x20\x5b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x0a\x20\x20\x5d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x6e\x64\x65\x72\x4c\x69\x73\x74\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x72\x65\x6e\x64\x65\x72\x49\x74\x65\x6d\x2c\x20\x63\x61\x63\x68\x65\x2c\x20\x69\x6e\x64\x65\x78\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x74\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x64\x20\x3d\x20\x63\x61\x63\x68\x65\x20\x26\x26\x20\x63\x61\x63\x68\x65\x5b\x69\x6e\x64\x65\x78\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7c\x7c\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x6e\x65\x77\x20\x41\x72\x72\x61\x79\x28\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x2c\x20\x6c\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x3c\x20\x6c\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x5b\x69\x5d\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x49\x74\x65\x6d\x28\x73\x6f\x75\x72\x63\x65\x5b\x69\x5d\x2c\x20\x69\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x61\x63\x68\x65\x64\x20\x26\x26\x20\x63\x61\x63\x68\x65\x64\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x6e\x65\x77\x20\x41\x72\x72\x61\x79\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x73\x6f\x75\x72\x63\x65\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x5b\x69\x5d\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x49\x74\x65\x6d\x28\x69\x20\x2b\x20\x31\x2c\x20\x69\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x61\x63\x68\x65\x64\x20\x26\x26\x20\x63\x61\x63\x68\x65\x64\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x28\x69\x74\x65\x6d\x2c\x20\x69\x29\x20\x3d\x3e\x20\x72\x65\x6e\x64\x65\x72\x49\x74\x65\x6d\x28\x69\x74\x65\x6d\x2c\x20\x69\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x61\x63\x68\x65\x64\x20\x26\x26\x20\x63\x61\x63\x68\x65\x64\x5b\x69\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x6e\x65\x77\x20\x41\x72\x72\x61\x79\x28\x6b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x2c\x20\x6c\x20\x3d\x20\x6b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x3c\x20\x6c\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x6b\x65\x79\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x5b\x69\x5d\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x49\x74\x65\x6d\x28\x73\x6f\x75\x72\x63\x65\x5b\x6b\x65\x79\x5d\x2c\x20\x6b\x65\x79\x2c\x20\x69\x2c\x20\x63\x61\x63\x68\x65\x64\x20\x26\x26\x20\x63\x61\x63\x68\x65\x64\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x61\x63\x68\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x63\x68\x65\x5b\x69\x6e\x64\x65\x78\x5d\x20\x3d\x20\x72\x65\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x53\x6c\x6f\x74\x73\x28\x73\x6c\x6f\x74\x73\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x53\x6c\x6f\x74\x73\x29\x20\x7b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x64\x79\x6e\x61\x6d\x69\x63\x53\x6c\x6f\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6c\x6f\x74\x20\x3d\x20\x64\x79\x6e\x61\x6d\x69\x63\x53\x6c\x6f\x74\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x73\x6c\x6f\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x6a\x20\x3d\x20\x30\x3b\x20\x6a\x20\x3c\x20\x73\x6c\x6f\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6a\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x73\x5b\x73\x6c\x6f\x74\x5b\x6a\x5d\x2e\x6e\x61\x6d\x65\x5d\x20\x3d\x20\x73\x6c\x6f\x74\x5b\x6a\x5d\x2e\x66\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x6c\x6f\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x73\x5b\x73\x6c\x6f\x74\x2e\x6e\x61\x6d\x65\x5d\x20\x3d\x20\x73\x6c\x6f\x74\x2e\x66\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x6c\x6f\x74\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x6e\x64\x65\x72\x53\x6c\x6f\x74\x28\x73\x6c\x6f\x74\x73\x2c\x20\x6e\x61\x6d\x65\x2c\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x7b\x7d\x2c\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x2c\x20\x6e\x6f\x53\x6c\x6f\x74\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x43\x45\x20\x7c\x7c\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x20\x26\x26\x20\x69\x73\x41\x73\x79\x6e\x63\x57\x72\x61\x70\x70\x65\x72\x28\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x29\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x2e\x69\x73\x43\x45\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x22\x73\x6c\x6f\x74\x22\x2c\x20\x6e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x7b\x20\x6e\x61\x6d\x65\x20\x7d\x2c\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x20\x26\x26\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x28\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x73\x6c\x6f\x74\x20\x3d\x20\x73\x6c\x6f\x74\x73\x5b\x6e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x6c\x6f\x74\x20\x26\x26\x20\x73\x6c\x6f\x74\x2e\x5f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x6c\x6f\x74\x2e\x5f\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x69\x64\x53\x6c\x6f\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x73\x6c\x6f\x74\x20\x26\x26\x20\x65\x6e\x73\x75\x72\x65\x56\x61\x6c\x69\x64\x56\x4e\x6f\x64\x65\x28\x73\x6c\x6f\x74\x28\x70\x72\x6f\x70\x73\x29\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6e\x64\x65\x72\x65\x64\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x42\x6c\x6f\x63\x6b\x28\x46\x72\x61\x67\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x70\x72\x6f\x70\x73\x2e\x6b\x65\x79\x20\x7c\x7c\x20\x60\x5f\x24\x7b\x6e\x61\x6d\x65\x7d\x60\x20\x7d\x2c\x20\x76\x61\x6c\x69\x64\x53\x6c\x6f\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x7c\x7c\x20\x28\x66\x61\x6c\x6c\x62\x61\x63\x6b\x20\x3f\x20\x66\x61\x6c\x6c\x62\x61\x63\x6b\x28\x29\x20\x3a\x20\x5b\x5d\x29\x2c\x20\x76\x61\x6c\x69\x64\x53\x6c\x6f\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x26\x26\x20\x73\x6c\x6f\x74\x73\x2e\x5f\x20\x3d\x3d\x3d\x20\x31\x20\x3f\x20\x36\x34\x20\x3a\x20\x2d\x32\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x6e\x6f\x53\x6c\x6f\x74\x74\x65\x64\x20\x26\x26\x20\x72\x65\x6e\x64\x65\x72\x65\x64\x2e\x73\x63\x6f\x70\x65\x49\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x65\x64\x2e\x73\x6c\x6f\x74\x53\x63\x6f\x70\x65\x49\x64\x73\x20\x3d\x20\x5b\x72\x65\x6e\x64\x65\x72\x65\x64\x2e\x73\x63\x6f\x70\x65\x49\x64\x20\x2b\x20\x22\x2d\x73\x22\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x73\x6c\x6f\x74\x20\x26\x26\x20\x73\x6c\x6f\x74\x2e\x5f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x6c\x6f\x74\x2e\x5f\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x6e\x64\x65\x72\x65\x64\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6e\x73\x75\x72\x65\x56\x61\x6c\x69\x64\x56\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x73\x2e\x73\x6f\x6d\x65\x28\x28\x63\x68\x69\x6c\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x20\x26\x26\x20\x21\x65\x6e\x73\x75\x72\x65\x56\x61\x6c\x69\x64\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x29\x20\x3f\x20\x76\x6e\x6f\x64\x65\x73\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x48\x61\x6e\x64\x6c\x65\x72\x73\x28\x6f\x62\x6a\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x74\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x6f\x62\x6a\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x5b\x74\x6f\x48\x61\x6e\x64\x6c\x65\x72\x4b\x65\x79\x28\x6b\x65\x79\x29\x5d\x20\x3d\x20\x6f\x62\x6a\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x28\x69\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x61\x74\x65\x66\x75\x6c\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x69\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x45\x78\x70\x6f\x73\x65\x50\x72\x6f\x78\x79\x28\x69\x29\x20\x7c\x7c\x20\x69\x2e\x70\x72\x6f\x78\x79\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x2e\x70\x61\x72\x65\x6e\x74\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x70\x75\x62\x6c\x69\x63\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x65\x78\x74\x65\x6e\x64\x28\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x2c\x20\x7b\x0a\x20\x20\x24\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x2c\x0a\x20\x20\x24\x65\x6c\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x2e\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x2c\x0a\x20\x20\x24\x64\x61\x74\x61\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x2e\x64\x61\x74\x61\x2c\x0a\x20\x20\x24\x70\x72\x6f\x70\x73\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x2e\x70\x72\x6f\x70\x73\x2c\x0a\x20\x20\x24\x61\x74\x74\x72\x73\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x2e\x61\x74\x74\x72\x73\x2c\x0a\x20\x20\x24\x73\x6c\x6f\x74\x73\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x2e\x73\x6c\x6f\x74\x73\x2c\x0a\x20\x20\x24\x72\x65\x66\x73\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x2e\x72\x65\x66\x73\x2c\x0a\x20\x20\x24\x70\x61\x72\x65\x6e\x74\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x67\x65\x74\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x2e\x70\x61\x72\x65\x6e\x74\x29\x2c\x0a\x20\x20\x24\x72\x6f\x6f\x74\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x67\x65\x74\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x2e\x72\x6f\x6f\x74\x29\x2c\x0a\x20\x20\x24\x65\x6d\x69\x74\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x2e\x65\x6d\x69\x74\x2c\x0a\x20\x20\x24\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x72\x65\x73\x6f\x6c\x76\x65\x4d\x65\x72\x67\x65\x64\x4f\x70\x74\x69\x6f\x6e\x73\x28\x69\x29\x2c\x0a\x20\x20\x24\x66\x6f\x72\x63\x65\x55\x70\x64\x61\x74\x65\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x28\x29\x20\x3d\x3e\x20\x71\x75\x65\x75\x65\x4a\x6f\x62\x28\x69\x2e\x75\x70\x64\x61\x74\x65\x29\x2c\x0a\x20\x20\x24\x6e\x65\x78\x74\x54\x69\x63\x6b\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x6e\x65\x78\x74\x54\x69\x63\x6b\x2e\x62\x69\x6e\x64\x28\x69\x2e\x70\x72\x6f\x78\x79\x29\x2c\x0a\x20\x20\x24\x77\x61\x74\x63\x68\x3a\x20\x28\x69\x29\x20\x3d\x3e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x57\x61\x74\x63\x68\x2e\x62\x69\x6e\x64\x28\x69\x29\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x50\x72\x6f\x78\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x67\x65\x74\x28\x7b\x20\x5f\x3a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x7d\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x63\x74\x78\x2c\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x64\x61\x74\x61\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x2c\x20\x74\x79\x70\x65\x2c\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x22\x24\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6e\x29\x20\x7b\x0a\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\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x5b\x6b\x65\x79\x5d\x3b\x0a\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\x72\x65\x74\x75\x72\x6e\x20\x64\x61\x74\x61\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x74\x78\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x64\x61\x74\x61\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x64\x61\x74\x61\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x61\x74\x61\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x50\x72\x6f\x70\x73\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x30\x5d\x29\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x50\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x74\x78\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x63\x74\x78\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x74\x78\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x43\x61\x63\x68\x65\x41\x63\x63\x65\x73\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x75\x62\x6c\x69\x63\x47\x65\x74\x74\x65\x72\x20\x3d\x20\x70\x75\x62\x6c\x69\x63\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x4d\x61\x70\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x73\x73\x4d\x6f\x64\x75\x6c\x65\x2c\x20\x67\x6c\x6f\x62\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x75\x62\x6c\x69\x63\x47\x65\x74\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x24\x61\x74\x74\x72\x73\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x22\x67\x65\x74\x22\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x75\x62\x6c\x69\x63\x47\x65\x74\x74\x65\x72\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x28\x63\x73\x73\x4d\x6f\x64\x75\x6c\x65\x20\x3d\x20\x74\x79\x70\x65\x2e\x5f\x5f\x63\x73\x73\x4d\x6f\x64\x75\x6c\x65\x73\x29\x20\x26\x26\x20\x28\x63\x73\x73\x4d\x6f\x64\x75\x6c\x65\x20\x3d\x20\x63\x73\x73\x4d\x6f\x64\x75\x6c\x65\x5b\x6b\x65\x79\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x73\x73\x4d\x6f\x64\x75\x6c\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x74\x78\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x63\x74\x78\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x74\x78\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x67\x6c\x6f\x62\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x20\x3d\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x6c\x6f\x62\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x2c\x20\x68\x61\x73\x4f\x77\x6e\x28\x67\x6c\x6f\x62\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x6c\x6f\x62\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x73\x65\x74\x28\x7b\x20\x5f\x3a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x7d\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x64\x61\x74\x61\x2c\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x63\x74\x78\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x64\x61\x74\x61\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x64\x61\x74\x61\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x61\x74\x61\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x68\x61\x73\x4f\x77\x6e\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x24\x22\x20\x26\x26\x20\x6b\x65\x79\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x20\x69\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x74\x78\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x68\x61\x73\x28\x7b\x20\x5f\x3a\x20\x7b\x20\x64\x61\x74\x61\x2c\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x2c\x20\x63\x74\x78\x2c\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2c\x20\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x20\x7d\x20\x7d\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x20\x7c\x7c\x20\x64\x61\x74\x61\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x64\x61\x74\x61\x2c\x20\x6b\x65\x79\x29\x20\x7c\x7c\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x20\x21\x3d\x3d\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x2c\x20\x6b\x65\x79\x29\x20\x7c\x7c\x20\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x50\x72\x6f\x70\x73\x20\x3d\x20\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x30\x5d\x29\x20\x26\x26\x20\x68\x61\x73\x4f\x77\x6e\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x50\x72\x6f\x70\x73\x2c\x20\x6b\x65\x79\x29\x20\x7c\x7c\x20\x68\x61\x73\x4f\x77\x6e\x28\x63\x74\x78\x2c\x20\x6b\x65\x79\x29\x20\x7c\x7c\x20\x68\x61\x73\x4f\x77\x6e\x28\x70\x75\x62\x6c\x69\x63\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x4d\x61\x70\x2c\x20\x6b\x65\x79\x29\x20\x7c\x7c\x20\x68\x61\x73\x4f\x77\x6e\x28\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x6c\x6f\x62\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x2e\x67\x65\x74\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2e\x5f\x2e\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x68\x61\x73\x4f\x77\x6e\x28\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x2c\x20\x22\x76\x61\x6c\x75\x65\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x2e\x76\x61\x6c\x75\x65\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x52\x75\x6e\x74\x69\x6d\x65\x43\x6f\x6d\x70\x69\x6c\x65\x64\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x50\x72\x6f\x78\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x50\x72\x6f\x78\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x20\x7b\x0a\x20\x20\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x75\x6e\x73\x63\x6f\x70\x61\x62\x6c\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x50\x72\x6f\x78\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x2e\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x68\x61\x73\x28\x5f\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x32\x20\x3d\x20\x6b\x65\x79\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x22\x5f\x22\x20\x26\x26\x20\x21\x69\x73\x47\x6c\x6f\x62\x61\x6c\x6c\x79\x57\x68\x69\x74\x65\x6c\x69\x73\x74\x65\x64\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x32\x3b\x0a\x20\x20\x7d\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x65\x6d\x70\x74\x79\x41\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x28\x29\x3b\x0a\x6c\x65\x74\x20\x75\x69\x64\x24\x31\x20\x3d\x20\x30\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x79\x70\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x28\x70\x61\x72\x65\x6e\x74\x20\x3f\x20\x70\x61\x72\x65\x6e\x74\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x3a\x20\x76\x6e\x6f\x64\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x29\x20\x7c\x7c\x20\x65\x6d\x70\x74\x79\x41\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x75\x69\x64\x3a\x20\x75\x69\x64\x24\x31\x2b\x2b\x2c\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x2c\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2c\x0a\x20\x20\x20\x20\x72\x6f\x6f\x74\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x6e\x65\x78\x74\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x75\x62\x54\x72\x65\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x65\x66\x66\x65\x63\x74\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x63\x6f\x70\x65\x3a\x20\x6e\x65\x77\x20\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x28\x74\x72\x75\x65\x29\x2c\x0a\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x78\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x65\x78\x70\x6f\x73\x65\x64\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x65\x78\x70\x6f\x73\x65\x50\x72\x6f\x78\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x77\x69\x74\x68\x50\x72\x6f\x78\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x73\x3a\x20\x70\x61\x72\x65\x6e\x74\x20\x3f\x20\x70\x61\x72\x65\x6e\x74\x2e\x70\x72\x6f\x76\x69\x64\x65\x73\x20\x3a\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x70\x72\x6f\x76\x69\x64\x65\x73\x29\x2c\x0a\x20\x20\x20\x20\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x43\x61\x63\x68\x65\x3a\x20\x5b\x5d\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x50\x72\x6f\x70\x73\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x79\x70\x65\x2c\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x29\x2c\x0a\x20\x20\x20\x20\x65\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x45\x6d\x69\x74\x73\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x79\x70\x65\x2c\x20\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x29\x2c\x0a\x20\x20\x20\x20\x65\x6d\x69\x74\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x65\x6d\x69\x74\x74\x65\x64\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x44\x65\x66\x61\x75\x6c\x74\x73\x3a\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x2c\x0a\x20\x20\x20\x20\x69\x6e\x68\x65\x72\x69\x74\x41\x74\x74\x72\x73\x3a\x20\x74\x79\x70\x65\x2e\x69\x6e\x68\x65\x72\x69\x74\x41\x74\x74\x72\x73\x2c\x0a\x20\x20\x20\x20\x63\x74\x78\x3a\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x2c\x0a\x20\x20\x20\x20\x64\x61\x74\x61\x3a\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x2c\x0a\x20\x20\x20\x20\x61\x74\x74\x72\x73\x3a\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x2c\x0a\x20\x20\x20\x20\x73\x6c\x6f\x74\x73\x3a\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x2c\x0a\x20\x20\x20\x20\x72\x65\x66\x73\x3a\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x2c\x0a\x20\x20\x20\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x3a\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x2c\x0a\x20\x20\x20\x20\x73\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2c\x0a\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x49\x64\x3a\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3f\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x49\x64\x20\x3a\x20\x30\x2c\x0a\x20\x20\x20\x20\x61\x73\x79\x6e\x63\x44\x65\x70\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x61\x73\x79\x6e\x63\x52\x65\x73\x6f\x6c\x76\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x69\x73\x4d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x69\x73\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x69\x73\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x62\x63\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x63\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x62\x6d\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x6d\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x62\x75\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x75\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x75\x6d\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x62\x75\x6d\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x64\x61\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x61\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x72\x74\x67\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x72\x74\x63\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x65\x63\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x70\x3a\x20\x6e\x75\x6c\x6c\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x63\x74\x78\x20\x3d\x20\x7b\x20\x5f\x3a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x72\x6f\x6f\x74\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x20\x3f\x20\x70\x61\x72\x65\x6e\x74\x2e\x72\x6f\x6f\x74\x20\x3a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x20\x3d\x20\x65\x6d\x69\x74\x24\x31\x2e\x62\x69\x6e\x64\x28\x6e\x75\x6c\x6c\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x63\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x7c\x7c\x20\x63\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x63\x6f\x70\x65\x2e\x6f\x6e\x28\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x63\x6f\x70\x65\x2e\x6f\x66\x66\x28\x29\x3b\x0a\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x53\x74\x61\x74\x65\x66\x75\x6c\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x34\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x69\x73\x49\x6e\x53\x53\x52\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x75\x70\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x73\x53\x53\x52\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x69\x73\x49\x6e\x53\x53\x52\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x20\x3d\x20\x69\x73\x53\x53\x52\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x72\x6f\x70\x73\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x74\x61\x74\x65\x66\x75\x6c\x20\x3d\x20\x69\x73\x53\x74\x61\x74\x65\x66\x75\x6c\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x69\x6e\x69\x74\x50\x72\x6f\x70\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x69\x73\x53\x74\x61\x74\x65\x66\x75\x6c\x2c\x20\x69\x73\x53\x53\x52\x29\x3b\x0a\x20\x20\x69\x6e\x69\x74\x53\x6c\x6f\x74\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x20\x3d\x20\x69\x73\x53\x74\x61\x74\x65\x66\x75\x6c\x20\x3f\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x66\x75\x6c\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x73\x53\x53\x52\x29\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x69\x73\x49\x6e\x53\x53\x52\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x66\x75\x6c\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x73\x53\x53\x52\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x63\x63\x65\x73\x73\x43\x61\x63\x68\x65\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x20\x3d\x20\x6d\x61\x72\x6b\x52\x61\x77\x28\x6e\x65\x77\x20\x50\x72\x6f\x78\x79\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x63\x74\x78\x2c\x20\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x50\x72\x6f\x78\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x29\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x65\x74\x75\x70\x20\x7d\x20\x3d\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x65\x74\x75\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x73\x65\x74\x75\x70\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x3f\x20\x63\x72\x65\x61\x74\x65\x53\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x70\x61\x75\x73\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x20\x3d\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x73\x65\x74\x75\x70\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x30\x2c\x20\x5b\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x70\x73\x2c\x20\x73\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x5d\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x73\x65\x74\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x72\x6f\x6d\x69\x73\x65\x28\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x2e\x74\x68\x65\x6e\x28\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x53\x52\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x2e\x74\x68\x65\x6e\x28\x28\x72\x65\x73\x6f\x6c\x76\x65\x64\x52\x65\x73\x75\x6c\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x53\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x52\x65\x73\x75\x6c\x74\x2c\x20\x69\x73\x53\x53\x52\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x63\x61\x74\x63\x68\x28\x28\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x45\x72\x72\x6f\x72\x28\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x73\x79\x6e\x63\x44\x65\x70\x20\x3d\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x61\x6e\x64\x6c\x65\x53\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x2c\x20\x69\x73\x53\x53\x52\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x66\x69\x6e\x69\x73\x68\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x73\x53\x53\x52\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x61\x6e\x64\x6c\x65\x53\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x2c\x20\x69\x73\x53\x53\x52\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x74\x79\x70\x65\x2e\x5f\x5f\x73\x73\x72\x49\x6e\x6c\x69\x6e\x65\x52\x65\x6e\x64\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x73\x72\x52\x65\x6e\x64\x65\x72\x20\x3d\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x72\x65\x6e\x64\x65\x72\x20\x3d\x20\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x65\x74\x75\x70\x53\x74\x61\x74\x65\x20\x3d\x20\x70\x72\x6f\x78\x79\x52\x65\x66\x73\x28\x73\x65\x74\x75\x70\x52\x65\x73\x75\x6c\x74\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x3b\x0a\x20\x20\x66\x69\x6e\x69\x73\x68\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x73\x53\x53\x52\x29\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x63\x6f\x6d\x70\x69\x6c\x65\x24\x31\x3b\x0a\x6c\x65\x74\x20\x69\x6e\x73\x74\x61\x6c\x6c\x57\x69\x74\x68\x50\x72\x6f\x78\x79\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x67\x69\x73\x74\x65\x72\x52\x75\x6e\x74\x69\x6d\x65\x43\x6f\x6d\x70\x69\x6c\x65\x72\x28\x5f\x63\x6f\x6d\x70\x69\x6c\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6d\x70\x69\x6c\x65\x24\x31\x20\x3d\x20\x5f\x63\x6f\x6d\x70\x69\x6c\x65\x3b\x0a\x20\x20\x69\x6e\x73\x74\x61\x6c\x6c\x57\x69\x74\x68\x50\x72\x6f\x78\x79\x20\x3d\x20\x28\x69\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x2e\x72\x65\x6e\x64\x65\x72\x2e\x5f\x72\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x2e\x77\x69\x74\x68\x50\x72\x6f\x78\x79\x20\x3d\x20\x6e\x65\x77\x20\x50\x72\x6f\x78\x79\x28\x69\x2e\x63\x74\x78\x2c\x20\x52\x75\x6e\x74\x69\x6d\x65\x43\x6f\x6d\x70\x69\x6c\x65\x64\x50\x75\x62\x6c\x69\x63\x49\x6e\x73\x74\x61\x6e\x63\x65\x50\x72\x6f\x78\x79\x48\x61\x6e\x64\x6c\x65\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x52\x75\x6e\x74\x69\x6d\x65\x4f\x6e\x6c\x79\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x21\x63\x6f\x6d\x70\x69\x6c\x65\x24\x31\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6e\x69\x73\x68\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x69\x73\x53\x53\x52\x2c\x20\x73\x6b\x69\x70\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x72\x65\x6e\x64\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x53\x53\x52\x20\x26\x26\x20\x63\x6f\x6d\x70\x69\x6c\x65\x24\x31\x20\x26\x26\x20\x21\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x72\x65\x6e\x64\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x20\x3d\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x74\x65\x6d\x70\x6c\x61\x74\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x65\x6d\x70\x6c\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x69\x73\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x63\x6f\x6d\x70\x69\x6c\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x20\x7d\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x73\x2c\x20\x63\x6f\x6d\x70\x69\x6c\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x43\x6f\x6d\x70\x69\x6c\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x20\x7d\x20\x3d\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x69\x6e\x61\x6c\x43\x6f\x6d\x70\x69\x6c\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x65\x78\x74\x65\x6e\x64\x28\x65\x78\x74\x65\x6e\x64\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6d\x70\x69\x6c\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x29\x2c\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x43\x6f\x6d\x70\x69\x6c\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x72\x65\x6e\x64\x65\x72\x20\x3d\x20\x63\x6f\x6d\x70\x69\x6c\x65\x24\x31\x28\x74\x65\x6d\x70\x6c\x61\x74\x65\x2c\x20\x66\x69\x6e\x61\x6c\x43\x6f\x6d\x70\x69\x6c\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x72\x65\x6e\x64\x65\x72\x20\x3d\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x72\x65\x6e\x64\x65\x72\x20\x7c\x7c\x20\x4e\x4f\x4f\x50\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6c\x6c\x57\x69\x74\x68\x50\x72\x6f\x78\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6c\x6c\x57\x69\x74\x68\x50\x72\x6f\x78\x79\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x70\x61\x75\x73\x65\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x61\x70\x70\x6c\x79\x4f\x70\x74\x69\x6f\x6e\x73\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x73\x65\x74\x54\x72\x61\x63\x6b\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x41\x74\x74\x72\x73\x50\x72\x6f\x78\x79\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x72\x6f\x78\x79\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x74\x74\x72\x73\x2c\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x63\x6b\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x22\x67\x65\x74\x22\x2c\x20\x22\x24\x61\x74\x74\x72\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x53\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x70\x6f\x73\x65\x20\x3d\x20\x28\x65\x78\x70\x6f\x73\x65\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x64\x20\x3d\x20\x65\x78\x70\x6f\x73\x65\x64\x20\x7c\x7c\x20\x7b\x7d\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x61\x74\x74\x72\x73\x3b\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x67\x65\x74\x20\x61\x74\x74\x72\x73\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x74\x74\x72\x73\x20\x7c\x7c\x20\x28\x61\x74\x74\x72\x73\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x41\x74\x74\x72\x73\x50\x72\x6f\x78\x79\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x6c\x6f\x74\x73\x3a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x6c\x6f\x74\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x65\x6d\x69\x74\x3a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x65\x78\x70\x6f\x73\x65\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x45\x78\x70\x6f\x73\x65\x50\x72\x6f\x78\x79\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x50\x72\x6f\x78\x79\x20\x7c\x7c\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x50\x72\x6f\x78\x79\x20\x3d\x20\x6e\x65\x77\x20\x50\x72\x6f\x78\x79\x28\x70\x72\x6f\x78\x79\x52\x65\x66\x73\x28\x6d\x61\x72\x6b\x52\x61\x77\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x78\x70\x6f\x73\x65\x64\x29\x29\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x67\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x69\x6e\x20\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x69\x6e\x20\x70\x75\x62\x6c\x69\x63\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x75\x62\x6c\x69\x63\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x4d\x61\x70\x5b\x6b\x65\x79\x5d\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x63\x6c\x61\x73\x73\x69\x66\x79\x52\x45\x20\x3d\x20\x2f\x28\x3f\x3a\x5e\x7c\x5b\x2d\x5f\x5d\x29\x28\x5c\x77\x29\x2f\x67\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x6c\x61\x73\x73\x69\x66\x79\x20\x3d\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x63\x6c\x61\x73\x73\x69\x66\x79\x52\x45\x2c\x20\x28\x63\x29\x20\x3d\x3e\x20\x63\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x2d\x5f\x5d\x2f\x67\x2c\x20\x22\x22\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x4e\x61\x6d\x65\x28\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x3f\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x64\x69\x73\x70\x6c\x61\x79\x4e\x61\x6d\x65\x20\x7c\x7c\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x6e\x61\x6d\x65\x20\x3a\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x6e\x61\x6d\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x72\x6d\x61\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x4e\x61\x6d\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x69\x73\x52\x6f\x6f\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x6e\x61\x6d\x65\x20\x3d\x20\x67\x65\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x4e\x61\x6d\x65\x28\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x6e\x61\x6d\x65\x20\x26\x26\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x5f\x5f\x66\x69\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x5f\x5f\x66\x69\x6c\x65\x2e\x6d\x61\x74\x63\x68\x28\x2f\x28\x5b\x5e\x2f\x5c\x5c\x5d\x2b\x29\x5c\x2e\x5c\x77\x2b\x24\x2f\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x74\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x20\x3d\x20\x6d\x61\x74\x63\x68\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x6e\x61\x6d\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x26\x26\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x66\x65\x72\x46\x72\x6f\x6d\x52\x65\x67\x69\x73\x74\x72\x79\x20\x3d\x20\x28\x72\x65\x67\x69\x73\x74\x72\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x72\x65\x67\x69\x73\x74\x72\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x67\x69\x73\x74\x72\x79\x5b\x6b\x65\x79\x5d\x20\x3d\x3d\x3d\x20\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x6e\x61\x6d\x65\x20\x3d\x20\x69\x6e\x66\x65\x72\x46\x72\x6f\x6d\x52\x65\x67\x69\x73\x74\x72\x79\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x20\x7c\x7c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x2e\x74\x79\x70\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x29\x20\x7c\x7c\x20\x69\x6e\x66\x65\x72\x46\x72\x6f\x6d\x52\x65\x67\x69\x73\x74\x72\x79\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x61\x70\x70\x43\x6f\x6e\x74\x65\x78\x74\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x61\x6d\x65\x20\x3f\x20\x63\x6c\x61\x73\x73\x69\x66\x79\x28\x6e\x61\x6d\x65\x29\x20\x3a\x20\x69\x73\x52\x6f\x6f\x74\x20\x3f\x20\x60\x41\x70\x70\x60\x20\x3a\x20\x60\x41\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\x60\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x43\x6c\x61\x73\x73\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x22\x5f\x5f\x76\x63\x63\x4f\x70\x74\x73\x22\x20\x69\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x20\x3d\x20\x28\x67\x65\x74\x74\x65\x72\x4f\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x64\x65\x62\x75\x67\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x24\x31\x28\x67\x65\x74\x74\x65\x72\x4f\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x64\x65\x62\x75\x67\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x69\x73\x49\x6e\x53\x53\x52\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x53\x65\x74\x75\x70\x29\x3b\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x73\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x65\x66\x69\x6e\x65\x45\x6d\x69\x74\x73\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x65\x66\x69\x6e\x65\x45\x78\x70\x6f\x73\x65\x28\x65\x78\x70\x6f\x73\x65\x64\x29\x20\x7b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x69\x74\x68\x44\x65\x66\x61\x75\x6c\x74\x73\x28\x70\x72\x6f\x70\x73\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x73\x65\x53\x6c\x6f\x74\x73\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x43\x6f\x6e\x74\x65\x78\x74\x28\x29\x2e\x73\x6c\x6f\x74\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x73\x65\x41\x74\x74\x72\x73\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x43\x6f\x6e\x74\x65\x78\x74\x28\x29\x2e\x61\x74\x74\x72\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x43\x6f\x6e\x74\x65\x78\x74\x28\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x20\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x2e\x73\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x7c\x7c\x20\x28\x69\x2e\x73\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x53\x65\x74\x75\x70\x43\x6f\x6e\x74\x65\x78\x74\x28\x69\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x44\x65\x66\x61\x75\x6c\x74\x73\x28\x72\x61\x77\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x69\x73\x41\x72\x72\x61\x79\x28\x72\x61\x77\x29\x20\x3f\x20\x72\x61\x77\x2e\x72\x65\x64\x75\x63\x65\x28\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x2c\x20\x70\x32\x29\x20\x3d\x3e\x20\x28\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x5b\x70\x32\x5d\x20\x3d\x20\x7b\x7d\x2c\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x64\x29\x2c\x20\x7b\x7d\x29\x20\x3a\x20\x72\x61\x77\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x20\x3d\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x70\x74\x29\x20\x7c\x7c\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x70\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x6f\x70\x74\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x5b\x6b\x65\x79\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x3d\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x70\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x7b\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x5b\x6b\x65\x79\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x6f\x70\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x50\x72\x6f\x70\x73\x52\x65\x73\x74\x50\x72\x6f\x78\x79\x28\x70\x72\x6f\x70\x73\x2c\x20\x65\x78\x63\x6c\x75\x64\x65\x64\x4b\x65\x79\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x74\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x78\x63\x6c\x75\x64\x65\x64\x4b\x65\x79\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\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\x72\x65\x74\x2c\x20\x6b\x65\x79\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x74\x3a\x20\x28\x29\x20\x3d\x3e\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x69\x74\x68\x41\x73\x79\x6e\x63\x43\x6f\x6e\x74\x65\x78\x74\x28\x67\x65\x74\x41\x77\x61\x69\x74\x61\x62\x6c\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x78\x20\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x61\x77\x61\x69\x74\x61\x62\x6c\x65\x20\x3d\x20\x67\x65\x74\x41\x77\x61\x69\x74\x61\x62\x6c\x65\x28\x29\x3b\x0a\x20\x20\x75\x6e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x50\x72\x6f\x6d\x69\x73\x65\x28\x61\x77\x61\x69\x74\x61\x62\x6c\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x61\x77\x61\x69\x74\x61\x62\x6c\x65\x20\x3d\x20\x61\x77\x61\x69\x74\x61\x62\x6c\x65\x2e\x63\x61\x74\x63\x68\x28\x28\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x65\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x61\x77\x61\x69\x74\x61\x62\x6c\x65\x2c\x20\x28\x29\x20\x3d\x3e\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x63\x74\x78\x29\x5d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x4f\x72\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x69\x66\x20\x28\x6c\x20\x3d\x3d\x3d\x20\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x70\x72\x6f\x70\x73\x4f\x72\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x26\x26\x20\x21\x69\x73\x41\x72\x72\x61\x79\x28\x70\x72\x6f\x70\x73\x4f\x72\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x56\x4e\x6f\x64\x65\x28\x70\x72\x6f\x70\x73\x4f\x72\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x5b\x70\x72\x6f\x70\x73\x4f\x72\x43\x68\x69\x6c\x64\x72\x65\x6e\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x4f\x72\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x4f\x72\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x20\x3e\x20\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6c\x20\x3d\x3d\x3d\x20\x33\x20\x26\x26\x20\x69\x73\x56\x4e\x6f\x64\x65\x28\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x5b\x63\x68\x69\x6c\x64\x72\x65\x6e\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x74\x79\x70\x65\x2c\x20\x70\x72\x6f\x70\x73\x4f\x72\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x73\x72\x43\x6f\x6e\x74\x65\x78\x74\x4b\x65\x79\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x60\x60\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x75\x73\x65\x53\x53\x52\x43\x6f\x6e\x74\x65\x78\x74\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x78\x20\x3d\x20\x69\x6e\x6a\x65\x63\x74\x28\x73\x73\x72\x43\x6f\x6e\x74\x65\x78\x74\x4b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x61\x72\x6e\x24\x31\x28\x60\x53\x65\x72\x76\x65\x72\x20\x72\x65\x6e\x64\x65\x72\x69\x6e\x67\x20\x63\x6f\x6e\x74\x65\x78\x74\x20\x6e\x6f\x74\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x2e\x20\x4d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x74\x6f\x20\x6f\x6e\x6c\x79\x20\x63\x61\x6c\x6c\x20\x75\x73\x65\x53\x53\x52\x43\x6f\x6e\x74\x65\x78\x74\x28\x29\x20\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x61\x6c\x6c\x79\x20\x69\x6e\x20\x74\x68\x65\x20\x73\x65\x72\x76\x65\x72\x20\x62\x75\x69\x6c\x64\x2e\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x74\x78\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x43\x75\x73\x74\x6f\x6d\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x29\x20\x7b\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x69\x74\x68\x4d\x65\x6d\x6f\x28\x6d\x65\x6d\x6f\x2c\x20\x72\x65\x6e\x64\x65\x72\x32\x2c\x20\x63\x61\x63\x68\x65\x2c\x20\x69\x6e\x64\x65\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x64\x20\x3d\x20\x63\x61\x63\x68\x65\x5b\x69\x6e\x64\x65\x78\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x61\x63\x68\x65\x64\x20\x26\x26\x20\x69\x73\x4d\x65\x6d\x6f\x53\x61\x6d\x65\x28\x63\x61\x63\x68\x65\x64\x2c\x20\x6d\x65\x6d\x6f\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x61\x63\x68\x65\x64\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x74\x20\x3d\x20\x72\x65\x6e\x64\x65\x72\x32\x28\x29\x3b\x0a\x20\x20\x72\x65\x74\x2e\x6d\x65\x6d\x6f\x20\x3d\x20\x6d\x65\x6d\x6f\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x61\x63\x68\x65\x5b\x69\x6e\x64\x65\x78\x5d\x20\x3d\x20\x72\x65\x74\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x4d\x65\x6d\x6f\x53\x61\x6d\x65\x28\x63\x61\x63\x68\x65\x64\x2c\x20\x6d\x65\x6d\x6f\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x63\x61\x63\x68\x65\x64\x2e\x6d\x65\x6d\x6f\x3b\x0a\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x20\x6d\x65\x6d\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x70\x72\x65\x76\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x5b\x69\x5d\x20\x21\x3d\x3d\x20\x6d\x65\x6d\x6f\x5b\x69\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x42\x6c\x6f\x63\x6b\x54\x72\x65\x65\x45\x6e\x61\x62\x6c\x65\x64\x20\x3e\x20\x30\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x2e\x70\x75\x73\x68\x28\x63\x61\x63\x68\x65\x64\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x3d\x20\x22\x33\x2e\x32\x2e\x33\x33\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x73\x73\x72\x55\x74\x69\x6c\x73\x20\x3d\x20\x7b\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x0a\x20\x20\x73\x65\x74\x75\x70\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x72\x65\x6e\x64\x65\x72\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x52\x6f\x6f\x74\x2c\x0a\x20\x20\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x52\x65\x6e\x64\x65\x72\x69\x6e\x67\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x0a\x20\x20\x69\x73\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x56\x4e\x6f\x64\x65\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x73\x72\x55\x74\x69\x6c\x73\x20\x3d\x20\x5f\x73\x73\x72\x55\x74\x69\x6c\x73\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x46\x69\x6c\x74\x65\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x70\x61\x74\x55\x74\x69\x6c\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x76\x67\x4e\x53\x20\x3d\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x64\x6f\x63\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x3f\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x64\x6f\x63\x20\x26\x26\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x64\x6f\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x74\x65\x6d\x70\x6c\x61\x74\x65\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x4f\x70\x73\x20\x3d\x20\x7b\x0a\x20\x20\x69\x6e\x73\x65\x72\x74\x3a\x20\x28\x63\x68\x69\x6c\x64\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x63\x68\x69\x6c\x64\x2c\x20\x61\x6e\x63\x68\x6f\x72\x20\x7c\x7c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x72\x65\x6d\x6f\x76\x65\x3a\x20\x28\x63\x68\x69\x6c\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x63\x68\x69\x6c\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x63\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3a\x20\x28\x74\x61\x67\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x69\x73\x2c\x20\x70\x72\x6f\x70\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6c\x20\x3d\x20\x69\x73\x53\x56\x47\x20\x3f\x20\x64\x6f\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x4e\x53\x28\x73\x76\x67\x4e\x53\x2c\x20\x74\x61\x67\x29\x20\x3a\x20\x64\x6f\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x74\x61\x67\x2c\x20\x69\x73\x20\x3f\x20\x7b\x20\x69\x73\x20\x7d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x67\x20\x3d\x3d\x3d\x20\x22\x73\x65\x6c\x65\x63\x74\x22\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x6d\x75\x6c\x74\x69\x70\x6c\x65\x22\x2c\x20\x70\x72\x6f\x70\x73\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x6c\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x3a\x20\x28\x74\x65\x78\x74\x29\x20\x3d\x3e\x20\x64\x6f\x63\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x74\x65\x78\x74\x29\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x3a\x20\x28\x74\x65\x78\x74\x29\x20\x3d\x3e\x20\x64\x6f\x63\x2e\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x74\x65\x78\x74\x29\x2c\x0a\x20\x20\x73\x65\x74\x54\x65\x78\x74\x3a\x20\x28\x6e\x6f\x64\x65\x2c\x20\x74\x65\x78\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x65\x78\x74\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x73\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x54\x65\x78\x74\x3a\x20\x28\x65\x6c\x2c\x20\x74\x65\x78\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x74\x65\x78\x74\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3a\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x3a\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x6e\x6f\x64\x65\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x2c\x0a\x20\x20\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x3a\x20\x28\x73\x65\x6c\x65\x63\x74\x6f\x72\x29\x20\x3d\x3e\x20\x64\x6f\x63\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x73\x65\x6c\x65\x63\x74\x6f\x72\x29\x2c\x0a\x20\x20\x73\x65\x74\x53\x63\x6f\x70\x65\x49\x64\x28\x65\x6c\x2c\x20\x69\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x69\x64\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6c\x6f\x6e\x65\x64\x20\x3d\x20\x65\x6c\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x60\x5f\x76\x61\x6c\x75\x65\x60\x20\x69\x6e\x20\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6c\x6f\x6e\x65\x64\x2e\x5f\x76\x61\x6c\x75\x65\x20\x3d\x20\x65\x6c\x2e\x5f\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6c\x6f\x6e\x65\x64\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x69\x6e\x73\x65\x72\x74\x53\x74\x61\x74\x69\x63\x43\x6f\x6e\x74\x65\x6e\x74\x28\x63\x6f\x6e\x74\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x73\x74\x61\x72\x74\x2c\x20\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x20\x3f\x20\x61\x6e\x63\x68\x6f\x72\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x20\x3a\x20\x70\x61\x72\x65\x6e\x74\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x61\x72\x74\x20\x26\x26\x20\x28\x73\x74\x61\x72\x74\x20\x3d\x3d\x3d\x20\x65\x6e\x64\x20\x7c\x7c\x20\x73\x74\x61\x72\x74\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x73\x74\x61\x72\x74\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x74\x72\x75\x65\x29\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x61\x72\x74\x20\x3d\x3d\x3d\x20\x65\x6e\x64\x20\x7c\x7c\x20\x21\x28\x73\x74\x61\x72\x74\x20\x3d\x20\x73\x74\x61\x72\x74\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x69\x73\x53\x56\x47\x20\x3f\x20\x60\x3c\x73\x76\x67\x3e\x24\x7b\x63\x6f\x6e\x74\x65\x6e\x74\x7d\x3c\x2f\x73\x76\x67\x3e\x60\x20\x3a\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x20\x3d\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x56\x47\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3d\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x77\x72\x61\x70\x70\x65\x72\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\x74\x65\x6d\x70\x6c\x61\x74\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x77\x72\x61\x70\x70\x65\x72\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x74\x65\x6d\x70\x6c\x61\x74\x65\x2c\x20\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x62\x65\x66\x6f\x72\x65\x20\x3f\x20\x62\x65\x66\x6f\x72\x65\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x20\x3a\x20\x70\x61\x72\x65\x6e\x74\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x0a\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x20\x3f\x20\x61\x6e\x63\x68\x6f\x72\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x20\x3a\x20\x70\x61\x72\x65\x6e\x74\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x0a\x20\x20\x20\x20\x5d\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x74\x63\x68\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x65\x73\x20\x3d\x20\x65\x6c\x2e\x5f\x76\x74\x63\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x20\x3f\x20\x5b\x76\x61\x6c\x75\x65\x2c\x20\x2e\x2e\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x65\x73\x5d\x20\x3a\x20\x5b\x2e\x2e\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x65\x73\x5d\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x22\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x53\x56\x47\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x74\x63\x68\x53\x74\x79\x6c\x65\x28\x65\x6c\x2c\x20\x70\x72\x65\x76\x2c\x20\x6e\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x79\x6c\x65\x20\x3d\x20\x65\x6c\x2e\x73\x74\x79\x6c\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x43\x73\x73\x53\x74\x72\x69\x6e\x67\x20\x3d\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x6e\x65\x78\x74\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x26\x26\x20\x21\x69\x73\x43\x73\x73\x53\x74\x72\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x6e\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x53\x74\x79\x6c\x65\x28\x73\x74\x79\x6c\x65\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x65\x78\x74\x5b\x6b\x65\x79\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x20\x26\x26\x20\x21\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x70\x72\x65\x76\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x70\x72\x65\x76\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x5b\x6b\x65\x79\x5d\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x53\x74\x79\x6c\x65\x28\x73\x74\x79\x6c\x65\x2c\x20\x6b\x65\x79\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x75\x72\x72\x65\x6e\x74\x44\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x43\x73\x73\x53\x74\x72\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x20\x21\x3d\x3d\x20\x6e\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x54\x65\x78\x74\x20\x3d\x20\x6e\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x70\x72\x65\x76\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x79\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x22\x5f\x76\x6f\x64\x22\x20\x69\x6e\x20\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x44\x69\x73\x70\x6c\x61\x79\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x52\x45\x20\x3d\x20\x2f\x5c\x73\x2a\x21\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x24\x2f\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x53\x74\x79\x6c\x65\x28\x73\x74\x79\x6c\x65\x2c\x20\x6e\x61\x6d\x65\x2c\x20\x76\x61\x6c\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x76\x29\x20\x3d\x3e\x20\x73\x65\x74\x53\x74\x79\x6c\x65\x28\x73\x74\x79\x6c\x65\x2c\x20\x6e\x61\x6d\x65\x2c\x20\x76\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x61\x6d\x65\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x22\x2d\x2d\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x2e\x73\x65\x74\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x6e\x61\x6d\x65\x2c\x20\x76\x61\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x66\x69\x78\x65\x64\x20\x3d\x20\x61\x75\x74\x6f\x50\x72\x65\x66\x69\x78\x28\x73\x74\x79\x6c\x65\x2c\x20\x6e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x52\x45\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x2e\x73\x65\x74\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x70\x72\x65\x66\x69\x78\x65\x64\x29\x2c\x20\x76\x61\x6c\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x52\x45\x2c\x20\x22\x22\x29\x2c\x20\x22\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x5b\x70\x72\x65\x66\x69\x78\x65\x64\x5d\x20\x3d\x20\x76\x61\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x66\x69\x78\x65\x73\x20\x3d\x20\x5b\x22\x57\x65\x62\x6b\x69\x74\x22\x2c\x20\x22\x4d\x6f\x7a\x22\x2c\x20\x22\x6d\x73\x22\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x66\x69\x78\x43\x61\x63\x68\x65\x20\x3d\x20\x7b\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x75\x74\x6f\x50\x72\x65\x66\x69\x78\x28\x73\x74\x79\x6c\x65\x2c\x20\x72\x61\x77\x4e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x63\x68\x65\x64\x20\x3d\x20\x70\x72\x65\x66\x69\x78\x43\x61\x63\x68\x65\x5b\x72\x61\x77\x4e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x61\x63\x68\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x61\x63\x68\x65\x64\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x6e\x61\x6d\x65\x20\x3d\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x72\x61\x77\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6e\x61\x6d\x65\x20\x21\x3d\x3d\x20\x22\x66\x69\x6c\x74\x65\x72\x22\x20\x26\x26\x20\x6e\x61\x6d\x65\x20\x69\x6e\x20\x73\x74\x79\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x65\x66\x69\x78\x43\x61\x63\x68\x65\x5b\x72\x61\x77\x4e\x61\x6d\x65\x5d\x20\x3d\x20\x6e\x61\x6d\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6e\x61\x6d\x65\x20\x3d\x20\x63\x61\x70\x69\x74\x61\x6c\x69\x7a\x65\x28\x6e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x70\x72\x65\x66\x69\x78\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x66\x69\x78\x65\x64\x20\x3d\x20\x70\x72\x65\x66\x69\x78\x65\x73\x5b\x69\x5d\x20\x2b\x20\x6e\x61\x6d\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x66\x69\x78\x65\x64\x20\x69\x6e\x20\x73\x74\x79\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x65\x66\x69\x78\x43\x61\x63\x68\x65\x5b\x72\x61\x77\x4e\x61\x6d\x65\x5d\x20\x3d\x20\x70\x72\x65\x66\x69\x78\x65\x64\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x4e\x61\x6d\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x78\x6c\x69\x6e\x6b\x4e\x53\x20\x3d\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x74\x63\x68\x41\x74\x74\x72\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x69\x73\x53\x56\x47\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x56\x47\x20\x26\x26\x20\x6b\x65\x79\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x22\x78\x6c\x69\x6e\x6b\x3a\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x78\x6c\x69\x6e\x6b\x4e\x53\x2c\x20\x6b\x65\x79\x2e\x73\x6c\x69\x63\x65\x28\x36\x2c\x20\x6b\x65\x79\x2e\x6c\x65\x6e\x67\x74\x68\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x78\x6c\x69\x6e\x6b\x4e\x53\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x42\x6f\x6f\x6c\x65\x61\x6e\x20\x3d\x20\x69\x73\x53\x70\x65\x63\x69\x61\x6c\x42\x6f\x6f\x6c\x65\x61\x6e\x41\x74\x74\x72\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x69\x73\x42\x6f\x6f\x6c\x65\x61\x6e\x20\x26\x26\x20\x21\x69\x6e\x63\x6c\x75\x64\x65\x42\x6f\x6f\x6c\x65\x61\x6e\x41\x74\x74\x72\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x6b\x65\x79\x2c\x20\x69\x73\x42\x6f\x6f\x6c\x65\x61\x6e\x20\x3f\x20\x22\x22\x20\x3a\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x74\x63\x68\x44\x4f\x4d\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x22\x20\x7c\x7c\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x65\x6c\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x22\x22\x20\x3a\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x76\x61\x6c\x75\x65\x22\x20\x26\x26\x20\x65\x6c\x2e\x74\x61\x67\x4e\x61\x6d\x65\x20\x21\x3d\x3d\x20\x22\x50\x52\x4f\x47\x52\x45\x53\x53\x22\x20\x26\x26\x20\x21\x65\x6c\x2e\x74\x61\x67\x4e\x61\x6d\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x2d\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x22\x22\x20\x3a\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x20\x7c\x7c\x20\x65\x6c\x2e\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x22\x4f\x50\x54\x49\x4f\x4e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x6e\x65\x65\x64\x52\x65\x6d\x6f\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x22\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x79\x70\x65\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x6c\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x6e\x63\x6c\x75\x64\x65\x42\x6f\x6f\x6c\x65\x61\x6e\x41\x74\x74\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x65\x64\x52\x65\x6d\x6f\x76\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x65\x64\x52\x65\x6d\x6f\x76\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x65\x29\x20\x7b\x0a\x20\x20\x7d\x0a\x20\x20\x6e\x65\x65\x64\x52\x65\x6d\x6f\x76\x65\x20\x26\x26\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x5b\x5f\x67\x65\x74\x4e\x6f\x77\x2c\x20\x73\x6b\x69\x70\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x43\x68\x65\x63\x6b\x5d\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x5f\x67\x65\x74\x4e\x6f\x77\x32\x20\x3d\x20\x44\x61\x74\x65\x2e\x6e\x6f\x77\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x6b\x69\x70\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x43\x68\x65\x63\x6b\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x77\x69\x6e\x64\x6f\x77\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x44\x61\x74\x65\x2e\x6e\x6f\x77\x28\x29\x20\x3e\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x76\x65\x6e\x74\x28\x22\x45\x76\x65\x6e\x74\x22\x29\x2e\x74\x69\x6d\x65\x53\x74\x61\x6d\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x5f\x67\x65\x74\x4e\x6f\x77\x32\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x70\x65\x72\x66\x6f\x72\x6d\x61\x6e\x63\x65\x2e\x6e\x6f\x77\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x66\x4d\x61\x74\x63\x68\x20\x3d\x20\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x75\x73\x65\x72\x41\x67\x65\x6e\x74\x2e\x6d\x61\x74\x63\x68\x28\x2f\x66\x69\x72\x65\x66\x6f\x78\x5c\x2f\x28\x5c\x64\x2b\x29\x2f\x69\x29\x3b\x0a\x20\x20\x20\x20\x73\x6b\x69\x70\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x43\x68\x65\x63\x6b\x32\x20\x3d\x20\x21\x21\x28\x66\x66\x4d\x61\x74\x63\x68\x20\x26\x26\x20\x4e\x75\x6d\x62\x65\x72\x28\x66\x66\x4d\x61\x74\x63\x68\x5b\x31\x5d\x29\x20\x3c\x3d\x20\x35\x33\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5f\x67\x65\x74\x4e\x6f\x77\x32\x2c\x20\x73\x6b\x69\x70\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x43\x68\x65\x63\x6b\x32\x5d\x3b\x0a\x7d\x29\x28\x29\x3b\x0a\x6c\x65\x74\x20\x63\x61\x63\x68\x65\x64\x4e\x6f\x77\x20\x3d\x20\x30\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x50\x72\x6f\x6d\x69\x73\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x65\x74\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x61\x63\x68\x65\x64\x4e\x6f\x77\x20\x3d\x20\x30\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x4e\x6f\x77\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x63\x61\x63\x68\x65\x64\x4e\x6f\x77\x20\x7c\x7c\x20\x28\x70\x2e\x74\x68\x65\x6e\x28\x72\x65\x73\x65\x74\x29\x2c\x20\x63\x61\x63\x68\x65\x64\x4e\x6f\x77\x20\x3d\x20\x5f\x67\x65\x74\x4e\x6f\x77\x28\x29\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x65\x76\x65\x6e\x74\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x65\x6c\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x76\x65\x6e\x74\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x65\x76\x65\x6e\x74\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x76\x65\x6e\x74\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x74\x63\x68\x45\x76\x65\x6e\x74\x28\x65\x6c\x2c\x20\x72\x61\x77\x4e\x61\x6d\x65\x2c\x20\x70\x72\x65\x76\x56\x61\x6c\x75\x65\x2c\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x76\x6f\x6b\x65\x72\x73\x20\x3d\x20\x65\x6c\x2e\x5f\x76\x65\x69\x20\x7c\x7c\x20\x28\x65\x6c\x2e\x5f\x76\x65\x69\x20\x3d\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x49\x6e\x76\x6f\x6b\x65\x72\x20\x3d\x20\x69\x6e\x76\x6f\x6b\x65\x72\x73\x5b\x72\x61\x77\x4e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x20\x26\x26\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x49\x6e\x76\x6f\x6b\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x49\x6e\x76\x6f\x6b\x65\x72\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x6e\x61\x6d\x65\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x5d\x20\x3d\x20\x70\x61\x72\x73\x65\x4e\x61\x6d\x65\x28\x72\x61\x77\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x76\x6f\x6b\x65\x72\x20\x3d\x20\x69\x6e\x76\x6f\x6b\x65\x72\x73\x5b\x72\x61\x77\x4e\x61\x6d\x65\x5d\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x76\x6f\x6b\x65\x72\x28\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x6e\x61\x6d\x65\x2c\x20\x69\x6e\x76\x6f\x6b\x65\x72\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x65\x78\x69\x73\x74\x69\x6e\x67\x49\x6e\x76\x6f\x6b\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x6e\x61\x6d\x65\x2c\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x49\x6e\x76\x6f\x6b\x65\x72\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x76\x6f\x6b\x65\x72\x73\x5b\x72\x61\x77\x4e\x61\x6d\x65\x5d\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x69\x6f\x6e\x73\x4d\x6f\x64\x69\x66\x69\x65\x72\x52\x45\x20\x3d\x20\x2f\x28\x3f\x3a\x4f\x6e\x63\x65\x7c\x50\x61\x73\x73\x69\x76\x65\x7c\x43\x61\x70\x74\x75\x72\x65\x29\x24\x2f\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x4e\x61\x6d\x65\x28\x6e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x4d\x6f\x64\x69\x66\x69\x65\x72\x52\x45\x2e\x74\x65\x73\x74\x28\x6e\x61\x6d\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6d\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6d\x20\x3d\x20\x6e\x61\x6d\x65\x2e\x6d\x61\x74\x63\x68\x28\x6f\x70\x74\x69\x6f\x6e\x73\x4d\x6f\x64\x69\x66\x69\x65\x72\x52\x45\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x20\x3d\x20\x6e\x61\x6d\x65\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x6e\x61\x6d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x6d\x5b\x30\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x6d\x5b\x30\x5d\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x6e\x61\x6d\x65\x2e\x73\x6c\x69\x63\x65\x28\x32\x29\x29\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x5d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x49\x6e\x76\x6f\x6b\x65\x72\x28\x69\x6e\x69\x74\x69\x61\x6c\x56\x61\x6c\x75\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x76\x6f\x6b\x65\x72\x20\x3d\x20\x28\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x69\x6d\x65\x53\x74\x61\x6d\x70\x20\x3d\x20\x65\x2e\x74\x69\x6d\x65\x53\x74\x61\x6d\x70\x20\x7c\x7c\x20\x5f\x67\x65\x74\x4e\x6f\x77\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6b\x69\x70\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x43\x68\x65\x63\x6b\x20\x7c\x7c\x20\x74\x69\x6d\x65\x53\x74\x61\x6d\x70\x20\x3e\x3d\x20\x69\x6e\x76\x6f\x6b\x65\x72\x2e\x61\x74\x74\x61\x63\x68\x65\x64\x20\x2d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x70\x61\x74\x63\x68\x53\x74\x6f\x70\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x65\x2c\x20\x69\x6e\x76\x6f\x6b\x65\x72\x2e\x76\x61\x6c\x75\x65\x29\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2c\x20\x35\x2c\x20\x5b\x65\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x69\x6e\x76\x6f\x6b\x65\x72\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x6e\x69\x74\x69\x61\x6c\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x69\x6e\x76\x6f\x6b\x65\x72\x2e\x61\x74\x74\x61\x63\x68\x65\x64\x20\x3d\x20\x67\x65\x74\x4e\x6f\x77\x28\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x76\x6f\x6b\x65\x72\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x74\x63\x68\x53\x74\x6f\x70\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x65\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x53\x74\x6f\x70\x20\x3d\x20\x65\x2e\x73\x74\x6f\x70\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x65\x2e\x73\x74\x6f\x70\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x72\x69\x67\x69\x6e\x61\x6c\x53\x74\x6f\x70\x2e\x63\x61\x6c\x6c\x28\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x2e\x5f\x73\x74\x6f\x70\x70\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x2e\x6d\x61\x70\x28\x28\x66\x6e\x29\x20\x3d\x3e\x20\x28\x65\x32\x29\x20\x3d\x3e\x20\x21\x65\x32\x2e\x5f\x73\x74\x6f\x70\x70\x65\x64\x20\x26\x26\x20\x66\x6e\x20\x26\x26\x20\x66\x6e\x28\x65\x32\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x61\x74\x69\x76\x65\x4f\x6e\x52\x45\x20\x3d\x20\x2f\x5e\x6f\x6e\x5b\x61\x2d\x7a\x5d\x2f\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x20\x3d\x20\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x70\x72\x65\x76\x56\x61\x6c\x75\x65\x2c\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x2c\x20\x69\x73\x53\x56\x47\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x63\x6c\x61\x73\x73\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x73\x74\x79\x6c\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x53\x74\x79\x6c\x65\x28\x65\x6c\x2c\x20\x70\x72\x65\x76\x56\x61\x6c\x75\x65\x2c\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x6e\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x6f\x64\x65\x6c\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x63\x68\x45\x76\x65\x6e\x74\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x70\x72\x65\x76\x56\x61\x6c\x75\x65\x2c\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x2e\x22\x20\x3f\x20\x28\x6b\x65\x79\x20\x3d\x20\x6b\x65\x79\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x2c\x20\x74\x72\x75\x65\x29\x20\x3a\x20\x6b\x65\x79\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x5e\x22\x20\x3f\x20\x28\x6b\x65\x79\x20\x3d\x20\x6b\x65\x79\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x2c\x20\x66\x61\x6c\x73\x65\x29\x20\x3a\x20\x73\x68\x6f\x75\x6c\x64\x53\x65\x74\x41\x73\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x44\x4f\x4d\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x2c\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x70\x61\x72\x65\x6e\x74\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x20\x75\x6e\x6d\x6f\x75\x6e\x74\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x74\x72\x75\x65\x2d\x76\x61\x6c\x75\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x74\x72\x75\x65\x56\x61\x6c\x75\x65\x20\x3d\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x66\x61\x6c\x73\x65\x2d\x76\x61\x6c\x75\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x66\x61\x6c\x73\x65\x56\x61\x6c\x75\x65\x20\x3d\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x70\x61\x74\x63\x68\x41\x74\x74\x72\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x65\x78\x74\x56\x61\x6c\x75\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x68\x6f\x75\x6c\x64\x53\x65\x74\x41\x73\x50\x72\x6f\x70\x28\x65\x6c\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x69\x73\x53\x56\x47\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x56\x47\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x22\x20\x7c\x7c\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x69\x6e\x20\x65\x6c\x20\x26\x26\x20\x6e\x61\x74\x69\x76\x65\x4f\x6e\x52\x45\x2e\x74\x65\x73\x74\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x73\x70\x65\x6c\x6c\x63\x68\x65\x63\x6b\x22\x20\x7c\x7c\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x22\x20\x7c\x7c\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x66\x6f\x72\x6d\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x73\x74\x22\x20\x26\x26\x20\x65\x6c\x2e\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x22\x49\x4e\x50\x55\x54\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x74\x79\x70\x65\x22\x20\x26\x26\x20\x65\x6c\x2e\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x22\x54\x45\x58\x54\x41\x52\x45\x41\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6e\x61\x74\x69\x76\x65\x4f\x6e\x52\x45\x2e\x74\x65\x73\x74\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6b\x65\x79\x20\x69\x6e\x20\x65\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x65\x66\x69\x6e\x65\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x68\x79\x64\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x43\x6f\x6d\x70\x20\x3d\x20\x64\x65\x66\x69\x6e\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x63\x6c\x61\x73\x73\x20\x56\x75\x65\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x56\x75\x65\x45\x6c\x65\x6d\x65\x6e\x74\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x69\x6e\x69\x74\x69\x61\x6c\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x43\x6f\x6d\x70\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x50\x72\x6f\x70\x73\x2c\x20\x68\x79\x64\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x56\x75\x65\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x64\x65\x66\x20\x3d\x20\x43\x6f\x6d\x70\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x56\x75\x65\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x64\x65\x66\x69\x6e\x65\x53\x53\x52\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3d\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x66\x69\x6e\x65\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x42\x61\x73\x65\x43\x6c\x61\x73\x73\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x48\x54\x4d\x4c\x45\x6c\x65\x6d\x65\x6e\x74\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x3f\x20\x48\x54\x4d\x4c\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3a\x20\x63\x6c\x61\x73\x73\x20\x7b\x0a\x7d\x3b\x0a\x63\x6c\x61\x73\x73\x20\x56\x75\x65\x45\x6c\x65\x6d\x65\x6e\x74\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x42\x61\x73\x65\x43\x6c\x61\x73\x73\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x5f\x64\x65\x66\x2c\x20\x5f\x70\x72\x6f\x70\x73\x20\x3d\x20\x7b\x7d\x2c\x20\x68\x79\x64\x72\x61\x74\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x20\x3d\x20\x5f\x64\x65\x66\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x70\x72\x6f\x70\x73\x20\x3d\x20\x5f\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x6e\x75\x6d\x62\x65\x72\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x73\x68\x61\x64\x6f\x77\x52\x6f\x6f\x74\x20\x26\x26\x20\x68\x79\x64\x72\x61\x74\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x68\x79\x64\x72\x61\x74\x65\x32\x28\x74\x68\x69\x73\x2e\x5f\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x61\x64\x6f\x77\x52\x6f\x6f\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x61\x63\x68\x53\x68\x61\x64\x6f\x77\x28\x7b\x20\x6d\x6f\x64\x65\x3a\x20\x22\x6f\x70\x65\x6e\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x5f\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x72\x65\x73\x6f\x6c\x76\x65\x44\x65\x66\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x64\x69\x73\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x6e\x65\x78\x74\x54\x69\x63\x6b\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x5f\x63\x6f\x6e\x6e\x65\x63\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x28\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x61\x64\x6f\x77\x52\x6f\x6f\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x5f\x72\x65\x73\x6f\x6c\x76\x65\x44\x65\x66\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x5f\x72\x65\x73\x6f\x6c\x76\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x41\x74\x74\x72\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x5b\x69\x5d\x2e\x6e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6e\x65\x77\x20\x4d\x75\x74\x61\x74\x69\x6f\x6e\x4f\x62\x73\x65\x72\x76\x65\x72\x28\x28\x6d\x75\x74\x61\x74\x69\x6f\x6e\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6d\x20\x6f\x66\x20\x6d\x75\x74\x61\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x41\x74\x74\x72\x28\x6d\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x2e\x6f\x62\x73\x65\x72\x76\x65\x28\x74\x68\x69\x73\x2c\x20\x7b\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x20\x3d\x20\x28\x64\x65\x66\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x70\x72\x6f\x70\x73\x2c\x20\x73\x74\x79\x6c\x65\x73\x20\x7d\x20\x3d\x20\x64\x65\x66\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x21\x69\x73\x41\x72\x72\x61\x79\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x4b\x65\x79\x73\x20\x3d\x20\x70\x72\x6f\x70\x73\x20\x3f\x20\x68\x61\x73\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x70\x72\x6f\x70\x73\x29\x20\x3a\x20\x70\x72\x6f\x70\x73\x20\x3a\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x75\x6d\x62\x65\x72\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x4f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x74\x68\x69\x73\x2e\x5f\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x20\x3d\x20\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x20\x7c\x7c\x20\x6f\x70\x74\x20\x26\x26\x20\x6f\x70\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x74\x6f\x4e\x75\x6d\x62\x65\x72\x28\x74\x68\x69\x73\x2e\x5f\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6e\x75\x6d\x62\x65\x72\x50\x72\x6f\x70\x73\x20\x7c\x7c\x20\x28\x6e\x75\x6d\x62\x65\x72\x50\x72\x6f\x70\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x29\x29\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x6e\x75\x6d\x62\x65\x72\x50\x72\x6f\x70\x73\x20\x3d\x20\x6e\x75\x6d\x62\x65\x72\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x74\x68\x69\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x22\x5f\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x50\x72\x6f\x70\x28\x6b\x65\x79\x2c\x20\x74\x68\x69\x73\x5b\x6b\x65\x79\x5d\x2c\x20\x74\x72\x75\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x6f\x66\x20\x72\x61\x77\x4b\x65\x79\x73\x2e\x6d\x61\x70\x28\x63\x61\x6d\x65\x6c\x69\x7a\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\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\x74\x68\x69\x73\x2c\x20\x6b\x65\x79\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x50\x72\x6f\x70\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x28\x76\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x50\x72\x6f\x70\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x61\x70\x70\x6c\x79\x53\x74\x79\x6c\x65\x73\x28\x73\x74\x79\x6c\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x73\x79\x6e\x63\x44\x65\x66\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x2e\x5f\x5f\x61\x73\x79\x6e\x63\x4c\x6f\x61\x64\x65\x72\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x73\x79\x6e\x63\x44\x65\x66\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x73\x79\x6e\x63\x44\x65\x66\x28\x29\x2e\x74\x68\x65\x6e\x28\x72\x65\x73\x6f\x6c\x76\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x28\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x5f\x73\x65\x74\x41\x74\x74\x72\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x5f\x6e\x75\x6d\x62\x65\x72\x50\x72\x6f\x70\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x5f\x6e\x75\x6d\x62\x65\x72\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x4e\x75\x6d\x62\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x50\x72\x6f\x70\x28\x63\x61\x6d\x65\x6c\x69\x7a\x65\x28\x6b\x65\x79\x29\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x5f\x67\x65\x74\x50\x72\x6f\x70\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x5f\x73\x65\x74\x50\x72\x6f\x70\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x2c\x20\x73\x68\x6f\x75\x6c\x64\x52\x65\x66\x6c\x65\x63\x74\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x73\x68\x6f\x75\x6c\x64\x55\x70\x64\x61\x74\x65\x20\x3d\x20\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x20\x21\x3d\x3d\x20\x74\x68\x69\x73\x2e\x5f\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x70\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x55\x70\x64\x61\x74\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x5f\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x68\x6f\x75\x6c\x64\x52\x65\x66\x6c\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x6b\x65\x79\x29\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x6b\x65\x79\x29\x2c\x20\x76\x61\x6c\x20\x2b\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x76\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x6b\x65\x79\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x5f\x75\x70\x64\x61\x74\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x28\x74\x68\x69\x73\x2e\x5f\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x61\x64\x6f\x77\x52\x6f\x6f\x74\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x5f\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x2c\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x74\x68\x69\x73\x2e\x5f\x70\x72\x6f\x70\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x5f\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x63\x65\x20\x3d\x20\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x69\x73\x43\x45\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x65\x6d\x69\x74\x20\x3d\x20\x28\x65\x76\x65\x6e\x74\x2c\x20\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x73\x70\x61\x74\x63\x68\x45\x76\x65\x6e\x74\x28\x6e\x65\x77\x20\x43\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x28\x65\x76\x65\x6e\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x74\x61\x69\x6c\x3a\x20\x61\x72\x67\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x20\x26\x26\x20\x28\x70\x61\x72\x65\x6e\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x7c\x7c\x20\x70\x61\x72\x65\x6e\x74\x2e\x68\x6f\x73\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x56\x75\x65\x45\x6c\x65\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x2e\x5f\x69\x6e\x73\x74\x61\x6e\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x5f\x61\x70\x70\x6c\x79\x53\x74\x79\x6c\x65\x73\x28\x73\x74\x79\x6c\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x79\x6c\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x73\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\x74\x79\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x63\x73\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x68\x61\x64\x6f\x77\x52\x6f\x6f\x74\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x73\x65\x43\x73\x73\x4d\x6f\x64\x75\x6c\x65\x28\x6e\x61\x6d\x65\x20\x3d\x20\x22\x24\x73\x74\x79\x6c\x65\x22\x29\x20\x7b\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x64\x75\x6c\x65\x73\x20\x3d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x74\x79\x70\x65\x2e\x5f\x5f\x63\x73\x73\x4d\x6f\x64\x75\x6c\x65\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6d\x6f\x64\x75\x6c\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x64\x20\x3d\x20\x6d\x6f\x64\x75\x6c\x65\x73\x5b\x6e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6d\x6f\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x45\x4d\x50\x54\x59\x5f\x4f\x42\x4a\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x6f\x64\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x73\x65\x43\x73\x73\x56\x61\x72\x73\x28\x67\x65\x74\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x56\x61\x72\x73\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x73\x65\x74\x56\x61\x72\x73\x4f\x6e\x56\x4e\x6f\x64\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x2c\x20\x67\x65\x74\x74\x65\x72\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x70\x72\x6f\x78\x79\x29\x29\x3b\x0a\x20\x20\x77\x61\x74\x63\x68\x50\x6f\x73\x74\x45\x66\x66\x65\x63\x74\x28\x73\x65\x74\x56\x61\x72\x73\x29\x3b\x0a\x20\x20\x6f\x6e\x4d\x6f\x75\x6e\x74\x65\x64\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x62\x20\x3d\x20\x6e\x65\x77\x20\x4d\x75\x74\x61\x74\x69\x6f\x6e\x4f\x62\x73\x65\x72\x76\x65\x72\x28\x73\x65\x74\x56\x61\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x6f\x62\x2e\x6f\x62\x73\x65\x72\x76\x65\x28\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x73\x75\x62\x54\x72\x65\x65\x2e\x65\x6c\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x20\x7b\x20\x63\x68\x69\x6c\x64\x4c\x69\x73\x74\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x28\x28\x29\x20\x3d\x3e\x20\x6f\x62\x2e\x64\x69\x73\x63\x6f\x6e\x6e\x65\x63\x74\x28\x29\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x56\x61\x72\x73\x4f\x6e\x56\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x2c\x20\x76\x61\x72\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x32\x38\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x73\x75\x73\x70\x65\x6e\x73\x65\x3b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x70\x65\x6e\x64\x69\x6e\x67\x42\x72\x61\x6e\x63\x68\x20\x26\x26\x20\x21\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x69\x73\x48\x79\x64\x72\x61\x74\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x65\x66\x66\x65\x63\x74\x73\x2e\x70\x75\x73\x68\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x56\x61\x72\x73\x4f\x6e\x56\x4e\x6f\x64\x65\x28\x73\x75\x73\x70\x65\x6e\x73\x65\x2e\x61\x63\x74\x69\x76\x65\x42\x72\x61\x6e\x63\x68\x2c\x20\x76\x61\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x73\x75\x62\x54\x72\x65\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x73\x68\x61\x70\x65\x46\x6c\x61\x67\x20\x26\x20\x31\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x65\x74\x56\x61\x72\x73\x4f\x6e\x4e\x6f\x64\x65\x28\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x2c\x20\x76\x61\x72\x73\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x29\x20\x3d\x3e\x20\x73\x65\x74\x56\x61\x72\x73\x4f\x6e\x56\x4e\x6f\x64\x65\x28\x63\x2c\x20\x76\x61\x72\x73\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x74\x61\x74\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x65\x6c\x2c\x20\x61\x6e\x63\x68\x6f\x72\x20\x7d\x20\x3d\x20\x76\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x56\x61\x72\x73\x4f\x6e\x4e\x6f\x64\x65\x28\x65\x6c\x2c\x20\x76\x61\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x20\x3d\x3d\x3d\x20\x61\x6e\x63\x68\x6f\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x20\x3d\x20\x65\x6c\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x56\x61\x72\x73\x4f\x6e\x4e\x6f\x64\x65\x28\x65\x6c\x2c\x20\x76\x61\x72\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x79\x6c\x65\x20\x3d\x20\x65\x6c\x2e\x73\x74\x79\x6c\x65\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x76\x61\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x2e\x73\x65\x74\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x60\x2d\x2d\x24\x7b\x6b\x65\x79\x7d\x60\x2c\x20\x76\x61\x72\x73\x5b\x6b\x65\x79\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x20\x3d\x20\x22\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x41\x4e\x49\x4d\x41\x54\x49\x4f\x4e\x20\x3d\x20\x22\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x28\x70\x72\x6f\x70\x73\x2c\x20\x7b\x20\x73\x6c\x6f\x74\x73\x20\x7d\x29\x20\x3d\x3e\x20\x68\x28\x42\x61\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x28\x70\x72\x6f\x70\x73\x29\x2c\x20\x73\x6c\x6f\x74\x73\x29\x3b\x0a\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x64\x69\x73\x70\x6c\x61\x79\x4e\x61\x6d\x65\x20\x3d\x20\x22\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x44\x4f\x4d\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x74\x79\x70\x65\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x63\x73\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x42\x6f\x6f\x6c\x65\x61\x6e\x2c\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x3a\x20\x5b\x53\x74\x72\x69\x6e\x67\x2c\x20\x4e\x75\x6d\x62\x65\x72\x2c\x20\x4f\x62\x6a\x65\x63\x74\x5d\x2c\x0a\x20\x20\x65\x6e\x74\x65\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x65\x6e\x74\x65\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x65\x6e\x74\x65\x72\x54\x6f\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x61\x70\x70\x65\x61\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x61\x70\x70\x65\x61\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x61\x70\x70\x65\x61\x72\x54\x6f\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x6c\x65\x61\x76\x65\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x6c\x65\x61\x76\x65\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x6c\x65\x61\x76\x65\x54\x6f\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x73\x20\x3d\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x70\x72\x6f\x70\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x42\x61\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x70\x72\x6f\x70\x73\x2c\x20\x44\x4f\x4d\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x73\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x20\x3d\x20\x28\x68\x6f\x6f\x6b\x2c\x20\x61\x72\x67\x73\x20\x3d\x20\x5b\x5d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x68\x6f\x6f\x6b\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x68\x6f\x6f\x6b\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x68\x32\x29\x20\x3d\x3e\x20\x68\x32\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x68\x6f\x6f\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x68\x6f\x6f\x6b\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x45\x78\x70\x6c\x69\x63\x69\x74\x43\x61\x6c\x6c\x62\x61\x63\x6b\x20\x3d\x20\x28\x68\x6f\x6f\x6b\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x6f\x6f\x6b\x20\x3f\x20\x69\x73\x41\x72\x72\x61\x79\x28\x68\x6f\x6f\x6b\x29\x20\x3f\x20\x68\x6f\x6f\x6b\x2e\x73\x6f\x6d\x65\x28\x28\x68\x32\x29\x20\x3d\x3e\x20\x68\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x20\x3a\x20\x68\x6f\x6f\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x28\x72\x61\x77\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x61\x73\x65\x50\x72\x6f\x70\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x69\x6e\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x6b\x65\x79\x20\x69\x6e\x20\x44\x4f\x4d\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x62\x61\x73\x65\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x72\x61\x77\x50\x72\x6f\x70\x73\x2e\x63\x73\x73\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x61\x73\x65\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6e\x61\x6d\x65\x20\x3d\x20\x22\x76\x22\x2c\x20\x74\x79\x70\x65\x2c\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x2c\x20\x65\x6e\x74\x65\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x20\x3d\x20\x60\x24\x7b\x6e\x61\x6d\x65\x7d\x2d\x65\x6e\x74\x65\x72\x2d\x66\x72\x6f\x6d\x60\x2c\x20\x65\x6e\x74\x65\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x20\x3d\x20\x60\x24\x7b\x6e\x61\x6d\x65\x7d\x2d\x65\x6e\x74\x65\x72\x2d\x61\x63\x74\x69\x76\x65\x60\x2c\x20\x65\x6e\x74\x65\x72\x54\x6f\x43\x6c\x61\x73\x73\x20\x3d\x20\x60\x24\x7b\x6e\x61\x6d\x65\x7d\x2d\x65\x6e\x74\x65\x72\x2d\x74\x6f\x60\x2c\x20\x61\x70\x70\x65\x61\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x20\x3d\x20\x65\x6e\x74\x65\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x2c\x20\x61\x70\x70\x65\x61\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x20\x3d\x20\x65\x6e\x74\x65\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x2c\x20\x61\x70\x70\x65\x61\x72\x54\x6f\x43\x6c\x61\x73\x73\x20\x3d\x20\x65\x6e\x74\x65\x72\x54\x6f\x43\x6c\x61\x73\x73\x2c\x20\x6c\x65\x61\x76\x65\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x20\x3d\x20\x60\x24\x7b\x6e\x61\x6d\x65\x7d\x2d\x6c\x65\x61\x76\x65\x2d\x66\x72\x6f\x6d\x60\x2c\x20\x6c\x65\x61\x76\x65\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x20\x3d\x20\x60\x24\x7b\x6e\x61\x6d\x65\x7d\x2d\x6c\x65\x61\x76\x65\x2d\x61\x63\x74\x69\x76\x65\x60\x2c\x20\x6c\x65\x61\x76\x65\x54\x6f\x43\x6c\x61\x73\x73\x20\x3d\x20\x60\x24\x7b\x6e\x61\x6d\x65\x7d\x2d\x6c\x65\x61\x76\x65\x2d\x74\x6f\x60\x20\x7d\x20\x3d\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x44\x75\x72\x61\x74\x69\x6f\x6e\x28\x64\x75\x72\x61\x74\x69\x6f\x6e\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x74\x65\x72\x44\x75\x72\x61\x74\x69\x6f\x6e\x20\x3d\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x73\x20\x26\x26\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x65\x61\x76\x65\x44\x75\x72\x61\x74\x69\x6f\x6e\x20\x3d\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x73\x20\x26\x26\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x73\x5b\x31\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x2c\x20\x6f\x6e\x45\x6e\x74\x65\x72\x2c\x20\x6f\x6e\x45\x6e\x74\x65\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x2c\x20\x6f\x6e\x4c\x65\x61\x76\x65\x2c\x20\x6f\x6e\x4c\x65\x61\x76\x65\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x2c\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x41\x70\x70\x65\x61\x72\x20\x3d\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x2c\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x20\x3d\x20\x6f\x6e\x45\x6e\x74\x65\x72\x2c\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x20\x3d\x20\x6f\x6e\x45\x6e\x74\x65\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x20\x7d\x20\x3d\x20\x62\x61\x73\x65\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x69\x6e\x69\x73\x68\x45\x6e\x74\x65\x72\x20\x3d\x20\x28\x65\x6c\x2c\x20\x69\x73\x41\x70\x70\x65\x61\x72\x2c\x20\x64\x6f\x6e\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x69\x73\x41\x70\x70\x65\x61\x72\x20\x3f\x20\x61\x70\x70\x65\x61\x72\x54\x6f\x43\x6c\x61\x73\x73\x20\x3a\x20\x65\x6e\x74\x65\x72\x54\x6f\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x69\x73\x41\x70\x70\x65\x61\x72\x20\x3f\x20\x61\x70\x70\x65\x61\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x20\x3a\x20\x65\x6e\x74\x65\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x64\x6f\x6e\x65\x20\x26\x26\x20\x64\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x69\x6e\x69\x73\x68\x4c\x65\x61\x76\x65\x20\x3d\x20\x28\x65\x6c\x2c\x20\x64\x6f\x6e\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6c\x65\x61\x76\x65\x54\x6f\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6c\x65\x61\x76\x65\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x64\x6f\x6e\x65\x20\x26\x26\x20\x64\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x6b\x65\x45\x6e\x74\x65\x72\x48\x6f\x6f\x6b\x20\x3d\x20\x28\x69\x73\x41\x70\x70\x65\x61\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x6c\x2c\x20\x64\x6f\x6e\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x6f\x6f\x6b\x20\x3d\x20\x69\x73\x41\x70\x70\x65\x61\x72\x20\x3f\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x20\x3a\x20\x6f\x6e\x45\x6e\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x66\x69\x6e\x69\x73\x68\x45\x6e\x74\x65\x72\x28\x65\x6c\x2c\x20\x69\x73\x41\x70\x70\x65\x61\x72\x2c\x20\x64\x6f\x6e\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x28\x68\x6f\x6f\x6b\x2c\x20\x5b\x65\x6c\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x46\x72\x61\x6d\x65\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x69\x73\x41\x70\x70\x65\x61\x72\x20\x3f\x20\x61\x70\x70\x65\x61\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x20\x3a\x20\x65\x6e\x74\x65\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x69\x73\x41\x70\x70\x65\x61\x72\x20\x3f\x20\x61\x70\x70\x65\x61\x72\x54\x6f\x43\x6c\x61\x73\x73\x20\x3a\x20\x65\x6e\x74\x65\x72\x54\x6f\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x68\x61\x73\x45\x78\x70\x6c\x69\x63\x69\x74\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x68\x6f\x6f\x6b\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x65\x6e\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x45\x6e\x64\x73\x28\x65\x6c\x2c\x20\x74\x79\x70\x65\x2c\x20\x65\x6e\x74\x65\x72\x44\x75\x72\x61\x74\x69\x6f\x6e\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x78\x74\x65\x6e\x64\x28\x62\x61\x73\x65\x50\x72\x6f\x70\x73\x2c\x20\x7b\x0a\x20\x20\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x28\x6f\x6e\x42\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x65\x6e\x74\x65\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x65\x6e\x74\x65\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x41\x70\x70\x65\x61\x72\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x28\x6f\x6e\x42\x65\x66\x6f\x72\x65\x41\x70\x70\x65\x61\x72\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x61\x70\x70\x65\x61\x72\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x61\x70\x70\x65\x61\x72\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x45\x6e\x74\x65\x72\x3a\x20\x6d\x61\x6b\x65\x45\x6e\x74\x65\x72\x48\x6f\x6f\x6b\x28\x66\x61\x6c\x73\x65\x29\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x3a\x20\x6d\x61\x6b\x65\x45\x6e\x74\x65\x72\x48\x6f\x6f\x6b\x28\x74\x72\x75\x65\x29\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x4c\x65\x61\x76\x65\x28\x65\x6c\x2c\x20\x64\x6f\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x66\x69\x6e\x69\x73\x68\x4c\x65\x61\x76\x65\x28\x65\x6c\x2c\x20\x64\x6f\x6e\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6c\x65\x61\x76\x65\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x63\x65\x52\x65\x66\x6c\x6f\x77\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6c\x65\x61\x76\x65\x41\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x46\x72\x61\x6d\x65\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6c\x65\x61\x76\x65\x46\x72\x6f\x6d\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6c\x65\x61\x76\x65\x54\x6f\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x68\x61\x73\x45\x78\x70\x6c\x69\x63\x69\x74\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x6f\x6e\x4c\x65\x61\x76\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x65\x6e\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x45\x6e\x64\x73\x28\x65\x6c\x2c\x20\x74\x79\x70\x65\x2c\x20\x6c\x65\x61\x76\x65\x44\x75\x72\x61\x74\x69\x6f\x6e\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x28\x6f\x6e\x4c\x65\x61\x76\x65\x2c\x20\x5b\x65\x6c\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x45\x6e\x74\x65\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x69\x6e\x69\x73\x68\x45\x6e\x74\x65\x72\x28\x65\x6c\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x28\x6f\x6e\x45\x6e\x74\x65\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x41\x70\x70\x65\x61\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x69\x6e\x69\x73\x68\x45\x6e\x74\x65\x72\x28\x65\x6c\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x28\x6f\x6e\x41\x70\x70\x65\x61\x72\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x4c\x65\x61\x76\x65\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x69\x6e\x69\x73\x68\x4c\x65\x61\x76\x65\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x6c\x6c\x48\x6f\x6f\x6b\x28\x6f\x6e\x4c\x65\x61\x76\x65\x43\x61\x6e\x63\x65\x6c\x6c\x65\x64\x2c\x20\x5b\x65\x6c\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x44\x75\x72\x61\x74\x69\x6f\x6e\x28\x64\x75\x72\x61\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x64\x75\x72\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x64\x75\x72\x61\x74\x69\x6f\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x4e\x75\x6d\x62\x65\x72\x4f\x66\x28\x64\x75\x72\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x74\x65\x72\x29\x2c\x20\x4e\x75\x6d\x62\x65\x72\x4f\x66\x28\x64\x75\x72\x61\x74\x69\x6f\x6e\x2e\x6c\x65\x61\x76\x65\x29\x5d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x4f\x66\x28\x64\x75\x72\x61\x74\x69\x6f\x6e\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x6e\x2c\x20\x6e\x5d\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x4e\x75\x6d\x62\x65\x72\x4f\x66\x28\x76\x61\x6c\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x74\x6f\x4e\x75\x6d\x62\x65\x72\x28\x76\x61\x6c\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x63\x6c\x73\x29\x20\x7b\x0a\x20\x20\x63\x6c\x73\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x73\x2b\x2f\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x29\x20\x3d\x3e\x20\x63\x20\x26\x26\x20\x65\x6c\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x63\x29\x29\x3b\x0a\x20\x20\x28\x65\x6c\x2e\x5f\x76\x74\x63\x20\x7c\x7c\x20\x28\x65\x6c\x2e\x5f\x76\x74\x63\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x29\x29\x29\x2e\x61\x64\x64\x28\x63\x6c\x73\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x6d\x6f\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x63\x6c\x73\x29\x20\x7b\x0a\x20\x20\x63\x6c\x73\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x73\x2b\x2f\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x29\x20\x3d\x3e\x20\x63\x20\x26\x26\x20\x65\x6c\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x63\x29\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x5f\x76\x74\x63\x20\x7d\x20\x3d\x20\x65\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x5f\x76\x74\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x76\x74\x63\x2e\x64\x65\x6c\x65\x74\x65\x28\x63\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x5f\x76\x74\x63\x2e\x73\x69\x7a\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x76\x74\x63\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x65\x78\x74\x46\x72\x61\x6d\x65\x28\x63\x62\x29\x20\x7b\x0a\x20\x20\x72\x65\x71\x75\x65\x73\x74\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x46\x72\x61\x6d\x65\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x71\x75\x65\x73\x74\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x46\x72\x61\x6d\x65\x28\x63\x62\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x65\x6e\x64\x49\x64\x20\x3d\x20\x30\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x68\x65\x6e\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x45\x6e\x64\x73\x28\x65\x6c\x2c\x20\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x2c\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x54\x69\x6d\x65\x6f\x75\x74\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x64\x20\x3d\x20\x65\x6c\x2e\x5f\x65\x6e\x64\x49\x64\x20\x3d\x20\x2b\x2b\x65\x6e\x64\x49\x64\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x49\x66\x4e\x6f\x74\x53\x74\x61\x6c\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x64\x20\x3d\x3d\x3d\x20\x65\x6c\x2e\x5f\x65\x6e\x64\x49\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x78\x70\x6c\x69\x63\x69\x74\x54\x69\x6d\x65\x6f\x75\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x72\x65\x73\x6f\x6c\x76\x65\x49\x66\x4e\x6f\x74\x53\x74\x61\x6c\x65\x2c\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x54\x69\x6d\x65\x6f\x75\x74\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x2c\x20\x74\x69\x6d\x65\x6f\x75\x74\x2c\x20\x70\x72\x6f\x70\x43\x6f\x75\x6e\x74\x20\x7d\x20\x3d\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x49\x6e\x66\x6f\x28\x65\x6c\x2c\x20\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x32\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x45\x76\x65\x6e\x74\x20\x3d\x20\x74\x79\x70\x65\x20\x2b\x20\x22\x65\x6e\x64\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x65\x64\x20\x3d\x20\x30\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6e\x64\x45\x76\x65\x6e\x74\x2c\x20\x6f\x6e\x45\x6e\x64\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x49\x66\x4e\x6f\x74\x53\x74\x61\x6c\x65\x28\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x45\x6e\x64\x20\x3d\x20\x28\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x2e\x74\x61\x72\x67\x65\x74\x20\x3d\x3d\x3d\x20\x65\x6c\x20\x26\x26\x20\x2b\x2b\x65\x6e\x64\x65\x64\x20\x3e\x3d\x20\x70\x72\x6f\x70\x43\x6f\x75\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x65\x64\x20\x3c\x20\x70\x72\x6f\x70\x43\x6f\x75\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x65\x6c\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6e\x64\x45\x76\x65\x6e\x74\x2c\x20\x6f\x6e\x45\x6e\x64\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x49\x6e\x66\x6f\x28\x65\x6c\x2c\x20\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x79\x6c\x65\x73\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x28\x65\x6c\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x53\x74\x79\x6c\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x20\x3d\x20\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x28\x73\x74\x79\x6c\x65\x73\x5b\x6b\x65\x79\x5d\x20\x7c\x7c\x20\x22\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x22\x2c\x20\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x73\x20\x3d\x20\x67\x65\x74\x53\x74\x79\x6c\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x28\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x20\x2b\x20\x22\x44\x65\x6c\x61\x79\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x67\x65\x74\x53\x74\x79\x6c\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x28\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x20\x2b\x20\x22\x44\x75\x72\x61\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x20\x3d\x20\x67\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x73\x2c\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x73\x20\x3d\x20\x67\x65\x74\x53\x74\x79\x6c\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x28\x41\x4e\x49\x4d\x41\x54\x49\x4f\x4e\x20\x2b\x20\x22\x44\x65\x6c\x61\x79\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x67\x65\x74\x53\x74\x79\x6c\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x28\x41\x4e\x49\x4d\x41\x54\x49\x4f\x4e\x20\x2b\x20\x22\x44\x75\x72\x61\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x20\x3d\x20\x67\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x73\x2c\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x74\x79\x70\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x6c\x65\x74\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x6c\x65\x74\x20\x70\x72\x6f\x70\x43\x6f\x75\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x3d\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x43\x6f\x75\x6e\x74\x20\x3d\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x65\x78\x70\x65\x63\x74\x65\x64\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x41\x4e\x49\x4d\x41\x54\x49\x4f\x4e\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x41\x4e\x49\x4d\x41\x54\x49\x4f\x4e\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x3d\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x43\x6f\x75\x6e\x74\x20\x3d\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x2c\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x29\x3b\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x74\x69\x6d\x65\x6f\x75\x74\x20\x3e\x20\x30\x20\x3f\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x20\x3e\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x54\x69\x6d\x65\x6f\x75\x74\x20\x3f\x20\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x20\x3a\x20\x41\x4e\x49\x4d\x41\x54\x49\x4f\x4e\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x43\x6f\x75\x6e\x74\x20\x3d\x20\x74\x79\x70\x65\x20\x3f\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x20\x3f\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x20\x3d\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x20\x26\x26\x20\x2f\x5c\x62\x28\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x7c\x61\x6c\x6c\x29\x28\x2c\x7c\x24\x29\x2f\x2e\x74\x65\x73\x74\x28\x73\x74\x79\x6c\x65\x73\x5b\x54\x52\x41\x4e\x53\x49\x54\x49\x4f\x4e\x20\x2b\x20\x22\x50\x72\x6f\x70\x65\x72\x74\x79\x22\x5d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x2c\x0a\x20\x20\x20\x20\x74\x69\x6d\x65\x6f\x75\x74\x2c\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x43\x6f\x75\x6e\x74\x2c\x0a\x20\x20\x20\x20\x68\x61\x73\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x64\x65\x6c\x61\x79\x73\x2c\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x64\x65\x6c\x61\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x64\x65\x6c\x61\x79\x73\x20\x3d\x20\x64\x65\x6c\x61\x79\x73\x2e\x63\x6f\x6e\x63\x61\x74\x28\x64\x65\x6c\x61\x79\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x2e\x2e\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x73\x2e\x6d\x61\x70\x28\x28\x64\x2c\x20\x69\x29\x20\x3d\x3e\x20\x74\x6f\x4d\x73\x28\x64\x29\x20\x2b\x20\x74\x6f\x4d\x73\x28\x64\x65\x6c\x61\x79\x73\x5b\x69\x5d\x29\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x4d\x73\x28\x73\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x75\x6d\x62\x65\x72\x28\x73\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x2d\x31\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x22\x2c\x22\x2c\x20\x22\x2e\x22\x29\x29\x20\x2a\x20\x31\x65\x33\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x72\x63\x65\x52\x65\x66\x6c\x6f\x77\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x2e\x6f\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x50\x6f\x73\x69\x74\x69\x6f\x6e\x4d\x61\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x47\x72\x6f\x75\x70\x49\x6d\x70\x6c\x20\x3d\x20\x7b\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x47\x72\x6f\x75\x70\x22\x2c\x0a\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x56\x61\x6c\x69\x64\x61\x74\x6f\x72\x73\x2c\x20\x7b\x0a\x20\x20\x20\x20\x74\x61\x67\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x20\x20\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x3a\x20\x53\x74\x72\x69\x6e\x67\x0a\x20\x20\x7d\x29\x2c\x0a\x20\x20\x73\x65\x74\x75\x70\x28\x70\x72\x6f\x70\x73\x2c\x20\x7b\x20\x73\x6c\x6f\x74\x73\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x74\x65\x20\x3d\x20\x75\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x53\x74\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x55\x70\x64\x61\x74\x65\x64\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x20\x3d\x20\x70\x72\x6f\x70\x73\x2e\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x20\x7c\x7c\x20\x60\x24\x7b\x70\x72\x6f\x70\x73\x2e\x6e\x61\x6d\x65\x20\x7c\x7c\x20\x22\x76\x22\x7d\x2d\x6d\x6f\x76\x65\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x68\x61\x73\x43\x53\x53\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x5b\x30\x5d\x2e\x65\x6c\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x76\x6e\x6f\x64\x65\x2e\x65\x6c\x2c\x20\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x63\x61\x6c\x6c\x50\x65\x6e\x64\x69\x6e\x67\x43\x62\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x72\x65\x63\x6f\x72\x64\x50\x6f\x73\x69\x74\x69\x6f\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x76\x65\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2e\x66\x69\x6c\x74\x65\x72\x28\x61\x70\x70\x6c\x79\x54\x72\x61\x6e\x73\x6c\x61\x74\x69\x6f\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x63\x65\x52\x65\x66\x6c\x6f\x77\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x76\x65\x64\x43\x68\x69\x6c\x64\x72\x65\x6e\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6c\x20\x3d\x20\x63\x2e\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x79\x6c\x65\x20\x3d\x20\x65\x6c\x2e\x73\x74\x79\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x20\x3d\x20\x73\x74\x79\x6c\x65\x2e\x77\x65\x62\x6b\x69\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x20\x3d\x20\x73\x74\x79\x6c\x65\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x62\x20\x3d\x20\x65\x6c\x2e\x5f\x6d\x6f\x76\x65\x43\x62\x20\x3d\x20\x28\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x20\x26\x26\x20\x65\x2e\x74\x61\x72\x67\x65\x74\x20\x21\x3d\x3d\x20\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x20\x7c\x7c\x20\x2f\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x24\x2f\x2e\x74\x65\x73\x74\x28\x65\x2e\x70\x72\x6f\x70\x65\x72\x74\x79\x4e\x61\x6d\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x65\x6e\x64\x22\x2c\x20\x63\x62\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x6d\x6f\x76\x65\x43\x62\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x43\x6c\x61\x73\x73\x28\x65\x6c\x2c\x20\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\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\x65\x6c\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x65\x6e\x64\x22\x2c\x20\x63\x62\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x20\x3d\x20\x74\x6f\x52\x61\x77\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x73\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x28\x72\x61\x77\x50\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x74\x61\x67\x20\x3d\x20\x72\x61\x77\x50\x72\x6f\x70\x73\x2e\x74\x61\x67\x20\x7c\x7c\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x20\x3d\x20\x73\x6c\x6f\x74\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x3f\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x52\x61\x77\x43\x68\x69\x6c\x64\x72\x65\x6e\x28\x73\x6c\x6f\x74\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x28\x29\x29\x20\x3a\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x69\x6c\x64\x2e\x6b\x65\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x63\x68\x69\x6c\x64\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x63\x68\x69\x6c\x64\x2c\x20\x63\x73\x73\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x2c\x20\x73\x74\x61\x74\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x70\x72\x65\x76\x43\x68\x69\x6c\x64\x72\x65\x6e\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x63\x68\x69\x6c\x64\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x28\x63\x68\x69\x6c\x64\x2c\x20\x63\x73\x73\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x50\x72\x6f\x70\x73\x2c\x20\x73\x74\x61\x74\x65\x2c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x4d\x61\x70\x2e\x73\x65\x74\x28\x63\x68\x69\x6c\x64\x2c\x20\x63\x68\x69\x6c\x64\x2e\x65\x6c\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x74\x61\x67\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x47\x72\x6f\x75\x70\x20\x3d\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x47\x72\x6f\x75\x70\x49\x6d\x70\x6c\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x61\x6c\x6c\x50\x65\x6e\x64\x69\x6e\x67\x43\x62\x73\x28\x63\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6c\x20\x3d\x20\x63\x2e\x65\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x5f\x6d\x6f\x76\x65\x43\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x6d\x6f\x76\x65\x43\x62\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x5f\x65\x6e\x74\x65\x72\x43\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x65\x6e\x74\x65\x72\x43\x62\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x63\x6f\x72\x64\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x63\x29\x20\x7b\x0a\x20\x20\x6e\x65\x77\x50\x6f\x73\x69\x74\x69\x6f\x6e\x4d\x61\x70\x2e\x73\x65\x74\x28\x63\x2c\x20\x63\x2e\x65\x6c\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x70\x70\x6c\x79\x54\x72\x61\x6e\x73\x6c\x61\x74\x69\x6f\x6e\x28\x63\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6c\x64\x50\x6f\x73\x20\x3d\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x4d\x61\x70\x2e\x67\x65\x74\x28\x63\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x50\x6f\x73\x20\x3d\x20\x6e\x65\x77\x50\x6f\x73\x69\x74\x69\x6f\x6e\x4d\x61\x70\x2e\x67\x65\x74\x28\x63\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x78\x20\x3d\x20\x6f\x6c\x64\x50\x6f\x73\x2e\x6c\x65\x66\x74\x20\x2d\x20\x6e\x65\x77\x50\x6f\x73\x2e\x6c\x65\x66\x74\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x79\x20\x3d\x20\x6f\x6c\x64\x50\x6f\x73\x2e\x74\x6f\x70\x20\x2d\x20\x6e\x65\x77\x50\x6f\x73\x2e\x74\x6f\x70\x3b\x0a\x20\x20\x69\x66\x20\x28\x64\x78\x20\x7c\x7c\x20\x64\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x20\x3d\x20\x63\x2e\x65\x6c\x2e\x73\x74\x79\x6c\x65\x3b\x0a\x20\x20\x20\x20\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x20\x3d\x20\x73\x2e\x77\x65\x62\x6b\x69\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x20\x3d\x20\x60\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x24\x7b\x64\x78\x7d\x70\x78\x2c\x24\x7b\x64\x79\x7d\x70\x78\x29\x60\x3b\x0a\x20\x20\x20\x20\x73\x2e\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x44\x75\x72\x61\x74\x69\x6f\x6e\x20\x3d\x20\x22\x30\x73\x22\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x61\x73\x43\x53\x53\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x65\x6c\x2c\x20\x72\x6f\x6f\x74\x2c\x20\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6c\x6f\x6e\x65\x20\x3d\x20\x65\x6c\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x5f\x76\x74\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x76\x74\x63\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x6c\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6c\x73\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x73\x2b\x2f\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x29\x20\x3d\x3e\x20\x63\x20\x26\x26\x20\x63\x6c\x6f\x6e\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x63\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x73\x2b\x2f\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x63\x29\x20\x3d\x3e\x20\x63\x20\x26\x26\x20\x63\x6c\x6f\x6e\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x63\x29\x29\x3b\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x72\x6f\x6f\x74\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x31\x20\x3f\x20\x72\x6f\x6f\x74\x20\x3a\x20\x72\x6f\x6f\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x6c\x6f\x6e\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x68\x61\x73\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x20\x7d\x20\x3d\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x49\x6e\x66\x6f\x28\x63\x6c\x6f\x6e\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x63\x6c\x6f\x6e\x65\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x73\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x20\x3d\x20\x28\x76\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6e\x20\x3d\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x5b\x22\x6f\x6e\x55\x70\x64\x61\x74\x65\x3a\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x22\x5d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x41\x72\x72\x61\x79\x28\x66\x6e\x29\x20\x3f\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x69\x6e\x76\x6f\x6b\x65\x41\x72\x72\x61\x79\x46\x6e\x73\x28\x66\x6e\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x3a\x20\x66\x6e\x3b\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x6e\x43\x6f\x6d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x53\x74\x61\x72\x74\x28\x65\x29\x20\x7b\x0a\x20\x20\x65\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x6e\x43\x6f\x6d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x45\x6e\x64\x28\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x65\x2e\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x72\x69\x67\x67\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x22\x69\x6e\x70\x75\x74\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x72\x69\x67\x67\x65\x72\x28\x65\x6c\x2c\x20\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x76\x65\x6e\x74\x28\x22\x48\x54\x4d\x4c\x45\x76\x65\x6e\x74\x73\x22\x29\x3b\x0a\x20\x20\x65\x2e\x69\x6e\x69\x74\x45\x76\x65\x6e\x74\x28\x74\x79\x70\x65\x2c\x20\x74\x72\x75\x65\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x65\x6c\x2e\x64\x69\x73\x70\x61\x74\x63\x68\x45\x76\x65\x6e\x74\x28\x65\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x76\x4d\x6f\x64\x65\x6c\x54\x65\x78\x74\x20\x3d\x20\x7b\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x3a\x20\x7b\x20\x6c\x61\x7a\x79\x2c\x20\x74\x72\x69\x6d\x2c\x20\x6e\x75\x6d\x62\x65\x72\x20\x7d\x20\x7d\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x61\x73\x74\x54\x6f\x4e\x75\x6d\x62\x65\x72\x20\x3d\x20\x6e\x75\x6d\x62\x65\x72\x20\x7c\x7c\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x6c\x61\x7a\x79\x20\x3f\x20\x22\x63\x68\x61\x6e\x67\x65\x22\x20\x3a\x20\x22\x69\x6e\x70\x75\x74\x22\x2c\x20\x28\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x64\x6f\x6d\x56\x61\x6c\x75\x65\x20\x3d\x20\x65\x6c\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x69\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x6d\x56\x61\x6c\x75\x65\x20\x3d\x20\x64\x6f\x6d\x56\x61\x6c\x75\x65\x2e\x74\x72\x69\x6d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x61\x73\x74\x54\x6f\x4e\x75\x6d\x62\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x6d\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x4e\x75\x6d\x62\x65\x72\x28\x64\x6f\x6d\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x28\x64\x6f\x6d\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x69\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x22\x63\x68\x61\x6e\x67\x65\x22\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x65\x6c\x2e\x76\x61\x6c\x75\x65\x2e\x74\x72\x69\x6d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6c\x61\x7a\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x22\x63\x6f\x6d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x73\x74\x61\x72\x74\x22\x2c\x20\x6f\x6e\x43\x6f\x6d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x53\x74\x61\x72\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x22\x63\x6f\x6d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x65\x6e\x64\x22\x2c\x20\x6f\x6e\x43\x6f\x6d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x45\x6e\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x22\x63\x68\x61\x6e\x67\x65\x22\x2c\x20\x6f\x6e\x43\x6f\x6d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x45\x6e\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x6d\x6f\x75\x6e\x74\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x22\x22\x20\x3a\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x3a\x20\x7b\x20\x6c\x61\x7a\x79\x2c\x20\x74\x72\x69\x6d\x2c\x20\x6e\x75\x6d\x62\x65\x72\x20\x7d\x20\x7d\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x6e\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x61\x63\x74\x69\x76\x65\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x61\x7a\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x69\x6d\x20\x26\x26\x20\x65\x6c\x2e\x76\x61\x6c\x75\x65\x2e\x74\x72\x69\x6d\x28\x29\x20\x3d\x3d\x3d\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x6e\x75\x6d\x62\x65\x72\x20\x7c\x7c\x20\x65\x6c\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x20\x26\x26\x20\x74\x6f\x4e\x75\x6d\x62\x65\x72\x28\x65\x6c\x2e\x76\x61\x6c\x75\x65\x29\x20\x3d\x3d\x3d\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x22\x22\x20\x3a\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x6e\x65\x77\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x76\x4d\x6f\x64\x65\x6c\x43\x68\x65\x63\x6b\x62\x6f\x78\x20\x3d\x20\x7b\x0a\x20\x20\x64\x65\x65\x70\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x64\x28\x65\x6c\x2c\x20\x5f\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x22\x63\x68\x61\x6e\x67\x65\x22\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x20\x3d\x20\x65\x6c\x2e\x5f\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6c\x65\x6d\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x67\x65\x74\x56\x61\x6c\x75\x65\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x65\x63\x6b\x65\x64\x20\x3d\x20\x65\x6c\x2e\x63\x68\x65\x63\x6b\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x64\x65\x78\x20\x3d\x20\x6c\x6f\x6f\x73\x65\x49\x6e\x64\x65\x78\x4f\x66\x28\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x2c\x20\x65\x6c\x65\x6d\x65\x6e\x74\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6f\x75\x6e\x64\x20\x3d\x20\x69\x6e\x64\x65\x78\x20\x21\x3d\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x65\x63\x6b\x65\x64\x20\x26\x26\x20\x21\x66\x6f\x75\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x69\x67\x6e\x28\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x6c\x65\x6d\x65\x6e\x74\x56\x61\x6c\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x63\x68\x65\x63\x6b\x65\x64\x20\x26\x26\x20\x66\x6f\x75\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x69\x6c\x74\x65\x72\x65\x64\x20\x3d\x20\x5b\x2e\x2e\x2e\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x74\x65\x72\x65\x64\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x6e\x64\x65\x78\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x69\x67\x6e\x28\x66\x69\x6c\x74\x65\x72\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x53\x65\x74\x28\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6c\x6f\x6e\x65\x64\x20\x3d\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x65\x63\x6b\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x6f\x6e\x65\x64\x2e\x61\x64\x64\x28\x65\x6c\x65\x6d\x65\x6e\x74\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x6f\x6e\x65\x64\x2e\x64\x65\x6c\x65\x74\x65\x28\x65\x6c\x65\x6d\x65\x6e\x74\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x69\x67\x6e\x28\x63\x6c\x6f\x6e\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x73\x73\x69\x67\x6e\x28\x67\x65\x74\x43\x68\x65\x63\x6b\x62\x6f\x78\x56\x61\x6c\x75\x65\x28\x65\x6c\x2c\x20\x63\x68\x65\x63\x6b\x65\x64\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x6d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x73\x65\x74\x43\x68\x65\x63\x6b\x65\x64\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x73\x65\x74\x43\x68\x65\x63\x6b\x65\x64\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x43\x68\x65\x63\x6b\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x7d\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x65\x6c\x2e\x5f\x6d\x6f\x64\x65\x6c\x56\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x63\x68\x65\x63\x6b\x65\x64\x20\x3d\x20\x6c\x6f\x6f\x73\x65\x49\x6e\x64\x65\x78\x4f\x66\x28\x76\x61\x6c\x75\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x29\x20\x3e\x20\x2d\x31\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x53\x65\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x63\x68\x65\x63\x6b\x65\x64\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x68\x61\x73\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x63\x68\x65\x63\x6b\x65\x64\x20\x3d\x20\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x76\x61\x6c\x75\x65\x2c\x20\x67\x65\x74\x43\x68\x65\x63\x6b\x62\x6f\x78\x56\x61\x6c\x75\x65\x28\x65\x6c\x2c\x20\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x76\x4d\x6f\x64\x65\x6c\x52\x61\x64\x69\x6f\x20\x3d\x20\x7b\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x63\x68\x65\x63\x6b\x65\x64\x20\x3d\x20\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x76\x61\x6c\x75\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x22\x63\x68\x61\x6e\x67\x65\x22\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x28\x67\x65\x74\x56\x61\x6c\x75\x65\x28\x65\x6c\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x7d\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x63\x68\x65\x63\x6b\x65\x64\x20\x3d\x20\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x76\x61\x6c\x75\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x76\x4d\x6f\x64\x65\x6c\x53\x65\x6c\x65\x63\x74\x20\x3d\x20\x7b\x0a\x20\x20\x64\x65\x65\x70\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x3a\x20\x7b\x20\x6e\x75\x6d\x62\x65\x72\x20\x7d\x20\x7d\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x65\x74\x4d\x6f\x64\x65\x6c\x20\x3d\x20\x69\x73\x53\x65\x74\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x6c\x2c\x20\x22\x63\x68\x61\x6e\x67\x65\x22\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x56\x61\x6c\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x69\x6c\x74\x65\x72\x2e\x63\x61\x6c\x6c\x28\x65\x6c\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x28\x6f\x29\x20\x3d\x3e\x20\x6f\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x29\x2e\x6d\x61\x70\x28\x28\x6f\x29\x20\x3d\x3e\x20\x6e\x75\x6d\x62\x65\x72\x20\x3f\x20\x74\x6f\x4e\x75\x6d\x62\x65\x72\x28\x67\x65\x74\x56\x61\x6c\x75\x65\x28\x6f\x29\x29\x20\x3a\x20\x67\x65\x74\x56\x61\x6c\x75\x65\x28\x6f\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x28\x65\x6c\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x3f\x20\x69\x73\x53\x65\x74\x4d\x6f\x64\x65\x6c\x20\x3f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x73\x65\x6c\x65\x63\x74\x65\x64\x56\x61\x6c\x29\x20\x3a\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x56\x61\x6c\x20\x3a\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x56\x61\x6c\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x6d\x6f\x75\x6e\x74\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x28\x65\x6c\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x28\x65\x6c\x2c\x20\x5f\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x67\x65\x74\x4d\x6f\x64\x65\x6c\x41\x73\x73\x69\x67\x6e\x65\x72\x28\x76\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x75\x70\x64\x61\x74\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x28\x65\x6c\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x28\x65\x6c\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x3d\x20\x65\x6c\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x26\x26\x20\x21\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x21\x69\x73\x53\x65\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x2c\x20\x6c\x20\x3d\x20\x65\x6c\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x3c\x20\x6c\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x69\x6f\x6e\x20\x3d\x20\x65\x6c\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x69\x6f\x6e\x56\x61\x6c\x75\x65\x20\x3d\x20\x67\x65\x74\x56\x61\x6c\x75\x65\x28\x6f\x70\x74\x69\x6f\x6e\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x3d\x20\x6c\x6f\x6f\x73\x65\x49\x6e\x64\x65\x78\x4f\x66\x28\x76\x61\x6c\x75\x65\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x56\x61\x6c\x75\x65\x29\x20\x3e\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x68\x61\x73\x28\x6f\x70\x74\x69\x6f\x6e\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x67\x65\x74\x56\x61\x6c\x75\x65\x28\x6f\x70\x74\x69\x6f\x6e\x29\x2c\x20\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6c\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x20\x21\x3d\x3d\x20\x69\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x26\x26\x20\x65\x6c\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x56\x61\x6c\x75\x65\x28\x65\x6c\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x5f\x76\x61\x6c\x75\x65\x22\x20\x69\x6e\x20\x65\x6c\x20\x3f\x20\x65\x6c\x2e\x5f\x76\x61\x6c\x75\x65\x20\x3a\x20\x65\x6c\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x43\x68\x65\x63\x6b\x62\x6f\x78\x56\x61\x6c\x75\x65\x28\x65\x6c\x2c\x20\x63\x68\x65\x63\x6b\x65\x64\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x63\x68\x65\x63\x6b\x65\x64\x20\x3f\x20\x22\x5f\x74\x72\x75\x65\x56\x61\x6c\x75\x65\x22\x20\x3a\x20\x22\x5f\x66\x61\x6c\x73\x65\x56\x61\x6c\x75\x65\x22\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6b\x65\x79\x20\x69\x6e\x20\x65\x6c\x20\x3f\x20\x65\x6c\x5b\x6b\x65\x79\x5d\x20\x3a\x20\x63\x68\x65\x63\x6b\x65\x64\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x76\x4d\x6f\x64\x65\x6c\x44\x79\x6e\x61\x6d\x69\x63\x20\x3d\x20\x7b\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x64\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x4d\x6f\x64\x65\x6c\x48\x6f\x6f\x6b\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x22\x63\x72\x65\x61\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x6d\x6f\x75\x6e\x74\x65\x64\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x4d\x6f\x64\x65\x6c\x48\x6f\x6f\x6b\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x22\x6d\x6f\x75\x6e\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x4d\x6f\x64\x65\x6c\x48\x6f\x6f\x6b\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x2c\x20\x22\x62\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x22\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x75\x70\x64\x61\x74\x65\x64\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x6c\x6c\x4d\x6f\x64\x65\x6c\x48\x6f\x6f\x6b\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x2c\x20\x22\x75\x70\x64\x61\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x61\x6c\x6c\x4d\x6f\x64\x65\x6c\x48\x6f\x6f\x6b\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x2c\x20\x68\x6f\x6f\x6b\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x6d\x6f\x64\x65\x6c\x54\x6f\x55\x73\x65\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x65\x6c\x2e\x74\x61\x67\x4e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x53\x45\x4c\x45\x43\x54\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x65\x6c\x54\x6f\x55\x73\x65\x20\x3d\x20\x76\x4d\x6f\x64\x65\x6c\x53\x65\x6c\x65\x63\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x54\x45\x58\x54\x41\x52\x45\x41\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x65\x6c\x54\x6f\x55\x73\x65\x20\x3d\x20\x76\x4d\x6f\x64\x65\x6c\x54\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x65\x6c\x54\x6f\x55\x73\x65\x20\x3d\x20\x76\x4d\x6f\x64\x65\x6c\x43\x68\x65\x63\x6b\x62\x6f\x78\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x72\x61\x64\x69\x6f\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x65\x6c\x54\x6f\x55\x73\x65\x20\x3d\x20\x76\x4d\x6f\x64\x65\x6c\x52\x61\x64\x69\x6f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x65\x6c\x54\x6f\x55\x73\x65\x20\x3d\x20\x76\x4d\x6f\x64\x65\x6c\x54\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6e\x20\x3d\x20\x6d\x6f\x64\x65\x6c\x54\x6f\x55\x73\x65\x5b\x68\x6f\x6f\x6b\x5d\x3b\x0a\x20\x20\x66\x6e\x20\x26\x26\x20\x66\x6e\x28\x65\x6c\x2c\x20\x62\x69\x6e\x64\x69\x6e\x67\x2c\x20\x76\x6e\x6f\x64\x65\x2c\x20\x70\x72\x65\x76\x56\x4e\x6f\x64\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x56\x4d\x6f\x64\x65\x6c\x46\x6f\x72\x53\x53\x52\x28\x29\x20\x7b\x0a\x20\x20\x76\x4d\x6f\x64\x65\x6c\x54\x65\x78\x74\x2e\x67\x65\x74\x53\x53\x52\x50\x72\x6f\x70\x73\x20\x3d\x20\x28\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x3d\x3e\x20\x28\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x76\x4d\x6f\x64\x65\x6c\x52\x61\x64\x69\x6f\x2e\x67\x65\x74\x53\x53\x52\x50\x72\x6f\x70\x73\x20\x3d\x20\x28\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x6c\x6f\x6f\x73\x65\x45\x71\x75\x61\x6c\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x2c\x20\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x65\x63\x6b\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x76\x4d\x6f\x64\x65\x6c\x43\x68\x65\x63\x6b\x62\x6f\x78\x2e\x67\x65\x74\x53\x53\x52\x50\x72\x6f\x70\x73\x20\x3d\x20\x28\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x76\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x6c\x6f\x6f\x73\x65\x49\x6e\x64\x65\x78\x4f\x66\x28\x76\x61\x6c\x75\x65\x2c\x20\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x29\x20\x3e\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x65\x63\x6b\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x53\x65\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x2e\x68\x61\x73\x28\x76\x6e\x6f\x64\x65\x2e\x70\x72\x6f\x70\x73\x2e\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x65\x63\x6b\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x65\x63\x6b\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x79\x73\x74\x65\x6d\x4d\x6f\x64\x69\x66\x69\x65\x72\x73\x20\x3d\x20\x5b\x22\x63\x74\x72\x6c\x22\x2c\x20\x22\x73\x68\x69\x66\x74\x22\x2c\x20\x22\x61\x6c\x74\x22\x2c\x20\x22\x6d\x65\x74\x61\x22\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x47\x75\x61\x72\x64\x73\x20\x3d\x20\x7b\x0a\x20\x20\x73\x74\x6f\x70\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x65\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x2c\x0a\x20\x20\x70\x72\x65\x76\x65\x6e\x74\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x65\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x2c\x0a\x20\x20\x73\x65\x6c\x66\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x65\x2e\x74\x61\x72\x67\x65\x74\x20\x21\x3d\x3d\x20\x65\x2e\x63\x75\x72\x72\x65\x6e\x74\x54\x61\x72\x67\x65\x74\x2c\x0a\x20\x20\x63\x74\x72\x6c\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x21\x65\x2e\x63\x74\x72\x6c\x4b\x65\x79\x2c\x0a\x20\x20\x73\x68\x69\x66\x74\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x21\x65\x2e\x73\x68\x69\x66\x74\x4b\x65\x79\x2c\x0a\x20\x20\x61\x6c\x74\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x21\x65\x2e\x61\x6c\x74\x4b\x65\x79\x2c\x0a\x20\x20\x6d\x65\x74\x61\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x21\x65\x2e\x6d\x65\x74\x61\x4b\x65\x79\x2c\x0a\x20\x20\x6c\x65\x66\x74\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x22\x62\x75\x74\x74\x6f\x6e\x22\x20\x69\x6e\x20\x65\x20\x26\x26\x20\x65\x2e\x62\x75\x74\x74\x6f\x6e\x20\x21\x3d\x3d\x20\x30\x2c\x0a\x20\x20\x6d\x69\x64\x64\x6c\x65\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x22\x62\x75\x74\x74\x6f\x6e\x22\x20\x69\x6e\x20\x65\x20\x26\x26\x20\x65\x2e\x62\x75\x74\x74\x6f\x6e\x20\x21\x3d\x3d\x20\x31\x2c\x0a\x20\x20\x72\x69\x67\x68\x74\x3a\x20\x28\x65\x29\x20\x3d\x3e\x20\x22\x62\x75\x74\x74\x6f\x6e\x22\x20\x69\x6e\x20\x65\x20\x26\x26\x20\x65\x2e\x62\x75\x74\x74\x6f\x6e\x20\x21\x3d\x3d\x20\x32\x2c\x0a\x20\x20\x65\x78\x61\x63\x74\x3a\x20\x28\x65\x2c\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x29\x20\x3d\x3e\x20\x73\x79\x73\x74\x65\x6d\x4d\x6f\x64\x69\x66\x69\x65\x72\x73\x2e\x73\x6f\x6d\x65\x28\x28\x6d\x29\x20\x3d\x3e\x20\x65\x5b\x60\x24\x7b\x6d\x7d\x4b\x65\x79\x60\x5d\x20\x26\x26\x20\x21\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x6d\x29\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x77\x69\x74\x68\x4d\x6f\x64\x69\x66\x69\x65\x72\x73\x20\x3d\x20\x28\x66\x6e\x2c\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x76\x65\x6e\x74\x2c\x20\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x67\x75\x61\x72\x64\x20\x3d\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x47\x75\x61\x72\x64\x73\x5b\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x5b\x69\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x67\x75\x61\x72\x64\x20\x26\x26\x20\x67\x75\x61\x72\x64\x28\x65\x76\x65\x6e\x74\x2c\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6e\x28\x65\x76\x65\x6e\x74\x2c\x20\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x4e\x61\x6d\x65\x73\x20\x3d\x20\x7b\x0a\x20\x20\x65\x73\x63\x3a\x20\x22\x65\x73\x63\x61\x70\x65\x22\x2c\x0a\x20\x20\x73\x70\x61\x63\x65\x3a\x20\x22\x20\x22\x2c\x0a\x20\x20\x75\x70\x3a\x20\x22\x61\x72\x72\x6f\x77\x2d\x75\x70\x22\x2c\x0a\x20\x20\x6c\x65\x66\x74\x3a\x20\x22\x61\x72\x72\x6f\x77\x2d\x6c\x65\x66\x74\x22\x2c\x0a\x20\x20\x72\x69\x67\x68\x74\x3a\x20\x22\x61\x72\x72\x6f\x77\x2d\x72\x69\x67\x68\x74\x22\x2c\x0a\x20\x20\x64\x6f\x77\x6e\x3a\x20\x22\x61\x72\x72\x6f\x77\x2d\x64\x6f\x77\x6e\x22\x2c\x0a\x20\x20\x64\x65\x6c\x65\x74\x65\x3a\x20\x22\x62\x61\x63\x6b\x73\x70\x61\x63\x65\x22\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x77\x69\x74\x68\x4b\x65\x79\x73\x20\x3d\x20\x28\x66\x6e\x2c\x20\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x76\x65\x6e\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x22\x6b\x65\x79\x22\x20\x69\x6e\x20\x65\x76\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x76\x65\x6e\x74\x4b\x65\x79\x20\x3d\x20\x68\x79\x70\x68\x65\x6e\x61\x74\x65\x28\x65\x76\x65\x6e\x74\x2e\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x69\x66\x69\x65\x72\x73\x2e\x73\x6f\x6d\x65\x28\x28\x6b\x29\x20\x3d\x3e\x20\x6b\x20\x3d\x3d\x3d\x20\x65\x76\x65\x6e\x74\x4b\x65\x79\x20\x7c\x7c\x20\x6b\x65\x79\x4e\x61\x6d\x65\x73\x5b\x6b\x5d\x20\x3d\x3d\x3d\x20\x65\x76\x65\x6e\x74\x4b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6e\x28\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x76\x53\x68\x6f\x77\x20\x3d\x20\x7b\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x7b\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x65\x6c\x2e\x5f\x76\x6f\x64\x20\x3d\x20\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x3f\x20\x22\x22\x20\x3a\x20\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x62\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x44\x69\x73\x70\x6c\x61\x79\x28\x65\x6c\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x6d\x6f\x75\x6e\x74\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x7b\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x65\x6e\x74\x65\x72\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x75\x70\x64\x61\x74\x65\x64\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6c\x64\x56\x61\x6c\x75\x65\x20\x7d\x2c\x20\x7b\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x21\x6f\x6c\x64\x56\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x62\x65\x66\x6f\x72\x65\x45\x6e\x74\x65\x72\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x44\x69\x73\x70\x6c\x61\x79\x28\x65\x6c\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x65\x6e\x74\x65\x72\x28\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2e\x6c\x65\x61\x76\x65\x28\x65\x6c\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x44\x69\x73\x70\x6c\x61\x79\x28\x65\x6c\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x44\x69\x73\x70\x6c\x61\x79\x28\x65\x6c\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x62\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x28\x65\x6c\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x65\x74\x44\x69\x73\x70\x6c\x61\x79\x28\x65\x6c\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x65\x74\x44\x69\x73\x70\x6c\x61\x79\x28\x65\x6c\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x65\x6c\x2e\x5f\x76\x6f\x64\x20\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x56\x53\x68\x6f\x77\x46\x6f\x72\x53\x53\x52\x28\x29\x20\x7b\x0a\x20\x20\x76\x53\x68\x6f\x77\x2e\x67\x65\x74\x53\x53\x52\x50\x72\x6f\x70\x73\x20\x3d\x20\x28\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x65\x78\x74\x65\x6e\x64\x28\x7b\x20\x70\x61\x74\x63\x68\x50\x72\x6f\x70\x20\x7d\x2c\x20\x6e\x6f\x64\x65\x4f\x70\x73\x29\x3b\x0a\x6c\x65\x74\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x3b\x0a\x6c\x65\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6e\x73\x75\x72\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x20\x7c\x7c\x20\x28\x72\x65\x6e\x64\x65\x72\x65\x72\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x72\x65\x6e\x64\x65\x72\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6e\x73\x75\x72\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x29\x20\x7b\x0a\x20\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x20\x3d\x20\x65\x6e\x61\x62\x6c\x65\x64\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x20\x3f\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x20\x3a\x20\x63\x72\x65\x61\x74\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x72\x65\x6e\x64\x65\x72\x65\x72\x4f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x65\x6e\x61\x62\x6c\x65\x64\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x6e\x64\x65\x72\x65\x72\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x72\x65\x6e\x64\x65\x72\x20\x3d\x20\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x65\x6e\x73\x75\x72\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x29\x2e\x72\x65\x6e\x64\x65\x72\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x68\x79\x64\x72\x61\x74\x65\x20\x3d\x20\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x65\x6e\x73\x75\x72\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x29\x2e\x68\x79\x64\x72\x61\x74\x65\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x20\x3d\x20\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x32\x20\x3d\x20\x65\x6e\x73\x75\x72\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x29\x2e\x63\x72\x65\x61\x74\x65\x41\x70\x70\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6d\x6f\x75\x6e\x74\x20\x7d\x20\x3d\x20\x61\x70\x70\x32\x3b\x0a\x20\x20\x61\x70\x70\x32\x2e\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x4f\x72\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x4f\x72\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x20\x3d\x20\x61\x70\x70\x32\x2e\x5f\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x29\x20\x26\x26\x20\x21\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x72\x65\x6e\x64\x65\x72\x20\x26\x26\x20\x21\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x74\x65\x6d\x70\x6c\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2e\x74\x65\x6d\x70\x6c\x61\x74\x65\x20\x3d\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x78\x79\x20\x3d\x20\x6d\x6f\x75\x6e\x74\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x45\x6c\x65\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x76\x2d\x63\x6c\x6f\x61\x6b\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x2d\x76\x2d\x61\x70\x70\x22\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x6f\x78\x79\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x70\x70\x32\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x72\x65\x61\x74\x65\x53\x53\x52\x41\x70\x70\x20\x3d\x20\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x32\x20\x3d\x20\x65\x6e\x73\x75\x72\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x52\x65\x6e\x64\x65\x72\x65\x72\x28\x29\x2e\x63\x72\x65\x61\x74\x65\x41\x70\x70\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6d\x6f\x75\x6e\x74\x20\x7d\x20\x3d\x20\x61\x70\x70\x32\x3b\x0a\x20\x20\x61\x70\x70\x32\x2e\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x4f\x72\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x4f\x72\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x6f\x75\x6e\x74\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x74\x72\x75\x65\x2c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x70\x70\x32\x3b\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x3b\x0a\x7d\x0a\x6c\x65\x74\x20\x73\x73\x72\x44\x69\x72\x65\x63\x74\x69\x76\x65\x49\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x69\x74\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x46\x6f\x72\x53\x53\x52\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x73\x73\x72\x44\x69\x72\x65\x63\x74\x69\x76\x65\x49\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x73\x72\x44\x69\x72\x65\x63\x74\x69\x76\x65\x49\x6e\x69\x74\x69\x61\x6c\x69\x7a\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x6e\x69\x74\x56\x4d\x6f\x64\x65\x6c\x46\x6f\x72\x53\x53\x52\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x6e\x69\x74\x56\x53\x68\x6f\x77\x46\x6f\x72\x53\x53\x52\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x70\x69\x6c\x65\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x7d\x3b\x0a\x76\x61\x72\x20\x76\x75\x65\x5f\x72\x75\x6e\x74\x69\x6d\x65\x5f\x65\x73\x6d\x42\x75\x6e\x64\x6c\x65\x72\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x66\x72\x65\x65\x7a\x65\x28\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x7b\x0a\x20\x20\x5f\x5f\x70\x72\x6f\x74\x6f\x5f\x5f\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x69\x6c\x65\x2c\x0a\x20\x20\x45\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x2c\x0a\x20\x20\x52\x65\x61\x63\x74\x69\x76\x65\x45\x66\x66\x65\x63\x74\x2c\x0a\x20\x20\x63\x75\x73\x74\x6f\x6d\x52\x65\x66\x2c\x0a\x20\x20\x65\x66\x66\x65\x63\x74\x2c\x0a\x20\x20\x65\x66\x66\x65\x63\x74\x53\x63\x6f\x70\x65\x2c\x0a\x20\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x53\x63\x6f\x70\x65\x2c\x0a\x20\x20\x69\x73\x50\x72\x6f\x78\x79\x2c\x0a\x20\x20\x69\x73\x52\x65\x61\x63\x74\x69\x76\x65\x2c\x0a\x20\x20\x69\x73\x52\x65\x61\x64\x6f\x6e\x6c\x79\x2c\x0a\x20\x20\x69\x73\x52\x65\x66\x2c\x0a\x20\x20\x69\x73\x53\x68\x61\x6c\x6c\x6f\x77\x2c\x0a\x20\x20\x6d\x61\x72\x6b\x52\x61\x77\x2c\x0a\x20\x20\x6f\x6e\x53\x63\x6f\x70\x65\x44\x69\x73\x70\x6f\x73\x65\x2c\x0a\x20\x20\x70\x72\x6f\x78\x79\x52\x65\x66\x73\x2c\x0a\x20\x20\x72\x65\x61\x63\x74\x69\x76\x65\x2c\x0a\x20\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x2c\x0a\x20\x20\x72\x65\x66\x2c\x0a\x20\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x63\x74\x69\x76\x65\x2c\x0a\x20\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x61\x64\x6f\x6e\x6c\x79\x2c\x0a\x20\x20\x73\x68\x61\x6c\x6c\x6f\x77\x52\x65\x66\x2c\x0a\x20\x20\x73\x74\x6f\x70\x2c\x0a\x20\x20\x74\x6f\x52\x61\x77\x2c\x0a\x20\x20\x74\x6f\x52\x65\x66\x2c\x0a\x20\x20\x74\x6f\x52\x65\x66\x73\x2c\x0a\x20\x20\x74\x72\x69\x67\x67\x65\x72\x52\x65\x66\x2c\x0a\x20\x20\x75\x6e\x72\x65\x66\x2c\x0a\x20\x20\x63\x61\x6d\x65\x6c\x69\x7a\x65\x2c\x0a\x20\x20\x63\x61\x70\x69\x74\x61\x6c\x69\x7a\x65\x2c\x0a\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6c\x61\x73\x73\x2c\x0a\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x50\x72\x6f\x70\x73\x2c\x0a\x20\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x53\x74\x79\x6c\x65\x2c\x0a\x20\x20\x74\x6f\x44\x69\x73\x70\x6c\x61\x79\x53\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x74\x6f\x48\x61\x6e\x64\x6c\x65\x72\x4b\x65\x79\x2c\x0a\x20\x20\x42\x61\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x46\x72\x61\x67\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x2c\x0a\x20\x20\x53\x74\x61\x74\x69\x63\x2c\x0a\x20\x20\x53\x75\x73\x70\x65\x6e\x73\x65\x2c\x0a\x20\x20\x54\x65\x6c\x65\x70\x6f\x72\x74\x2c\x0a\x20\x20\x54\x65\x78\x74\x2c\x0a\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x41\x73\x79\x6e\x63\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x2c\x0a\x20\x20\x63\x61\x6c\x6c\x57\x69\x74\x68\x45\x72\x72\x6f\x72\x48\x61\x6e\x64\x6c\x69\x6e\x67\x2c\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x61\x74\x55\x74\x69\x6c\x73\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x42\x6c\x6f\x63\x6b\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x56\x4e\x6f\x64\x65\x3a\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x48\x79\x64\x72\x61\x74\x69\x6f\x6e\x52\x65\x6e\x64\x65\x72\x65\x72\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x50\x72\x6f\x70\x73\x52\x65\x73\x74\x50\x72\x6f\x78\x79\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x52\x65\x6e\x64\x65\x72\x65\x72\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x53\x6c\x6f\x74\x73\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x69\x63\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x64\x65\x66\x69\x6e\x65\x41\x73\x79\x6e\x63\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x64\x65\x66\x69\x6e\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x64\x65\x66\x69\x6e\x65\x45\x6d\x69\x74\x73\x2c\x0a\x20\x20\x64\x65\x66\x69\x6e\x65\x45\x78\x70\x6f\x73\x65\x2c\x0a\x20\x20\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x73\x2c\x0a\x20\x20\x67\x65\x74\x20\x64\x65\x76\x74\x6f\x6f\x6c\x73\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x76\x74\x6f\x6f\x6c\x73\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x2c\x0a\x20\x20\x67\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x52\x61\x77\x43\x68\x69\x6c\x64\x72\x65\x6e\x2c\x0a\x20\x20\x67\x75\x61\x72\x64\x52\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x2c\x0a\x20\x20\x68\x2c\x0a\x20\x20\x68\x61\x6e\x64\x6c\x65\x45\x72\x72\x6f\x72\x2c\x0a\x20\x20\x69\x6e\x69\x74\x43\x75\x73\x74\x6f\x6d\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x0a\x20\x20\x69\x6e\x6a\x65\x63\x74\x2c\x0a\x20\x20\x69\x73\x4d\x65\x6d\x6f\x53\x61\x6d\x65\x2c\x0a\x20\x20\x69\x73\x52\x75\x6e\x74\x69\x6d\x65\x4f\x6e\x6c\x79\x2c\x0a\x20\x20\x69\x73\x56\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x6d\x65\x72\x67\x65\x44\x65\x66\x61\x75\x6c\x74\x73\x2c\x0a\x20\x20\x6d\x65\x72\x67\x65\x50\x72\x6f\x70\x73\x2c\x0a\x20\x20\x6e\x65\x78\x74\x54\x69\x63\x6b\x2c\x0a\x20\x20\x6f\x6e\x41\x63\x74\x69\x76\x61\x74\x65\x64\x2c\x0a\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x2c\x0a\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x2c\x0a\x20\x20\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x70\x64\x61\x74\x65\x2c\x0a\x20\x20\x6f\x6e\x44\x65\x61\x63\x74\x69\x76\x61\x74\x65\x64\x2c\x0a\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x43\x61\x70\x74\x75\x72\x65\x64\x2c\x0a\x20\x20\x6f\x6e\x4d\x6f\x75\x6e\x74\x65\x64\x2c\x0a\x20\x20\x6f\x6e\x52\x65\x6e\x64\x65\x72\x54\x72\x61\x63\x6b\x65\x64\x2c\x0a\x20\x20\x6f\x6e\x52\x65\x6e\x64\x65\x72\x54\x72\x69\x67\x67\x65\x72\x65\x64\x2c\x0a\x20\x20\x6f\x6e\x53\x65\x72\x76\x65\x72\x50\x72\x65\x66\x65\x74\x63\x68\x2c\x0a\x20\x20\x6f\x6e\x55\x6e\x6d\x6f\x75\x6e\x74\x65\x64\x2c\x0a\x20\x20\x6f\x6e\x55\x70\x64\x61\x74\x65\x64\x2c\x0a\x20\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x2c\x0a\x20\x20\x70\x6f\x70\x53\x63\x6f\x70\x65\x49\x64\x2c\x0a\x20\x20\x70\x72\x6f\x76\x69\x64\x65\x2c\x0a\x20\x20\x70\x75\x73\x68\x53\x63\x6f\x70\x65\x49\x64\x2c\x0a\x20\x20\x71\x75\x65\x75\x65\x50\x6f\x73\x74\x46\x6c\x75\x73\x68\x43\x62\x2c\x0a\x20\x20\x72\x65\x67\x69\x73\x74\x65\x72\x52\x75\x6e\x74\x69\x6d\x65\x43\x6f\x6d\x70\x69\x6c\x65\x72\x2c\x0a\x20\x20\x72\x65\x6e\x64\x65\x72\x4c\x69\x73\x74\x2c\x0a\x20\x20\x72\x65\x6e\x64\x65\x72\x53\x6c\x6f\x74\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x44\x69\x72\x65\x63\x74\x69\x76\x65\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x44\x79\x6e\x61\x6d\x69\x63\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x46\x69\x6c\x74\x65\x72\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x2c\x0a\x20\x20\x73\x65\x74\x42\x6c\x6f\x63\x6b\x54\x72\x61\x63\x6b\x69\x6e\x67\x2c\x0a\x20\x20\x73\x65\x74\x44\x65\x76\x74\x6f\x6f\x6c\x73\x48\x6f\x6f\x6b\x2c\x0a\x20\x20\x73\x65\x74\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x48\x6f\x6f\x6b\x73\x2c\x0a\x20\x20\x73\x73\x72\x43\x6f\x6e\x74\x65\x78\x74\x4b\x65\x79\x2c\x0a\x20\x20\x73\x73\x72\x55\x74\x69\x6c\x73\x2c\x0a\x20\x20\x74\x6f\x48\x61\x6e\x64\x6c\x65\x72\x73\x2c\x0a\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x56\x4e\x6f\x64\x65\x41\x72\x67\x73\x2c\x0a\x20\x20\x75\x73\x65\x41\x74\x74\x72\x73\x2c\x0a\x20\x20\x75\x73\x65\x53\x53\x52\x43\x6f\x6e\x74\x65\x78\x74\x2c\x0a\x20\x20\x75\x73\x65\x53\x6c\x6f\x74\x73\x2c\x0a\x20\x20\x75\x73\x65\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x53\x74\x61\x74\x65\x2c\x0a\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x2c\x0a\x20\x20\x77\x61\x72\x6e\x3a\x20\x77\x61\x72\x6e\x24\x31\x2c\x0a\x20\x20\x77\x61\x74\x63\x68\x2c\x0a\x20\x20\x77\x61\x74\x63\x68\x45\x66\x66\x65\x63\x74\x2c\x0a\x20\x20\x77\x61\x74\x63\x68\x50\x6f\x73\x74\x45\x66\x66\x65\x63\x74\x2c\x0a\x20\x20\x77\x61\x74\x63\x68\x53\x79\x6e\x63\x45\x66\x66\x65\x63\x74\x2c\x0a\x20\x20\x77\x69\x74\x68\x41\x73\x79\x6e\x63\x43\x6f\x6e\x74\x65\x78\x74\x2c\x0a\x20\x20\x77\x69\x74\x68\x43\x74\x78\x2c\x0a\x20\x20\x77\x69\x74\x68\x44\x65\x66\x61\x75\x6c\x74\x73\x2c\x0a\x20\x20\x77\x69\x74\x68\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2c\x0a\x20\x20\x77\x69\x74\x68\x4d\x65\x6d\x6f\x2c\x0a\x20\x20\x77\x69\x74\x68\x53\x63\x6f\x70\x65\x49\x64\x2c\x0a\x20\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x54\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x47\x72\x6f\x75\x70\x2c\x0a\x20\x20\x56\x75\x65\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x53\x53\x52\x41\x70\x70\x2c\x0a\x20\x20\x64\x65\x66\x69\x6e\x65\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x64\x65\x66\x69\x6e\x65\x53\x53\x52\x43\x75\x73\x74\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x68\x79\x64\x72\x61\x74\x65\x2c\x0a\x20\x20\x69\x6e\x69\x74\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x46\x6f\x72\x53\x53\x52\x2c\x0a\x20\x20\x72\x65\x6e\x64\x65\x72\x2c\x0a\x20\x20\x75\x73\x65\x43\x73\x73\x4d\x6f\x64\x75\x6c\x65\x2c\x0a\x20\x20\x75\x73\x65\x43\x73\x73\x56\x61\x72\x73\x2c\x0a\x20\x20\x76\x4d\x6f\x64\x65\x6c\x43\x68\x65\x63\x6b\x62\x6f\x78\x2c\x0a\x20\x20\x76\x4d\x6f\x64\x65\x6c\x44\x79\x6e\x61\x6d\x69\x63\x2c\x0a\x20\x20\x76\x4d\x6f\x64\x65\x6c\x52\x61\x64\x69\x6f\x2c\x0a\x20\x20\x76\x4d\x6f\x64\x65\x6c\x53\x65\x6c\x65\x63\x74\x2c\x0a\x20\x20\x76\x4d\x6f\x64\x65\x6c\x54\x65\x78\x74\x2c\x0a\x20\x20\x76\x53\x68\x6f\x77\x2c\x0a\x20\x20\x77\x69\x74\x68\x4b\x65\x79\x73\x2c\x0a\x20\x20\x77\x69\x74\x68\x4d\x6f\x64\x69\x66\x69\x65\x72\x73\x0a\x7d\x2c\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x54\x61\x67\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x22\x4d\x6f\x64\x75\x6c\x65\x22\x20\x7d\x29\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x45\x78\x70\x6f\x72\x74\x46\x72\x6f\x6d\x43\x6a\x73\x28\x78\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x20\x26\x26\x20\x78\x2e\x5f\x5f\x65\x73\x4d\x6f\x64\x75\x6c\x65\x20\x26\x26\x20\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x2e\x63\x61\x6c\x6c\x28\x78\x2c\x20\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x29\x20\x3f\x20\x78\x5b\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x5d\x20\x3a\x20\x78\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x41\x75\x67\x6d\x65\x6e\x74\x65\x64\x4e\x61\x6d\x65\x73\x70\x61\x63\x65\x28\x6e\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6e\x2e\x5f\x5f\x65\x73\x4d\x6f\x64\x75\x6c\x65\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x3b\x0a\x20\x20\x76\x61\x72\x20\x61\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x7b\x7d\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\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x6e\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x64\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x28\x6e\x2c\x20\x6b\x29\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\x61\x2c\x20\x6b\x2c\x20\x64\x2e\x67\x65\x74\x20\x3f\x20\x64\x20\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x67\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x5b\x6b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x3b\x0a\x7d\x0a\x76\x61\x72\x20\x76\x75\x65\x33\x41\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x20\x3d\x20\x7b\x20\x65\x78\x70\x6f\x72\x74\x73\x3a\x20\x7b\x7d\x20\x7d\x3b\x0a\x76\x61\x72\x20\x72\x65\x71\x75\x69\x72\x65\x24\x24\x30\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x67\x65\x74\x41\x75\x67\x6d\x65\x6e\x74\x65\x64\x4e\x61\x6d\x65\x73\x70\x61\x63\x65\x28\x76\x75\x65\x5f\x72\x75\x6e\x74\x69\x6d\x65\x5f\x65\x73\x6d\x42\x75\x6e\x64\x6c\x65\x72\x29\x3b\x0a\x76\x61\x72\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x20\x3d\x20\x7b\x20\x65\x78\x70\x6f\x72\x74\x73\x3a\x20\x7b\x7d\x20\x7d\x3b\x0a\x2f\x2a\x21\x0a\x20\x2a\x20\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x20\x76\x33\x2e\x33\x35\x2e\x30\x0a\x20\x2a\x20\x28\x63\x29\x20\x32\x30\x31\x38\x2d\x32\x30\x32\x32\x20\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x0a\x20\x2a\x20\x52\x65\x6c\x65\x61\x73\x65\x64\x20\x75\x6e\x64\x65\x72\x20\x74\x68\x65\x20\x4d\x49\x54\x20\x4c\x69\x63\x65\x6e\x73\x65\x2e\x0a\x20\x2a\x2f\x0a\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x6f\x64\x75\x6c\x65\x2c\x20\x65\x78\x70\x6f\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x53\x79\x6d\x62\x6f\x6c\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x53\x79\x6d\x62\x6f\x6c\x73\x28\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x61\x32\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x28\x74\x32\x2c\x20\x65\x33\x29\x2e\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x69\x32\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x31\x3b\x20\x69\x32\x20\x3c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x69\x32\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x69\x32\x5d\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x25\x20\x32\x20\x3f\x20\x74\x28\x4f\x62\x6a\x65\x63\x74\x28\x61\x32\x29\x2c\x20\x74\x72\x75\x65\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x28\x65\x32\x2c\x20\x74\x32\x2c\x20\x61\x32\x5b\x74\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x73\x20\x3f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x28\x65\x32\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x73\x28\x61\x32\x29\x29\x20\x3a\x20\x74\x28\x4f\x62\x6a\x65\x63\x74\x28\x61\x32\x29\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\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\x32\x2c\x20\x74\x32\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x28\x61\x32\x2c\x20\x74\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x69\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x53\x79\x6d\x62\x6f\x6c\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x20\x3d\x3d\x20\x22\x73\x79\x6d\x62\x6f\x6c\x22\x20\x3f\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x53\x79\x6d\x62\x6f\x6c\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x3d\x3d\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x20\x26\x26\x20\x74\x33\x20\x21\x3d\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x20\x3f\x20\x22\x73\x79\x6d\x62\x6f\x6c\x22\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x29\x28\x74\x32\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x74\x32\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x65\x32\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x22\x43\x61\x6e\x6e\x6f\x74\x20\x63\x61\x6c\x6c\x20\x61\x20\x63\x6c\x61\x73\x73\x20\x61\x73\x20\x61\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x5b\x69\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x20\x3d\x20\x61\x32\x2e\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x20\x7c\x7c\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x22\x76\x61\x6c\x75\x65\x22\x20\x69\x6e\x20\x61\x32\x20\x26\x26\x20\x28\x61\x32\x2e\x77\x72\x69\x74\x61\x62\x6c\x65\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x32\x2c\x20\x61\x32\x2e\x6b\x65\x79\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x28\x74\x32\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x26\x26\x20\x73\x28\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2c\x20\x65\x32\x29\x2c\x20\x69\x32\x20\x26\x26\x20\x73\x28\x74\x32\x2c\x20\x69\x32\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x28\x74\x32\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x69\x6e\x20\x74\x32\x20\x3f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x64\x65\x66\x69\x6e\x65\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x32\x2c\x20\x65\x32\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x69\x32\x2c\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x77\x72\x69\x74\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x20\x3a\x20\x74\x32\x5b\x65\x32\x5d\x20\x3d\x20\x69\x32\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6e\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x65\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x22\x53\x75\x70\x65\x72\x20\x65\x78\x70\x72\x65\x73\x73\x69\x6f\x6e\x20\x6d\x75\x73\x74\x20\x65\x69\x74\x68\x65\x72\x20\x62\x65\x20\x6e\x75\x6c\x6c\x20\x6f\x72\x20\x61\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x65\x32\x20\x26\x26\x20\x65\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2c\x20\x7b\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3a\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x32\x2c\x20\x77\x72\x69\x74\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x20\x7d\x29\x2c\x20\x65\x32\x20\x26\x26\x20\x68\x32\x28\x74\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x6c\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x73\x65\x74\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x4f\x66\x20\x3f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x4f\x66\x20\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x5f\x5f\x70\x72\x6f\x74\x6f\x5f\x5f\x20\x7c\x7c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x4f\x66\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x28\x74\x32\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x32\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x68\x32\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x73\x65\x74\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x4f\x66\x20\x7c\x7c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x5f\x5f\x70\x72\x6f\x74\x6f\x5f\x5f\x20\x3d\x20\x65\x33\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x29\x28\x74\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x26\x26\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x20\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x22\x44\x65\x72\x69\x76\x65\x64\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x73\x20\x6d\x61\x79\x20\x6f\x6e\x6c\x79\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x62\x6a\x65\x63\x74\x20\x6f\x72\x20\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x45\x72\x72\x6f\x72\x28\x22\x74\x68\x69\x73\x20\x68\x61\x73\x6e\x27\x74\x20\x62\x65\x65\x6e\x20\x69\x6e\x69\x74\x69\x61\x6c\x69\x73\x65\x64\x20\x2d\x20\x73\x75\x70\x65\x72\x28\x29\x20\x68\x61\x73\x6e\x27\x74\x20\x62\x65\x65\x6e\x20\x63\x61\x6c\x6c\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x28\x74\x32\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x52\x65\x66\x6c\x65\x63\x74\x20\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x7c\x7c\x20\x21\x52\x65\x66\x6c\x65\x63\x74\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x29\x0a\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\x69\x66\x20\x28\x52\x65\x66\x6c\x65\x63\x74\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x2e\x73\x68\x61\x6d\x29\x0a\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\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x50\x72\x6f\x78\x79\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\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\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x42\x6f\x6f\x6c\x65\x61\x6e\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x76\x61\x6c\x75\x65\x4f\x66\x2e\x63\x61\x6c\x6c\x28\x52\x65\x66\x6c\x65\x63\x74\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x28\x42\x6f\x6f\x6c\x65\x61\x6e\x2c\x20\x5b\x5d\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x74\x33\x29\x20\x7b\x0a\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\x7d\x0a\x20\x20\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x6c\x28\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x6c\x28\x74\x68\x69\x73\x29\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x52\x65\x66\x6c\x65\x63\x74\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x28\x61\x32\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x61\x32\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x28\x74\x68\x69\x73\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x28\x74\x32\x29\x20\x7c\x7c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x53\x79\x6d\x62\x6f\x6c\x20\x21\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x26\x26\x20\x74\x33\x5b\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x5d\x20\x7c\x7c\x20\x74\x33\x5b\x22\x40\x40\x69\x74\x65\x72\x61\x74\x6f\x72\x22\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x6e\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x32\x20\x3d\x20\x69\x32\x2e\x63\x61\x6c\x6c\x28\x74\x33\x29\x3b\x20\x21\x28\x6f\x32\x20\x3d\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x2e\x6e\x65\x78\x74\x28\x29\x29\x2e\x64\x6f\x6e\x65\x29\x20\x26\x26\x20\x28\x72\x32\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x76\x61\x6c\x75\x65\x29\x2c\x20\x21\x65\x33\x20\x7c\x7c\x20\x72\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x65\x33\x29\x3b\x20\x6f\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x73\x32\x20\x3d\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x66\x69\x6e\x61\x6c\x6c\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x7c\x7c\x20\x69\x32\x2e\x72\x65\x74\x75\x72\x6e\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x69\x32\x2e\x72\x65\x74\x75\x72\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x66\x69\x6e\x61\x6c\x6c\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7c\x7c\x20\x70\x32\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7c\x7c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x22\x49\x6e\x76\x61\x6c\x69\x64\x20\x61\x74\x74\x65\x6d\x70\x74\x20\x74\x6f\x20\x64\x65\x73\x74\x72\x75\x63\x74\x75\x72\x65\x20\x6e\x6f\x6e\x2d\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x5c\x6e\x49\x6e\x20\x6f\x72\x64\x65\x72\x20\x74\x6f\x20\x62\x65\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x6e\x6f\x6e\x2d\x61\x72\x72\x61\x79\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x61\x20\x5b\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x5d\x28\x29\x20\x6d\x65\x74\x68\x6f\x64\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x28\x74\x32\x29\x20\x7c\x7c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x53\x79\x6d\x62\x6f\x6c\x20\x21\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x26\x26\x20\x74\x33\x5b\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x33\x5b\x22\x40\x40\x69\x74\x65\x72\x61\x74\x6f\x72\x22\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x28\x74\x32\x29\x20\x7c\x7c\x20\x70\x32\x28\x74\x32\x29\x20\x7c\x7c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x22\x49\x6e\x76\x61\x6c\x69\x64\x20\x61\x74\x74\x65\x6d\x70\x74\x20\x74\x6f\x20\x73\x70\x72\x65\x61\x64\x20\x6e\x6f\x6e\x2d\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x2e\x5c\x6e\x49\x6e\x20\x6f\x72\x64\x65\x72\x20\x74\x6f\x20\x62\x65\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x6e\x6f\x6e\x2d\x61\x72\x72\x61\x79\x20\x6f\x62\x6a\x65\x63\x74\x73\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x61\x20\x5b\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x5d\x28\x29\x20\x6d\x65\x74\x68\x6f\x64\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x32\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x32\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x28\x74\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x2e\x63\x61\x6c\x6c\x28\x74\x32\x29\x2e\x73\x6c\x69\x63\x65\x28\x38\x2c\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3d\x3d\x3d\x20\x22\x4f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x74\x32\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x32\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x6e\x61\x6d\x65\x29\x2c\x20\x69\x32\x20\x3d\x3d\x3d\x20\x22\x4d\x61\x70\x22\x20\x7c\x7c\x20\x69\x32\x20\x3d\x3d\x3d\x20\x22\x53\x65\x74\x22\x20\x3f\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x74\x32\x29\x20\x3a\x20\x69\x32\x20\x3d\x3d\x3d\x20\x22\x41\x72\x67\x75\x6d\x65\x6e\x74\x73\x22\x20\x7c\x7c\x20\x2f\x5e\x28\x3f\x3a\x55\x69\x7c\x49\x29\x6e\x74\x28\x3f\x3a\x38\x7c\x31\x36\x7c\x33\x32\x29\x28\x3f\x3a\x43\x6c\x61\x6d\x70\x65\x64\x29\x3f\x41\x72\x72\x61\x79\x24\x2f\x2e\x74\x65\x73\x74\x28\x69\x32\x29\x20\x3f\x20\x66\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x28\x65\x32\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x65\x32\x20\x3e\x20\x74\x32\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x32\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x41\x72\x72\x61\x79\x28\x65\x32\x29\x3b\x20\x69\x32\x20\x3c\x20\x65\x32\x3b\x20\x69\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x5b\x69\x32\x5d\x20\x3d\x20\x74\x32\x5b\x69\x32\x5d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x76\x61\x72\x20\x78\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x68\x61\x64\x65\x52\x47\x42\x43\x6f\x6c\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x73\x70\x6c\x69\x74\x28\x22\x2c\x22\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x32\x35\x35\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x2d\x31\x20\x2a\x20\x74\x33\x20\x3a\x20\x74\x33\x2c\x20\x72\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x5b\x30\x5d\x2e\x73\x6c\x69\x63\x65\x28\x34\x29\x2c\x20\x31\x30\x29\x2c\x20\x6f\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x5b\x31\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6e\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x5b\x32\x5d\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x72\x67\x62\x28\x22\x20\x2b\x20\x28\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x28\x61\x32\x20\x2d\x20\x72\x32\x29\x20\x2a\x20\x73\x32\x29\x20\x2b\x20\x72\x32\x29\x20\x2b\x20\x22\x2c\x22\x20\x2b\x20\x28\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x28\x61\x32\x20\x2d\x20\x6f\x32\x29\x20\x2a\x20\x73\x32\x29\x20\x2b\x20\x6f\x32\x29\x20\x2b\x20\x22\x2c\x22\x20\x2b\x20\x28\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x28\x61\x32\x20\x2d\x20\x6e\x32\x29\x20\x2a\x20\x73\x32\x29\x20\x2b\x20\x6e\x32\x29\x20\x2b\x20\x22\x29\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x68\x61\x64\x65\x48\x65\x78\x43\x6f\x6c\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x2c\x20\x31\x36\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x32\x35\x35\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x2d\x31\x20\x2a\x20\x74\x33\x20\x3a\x20\x74\x33\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x20\x3e\x3e\x20\x31\x36\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x20\x3e\x3e\x20\x38\x20\x26\x20\x32\x35\x35\x2c\x20\x6e\x32\x20\x3d\x20\x32\x35\x35\x20\x26\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x23\x22\x20\x2b\x20\x28\x31\x36\x37\x37\x37\x32\x31\x36\x20\x2b\x20\x36\x35\x35\x33\x36\x20\x2a\x20\x28\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x28\x61\x32\x20\x2d\x20\x72\x32\x29\x20\x2a\x20\x73\x32\x29\x20\x2b\x20\x72\x32\x29\x20\x2b\x20\x32\x35\x36\x20\x2a\x20\x28\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x28\x61\x32\x20\x2d\x20\x6f\x32\x29\x20\x2a\x20\x73\x32\x29\x20\x2b\x20\x6f\x32\x29\x20\x2b\x20\x28\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x28\x61\x32\x20\x2d\x20\x6e\x32\x29\x20\x2a\x20\x73\x32\x29\x20\x2b\x20\x6e\x32\x29\x29\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x31\x36\x29\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x32\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x48\x65\x78\x28\x69\x32\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x68\x61\x64\x65\x48\x65\x78\x43\x6f\x6c\x6f\x72\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x68\x61\x64\x65\x52\x47\x42\x43\x6f\x6c\x6f\x72\x28\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x62\x69\x6e\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x61\x70\x70\x6c\x79\x28\x65\x32\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x4f\x62\x6a\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x26\x26\x20\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x21\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x26\x26\x20\x74\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x2e\x63\x61\x6c\x6c\x28\x65\x32\x29\x20\x3d\x3d\x3d\x20\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x22\x20\x2b\x20\x74\x33\x20\x2b\x20\x22\x5d\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6c\x69\x73\x74\x54\x6f\x41\x72\x72\x61\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x65\x32\x20\x3d\x20\x30\x3b\x20\x65\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x5b\x65\x32\x5d\x20\x3d\x20\x74\x33\x5b\x65\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x65\x6e\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x34\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x22\x43\x61\x6e\x6e\x6f\x74\x20\x63\x6f\x6e\x76\x65\x72\x74\x20\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x20\x6f\x72\x20\x6e\x75\x6c\x6c\x20\x74\x6f\x20\x6f\x62\x6a\x65\x63\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x28\x74\x34\x29\x2c\x20\x69\x33\x20\x3d\x20\x31\x3b\x20\x69\x33\x20\x3c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x69\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x69\x6e\x20\x61\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x73\x32\x29\x20\x26\x26\x20\x28\x65\x33\x5b\x73\x32\x5d\x20\x3d\x20\x61\x33\x5b\x73\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x74\x33\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x65\x32\x29\x20\x26\x26\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x65\x32\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x69\x73\x4f\x62\x6a\x65\x63\x74\x28\x65\x32\x5b\x73\x32\x5d\x29\x20\x26\x26\x20\x73\x32\x20\x69\x6e\x20\x74\x33\x20\x3f\x20\x61\x32\x5b\x73\x32\x5d\x20\x3d\x20\x69\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x74\x33\x5b\x73\x32\x5d\x2c\x20\x65\x32\x5b\x73\x32\x5d\x29\x20\x3a\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x61\x32\x2c\x20\x6f\x28\x7b\x7d\x2c\x20\x73\x32\x2c\x20\x65\x32\x5b\x73\x32\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x74\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x69\x32\x2c\x20\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x20\x3d\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x25\x20\x31\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x6f\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x32\x2e\x69\x73\x28\x22\x41\x72\x72\x61\x79\x22\x2c\x20\x65\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x5b\x73\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6c\x6f\x6e\x65\x28\x65\x32\x5b\x73\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x32\x2e\x69\x73\x28\x22\x4e\x75\x6c\x6c\x22\x2c\x20\x65\x32\x29\x29\x0a\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\x69\x66\x20\x28\x74\x32\x2e\x69\x73\x28\x22\x44\x61\x74\x65\x22\x2c\x20\x65\x32\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x28\x65\x32\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x32\x20\x69\x6e\x20\x65\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x6f\x32\x29\x20\x26\x26\x20\x28\x72\x32\x5b\x6f\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6c\x6f\x6e\x65\x28\x65\x32\x5b\x6f\x32\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6c\x6f\x67\x31\x30\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x6c\x6f\x67\x28\x74\x33\x29\x20\x2f\x20\x4d\x61\x74\x68\x2e\x4c\x4e\x31\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x6f\x75\x6e\x64\x54\x6f\x42\x61\x73\x65\x31\x30\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x31\x30\x2c\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x4d\x61\x74\x68\x2e\x6c\x6f\x67\x31\x30\x28\x74\x33\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x6f\x75\x6e\x64\x54\x6f\x42\x61\x73\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x65\x32\x2c\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x4d\x61\x74\x68\x2e\x6c\x6f\x67\x28\x74\x33\x29\x20\x2f\x20\x4d\x61\x74\x68\x2e\x6c\x6f\x67\x28\x65\x32\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x33\x20\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x61\x6e\x64\x6f\x6d\x49\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x4d\x61\x74\x68\x2e\x72\x61\x6e\x64\x6f\x6d\x28\x29\x20\x2b\x20\x31\x29\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x33\x36\x29\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x34\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6e\x6f\x45\x78\x70\x6f\x6e\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x53\x74\x72\x69\x6e\x67\x28\x74\x33\x29\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5b\x65\x45\x5d\x2f\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x22\x22\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x22\x2d\x22\x20\x3a\x20\x22\x22\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x5b\x30\x5d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x22\x2e\x22\x2c\x20\x22\x22\x29\x2c\x20\x72\x32\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x28\x65\x32\x5b\x31\x5d\x29\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x20\x3c\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x32\x20\x3d\x20\x61\x32\x20\x2b\x20\x22\x30\x2e\x22\x3b\x20\x72\x32\x2b\x2b\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x2b\x3d\x20\x22\x30\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x2b\x20\x73\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x2d\x2f\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x72\x32\x20\x2d\x3d\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2d\x2d\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x2b\x3d\x20\x22\x30\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x20\x2b\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x28\x74\x33\x2c\x20\x6e\x75\x6c\x6c\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x48\x65\x69\x67\x68\x74\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x57\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x2d\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x32\x2e\x70\x61\x64\x64\x69\x6e\x67\x54\x6f\x70\x29\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x32\x2e\x70\x61\x64\x64\x69\x6e\x67\x42\x6f\x74\x74\x6f\x6d\x29\x2c\x20\x5b\x61\x32\x20\x2d\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x32\x2e\x70\x61\x64\x64\x69\x6e\x67\x4c\x65\x66\x74\x29\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x32\x2e\x70\x61\x64\x64\x69\x6e\x67\x52\x69\x67\x68\x74\x29\x2c\x20\x69\x32\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x74\x6f\x70\x3a\x20\x65\x32\x2e\x74\x6f\x70\x2c\x20\x72\x69\x67\x68\x74\x3a\x20\x65\x32\x2e\x72\x69\x67\x68\x74\x2c\x20\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x65\x32\x2e\x62\x6f\x74\x74\x6f\x6d\x2c\x20\x6c\x65\x66\x74\x3a\x20\x65\x32\x2e\x6c\x65\x66\x74\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x57\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x48\x65\x69\x67\x68\x74\x2c\x20\x78\x3a\x20\x65\x32\x2e\x6c\x65\x66\x74\x2c\x20\x79\x3a\x20\x65\x32\x2e\x74\x6f\x70\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x74\x72\x69\x6e\x67\x46\x72\x6f\x6d\x41\x72\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x29\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x35\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x35\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x34\x20\x3a\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x65\x78\x54\x6f\x52\x67\x62\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x22\x23\x39\x39\x39\x39\x39\x39\x22\x2c\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x30\x2e\x36\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x31\x29\x20\x21\x3d\x3d\x20\x22\x23\x22\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x22\x23\x39\x39\x39\x39\x39\x39\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x22\x23\x22\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x69\x32\x2e\x6d\x61\x74\x63\x68\x28\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x28\x2e\x7b\x22\x20\x2b\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2f\x20\x33\x20\x2b\x20\x22\x7d\x29\x22\x2c\x20\x22\x67\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x5b\x61\x32\x5d\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x5b\x61\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x20\x3f\x20\x69\x32\x5b\x61\x32\x5d\x20\x2b\x20\x69\x32\x5b\x61\x32\x5d\x20\x3a\x20\x69\x32\x5b\x61\x32\x5d\x2c\x20\x31\x36\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x29\x2c\x20\x22\x72\x67\x62\x61\x28\x22\x20\x2b\x20\x69\x32\x2e\x6a\x6f\x69\x6e\x28\x22\x2c\x22\x29\x20\x2b\x20\x22\x29\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x52\x47\x42\x41\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x2e\x2a\x2c\x28\x2e\x2b\x29\x5c\x29\x2f\x2c\x20\x22\x24\x31\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x67\x62\x32\x68\x65\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x2e\x6d\x61\x74\x63\x68\x28\x2f\x5e\x72\x67\x62\x61\x3f\x5b\x5c\x73\x2b\x5d\x3f\x5c\x28\x5b\x5c\x73\x2b\x5d\x3f\x28\x5c\x64\x2b\x29\x5b\x5c\x73\x2b\x5d\x3f\x2c\x5b\x5c\x73\x2b\x5d\x3f\x28\x5c\x64\x2b\x29\x5b\x5c\x73\x2b\x5d\x3f\x2c\x5b\x5c\x73\x2b\x5d\x3f\x28\x5c\x64\x2b\x29\x5b\x5c\x73\x2b\x5d\x3f\x2f\x69\x29\x29\x20\x26\x26\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x34\x20\x3f\x20\x22\x23\x22\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x5b\x31\x5d\x2c\x20\x31\x30\x29\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x31\x36\x29\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x5b\x32\x5d\x2c\x20\x31\x30\x29\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x31\x36\x29\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x5b\x33\x5d\x2c\x20\x31\x30\x29\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x31\x36\x29\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x43\x6f\x6c\x6f\x72\x48\x65\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2f\x28\x5e\x23\x5b\x30\x2d\x39\x41\x2d\x46\x5d\x7b\x36\x7d\x24\x29\x7c\x28\x5e\x23\x5b\x30\x2d\x39\x41\x2d\x46\x5d\x7b\x33\x7d\x24\x29\x7c\x28\x5e\x23\x5b\x30\x2d\x39\x41\x2d\x46\x5d\x7b\x38\x7d\x24\x29\x2f\x69\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x50\x6f\x6c\x79\x67\x6f\x6e\x50\x6f\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x20\x3d\x20\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x65\x32\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x65\x32\x3b\x20\x73\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x78\x20\x3d\x20\x74\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x73\x32\x20\x2a\x20\x61\x32\x29\x2c\x20\x72\x32\x2e\x79\x20\x3d\x20\x2d\x74\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x73\x32\x20\x2a\x20\x61\x32\x29\x2c\x20\x69\x32\x2e\x70\x75\x73\x68\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x6f\x6c\x61\x72\x54\x6f\x43\x61\x72\x74\x65\x73\x69\x61\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x28\x61\x32\x20\x2d\x20\x39\x30\x29\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x31\x38\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x74\x33\x20\x2b\x20\x69\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x73\x32\x29\x2c\x20\x79\x3a\x20\x65\x32\x20\x2b\x20\x69\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x73\x32\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x22\x78\x22\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3d\x20\x69\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x60\x20\x7e\x21\x40\x23\x24\x25\x5e\x26\x2a\x28\x29\x5f\x7c\x2b\x5c\x2d\x3d\x3f\x3b\x3a\x27\x22\x2c\x2e\x3c\x3e\x7b\x7d\x5b\x5c\x5d\x5c\x5c\x2f\x5d\x2f\x67\x69\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6e\x65\x67\x54\x6f\x5a\x65\x72\x6f\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x49\x6e\x64\x65\x78\x49\x6e\x41\x72\x72\x61\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x20\x3e\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x20\x2d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x3b\x20\x61\x32\x2d\x2d\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x70\x75\x73\x68\x28\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x32\x2c\x20\x30\x2c\x20\x74\x33\x2e\x73\x70\x6c\x69\x63\x65\x28\x65\x32\x2c\x20\x31\x29\x5b\x30\x5d\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x72\x61\x63\x74\x4e\x75\x6d\x62\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x5e\x5c\x64\x2e\x5d\x2a\x2f\x67\x2c\x20\x22\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x69\x6e\x64\x41\x6e\x63\x65\x73\x74\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x3b\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x2e\x70\x61\x72\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x29\x20\x26\x26\x20\x21\x74\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x65\x32\x29\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x45\x4c\x73\x74\x79\x6c\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x69\x6e\x20\x65\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x69\x32\x29\x20\x26\x26\x20\x28\x74\x33\x2e\x73\x74\x79\x6c\x65\x2e\x6b\x65\x79\x20\x3d\x20\x65\x32\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x4e\x75\x6d\x62\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x69\x73\x4e\x61\x4e\x28\x74\x33\x29\x20\x26\x26\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x29\x20\x3d\x3d\x3d\x20\x74\x33\x20\x26\x26\x20\x21\x69\x73\x4e\x61\x4e\x28\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2c\x20\x31\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x46\x6c\x6f\x61\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x74\x33\x20\x26\x26\x20\x74\x33\x20\x25\x20\x31\x20\x21\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x53\x61\x66\x61\x72\x69\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2f\x5e\x28\x28\x3f\x21\x63\x68\x72\x6f\x6d\x65\x7c\x61\x6e\x64\x72\x6f\x69\x64\x29\x2e\x29\x2a\x73\x61\x66\x61\x72\x69\x2f\x69\x2e\x74\x65\x73\x74\x28\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x75\x73\x65\x72\x41\x67\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x46\x69\x72\x65\x66\x6f\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x75\x73\x65\x72\x41\x67\x65\x6e\x74\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x66\x69\x72\x65\x66\x6f\x78\x22\x29\x20\x3e\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x49\x45\x31\x31\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x77\x69\x6e\x64\x6f\x77\x2e\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x75\x73\x65\x72\x41\x67\x65\x6e\x74\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x4d\x53\x49\x45\x22\x29\x20\x21\x3d\x3d\x20\x2d\x31\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x61\x70\x70\x56\x65\x72\x73\x69\x6f\x6e\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x54\x72\x69\x64\x65\x6e\x74\x2f\x22\x29\x20\x3e\x20\x2d\x31\x29\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\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x49\x45\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x75\x73\x65\x72\x41\x67\x65\x6e\x74\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x4d\x53\x49\x45\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x65\x32\x20\x2b\x20\x35\x2c\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x2c\x20\x65\x32\x29\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x54\x72\x69\x64\x65\x6e\x74\x2f\x22\x29\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x76\x3a\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x69\x32\x20\x2b\x20\x33\x2c\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x2c\x20\x69\x32\x29\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x45\x64\x67\x65\x2f\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x61\x32\x20\x2b\x20\x35\x2c\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x2c\x20\x61\x32\x29\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x62\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x45\x61\x73\x69\x6e\x67\x46\x75\x6e\x63\x74\x69\x6f\x6e\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x45\x61\x73\x69\x6e\x67\x46\x75\x6e\x63\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x61\x73\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6c\x69\x6e\x65\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x22\x2d\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x61\x73\x65\x69\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x22\x3c\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x61\x73\x65\x6f\x75\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x22\x3e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x61\x73\x65\x69\x6e\x6f\x75\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x22\x3c\x3e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x77\x69\x6e\x67\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x31\x2e\x37\x30\x31\x35\x38\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x34\x20\x2d\x3d\x20\x31\x29\x20\x2a\x20\x74\x34\x20\x2a\x20\x28\x28\x65\x32\x20\x2b\x20\x31\x29\x20\x2a\x20\x74\x34\x20\x2b\x20\x65\x32\x29\x20\x2b\x20\x31\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\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6f\x75\x6e\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3c\x20\x31\x20\x2f\x20\x32\x2e\x37\x35\x20\x3f\x20\x37\x2e\x35\x36\x32\x35\x20\x2a\x20\x74\x34\x20\x2a\x20\x74\x34\x20\x3a\x20\x74\x34\x20\x3c\x20\x32\x20\x2f\x20\x32\x2e\x37\x35\x20\x3f\x20\x37\x2e\x35\x36\x32\x35\x20\x2a\x20\x28\x74\x34\x20\x2d\x3d\x20\x31\x2e\x35\x20\x2f\x20\x32\x2e\x37\x35\x29\x20\x2a\x20\x74\x34\x20\x2b\x20\x30\x2e\x37\x35\x20\x3a\x20\x74\x34\x20\x3c\x20\x32\x2e\x35\x20\x2f\x20\x32\x2e\x37\x35\x20\x3f\x20\x37\x2e\x35\x36\x32\x35\x20\x2a\x20\x28\x74\x34\x20\x2d\x3d\x20\x32\x2e\x32\x35\x20\x2f\x20\x32\x2e\x37\x35\x29\x20\x2a\x20\x74\x34\x20\x2b\x20\x30\x2e\x39\x33\x37\x35\x20\x3a\x20\x37\x2e\x35\x36\x32\x35\x20\x2a\x20\x28\x74\x34\x20\x2d\x3d\x20\x32\x2e\x36\x32\x35\x20\x2f\x20\x32\x2e\x37\x35\x29\x20\x2a\x20\x74\x34\x20\x2b\x20\x30\x2e\x39\x38\x34\x33\x37\x35\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\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x6c\x61\x73\x74\x69\x63\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3d\x3d\x3d\x20\x21\x21\x74\x34\x20\x3f\x20\x74\x34\x20\x3a\x20\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x32\x2c\x20\x2d\x31\x30\x20\x2a\x20\x74\x34\x29\x20\x2a\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x28\x74\x34\x20\x2d\x20\x30\x2e\x30\x37\x35\x29\x20\x2a\x20\x28\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x29\x20\x2f\x20\x30\x2e\x33\x29\x20\x2b\x20\x31\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\x62\x72\x65\x61\x6b\x3b\x0a\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\x74\x33\x20\x3d\x20\x22\x3c\x3e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x4c\x69\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x65\x32\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x61\x32\x29\x2e\x61\x74\x74\x72\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x4d\x61\x72\x6b\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x7c\x7c\x20\x28\x65\x32\x20\x3d\x20\x30\x29\x2c\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x3a\x20\x65\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x65\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x65\x32\x20\x7d\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x61\x32\x2c\x20\x73\x32\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x3a\x20\x69\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x69\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x29\x2e\x61\x66\x74\x65\x72\x41\x6c\x6c\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x43\x69\x72\x63\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x3a\x20\x65\x32\x2e\x72\x2c\x20\x63\x78\x3a\x20\x65\x32\x2e\x63\x78\x2c\x20\x63\x79\x3a\x20\x65\x32\x2e\x63\x79\x20\x7d\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x61\x32\x2c\x20\x73\x32\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x3a\x20\x69\x32\x2e\x72\x2c\x20\x63\x78\x3a\x20\x69\x32\x2e\x63\x78\x2c\x20\x63\x79\x3a\x20\x69\x32\x2e\x63\x79\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x52\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x65\x32\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x61\x32\x29\x2e\x61\x74\x74\x72\x28\x69\x32\x29\x2e\x61\x66\x74\x65\x72\x41\x6c\x6c\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x50\x61\x74\x68\x73\x47\x72\x61\x64\x75\x61\x6c\x6c\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x6c\x6c\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x73\x70\x65\x65\x64\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x64\x65\x6c\x61\x79\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x63\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x47\x72\x61\x64\x75\x61\x6c\x6c\x79\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x47\x72\x61\x64\x75\x61\x6c\x6c\x79\x2e\x64\x65\x6c\x61\x79\x29\x2c\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x26\x26\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x72\x70\x68\x53\x56\x47\x28\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x7c\x7c\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x73\x32\x20\x3a\x20\x22\x73\x74\x72\x6f\x6b\x65\x22\x2c\x20\x72\x32\x2c\x20\x6f\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x20\x2a\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x68\x6f\x77\x44\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x65\x6c\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x65\x6c\x65\x6d\x65\x6e\x74\x2d\x68\x69\x64\x64\x65\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x7c\x7c\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x44\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x65\x6c\x3a\x20\x74\x33\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x72\x70\x68\x53\x56\x47\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x2c\x20\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x20\x7c\x7c\x20\x28\x73\x32\x20\x3d\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x22\x70\x61\x74\x68\x46\x72\x6f\x6d\x22\x29\x29\x2c\x20\x72\x32\x20\x7c\x7c\x20\x28\x72\x32\x20\x3d\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x22\x70\x61\x74\x68\x54\x6f\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x61\x72\x22\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x31\x29\x2c\x20\x22\x4d\x20\x30\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x21\x73\x32\x20\x7c\x7c\x20\x73\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x20\x3e\x20\x2d\x31\x20\x7c\x7c\x20\x73\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x4e\x61\x4e\x22\x29\x20\x3e\x20\x2d\x31\x29\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x63\x32\x28\x29\x29\x2c\x20\x28\x21\x72\x32\x20\x7c\x7c\x20\x72\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x20\x3e\x20\x2d\x31\x20\x7c\x7c\x20\x72\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x4e\x61\x4e\x22\x29\x20\x3e\x20\x2d\x31\x29\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x63\x32\x28\x29\x29\x2c\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x31\x29\x2c\x20\x74\x33\x2e\x70\x6c\x6f\x74\x28\x73\x32\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x31\x2c\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x2c\x20\x6e\x32\x29\x2e\x70\x6c\x6f\x74\x28\x73\x32\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x6f\x32\x2c\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x2c\x20\x6e\x32\x29\x2e\x70\x6c\x6f\x74\x28\x72\x32\x29\x2e\x61\x66\x74\x65\x72\x41\x6c\x6c\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x69\x32\x29\x20\x3f\x20\x69\x32\x20\x3d\x3d\x3d\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x32\x20\x26\x26\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x20\x26\x26\x20\x6c\x32\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64\x28\x74\x33\x29\x20\x3a\x20\x61\x32\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x26\x26\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x20\x26\x26\x20\x28\x21\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x65\x32\x20\x3d\x3d\x3d\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x7c\x7c\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x29\x20\x26\x26\x20\x6c\x32\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64\x28\x74\x33\x29\x2c\x20\x6c\x32\x2e\x73\x68\x6f\x77\x44\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x76\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x46\x69\x6c\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x75\x6e\x66\x69\x6c\x74\x65\x72\x28\x74\x72\x75\x65\x29\x2c\x20\x6e\x65\x77\x20\x77\x69\x6e\x64\x6f\x77\x2e\x53\x56\x47\x2e\x46\x69\x6c\x74\x65\x72\x28\x29\x2e\x73\x69\x7a\x65\x28\x22\x31\x32\x30\x25\x22\x2c\x20\x22\x31\x38\x30\x25\x22\x2c\x20\x22\x2d\x35\x25\x22\x2c\x20\x22\x2d\x34\x30\x25\x22\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x6e\x6f\x72\x6d\x61\x6c\x2e\x66\x69\x6c\x74\x65\x72\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x70\x70\x6c\x79\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x6e\x6f\x72\x6d\x61\x6c\x2e\x66\x69\x6c\x74\x65\x72\x2e\x74\x79\x70\x65\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x6e\x6f\x72\x6d\x61\x6c\x2e\x66\x69\x6c\x74\x65\x72\x2e\x76\x61\x6c\x75\x65\x29\x20\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x74\x33\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x4e\x6f\x72\x6d\x61\x6c\x46\x69\x6c\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x21\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x74\x33\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x4c\x69\x67\x68\x74\x65\x6e\x46\x69\x6c\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x69\x6e\x74\x65\x6e\x73\x69\x74\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x75\x6e\x66\x69\x6c\x74\x65\x72\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x77\x69\x6e\x64\x6f\x77\x2e\x53\x56\x47\x2e\x46\x69\x6c\x74\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x69\x33\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x61\x32\x2e\x61\x64\x64\x53\x68\x61\x64\x6f\x77\x28\x74\x34\x2c\x20\x65\x32\x2c\x20\x69\x33\x29\x20\x3a\x20\x74\x34\x29\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x65\x72\x28\x7b\x20\x72\x67\x62\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x6c\x69\x6e\x65\x61\x72\x22\x2c\x20\x73\x6c\x6f\x70\x65\x3a\x20\x31\x2e\x35\x2c\x20\x69\x6e\x74\x65\x72\x63\x65\x70\x74\x3a\x20\x72\x32\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x74\x65\x72\x55\x6e\x69\x74\x73\x22\x2c\x20\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x73\x63\x61\x6c\x65\x46\x69\x6c\x74\x65\x72\x53\x69\x7a\x65\x28\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x44\x61\x72\x6b\x65\x6e\x46\x69\x6c\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x69\x6e\x74\x65\x6e\x73\x69\x74\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x75\x6e\x66\x69\x6c\x74\x65\x72\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x77\x69\x6e\x64\x6f\x77\x2e\x53\x56\x47\x2e\x46\x69\x6c\x74\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x69\x33\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x61\x32\x2e\x61\x64\x64\x53\x68\x61\x64\x6f\x77\x28\x74\x34\x2c\x20\x65\x32\x2c\x20\x69\x33\x29\x20\x3a\x20\x74\x34\x29\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x65\x72\x28\x7b\x20\x72\x67\x62\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x6c\x69\x6e\x65\x61\x72\x22\x2c\x20\x73\x6c\x6f\x70\x65\x3a\x20\x72\x32\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x74\x65\x72\x55\x6e\x69\x74\x73\x22\x2c\x20\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x73\x63\x61\x6c\x65\x46\x69\x6c\x74\x65\x72\x53\x69\x7a\x65\x28\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x70\x70\x6c\x79\x46\x69\x6c\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x3a\x20\x30\x2e\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x6f\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x4e\x6f\x72\x6d\x61\x6c\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x6c\x69\x67\x68\x74\x65\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x4c\x69\x67\x68\x74\x65\x6e\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x7b\x20\x69\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x61\x32\x20\x7d\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x64\x61\x72\x6b\x65\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x44\x61\x72\x6b\x65\x6e\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x7b\x20\x69\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x61\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x53\x68\x61\x64\x6f\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x62\x6c\x75\x72\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x74\x6f\x70\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x6c\x65\x66\x74\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x66\x6c\x6f\x6f\x64\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x32\x29\x20\x3f\x20\x6f\x32\x5b\x65\x32\x5d\x20\x3a\x20\x6f\x32\x2c\x20\x6e\x32\x29\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x28\x74\x33\x2e\x73\x6f\x75\x72\x63\x65\x41\x6c\x70\x68\x61\x2c\x20\x22\x69\x6e\x22\x29\x2e\x6f\x66\x66\x73\x65\x74\x28\x72\x32\x2c\x20\x73\x32\x29\x2e\x67\x61\x75\x73\x73\x69\x61\x6e\x42\x6c\x75\x72\x28\x61\x32\x29\x2e\x6d\x65\x72\x67\x65\x28\x74\x33\x2e\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x62\x6c\x65\x6e\x64\x28\x74\x33\x2e\x73\x6f\x75\x72\x63\x65\x2c\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x74\x6f\x70\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x6c\x65\x66\x74\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x62\x6c\x75\x72\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x6e\x6f\x55\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x75\x6e\x66\x69\x6c\x74\x65\x72\x28\x74\x72\x75\x65\x29\x2c\x20\x78\x2e\x69\x73\x49\x45\x28\x29\x20\x26\x26\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x32\x29\x20\x3f\x20\x6f\x32\x5b\x69\x32\x5d\x20\x3a\x20\x6f\x32\x2c\x20\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x20\x3d\x20\x78\x2e\x69\x73\x53\x61\x66\x61\x72\x69\x28\x29\x20\x7c\x7c\x20\x78\x2e\x69\x73\x46\x69\x72\x65\x66\x6f\x78\x28\x29\x20\x7c\x7c\x20\x78\x2e\x69\x73\x49\x45\x28\x29\x20\x3f\x20\x74\x34\x2e\x66\x6c\x6f\x6f\x64\x28\x6f\x32\x2c\x20\x6e\x32\x29\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x28\x74\x34\x2e\x73\x6f\x75\x72\x63\x65\x41\x6c\x70\x68\x61\x2c\x20\x22\x69\x6e\x22\x29\x2e\x6f\x66\x66\x73\x65\x74\x28\x73\x32\x2c\x20\x61\x32\x29\x2e\x67\x61\x75\x73\x73\x69\x61\x6e\x42\x6c\x75\x72\x28\x72\x32\x29\x20\x3a\x20\x74\x34\x2e\x66\x6c\x6f\x6f\x64\x28\x6f\x32\x2c\x20\x6e\x32\x29\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x28\x74\x34\x2e\x73\x6f\x75\x72\x63\x65\x41\x6c\x70\x68\x61\x2c\x20\x22\x69\x6e\x22\x29\x2e\x6f\x66\x66\x73\x65\x74\x28\x73\x32\x2c\x20\x61\x32\x29\x2e\x67\x61\x75\x73\x73\x69\x61\x6e\x42\x6c\x75\x72\x28\x72\x32\x29\x2e\x6d\x65\x72\x67\x65\x28\x74\x34\x2e\x73\x6f\x75\x72\x63\x65\x29\x2c\x20\x74\x34\x2e\x62\x6c\x65\x6e\x64\x28\x74\x34\x2e\x73\x6f\x75\x72\x63\x65\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6c\x32\x20\x7c\x7c\x20\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x74\x65\x72\x55\x6e\x69\x74\x73\x22\x2c\x20\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x73\x63\x61\x6c\x65\x46\x69\x6c\x74\x65\x72\x53\x69\x7a\x65\x28\x74\x33\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2e\x6e\x6f\x64\x65\x29\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x46\x69\x6c\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x65\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x65\x32\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x69\x32\x29\x20\x3e\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x61\x63\x74\x69\x76\x65\x2e\x66\x69\x6c\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x70\x70\x6c\x79\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x73\x32\x2e\x74\x79\x70\x65\x2c\x20\x73\x32\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x73\x63\x61\x6c\x65\x46\x69\x6c\x74\x65\x72\x53\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x21\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x69\x6e\x20\x65\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x69\x32\x29\x20\x26\x26\x20\x74\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x69\x32\x2c\x20\x65\x32\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x22\x32\x30\x30\x25\x22\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x22\x32\x30\x30\x25\x22\x2c\x20\x78\x3a\x20\x22\x2d\x35\x30\x25\x22\x2c\x20\x79\x3a\x20\x22\x2d\x35\x30\x25\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x6d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x4c\x69\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x3a\x20\x22\x23\x61\x38\x61\x38\x61\x38\x22\x2c\x20\x72\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x35\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x3a\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x36\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x37\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x37\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x37\x5d\x20\x3a\x20\x22\x62\x75\x74\x74\x22\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6c\x69\x6e\x65\x28\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x31\x3a\x20\x74\x33\x2c\x20\x79\x31\x3a\x20\x65\x32\x2c\x20\x78\x32\x3a\x20\x69\x32\x2c\x20\x79\x32\x3a\x20\x61\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x73\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x3a\x20\x72\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x6f\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x22\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x52\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x30\x2c\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x3a\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x3a\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x35\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x3a\x20\x22\x23\x66\x65\x66\x65\x66\x65\x22\x2c\x20\x6f\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x36\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x3a\x20\x31\x2c\x20\x6e\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x37\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x37\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x37\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x6c\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x38\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x38\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x38\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x68\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x39\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x39\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x39\x5d\x20\x3a\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x64\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x72\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x69\x32\x20\x3e\x20\x30\x20\x3f\x20\x69\x32\x20\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x61\x32\x20\x3e\x20\x30\x20\x3f\x20\x61\x32\x20\x3a\x20\x30\x2c\x20\x72\x78\x3a\x20\x73\x32\x2c\x20\x72\x79\x3a\x20\x73\x32\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x6f\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x6e\x32\x20\x3a\x20\x30\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x6c\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x6c\x32\x20\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x3a\x20\x68\x33\x20\x7d\x29\x2c\x20\x64\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x6c\x22\x2c\x20\x72\x32\x29\x2c\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x50\x6f\x6c\x79\x67\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x22\x23\x65\x31\x65\x31\x65\x31\x22\x2c\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x31\x2c\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x28\x74\x33\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x61\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x65\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x69\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x43\x69\x72\x63\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x63\x69\x72\x63\x6c\x65\x28\x32\x20\x2a\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x61\x32\x2e\x61\x74\x74\x72\x28\x65\x32\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x50\x61\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x64\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x22\x22\x20\x3a\x20\x65\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x22\x23\x61\x38\x61\x38\x61\x38\x22\x20\x3a\x20\x61\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x72\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x31\x20\x3a\x20\x72\x32\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x6c\x6c\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x31\x20\x3a\x20\x6c\x32\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x2c\x20\x64\x32\x20\x3d\x20\x63\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x31\x20\x3a\x20\x63\x32\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x63\x6c\x61\x73\x73\x65\x73\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x63\x61\x70\x2c\x20\x70\x33\x20\x3d\x20\x75\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x75\x32\x2c\x20\x66\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x78\x32\x20\x3d\x20\x66\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x66\x32\x2c\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x62\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x6c\x69\x6e\x65\x43\x61\x70\x29\x2c\x20\x28\x69\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x20\x3e\x20\x2d\x31\x20\x7c\x7c\x20\x69\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x4e\x61\x4e\x22\x29\x20\x3e\x20\x2d\x31\x29\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x22\x4d\x20\x30\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x62\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x29\x2c\x20\x62\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x70\x61\x74\x68\x28\x69\x32\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x6e\x32\x2c\x20\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x68\x33\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x73\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x64\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x22\x3a\x20\x70\x33\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x6f\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x3a\x20\x78\x32\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x67\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x72\x6f\x75\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x67\x72\x6f\x75\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x69\x32\x2e\x61\x74\x74\x72\x28\x74\x33\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x5b\x22\x4d\x22\x2c\x20\x74\x33\x2c\x20\x65\x32\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6c\x69\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x61\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x61\x32\x20\x3d\x20\x5b\x22\x4c\x22\x2c\x20\x74\x33\x2c\x20\x65\x32\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x69\x32\x20\x3d\x3d\x3d\x20\x22\x48\x22\x20\x3f\x20\x61\x32\x20\x3d\x20\x5b\x22\x48\x22\x2c\x20\x74\x33\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x69\x32\x20\x3d\x3d\x3d\x20\x22\x56\x22\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x5b\x22\x56\x22\x2c\x20\x65\x32\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x75\x72\x76\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x5b\x22\x43\x22\x2c\x20\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x71\x75\x61\x64\x72\x61\x74\x69\x63\x43\x75\x72\x76\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x22\x51\x22\x2c\x20\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x72\x63\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x37\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x37\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x37\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x22\x41\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x22\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x5b\x6c\x32\x2c\x20\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6e\x64\x65\x72\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x63\x61\x70\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x6c\x6c\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x53\x70\x65\x65\x64\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x53\x70\x65\x65\x64\x2c\x20\x70\x33\x20\x3d\x20\x74\x33\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2c\x20\x66\x32\x20\x3d\x20\x74\x33\x2e\x73\x68\x6f\x75\x6c\x64\x43\x6c\x69\x70\x54\x6f\x47\x72\x69\x64\x2c\x20\x78\x32\x20\x3d\x20\x66\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x66\x32\x2c\x20\x6d\x32\x20\x3d\x20\x74\x33\x2e\x62\x69\x6e\x64\x45\x76\x65\x6e\x74\x73\x4f\x6e\x50\x61\x74\x68\x73\x2c\x20\x79\x32\x20\x3d\x20\x6d\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x6d\x32\x2c\x20\x77\x32\x20\x3d\x20\x74\x33\x2e\x64\x72\x61\x77\x53\x68\x61\x64\x6f\x77\x2c\x20\x6b\x32\x20\x3d\x20\x77\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x77\x32\x2c\x20\x41\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x53\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x43\x32\x20\x3d\x20\x6e\x65\x77\x20\x62\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x4c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x50\x32\x20\x3d\x20\x4c\x32\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x54\x32\x20\x3d\x20\x21\x21\x28\x4c\x32\x20\x26\x26\x20\x21\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x7c\x7c\x20\x50\x32\x20\x26\x26\x20\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x26\x26\x20\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x54\x32\x20\x3f\x20\x69\x32\x20\x3d\x20\x72\x32\x20\x3a\x20\x28\x69\x32\x20\x3d\x20\x6f\x32\x2c\x20\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4d\x32\x20\x3d\x20\x41\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x49\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x49\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x4d\x32\x29\x20\x3f\x20\x4d\x32\x5b\x73\x32\x5d\x20\x3a\x20\x41\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x7a\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x50\x61\x74\x68\x28\x7b\x20\x64\x3a\x20\x69\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x6e\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x6c\x32\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x63\x32\x2c\x20\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x2c\x20\x63\x6c\x61\x73\x73\x65\x73\x3a\x20\x70\x33\x2c\x20\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x63\x61\x70\x3a\x20\x68\x33\x2c\x20\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x49\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x7a\x32\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x64\x65\x78\x22\x2c\x20\x73\x32\x29\x2c\x20\x78\x32\x20\x26\x26\x20\x7a\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x3a\x20\x22\x75\x72\x6c\x28\x23\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x2c\x20\x41\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x6e\x6f\x72\x6d\x61\x6c\x2e\x66\x69\x6c\x74\x65\x72\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x53\x32\x2e\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x46\x69\x6c\x74\x65\x72\x28\x7a\x32\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x41\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x6b\x32\x20\x26\x26\x20\x28\x21\x41\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x20\x7c\x7c\x20\x41\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x20\x26\x26\x20\x41\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x73\x32\x29\x20\x21\x3d\x3d\x20\x2d\x31\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x58\x32\x20\x3d\x20\x41\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x53\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x7a\x32\x2c\x20\x58\x32\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x79\x32\x20\x26\x26\x20\x28\x7a\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x7a\x32\x29\x29\x2c\x20\x7a\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x7a\x32\x29\x29\x2c\x20\x7a\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x44\x6f\x77\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x7a\x32\x29\x29\x29\x2c\x20\x7a\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x6f\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x72\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x45\x32\x20\x3d\x20\x7b\x20\x65\x6c\x3a\x20\x7a\x32\x2c\x20\x6a\x3a\x20\x61\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x72\x32\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x6f\x32\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x63\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x6c\x32\x2c\x20\x64\x65\x6c\x61\x79\x3a\x20\x64\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x4c\x32\x20\x7c\x7c\x20\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x7c\x7c\x20\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x3f\x20\x21\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x26\x26\x20\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x7c\x7c\x20\x43\x32\x2e\x73\x68\x6f\x77\x44\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x29\x20\x3a\x20\x43\x32\x2e\x61\x6e\x69\x6d\x61\x74\x65\x50\x61\x74\x68\x73\x47\x72\x61\x64\x75\x61\x6c\x6c\x79\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x45\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x73\x70\x65\x65\x64\x3a\x20\x67\x32\x20\x7d\x29\x29\x2c\x20\x41\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x26\x26\x20\x50\x32\x20\x26\x26\x20\x54\x32\x20\x26\x26\x20\x43\x32\x2e\x61\x6e\x69\x6d\x61\x74\x65\x50\x61\x74\x68\x73\x47\x72\x61\x64\x75\x61\x6c\x6c\x79\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x45\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x73\x70\x65\x65\x64\x3a\x20\x75\x32\x20\x7d\x29\x29\x2c\x20\x7a\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x50\x61\x74\x74\x65\x72\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x3a\x20\x22\x23\x61\x38\x61\x38\x61\x38\x22\x2c\x20\x73\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x3a\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x70\x61\x74\x74\x65\x72\x6e\x28\x65\x32\x2c\x20\x69\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x4c\x69\x6e\x65\x73\x22\x20\x3f\x20\x72\x33\x2e\x6c\x69\x6e\x65\x28\x30\x2c\x20\x30\x2c\x20\x69\x32\x2c\x20\x30\x29\x2e\x73\x74\x72\x6f\x6b\x65\x28\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x61\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x73\x32\x20\x2b\x20\x31\x20\x7d\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x4c\x69\x6e\x65\x73\x22\x20\x3f\x20\x72\x33\x2e\x6c\x69\x6e\x65\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x65\x32\x29\x2e\x73\x74\x72\x6f\x6b\x65\x28\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x61\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x73\x32\x20\x2b\x20\x31\x20\x7d\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x73\x6c\x61\x6e\x74\x65\x64\x4c\x69\x6e\x65\x73\x22\x20\x3f\x20\x72\x33\x2e\x6c\x69\x6e\x65\x28\x30\x2c\x20\x30\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x2e\x73\x74\x72\x6f\x6b\x65\x28\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x61\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x73\x32\x20\x7d\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x73\x71\x75\x61\x72\x65\x73\x22\x20\x3f\x20\x72\x33\x2e\x72\x65\x63\x74\x28\x65\x32\x2c\x20\x69\x32\x29\x2e\x66\x69\x6c\x6c\x28\x22\x6e\x6f\x6e\x65\x22\x29\x2e\x73\x74\x72\x6f\x6b\x65\x28\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x61\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x73\x32\x20\x7d\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x63\x69\x72\x63\x6c\x65\x73\x22\x20\x26\x26\x20\x72\x33\x2e\x63\x69\x72\x63\x6c\x65\x28\x65\x32\x29\x2e\x66\x69\x6c\x6c\x28\x22\x6e\x6f\x6e\x65\x22\x29\x2e\x73\x74\x72\x6f\x6b\x65\x28\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x61\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x73\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x47\x72\x61\x64\x69\x65\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x2c\x20\x6f\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x35\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x36\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x6c\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x37\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x37\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x37\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x68\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x38\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x38\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x38\x5d\x20\x3a\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x39\x20\x26\x26\x20\x65\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x23\x22\x29\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x78\x2e\x68\x65\x78\x54\x6f\x52\x67\x62\x61\x28\x65\x32\x2c\x20\x61\x32\x29\x29\x2c\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x39\x20\x26\x26\x20\x69\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x23\x22\x29\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x78\x2e\x68\x65\x78\x54\x6f\x52\x67\x62\x61\x28\x69\x32\x2c\x20\x73\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x30\x2c\x20\x67\x32\x20\x3d\x20\x31\x2c\x20\x75\x32\x20\x3d\x20\x31\x2c\x20\x70\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x6e\x32\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x32\x5b\x30\x5d\x20\x2f\x20\x31\x30\x30\x20\x3a\x20\x30\x2c\x20\x67\x32\x20\x3d\x20\x6e\x32\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x32\x5b\x31\x5d\x20\x2f\x20\x31\x30\x30\x20\x3a\x20\x31\x2c\x20\x75\x32\x20\x3d\x20\x6e\x32\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x32\x5b\x32\x5d\x20\x2f\x20\x31\x30\x30\x20\x3a\x20\x31\x2c\x20\x70\x33\x20\x3d\x20\x6e\x32\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x32\x5b\x33\x5d\x20\x2f\x20\x31\x30\x30\x20\x3a\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x21\x28\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x20\x26\x26\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x70\x69\x65\x22\x20\x26\x26\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x26\x26\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x20\x3d\x20\x6c\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x66\x32\x20\x3f\x20\x22\x72\x61\x64\x69\x61\x6c\x22\x20\x3a\x20\x22\x6c\x69\x6e\x65\x61\x72\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x61\x74\x28\x64\x32\x2c\x20\x65\x32\x2c\x20\x61\x32\x29\x2c\x20\x74\x34\x2e\x61\x74\x28\x67\x32\x2c\x20\x69\x32\x2c\x20\x73\x32\x29\x2c\x20\x74\x34\x2e\x61\x74\x28\x75\x32\x2c\x20\x69\x32\x2c\x20\x73\x32\x29\x2c\x20\x70\x33\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x34\x2e\x61\x74\x28\x70\x33\x2c\x20\x65\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x66\x32\x20\x3f\x20\x22\x72\x61\x64\x69\x61\x6c\x22\x20\x3a\x20\x22\x6c\x69\x6e\x65\x61\x72\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6c\x32\x5b\x68\x33\x5d\x29\x20\x3f\x20\x6c\x32\x5b\x68\x33\x5d\x20\x3a\x20\x6c\x32\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x61\x74\x28\x65\x33\x2e\x6f\x66\x66\x73\x65\x74\x20\x2f\x20\x31\x30\x30\x2c\x20\x65\x33\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x65\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x66\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x76\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x3f\x20\x72\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\x3a\x20\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x2c\x20\x63\x78\x3a\x20\x62\x32\x2c\x20\x63\x79\x3a\x20\x76\x32\x2c\x20\x72\x3a\x20\x6f\x32\x20\x7d\x29\x20\x3a\x20\x72\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x78\x3a\x20\x30\x2e\x35\x2c\x20\x63\x79\x3a\x20\x30\x2e\x35\x2c\x20\x72\x3a\x20\x30\x2e\x38\x2c\x20\x66\x78\x3a\x20\x30\x2e\x32\x2c\x20\x66\x79\x3a\x20\x30\x2e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x20\x3f\x20\x72\x32\x2e\x66\x72\x6f\x6d\x28\x30\x2c\x20\x30\x29\x2e\x74\x6f\x28\x30\x2c\x20\x31\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x64\x69\x61\x67\x6f\x6e\x61\x6c\x22\x20\x3f\x20\x72\x32\x2e\x66\x72\x6f\x6d\x28\x30\x2c\x20\x30\x29\x2e\x74\x6f\x28\x31\x2c\x20\x31\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x22\x20\x3f\x20\x72\x32\x2e\x66\x72\x6f\x6d\x28\x30\x2c\x20\x31\x29\x2e\x74\x6f\x28\x31\x2c\x20\x31\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x64\x69\x61\x67\x6f\x6e\x61\x6c\x32\x22\x20\x26\x26\x20\x72\x32\x2e\x66\x72\x6f\x6d\x28\x31\x2c\x20\x30\x29\x2e\x74\x6f\x28\x30\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x54\x65\x78\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x2c\x20\x67\x32\x20\x3d\x20\x64\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x22\x22\x20\x3a\x20\x64\x32\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x69\x73\x50\x6c\x61\x69\x6e\x54\x65\x78\x74\x2c\x20\x70\x33\x20\x3d\x20\x75\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x75\x32\x2c\x20\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x22\x22\x29\x2c\x20\x72\x32\x20\x7c\x7c\x20\x28\x72\x32\x20\x3d\x20\x22\x73\x74\x61\x72\x74\x22\x29\x2c\x20\x68\x33\x20\x26\x26\x20\x68\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7c\x7c\x20\x28\x68\x33\x20\x3d\x20\x66\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x29\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x32\x20\x7c\x7c\x20\x66\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x6c\x32\x20\x3d\x20\x6c\x32\x20\x7c\x7c\x20\x22\x72\x65\x67\x75\x6c\x61\x72\x22\x2c\x20\x28\x65\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x29\x20\x3f\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x74\x65\x78\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x30\x3b\x20\x65\x33\x20\x3c\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x74\x34\x2e\x74\x73\x70\x61\x6e\x28\x73\x32\x5b\x65\x33\x5d\x29\x20\x3a\x20\x74\x34\x2e\x74\x73\x70\x61\x6e\x28\x73\x32\x5b\x65\x33\x5d\x29\x2e\x6e\x65\x77\x4c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x70\x33\x20\x3f\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x70\x6c\x61\x69\x6e\x28\x73\x32\x29\x20\x3a\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x74\x65\x78\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x74\x73\x70\x61\x6e\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x69\x32\x2c\x20\x79\x3a\x20\x61\x32\x2c\x20\x22\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x22\x3a\x20\x72\x32\x2c\x20\x22\x64\x6f\x6d\x69\x6e\x61\x6e\x74\x2d\x62\x61\x73\x65\x6c\x69\x6e\x65\x22\x3a\x20\x22\x61\x75\x74\x6f\x22\x2c\x20\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x3a\x20\x6f\x32\x2c\x20\x22\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x22\x3a\x20\x6e\x32\x2c\x20\x22\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x22\x3a\x20\x6c\x32\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x68\x33\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x65\x78\x74\x20\x22\x20\x2b\x20\x67\x32\x20\x7d\x29\x2c\x20\x65\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x3d\x20\x6e\x32\x2c\x20\x65\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x63\x32\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x4d\x61\x72\x6b\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x74\x33\x20\x7c\x7c\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x70\x53\x69\x7a\x65\x20\x7c\x7c\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x73\x68\x61\x70\x65\x20\x3d\x3d\x3d\x20\x22\x73\x71\x75\x61\x72\x65\x22\x20\x7c\x7c\x20\x69\x32\x2e\x73\x68\x61\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x70\x52\x61\x64\x69\x75\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x32\x20\x2f\x20\x32\x20\x3a\x20\x69\x32\x2e\x70\x52\x61\x64\x69\x75\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x61\x32\x20\x7c\x7c\x20\x28\x61\x32\x20\x3d\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x31\x2e\x32\x20\x2a\x20\x61\x32\x20\x2b\x20\x72\x32\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x6f\x32\x2c\x20\x6f\x32\x2c\x20\x6f\x32\x2c\x20\x6f\x32\x2c\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x74\x33\x20\x2d\x20\x6f\x32\x20\x2f\x20\x32\x2c\x20\x79\x3a\x20\x65\x32\x20\x2d\x20\x6f\x32\x20\x2f\x20\x32\x2c\x20\x63\x78\x3a\x20\x74\x33\x2c\x20\x63\x79\x3a\x20\x65\x32\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x20\x3f\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x20\x3a\x20\x22\x22\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x2c\x20\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x20\x3f\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x20\x3a\x20\x31\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3f\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3a\x20\x30\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x20\x3f\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x20\x3a\x20\x31\x20\x7d\x29\x2c\x20\x73\x32\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x73\x68\x61\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x20\x26\x26\x20\x69\x32\x2e\x73\x68\x61\x70\x65\x20\x7c\x7c\x20\x28\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x65\x32\x29\x20\x7c\x7c\x20\x28\x61\x32\x20\x3d\x20\x30\x2c\x20\x65\x32\x20\x3d\x20\x30\x29\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x43\x69\x72\x63\x6c\x65\x28\x61\x32\x2c\x20\x7b\x20\x63\x78\x3a\x20\x74\x33\x2c\x20\x63\x79\x3a\x20\x65\x32\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x20\x3f\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x20\x3a\x20\x22\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x2c\x20\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x20\x3f\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x20\x3a\x20\x31\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3f\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3a\x20\x30\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x20\x3f\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x20\x3a\x20\x31\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x72\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x6a\x22\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x28\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x22\x2c\x20\x5b\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x5d\x29\x2c\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x61\x63\x74\x69\x76\x65\x2e\x66\x69\x6c\x74\x65\x72\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x7c\x7c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x29\x20\x21\x3d\x3d\x20\x22\x74\x72\x75\x65\x22\x29\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x68\x6f\x76\x65\x72\x2e\x66\x69\x6c\x74\x65\x72\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x26\x26\x20\x21\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x54\x6f\x75\x63\x68\x44\x65\x76\x69\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x68\x6f\x76\x65\x72\x2e\x66\x69\x6c\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x70\x70\x6c\x79\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x73\x32\x2c\x20\x6f\x32\x2e\x74\x79\x70\x65\x2c\x20\x6f\x32\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x72\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x6a\x22\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x28\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x22\x2c\x20\x5b\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x5d\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x61\x63\x74\x69\x76\x65\x2e\x66\x69\x6c\x74\x65\x72\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x26\x26\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x29\x20\x3d\x3d\x3d\x20\x22\x74\x72\x75\x65\x22\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x68\x6f\x76\x65\x72\x2e\x66\x69\x6c\x74\x65\x72\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x26\x26\x20\x61\x32\x2e\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x44\x6f\x77\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x72\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x6a\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x6f\x32\x20\x3d\x20\x22\x66\x61\x6c\x73\x65\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x29\x20\x3d\x3d\x3d\x20\x22\x74\x72\x75\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x2c\x20\x22\x66\x61\x6c\x73\x65\x22\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x73\x32\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x72\x32\x29\x20\x3e\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x73\x32\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x73\x32\x5d\x2e\x73\x70\x6c\x69\x63\x65\x28\x6e\x32\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x61\x63\x74\x69\x76\x65\x2e\x61\x6c\x6c\x6f\x77\x4d\x75\x6c\x74\x69\x70\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\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\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x65\x6c\x65\x63\x74\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x70\x61\x74\x68\x22\x29\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2c\x20\x68\x33\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x65\x6c\x65\x63\x74\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x63\x69\x72\x63\x6c\x65\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x72\x65\x63\x74\x22\x29\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2c\x20\x63\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x2e\x63\x61\x6c\x6c\x28\x74\x34\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x2c\x20\x22\x66\x61\x6c\x73\x65\x22\x29\x2c\x20\x61\x32\x2e\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x46\x69\x6c\x74\x65\x72\x28\x74\x35\x2c\x20\x73\x32\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\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x28\x6c\x32\x29\x2c\x20\x63\x32\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x2c\x20\x22\x74\x72\x75\x65\x22\x29\x2c\x20\x6f\x32\x20\x3d\x20\x22\x74\x72\x75\x65\x22\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x73\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x73\x32\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x73\x32\x5d\x2e\x70\x75\x73\x68\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x20\x3d\x3d\x3d\x20\x22\x74\x72\x75\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x61\x63\x74\x69\x76\x65\x2e\x66\x69\x6c\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x26\x26\x20\x61\x32\x2e\x61\x70\x70\x6c\x79\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x73\x32\x2c\x20\x64\x32\x2e\x74\x79\x70\x65\x2c\x20\x64\x32\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x61\x74\x65\x73\x2e\x61\x63\x74\x69\x76\x65\x2e\x66\x69\x6c\x74\x65\x72\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x26\x26\x20\x61\x32\x2e\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x46\x69\x6c\x74\x65\x72\x28\x74\x33\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x65\x32\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x5b\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x6f\x74\x61\x74\x65\x41\x72\x6f\x75\x6e\x64\x43\x65\x6e\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x67\x65\x74\x42\x42\x6f\x78\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x29\x2c\x20\x7b\x20\x78\x3a\x20\x65\x32\x2e\x78\x20\x2b\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x79\x3a\x20\x65\x32\x2e\x79\x20\x2b\x20\x65\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x2d\x32\x30\x30\x2c\x20\x79\x3a\x20\x2d\x32\x30\x30\x2c\x20\x74\x65\x78\x74\x3a\x20\x74\x33\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x73\x74\x61\x72\x74\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x65\x32\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x69\x32\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x26\x26\x20\x6f\x32\x2e\x61\x74\x74\x72\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x61\x32\x29\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x61\x64\x64\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x20\x7c\x7c\x20\x28\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x29\x2c\x20\x6f\x32\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x2c\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x6e\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x6e\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x6c\x61\x63\x65\x54\x65\x78\x74\x57\x69\x74\x68\x45\x6c\x6c\x69\x70\x73\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x54\x65\x78\x74\x4c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x74\x33\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x65\x32\x2c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x54\x65\x78\x74\x4c\x65\x6e\x67\x74\x68\x28\x29\x20\x3e\x3d\x20\x69\x32\x20\x2f\x20\x31\x2e\x31\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x33\x3b\x20\x61\x32\x20\x3e\x20\x30\x3b\x20\x61\x32\x20\x2d\x3d\x20\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x65\x74\x53\x75\x62\x53\x74\x72\x69\x6e\x67\x4c\x65\x6e\x67\x74\x68\x28\x30\x2c\x20\x61\x32\x29\x20\x3c\x3d\x20\x69\x32\x20\x2f\x20\x31\x2e\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6f\x69\x64\x20\x28\x74\x33\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x65\x32\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x61\x32\x29\x20\x2b\x20\x22\x2e\x2e\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x22\x2e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x41\x74\x74\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x69\x6e\x20\x65\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x69\x32\x29\x20\x26\x26\x20\x74\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x69\x32\x2c\x20\x65\x32\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x79\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x74\x61\x63\x6b\x65\x64\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x73\x32\x5d\x5b\x69\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x2b\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x73\x32\x5d\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x70\x75\x73\x68\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x61\x63\x6b\x65\x64\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x20\x3d\x20\x65\x32\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x42\x79\x49\x6e\x64\x65\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x2b\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x33\x5d\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x2b\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x53\x65\x72\x69\x65\x73\x4e\x75\x6c\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x33\x5d\x2e\x64\x61\x74\x61\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x72\x69\x65\x73\x48\x61\x76\x65\x53\x61\x6d\x65\x56\x61\x6c\x75\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x33\x5d\x2e\x65\x76\x65\x72\x79\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3d\x3d\x3d\x20\x69\x32\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x43\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x33\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x74\x34\x20\x2d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x4d\x61\x74\x68\x2e\x6d\x61\x78\x2e\x61\x70\x70\x6c\x79\x28\x4d\x61\x74\x68\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x4d\x61\x72\x6b\x65\x72\x53\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x65\x32\x2c\x20\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x64\x69\x73\x63\x72\x65\x74\x65\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x64\x69\x73\x63\x72\x65\x74\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x64\x69\x73\x63\x72\x65\x74\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x65\x32\x2c\x20\x74\x34\x2e\x73\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x65\x32\x20\x2b\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x6f\x76\x65\x72\x2e\x73\x69\x7a\x65\x4f\x66\x66\x73\x65\x74\x20\x2b\x20\x31\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6c\x61\x72\x67\x65\x73\x74\x53\x69\x7a\x65\x20\x3d\x20\x65\x32\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x34\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x2b\x3d\x20\x74\x34\x5b\x61\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x2b\x3d\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x58\x52\x61\x6e\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x73\x32\x5d\x5b\x6f\x32\x5d\x20\x3e\x20\x74\x33\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x73\x32\x5d\x5b\x6f\x32\x5d\x20\x3c\x20\x65\x32\x20\x26\x26\x20\x28\x72\x32\x20\x2b\x3d\x20\x61\x32\x5b\x6f\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x50\x65\x72\x63\x65\x6e\x74\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x50\x65\x72\x63\x65\x6e\x74\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x61\x63\x6b\x65\x64\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x5b\x73\x32\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x31\x30\x30\x20\x2a\x20\x65\x32\x5b\x73\x32\x5d\x20\x2f\x20\x72\x32\x29\x2c\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x29\x3b\x0a\x20\x20\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\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x31\x30\x30\x20\x2a\x20\x65\x32\x20\x2f\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x2b\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x43\x61\x6c\x63\x75\x6c\x61\x74\x65\x64\x52\x61\x74\x69\x6f\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x72\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x30\x2e\x31\x2c\x20\x68\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x79\x52\x61\x6e\x67\x65\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x73\x32\x2e\x6d\x69\x6e\x59\x41\x72\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x63\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x79\x52\x61\x6e\x67\x65\x2e\x70\x75\x73\x68\x28\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x63\x32\x5d\x20\x2d\x20\x73\x32\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x63\x32\x5d\x29\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x79\x52\x61\x6e\x67\x65\x2e\x70\x75\x73\x68\x28\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x2e\x6d\x69\x6e\x59\x20\x2d\x20\x73\x32\x2e\x6d\x61\x78\x59\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x78\x52\x61\x6e\x67\x65\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x2e\x6d\x61\x78\x58\x20\x2d\x20\x73\x32\x2e\x6d\x69\x6e\x58\x29\x2c\x20\x73\x32\x2e\x7a\x52\x61\x6e\x67\x65\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x2e\x6d\x61\x78\x5a\x20\x2d\x20\x73\x32\x2e\x6d\x69\x6e\x5a\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x30\x3b\x20\x64\x32\x20\x3c\x20\x73\x32\x2e\x79\x52\x61\x6e\x67\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x64\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x73\x32\x2e\x79\x52\x61\x6e\x67\x65\x5b\x64\x32\x5d\x20\x2f\x20\x73\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x3d\x20\x73\x32\x2e\x78\x52\x61\x6e\x67\x65\x20\x2f\x20\x73\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x69\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x61\x78\x58\x20\x2d\x20\x73\x32\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x69\x6e\x58\x29\x20\x2f\x20\x73\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x74\x33\x20\x3d\x20\x73\x32\x2e\x79\x52\x61\x6e\x67\x65\x20\x2f\x20\x73\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x61\x32\x20\x3d\x20\x73\x32\x2e\x78\x52\x61\x6e\x67\x65\x20\x2f\x20\x73\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x28\x6f\x32\x20\x3d\x20\x73\x32\x2e\x7a\x52\x61\x6e\x67\x65\x20\x2f\x20\x73\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2a\x20\x31\x36\x29\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x31\x29\x2c\x20\x73\x32\x2e\x6d\x69\x6e\x59\x20\x21\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x2e\x6d\x69\x6e\x59\x29\x20\x21\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x73\x32\x2e\x68\x61\x73\x4e\x65\x67\x73\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x73\x32\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x72\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x2d\x73\x32\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x67\x32\x5d\x20\x2f\x20\x72\x32\x5b\x67\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x2d\x73\x32\x2e\x6d\x69\x6e\x59\x20\x2f\x20\x72\x32\x5b\x30\x5d\x29\x2c\x20\x73\x32\x2e\x6d\x69\x6e\x59\x20\x21\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x2e\x6d\x69\x6e\x59\x29\x20\x21\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x2d\x73\x32\x2e\x6d\x69\x6e\x59\x20\x2f\x20\x74\x33\x2c\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x6d\x69\x6e\x58\x20\x2f\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x79\x52\x61\x74\x69\x6f\x3a\x20\x72\x32\x2c\x20\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x3a\x20\x74\x33\x2c\x20\x7a\x52\x61\x74\x69\x6f\x3a\x20\x6f\x32\x2c\x20\x78\x52\x61\x74\x69\x6f\x3a\x20\x65\x32\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x58\x52\x61\x74\x69\x6f\x3a\x20\x69\x32\x2c\x20\x69\x6e\x76\x65\x72\x74\x65\x64\x58\x52\x61\x74\x69\x6f\x3a\x20\x61\x32\x2c\x20\x62\x61\x73\x65\x4c\x69\x6e\x65\x49\x6e\x76\x65\x72\x74\x65\x64\x59\x3a\x20\x6c\x32\x2c\x20\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x3a\x20\x6e\x32\x2c\x20\x62\x61\x73\x65\x4c\x69\x6e\x65\x58\x3a\x20\x68\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x6f\x67\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4c\x6f\x67\x20\x3d\x20\x74\x33\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x61\x32\x5d\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x61\x32\x5d\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x20\x3f\x20\x74\x34\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x35\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x65\x32\x2e\x67\x65\x74\x4c\x6f\x67\x56\x61\x6c\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x61\x32\x5d\x2e\x6c\x6f\x67\x42\x61\x73\x65\x2c\x20\x74\x35\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x76\x61\x6c\x69\x64\x4c\x6f\x67\x53\x63\x61\x6c\x65\x20\x3f\x20\x74\x33\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4c\x6f\x67\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x42\x61\x73\x65\x4c\x6f\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x6c\x6f\x67\x28\x65\x32\x29\x20\x2f\x20\x4d\x61\x74\x68\x2e\x6c\x6f\x67\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x6f\x67\x56\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x32\x5d\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x2d\x31\x20\x3a\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x42\x61\x73\x65\x4c\x6f\x67\x28\x74\x33\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x32\x5d\x29\x2c\x20\x72\x32\x20\x3d\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x69\x32\x5d\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x42\x61\x73\x65\x4c\x6f\x67\x28\x74\x33\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x69\x32\x5d\x29\x29\x20\x2d\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x3c\x20\x31\x20\x3f\x20\x65\x32\x20\x2f\x20\x72\x32\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x67\x65\x74\x42\x61\x73\x65\x4c\x6f\x67\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x2d\x20\x73\x32\x29\x20\x2f\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x6f\x67\x59\x52\x61\x74\x69\x6f\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x79\x4c\x6f\x67\x52\x61\x74\x69\x6f\x20\x3d\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x61\x32\x2e\x6c\x6f\x67\x59\x52\x61\x6e\x67\x65\x20\x3d\x20\x61\x32\x2e\x79\x52\x61\x6e\x67\x65\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x73\x32\x5d\x20\x26\x26\x20\x65\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x73\x32\x5d\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x2c\x20\x6f\x32\x20\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x6e\x32\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x73\x65\x72\x69\x65\x73\x4c\x6f\x67\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x36\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x36\x2c\x20\x6f\x32\x29\x2c\x20\x6e\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x36\x2c\x20\x6e\x32\x29\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\x7d\x29\x2c\x20\x72\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x61\x32\x2e\x79\x52\x61\x6e\x67\x65\x5b\x73\x32\x5d\x2c\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x6e\x32\x20\x2d\x20\x6f\x32\x29\x20\x2f\x20\x61\x32\x2e\x79\x52\x61\x6e\x67\x65\x5b\x73\x32\x5d\x29\x2c\x20\x61\x32\x2e\x79\x4c\x6f\x67\x52\x61\x74\x69\x6f\x5b\x73\x32\x5d\x20\x3d\x20\x72\x32\x20\x2f\x20\x61\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x69\x6e\x76\x61\x6c\x69\x64\x4c\x6f\x67\x53\x63\x61\x6c\x65\x20\x3f\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x29\x20\x3a\x20\x61\x32\x2e\x79\x4c\x6f\x67\x52\x61\x74\x69\x6f\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x43\x6f\x6d\x62\x6f\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x33\x5b\x30\x5d\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x74\x34\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x6f\x6c\x75\x6d\x6e\x22\x20\x26\x26\x20\x74\x34\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x74\x34\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x69\x32\x2b\x2b\x2c\x20\x74\x34\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x32\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x7b\x20\x63\x6f\x6d\x62\x6f\x42\x61\x72\x43\x6f\x75\x6e\x74\x3a\x20\x69\x32\x2c\x20\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x3a\x20\x65\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x50\x72\x6f\x70\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x33\x2e\x65\x78\x74\x65\x6e\x64\x59\x41\x78\x69\x73\x28\x65\x32\x2c\x20\x69\x32\x29\x29\x2c\x20\x65\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x26\x26\x20\x28\x65\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x79\x61\x78\x69\x73\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x33\x2e\x65\x78\x74\x65\x6e\x64\x59\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x65\x32\x29\x29\x2c\x20\x65\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x78\x61\x78\x69\x73\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x33\x2e\x65\x78\x74\x65\x6e\x64\x58\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x65\x32\x29\x29\x2c\x20\x65\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x33\x2e\x65\x78\x74\x65\x6e\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x65\x32\x29\x29\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x77\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x4f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x65\x32\x20\x3a\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x6c\x61\x62\x65\x6c\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2c\x20\x22\x27\x5d\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x22\x2c\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x22\x29\x29\x20\x2d\x20\x72\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x34\x29\x2c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x3f\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x22\x2c\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x22\x29\x29\x20\x2b\x20\x72\x32\x2e\x77\x69\x64\x74\x68\x29\x20\x3a\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x22\x2c\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x22\x29\x29\x20\x2d\x20\x72\x32\x2e\x77\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x72\x6f\x74\x61\x74\x65\x41\x72\x6f\x75\x6e\x64\x43\x65\x6e\x74\x65\x72\x28\x73\x32\x29\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x78\x2c\x20\x6c\x32\x20\x3d\x20\x6f\x32\x2e\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x2d\x39\x30\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6e\x32\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6c\x32\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x54\x6f\x41\x6e\x6e\x6f\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x33\x20\x7c\x7c\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x21\x53\x74\x72\x69\x6e\x67\x28\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x29\x2e\x74\x72\x69\x6d\x28\x29\x29\x0a\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\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x22\x29\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x6c\x65\x66\x74\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x72\x69\x67\x68\x74\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x74\x6f\x70\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x62\x6f\x74\x74\x6f\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x6c\x65\x66\x74\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x72\x69\x67\x68\x74\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x74\x6f\x70\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x62\x6f\x74\x74\x6f\x6d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x6c\x65\x66\x74\x20\x2d\x20\x61\x32\x2e\x6c\x65\x66\x74\x20\x2d\x20\x72\x32\x2c\x20\x63\x32\x20\x3d\x20\x73\x32\x2e\x74\x6f\x70\x20\x2d\x20\x61\x32\x2e\x74\x6f\x70\x20\x2d\x20\x6e\x32\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x68\x33\x20\x2d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x2c\x20\x63\x32\x2c\x20\x73\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x72\x32\x20\x2b\x20\x6f\x32\x2c\x20\x73\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x6e\x32\x20\x2b\x20\x6c\x32\x2c\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x2c\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2c\x20\x31\x2c\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x2c\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x69\x64\x20\x26\x26\x20\x64\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x65\x32\x2e\x69\x64\x29\x2c\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x6c\x61\x62\x65\x6c\x5b\x72\x65\x6c\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2c\x20\x22\x27\x5d\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x72\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x61\x64\x64\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x54\x6f\x41\x6e\x6e\x6f\x28\x72\x32\x2c\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x26\x26\x20\x28\x6f\x32\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x6e\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x72\x32\x29\x2c\x20\x69\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x20\x26\x26\x20\x6e\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x2c\x20\x69\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x33\x2c\x20\x69\x33\x29\x29\x2c\x20\x69\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x20\x26\x26\x20\x6e\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x69\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x2e\x62\x69\x6e\x64\x28\x74\x33\x2c\x20\x69\x33\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x22\x78\x61\x78\x69\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x22\x79\x61\x78\x69\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x22\x70\x6f\x69\x6e\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x59\x31\x59\x32\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x79\x31\x22\x20\x3f\x20\x65\x32\x2e\x79\x20\x3a\x20\x65\x32\x2e\x79\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x61\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x20\x74\x65\x78\x74\x3a\x6e\x74\x68\x2d\x63\x68\x69\x6c\x64\x28\x22\x20\x2b\x20\x28\x72\x32\x20\x2b\x20\x31\x29\x20\x2b\x20\x22\x29\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x6f\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x22\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x65\x32\x2e\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x28\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x4c\x6f\x67\x56\x61\x6c\x28\x61\x32\x2c\x20\x65\x32\x2e\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x29\x29\x20\x2f\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x6f\x67\x52\x61\x74\x69\x6f\x5b\x65\x32\x2e\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x28\x61\x32\x20\x2d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x65\x32\x2e\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x29\x20\x2f\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x52\x61\x6e\x67\x65\x5b\x65\x32\x2e\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2f\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x6e\x32\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x65\x32\x2e\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x26\x26\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x65\x32\x2e\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x58\x31\x58\x32\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x52\x61\x6e\x67\x65\x5b\x30\x5d\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x52\x61\x6e\x67\x65\x2c\x20\x6f\x32\x20\x3d\x20\x28\x65\x32\x2e\x78\x20\x2d\x20\x61\x32\x29\x20\x2f\x20\x28\x72\x32\x20\x2f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x73\x65\x64\x52\x65\x76\x65\x72\x73\x65\x64\x41\x78\x69\x73\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x28\x73\x32\x20\x2d\x20\x65\x32\x2e\x78\x29\x20\x2f\x20\x28\x72\x32\x20\x2f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x26\x26\x20\x21\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x7c\x7c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x53\x74\x72\x69\x6e\x67\x58\x28\x65\x32\x2e\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x28\x65\x32\x2e\x78\x32\x20\x2d\x20\x61\x32\x29\x20\x2f\x20\x28\x72\x32\x20\x2f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x73\x65\x64\x52\x65\x76\x65\x72\x73\x65\x64\x41\x78\x69\x73\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x28\x73\x32\x20\x2d\x20\x65\x32\x2e\x78\x32\x29\x20\x2f\x20\x28\x72\x32\x20\x2f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x26\x26\x20\x21\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x7c\x7c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x53\x74\x72\x69\x6e\x67\x58\x28\x65\x32\x2e\x78\x32\x29\x29\x2c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x78\x31\x22\x20\x3f\x20\x6f\x32\x20\x3a\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x74\x72\x69\x6e\x67\x58\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x20\x74\x65\x78\x74\x3a\x6e\x74\x68\x2d\x63\x68\x69\x6c\x64\x28\x22\x20\x2b\x20\x28\x61\x32\x20\x2b\x20\x31\x29\x20\x2b\x20\x22\x29\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x22\x29\x29\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x6b\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x77\x28\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x58\x31\x58\x32\x28\x22\x78\x31\x22\x2c\x20\x74\x33\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x72\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x78\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x33\x2e\x78\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x72\x32\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x30\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x72\x32\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x2c\x20\x6e\x32\x2c\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x6c\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x33\x2e\x69\x64\x20\x26\x26\x20\x6c\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x33\x2e\x69\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x58\x31\x58\x32\x28\x22\x78\x32\x22\x2c\x20\x74\x33\x29\x29\x20\x3c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x61\x32\x2c\x20\x61\x32\x20\x3d\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x72\x32\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x30\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x61\x32\x20\x2d\x20\x72\x32\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x30\x2c\x20\x74\x33\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x2c\x20\x74\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x31\x2c\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x22\x29\x2c\x20\x63\x32\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x2c\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x33\x2e\x69\x64\x20\x26\x26\x20\x63\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x33\x2e\x69\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x3f\x20\x34\x20\x3a\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x6f\x32\x2c\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x29\x2c\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x72\x32\x20\x2b\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x79\x3a\x20\x64\x32\x20\x2b\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2d\x20\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x20\x3f\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x3f\x20\x67\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2d\x20\x31\x32\x20\x3a\x20\x2d\x67\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x3a\x20\x30\x29\x2c\x20\x74\x65\x78\x74\x3a\x20\x6f\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x6c\x61\x62\x65\x6c\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x69\x64\x20\x3f\x20\x74\x33\x2e\x69\x64\x20\x3a\x20\x22\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x65\x6c\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x75\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x73\x65\x74\x4f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x73\x28\x74\x33\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x58\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x41\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x77\x28\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x59\x31\x59\x32\x28\x22\x79\x31\x22\x2c\x20\x74\x33\x29\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x79\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x33\x2e\x79\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x30\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x6f\x32\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x57\x69\x64\x74\x68\x28\x74\x33\x29\x2c\x20\x6f\x32\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x2c\x20\x72\x32\x2c\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x6c\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x33\x2e\x69\x64\x20\x26\x26\x20\x6c\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x33\x2e\x69\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x59\x31\x59\x32\x28\x22\x79\x32\x22\x2c\x20\x74\x33\x29\x29\x20\x3e\x20\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x61\x32\x2c\x20\x61\x32\x20\x3d\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x30\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x61\x32\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x57\x69\x64\x74\x68\x28\x74\x33\x29\x2c\x20\x6f\x32\x20\x2d\x20\x61\x32\x2c\x20\x30\x2c\x20\x74\x33\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x2c\x20\x74\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x31\x2c\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x2c\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x22\x29\x2c\x20\x63\x32\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x2c\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x33\x2e\x69\x64\x20\x26\x26\x20\x63\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x33\x2e\x69\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x3f\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3a\x20\x30\x2c\x20\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x64\x32\x20\x2b\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x79\x3a\x20\x28\x61\x32\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x61\x32\x20\x3a\x20\x6f\x32\x29\x20\x2b\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2d\x20\x33\x2c\x20\x74\x65\x78\x74\x3a\x20\x6e\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x6c\x61\x62\x65\x6c\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x69\x64\x20\x3f\x20\x74\x33\x2e\x69\x64\x20\x3a\x20\x22\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x67\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x65\x6c\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x67\x32\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x67\x65\x74\x59\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x57\x69\x64\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x33\x2e\x77\x69\x64\x74\x68\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x25\x22\x29\x20\x3e\x20\x2d\x31\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x20\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x29\x20\x2b\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x58\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x59\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x53\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x77\x28\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x58\x31\x58\x32\x28\x22\x78\x31\x22\x2c\x20\x74\x33\x29\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x59\x31\x59\x32\x28\x22\x79\x31\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x61\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x7b\x20\x70\x53\x69\x7a\x65\x3a\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x73\x69\x7a\x65\x2c\x20\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x2c\x20\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x73\x68\x61\x70\x65\x3a\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x73\x68\x61\x70\x65\x2c\x20\x70\x52\x61\x64\x69\x75\x73\x3a\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x72\x61\x64\x69\x75\x73\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6f\x69\x6e\x74\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x6d\x61\x72\x6b\x65\x72\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x69\x64\x20\x3f\x20\x74\x33\x2e\x69\x64\x20\x3a\x20\x22\x22\x29\x20\x7d\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x4d\x61\x72\x6b\x65\x72\x28\x61\x32\x20\x2b\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x73\x32\x20\x2b\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x6f\x32\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x20\x3f\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x20\x3a\x20\x22\x22\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x61\x32\x20\x2b\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x79\x3a\x20\x73\x32\x20\x2b\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2d\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x73\x69\x7a\x65\x20\x2d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x20\x2f\x20\x31\x2e\x36\x2c\x20\x74\x65\x78\x74\x3a\x20\x6e\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6f\x69\x6e\x74\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x6c\x61\x62\x65\x6c\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x69\x64\x20\x3f\x20\x74\x33\x2e\x69\x64\x20\x3a\x20\x22\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x65\x6c\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x6c\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x33\x2e\x63\x75\x73\x74\x6f\x6d\x53\x56\x47\x2e\x53\x56\x47\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6f\x69\x6e\x74\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2d\x63\x75\x73\x74\x6f\x6d\x2d\x73\x76\x67\x20\x22\x20\x2b\x20\x74\x33\x2e\x63\x75\x73\x74\x6f\x6d\x53\x56\x47\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x20\x2b\x20\x74\x33\x2e\x63\x75\x73\x74\x6f\x6d\x53\x56\x47\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x20\x2b\x20\x74\x33\x2e\x63\x75\x73\x74\x6f\x6d\x53\x56\x47\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x2c\x20\x68\x33\x2e\x6e\x6f\x64\x65\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x74\x33\x2e\x63\x75\x73\x74\x6f\x6d\x53\x56\x47\x2e\x53\x56\x47\x2c\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x68\x33\x2e\x6e\x6f\x64\x65\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\x33\x2e\x69\x6d\x61\x67\x65\x2e\x70\x61\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x69\x6d\x61\x67\x65\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x74\x33\x2e\x69\x6d\x61\x67\x65\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x32\x30\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x69\x6d\x61\x67\x65\x2e\x68\x65\x69\x67\x68\x74\x20\x3f\x20\x74\x33\x2e\x69\x6d\x61\x67\x65\x2e\x68\x65\x69\x67\x68\x74\x20\x3a\x20\x32\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x61\x64\x64\x49\x6d\x61\x67\x65\x28\x7b\x20\x78\x3a\x20\x61\x32\x20\x2b\x20\x74\x33\x2e\x69\x6d\x61\x67\x65\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2d\x20\x63\x32\x20\x2f\x20\x32\x2c\x20\x79\x3a\x20\x73\x32\x20\x2b\x20\x74\x33\x2e\x69\x6d\x61\x67\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2d\x20\x64\x32\x20\x2f\x20\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x63\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x64\x32\x2c\x20\x70\x61\x74\x68\x3a\x20\x74\x33\x2e\x69\x6d\x61\x67\x65\x2e\x70\x61\x74\x68\x2c\x20\x61\x70\x70\x65\x6e\x64\x54\x6f\x3a\x20\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6f\x69\x6e\x74\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x20\x26\x26\x20\x6f\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x2c\x20\x74\x33\x2e\x6d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x20\x26\x26\x20\x6f\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x74\x33\x2e\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x6e\x6e\x6f\x43\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6f\x69\x6e\x74\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x76\x61\x72\x20\x43\x20\x3d\x20\x7b\x20\x6e\x61\x6d\x65\x3a\x20\x22\x65\x6e\x22\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x6d\x6f\x6e\x74\x68\x73\x3a\x20\x5b\x22\x4a\x61\x6e\x75\x61\x72\x79\x22\x2c\x20\x22\x46\x65\x62\x72\x75\x61\x72\x79\x22\x2c\x20\x22\x4d\x61\x72\x63\x68\x22\x2c\x20\x22\x41\x70\x72\x69\x6c\x22\x2c\x20\x22\x4d\x61\x79\x22\x2c\x20\x22\x4a\x75\x6e\x65\x22\x2c\x20\x22\x4a\x75\x6c\x79\x22\x2c\x20\x22\x41\x75\x67\x75\x73\x74\x22\x2c\x20\x22\x53\x65\x70\x74\x65\x6d\x62\x65\x72\x22\x2c\x20\x22\x4f\x63\x74\x6f\x62\x65\x72\x22\x2c\x20\x22\x4e\x6f\x76\x65\x6d\x62\x65\x72\x22\x2c\x20\x22\x44\x65\x63\x65\x6d\x62\x65\x72\x22\x5d\x2c\x20\x73\x68\x6f\x72\x74\x4d\x6f\x6e\x74\x68\x73\x3a\x20\x5b\x22\x4a\x61\x6e\x22\x2c\x20\x22\x46\x65\x62\x22\x2c\x20\x22\x4d\x61\x72\x22\x2c\x20\x22\x41\x70\x72\x22\x2c\x20\x22\x4d\x61\x79\x22\x2c\x20\x22\x4a\x75\x6e\x22\x2c\x20\x22\x4a\x75\x6c\x22\x2c\x20\x22\x41\x75\x67\x22\x2c\x20\x22\x53\x65\x70\x22\x2c\x20\x22\x4f\x63\x74\x22\x2c\x20\x22\x4e\x6f\x76\x22\x2c\x20\x22\x44\x65\x63\x22\x5d\x2c\x20\x64\x61\x79\x73\x3a\x20\x5b\x22\x53\x75\x6e\x64\x61\x79\x22\x2c\x20\x22\x4d\x6f\x6e\x64\x61\x79\x22\x2c\x20\x22\x54\x75\x65\x73\x64\x61\x79\x22\x2c\x20\x22\x57\x65\x64\x6e\x65\x73\x64\x61\x79\x22\x2c\x20\x22\x54\x68\x75\x72\x73\x64\x61\x79\x22\x2c\x20\x22\x46\x72\x69\x64\x61\x79\x22\x2c\x20\x22\x53\x61\x74\x75\x72\x64\x61\x79\x22\x5d\x2c\x20\x73\x68\x6f\x72\x74\x44\x61\x79\x73\x3a\x20\x5b\x22\x53\x75\x6e\x22\x2c\x20\x22\x4d\x6f\x6e\x22\x2c\x20\x22\x54\x75\x65\x22\x2c\x20\x22\x57\x65\x64\x22\x2c\x20\x22\x54\x68\x75\x22\x2c\x20\x22\x46\x72\x69\x22\x2c\x20\x22\x53\x61\x74\x22\x5d\x2c\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x20\x65\x78\x70\x6f\x72\x74\x54\x6f\x53\x56\x47\x3a\x20\x22\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x20\x53\x56\x47\x22\x2c\x20\x65\x78\x70\x6f\x72\x74\x54\x6f\x50\x4e\x47\x3a\x20\x22\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x20\x50\x4e\x47\x22\x2c\x20\x65\x78\x70\x6f\x72\x74\x54\x6f\x43\x53\x56\x3a\x20\x22\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x20\x43\x53\x56\x22\x2c\x20\x6d\x65\x6e\x75\x3a\x20\x22\x4d\x65\x6e\x75\x22\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x22\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x5a\x6f\x6f\x6d\x3a\x20\x22\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x5a\x6f\x6f\x6d\x22\x2c\x20\x7a\x6f\x6f\x6d\x49\x6e\x3a\x20\x22\x5a\x6f\x6f\x6d\x20\x49\x6e\x22\x2c\x20\x7a\x6f\x6f\x6d\x4f\x75\x74\x3a\x20\x22\x5a\x6f\x6f\x6d\x20\x4f\x75\x74\x22\x2c\x20\x70\x61\x6e\x3a\x20\x22\x50\x61\x6e\x6e\x69\x6e\x67\x22\x2c\x20\x72\x65\x73\x65\x74\x3a\x20\x22\x52\x65\x73\x65\x74\x20\x5a\x6f\x6f\x6d\x22\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x4c\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x20\x3d\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x68\x6f\x77\x41\x6c\x77\x61\x79\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x68\x6f\x77\x46\x6f\x72\x4e\x75\x6c\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x70\x70\x6f\x73\x69\x74\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x65\x76\x65\x72\x73\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x6f\x67\x42\x61\x73\x65\x3a\x20\x31\x30\x2c\x20\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x72\x63\x65\x4e\x69\x63\x65\x53\x63\x61\x6c\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6d\x61\x78\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x69\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6c\x6f\x61\x74\x69\x6e\x67\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x65\x63\x69\x6d\x61\x6c\x73\x49\x6e\x46\x6c\x6f\x61\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x6d\x69\x6e\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x6d\x61\x78\x57\x69\x64\x74\x68\x3a\x20\x31\x36\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x61\x6c\x69\x67\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x72\x6f\x74\x61\x74\x65\x3a\x20\x30\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x32\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x31\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x20\x7d\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x65\x30\x65\x30\x65\x30\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x20\x7d\x2c\x20\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x65\x30\x65\x30\x65\x30\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x36\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x20\x7d\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x72\x6f\x74\x61\x74\x65\x3a\x20\x2d\x39\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x31\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x39\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x20\x7d\x2c\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x66\x72\x6f\x6e\x74\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x62\x36\x62\x36\x62\x36\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x64\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x30\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3d\x20\x7b\x20\x69\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x3a\x20\x30\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x72\x6b\x65\x72\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x34\x2c\x20\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x33\x33\x33\x22\x2c\x20\x73\x68\x61\x70\x65\x3a\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x72\x61\x64\x69\x75\x73\x3a\x20\x32\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x20\x7d\x2c\x20\x6c\x61\x62\x65\x6c\x3a\x20\x7b\x20\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x63\x32\x63\x32\x63\x32\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x3a\x20\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x31\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x7b\x20\x6c\x65\x66\x74\x3a\x20\x35\x2c\x20\x72\x69\x67\x68\x74\x3a\x20\x35\x2c\x20\x74\x6f\x70\x3a\x20\x32\x2c\x20\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x32\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x63\x75\x73\x74\x6f\x6d\x53\x56\x47\x3a\x20\x7b\x20\x53\x56\x47\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x20\x7d\x2c\x20\x69\x6d\x61\x67\x65\x3a\x20\x7b\x20\x70\x61\x74\x68\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x32\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x20\x7d\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3d\x20\x7b\x20\x69\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x31\x2c\x20\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x63\x32\x63\x32\x63\x32\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x63\x32\x63\x32\x63\x32\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x33\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x22\x31\x30\x30\x25\x22\x2c\x20\x79\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x3a\x20\x30\x2c\x20\x6c\x61\x62\x65\x6c\x3a\x20\x7b\x20\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x63\x32\x63\x32\x63\x32\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x3a\x20\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x65\x6e\x64\x22\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x72\x69\x67\x68\x74\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x2d\x33\x2c\x20\x6d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x31\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x7b\x20\x6c\x65\x66\x74\x3a\x20\x35\x2c\x20\x72\x69\x67\x68\x74\x3a\x20\x35\x2c\x20\x74\x6f\x70\x3a\x20\x32\x2c\x20\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x32\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3d\x20\x7b\x20\x69\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x78\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x31\x2c\x20\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x63\x32\x63\x32\x63\x32\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x63\x32\x63\x32\x63\x32\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x33\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x6c\x61\x62\x65\x6c\x3a\x20\x7b\x20\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x63\x32\x63\x32\x63\x32\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x3a\x20\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x3a\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x74\x6f\x70\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x31\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x7b\x20\x6c\x65\x66\x74\x3a\x20\x35\x2c\x20\x72\x69\x67\x68\x74\x3a\x20\x35\x2c\x20\x74\x6f\x70\x3a\x20\x32\x2c\x20\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x32\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x20\x3d\x20\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x74\x65\x78\x74\x3a\x20\x22\x22\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x73\x74\x61\x72\x74\x22\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x33\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x61\x70\x70\x65\x6e\x64\x54\x6f\x3a\x20\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x63\x32\x63\x32\x63\x32\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x3a\x20\x30\x2c\x20\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x4c\x65\x66\x74\x3a\x20\x34\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x52\x69\x67\x68\x74\x3a\x20\x34\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x54\x6f\x70\x3a\x20\x32\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x42\x6f\x74\x74\x6f\x6d\x3a\x20\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x66\x72\x6f\x6e\x74\x22\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x5b\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x5d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x5b\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x5d\x2c\x20\x70\x6f\x69\x6e\x74\x73\x3a\x20\x5b\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x5d\x2c\x20\x74\x65\x78\x74\x73\x3a\x20\x5b\x5d\x2c\x20\x69\x6d\x61\x67\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x73\x68\x61\x70\x65\x73\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x65\x61\x73\x69\x6e\x67\x3a\x20\x22\x65\x61\x73\x65\x69\x6e\x6f\x75\x74\x22\x2c\x20\x73\x70\x65\x65\x64\x3a\x20\x38\x30\x30\x2c\x20\x61\x6e\x69\x6d\x61\x74\x65\x47\x72\x61\x64\x75\x61\x6c\x6c\x79\x3a\x20\x7b\x20\x64\x65\x6c\x61\x79\x3a\x20\x31\x35\x30\x2c\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x70\x65\x65\x64\x3a\x20\x33\x35\x30\x20\x7d\x20\x7d\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x2c\x20\x6c\x6f\x63\x61\x6c\x65\x73\x3a\x20\x5b\x43\x5d\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x4c\x6f\x63\x61\x6c\x65\x3a\x20\x22\x65\x6e\x22\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x6f\x70\x3a\x20\x32\x2c\x20\x6c\x65\x66\x74\x3a\x20\x32\x2c\x20\x62\x6c\x75\x72\x3a\x20\x34\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x30\x30\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x33\x35\x20\x7d\x2c\x20\x65\x76\x65\x6e\x74\x73\x3a\x20\x7b\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x75\x70\x64\x61\x74\x65\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x6c\x69\x63\x6b\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x4d\x6f\x76\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6c\x65\x67\x65\x6e\x64\x43\x6c\x69\x63\x6b\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x62\x65\x66\x6f\x72\x65\x5a\x6f\x6f\x6d\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x62\x65\x66\x6f\x72\x65\x52\x65\x73\x65\x74\x5a\x6f\x6f\x6d\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x7a\x6f\x6f\x6d\x65\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x63\x72\x6f\x6c\x6c\x65\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x62\x72\x75\x73\x68\x53\x63\x72\x6f\x6c\x6c\x65\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x33\x37\x33\x64\x33\x66\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x22\x48\x65\x6c\x76\x65\x74\x69\x63\x61\x2c\x20\x41\x72\x69\x61\x6c\x2c\x20\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x22\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x22\x61\x75\x74\x6f\x22\x2c\x20\x70\x61\x72\x65\x6e\x74\x48\x65\x69\x67\x68\x74\x4f\x66\x66\x73\x65\x74\x3a\x20\x31\x35\x2c\x20\x72\x65\x64\x72\x61\x77\x4f\x6e\x50\x61\x72\x65\x6e\x74\x52\x65\x73\x69\x7a\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x72\x65\x64\x72\x61\x77\x4f\x6e\x57\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x69\x64\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x67\x72\x6f\x75\x70\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x78\x22\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x32\x34\x32\x39\x32\x65\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x31\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x32\x34\x32\x39\x32\x65\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x34\x2c\x20\x64\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x33\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x78\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x78\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x2c\x20\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x62\x72\x75\x73\x68\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x61\x78\x69\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x74\x61\x72\x67\x65\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x73\x74\x61\x63\x6b\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x74\x61\x63\x6b\x54\x79\x70\x65\x3a\x20\x22\x6e\x6f\x72\x6d\x61\x6c\x22\x2c\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x74\x6f\x6f\x6c\x73\x3a\x20\x7b\x20\x64\x6f\x77\x6e\x6c\x6f\x61\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x74\x72\x75\x65\x2c\x20\x7a\x6f\x6f\x6d\x3a\x20\x74\x72\x75\x65\x2c\x20\x7a\x6f\x6f\x6d\x69\x6e\x3a\x20\x74\x72\x75\x65\x2c\x20\x7a\x6f\x6f\x6d\x6f\x75\x74\x3a\x20\x74\x72\x75\x65\x2c\x20\x70\x61\x6e\x3a\x20\x74\x72\x75\x65\x2c\x20\x72\x65\x73\x65\x74\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x65\x78\x70\x6f\x72\x74\x3a\x20\x7b\x20\x63\x73\x76\x3a\x20\x7b\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x6f\x6c\x75\x6d\x6e\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x3a\x20\x22\x2c\x22\x2c\x20\x68\x65\x61\x64\x65\x72\x43\x61\x74\x65\x67\x6f\x72\x79\x3a\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x2c\x20\x68\x65\x61\x64\x65\x72\x56\x61\x6c\x75\x65\x3a\x20\x22\x76\x61\x6c\x75\x65\x22\x2c\x20\x64\x61\x74\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x74\x33\x29\x2e\x74\x6f\x44\x61\x74\x65\x53\x74\x72\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x70\x6e\x67\x3a\x20\x7b\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x73\x76\x67\x3a\x20\x7b\x20\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x2c\x20\x61\x75\x74\x6f\x53\x65\x6c\x65\x63\x74\x65\x64\x3a\x20\x22\x7a\x6f\x6f\x6d\x22\x20\x7d\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x6c\x69\x6e\x65\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x22\x31\x30\x30\x25\x22\x2c\x20\x7a\x6f\x6f\x6d\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x78\x22\x2c\x20\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x61\x78\x69\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x7a\x6f\x6f\x6d\x65\x64\x41\x72\x65\x61\x3a\x20\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x39\x30\x43\x41\x46\x39\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x34\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x44\x34\x37\x41\x31\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x34\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x61\x72\x65\x61\x3a\x20\x7b\x20\x66\x69\x6c\x6c\x54\x6f\x3a\x20\x22\x6f\x72\x69\x67\x69\x6e\x22\x20\x7d\x2c\x20\x62\x61\x72\x3a\x20\x7b\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6c\x75\x6d\x6e\x57\x69\x64\x74\x68\x3a\x20\x22\x37\x30\x25\x22\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x22\x37\x30\x25\x22\x2c\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x3a\x20\x30\x2c\x20\x72\x61\x6e\x67\x65\x42\x61\x72\x4f\x76\x65\x72\x6c\x61\x70\x3a\x20\x74\x72\x75\x65\x2c\x20\x72\x61\x6e\x67\x65\x42\x61\x72\x47\x72\x6f\x75\x70\x52\x6f\x77\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x7b\x20\x72\x61\x6e\x67\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x52\x61\x64\x69\x75\x73\x3a\x20\x30\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x74\x6f\x70\x22\x2c\x20\x6d\x61\x78\x49\x74\x65\x6d\x73\x3a\x20\x31\x30\x30\x2c\x20\x68\x69\x64\x65\x4f\x76\x65\x72\x66\x6c\x6f\x77\x69\x6e\x67\x4c\x61\x62\x65\x6c\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x3a\x20\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x22\x20\x7d\x20\x7d\x2c\x20\x62\x75\x62\x62\x6c\x65\x3a\x20\x7b\x20\x6d\x69\x6e\x42\x75\x62\x62\x6c\x65\x52\x61\x64\x69\x75\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x78\x42\x75\x62\x62\x6c\x65\x52\x61\x64\x69\x75\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x7b\x20\x75\x70\x77\x61\x72\x64\x3a\x20\x22\x23\x30\x30\x42\x37\x34\x36\x22\x2c\x20\x64\x6f\x77\x6e\x77\x61\x72\x64\x3a\x20\x22\x23\x45\x46\x34\x30\x33\x43\x22\x20\x7d\x2c\x20\x77\x69\x63\x6b\x3a\x20\x7b\x20\x75\x73\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x72\x75\x65\x20\x7d\x20\x7d\x2c\x20\x62\x6f\x78\x50\x6c\x6f\x74\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x7b\x20\x75\x70\x70\x65\x72\x3a\x20\x22\x23\x30\x30\x45\x33\x39\x36\x22\x2c\x20\x6c\x6f\x77\x65\x72\x3a\x20\x22\x23\x30\x30\x38\x46\x46\x42\x22\x20\x7d\x20\x7d\x2c\x20\x68\x65\x61\x74\x6d\x61\x70\x3a\x20\x7b\x20\x72\x61\x64\x69\x75\x73\x3a\x20\x32\x2c\x20\x65\x6e\x61\x62\x6c\x65\x53\x68\x61\x64\x65\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x30\x2e\x35\x2c\x20\x72\x65\x76\x65\x72\x73\x65\x4e\x65\x67\x61\x74\x69\x76\x65\x53\x68\x61\x64\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x75\x73\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x41\x73\x53\x74\x72\x6f\x6b\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x3a\x20\x7b\x20\x69\x6e\x76\x65\x72\x73\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x61\x6e\x67\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x6d\x69\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x78\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x2c\x20\x74\x72\x65\x65\x6d\x61\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x53\x68\x61\x64\x65\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x30\x2e\x35\x2c\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x65\x76\x65\x72\x73\x65\x4e\x65\x67\x61\x74\x69\x76\x65\x53\x68\x61\x64\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x75\x73\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x41\x73\x53\x74\x72\x6f\x6b\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x3a\x20\x7b\x20\x69\x6e\x76\x65\x72\x73\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x61\x6e\x67\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x6d\x69\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x78\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x2c\x20\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x3a\x20\x7b\x20\x69\x6e\x76\x65\x72\x73\x65\x4f\x72\x64\x65\x72\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x30\x2c\x20\x65\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x33\x36\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x68\x6f\x6c\x6c\x6f\x77\x3a\x20\x7b\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x35\x2c\x20\x73\x69\x7a\x65\x3a\x20\x22\x35\x30\x25\x22\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x2c\x20\x69\x6d\x61\x67\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x69\x6d\x61\x67\x65\x57\x69\x64\x74\x68\x3a\x20\x31\x35\x30\x2c\x20\x69\x6d\x61\x67\x65\x48\x65\x69\x67\x68\x74\x3a\x20\x31\x35\x30\x2c\x20\x69\x6d\x61\x67\x65\x4f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x69\x6d\x61\x67\x65\x4f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x69\x6d\x61\x67\x65\x43\x6c\x69\x70\x70\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x66\x72\x6f\x6e\x74\x22\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x6f\x70\x3a\x20\x30\x2c\x20\x6c\x65\x66\x74\x3a\x20\x30\x2c\x20\x62\x6c\x75\x72\x3a\x20\x33\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x30\x30\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x35\x20\x7d\x20\x7d\x2c\x20\x74\x72\x61\x63\x6b\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x65\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x22\x23\x66\x32\x66\x32\x66\x32\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x22\x39\x37\x25\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x2c\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x35\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x6f\x70\x3a\x20\x30\x2c\x20\x6c\x65\x66\x74\x3a\x20\x30\x2c\x20\x62\x6c\x75\x72\x3a\x20\x33\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x30\x30\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x35\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x6e\x61\x6d\x65\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x36\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x36\x30\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x34\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x31\x36\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x2b\x20\x22\x25\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x74\x61\x6c\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x61\x62\x65\x6c\x3a\x20\x22\x54\x6f\x74\x61\x6c\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x36\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x36\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x2b\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x20\x2f\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x22\x25\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x70\x69\x65\x3a\x20\x7b\x20\x63\x75\x73\x74\x6f\x6d\x53\x63\x61\x6c\x65\x3a\x20\x31\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x30\x2c\x20\x65\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x33\x36\x30\x2c\x20\x65\x78\x70\x61\x6e\x64\x4f\x6e\x43\x6c\x69\x63\x6b\x3a\x20\x74\x72\x75\x65\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x30\x2c\x20\x6d\x69\x6e\x41\x6e\x67\x6c\x65\x54\x6f\x53\x68\x6f\x77\x4c\x61\x62\x65\x6c\x3a\x20\x31\x30\x20\x7d\x2c\x20\x64\x6f\x6e\x75\x74\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x22\x36\x35\x25\x22\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x2c\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6e\x61\x6d\x65\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x36\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x36\x30\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x2d\x31\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x32\x30\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x31\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x74\x61\x6c\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x68\x6f\x77\x41\x6c\x77\x61\x79\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x61\x62\x65\x6c\x3a\x20\x22\x54\x6f\x74\x61\x6c\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x36\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x2b\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x3a\x20\x7b\x20\x72\x69\x6e\x67\x73\x3a\x20\x7b\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x65\x38\x65\x38\x65\x38\x22\x20\x7d\x2c\x20\x73\x70\x6f\x6b\x65\x73\x3a\x20\x7b\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x22\x23\x65\x38\x65\x38\x65\x38\x22\x20\x7d\x20\x7d\x2c\x20\x72\x61\x64\x61\x72\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x3a\x20\x7b\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x22\x23\x65\x38\x65\x38\x65\x38\x22\x2c\x20\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x22\x23\x65\x38\x65\x38\x65\x38\x22\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x33\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x36\x30\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x3a\x20\x32\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x34\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x39\x2c\x20\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x6f\x70\x3a\x20\x31\x2c\x20\x6c\x65\x66\x74\x3a\x20\x31\x2c\x20\x62\x6c\x75\x72\x3a\x20\x31\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x30\x30\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x34\x35\x20\x7d\x20\x7d\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x6f\x70\x3a\x20\x31\x2c\x20\x6c\x65\x66\x74\x3a\x20\x31\x2c\x20\x62\x6c\x75\x72\x3a\x20\x31\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x30\x30\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x34\x35\x20\x7d\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x73\x6f\x6c\x69\x64\x22\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x38\x35\x2c\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x7b\x20\x73\x68\x61\x64\x65\x3a\x20\x22\x64\x61\x72\x6b\x22\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x22\x2c\x20\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x30\x2e\x35\x2c\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x6f\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x69\x6e\x76\x65\x72\x73\x65\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x3a\x20\x31\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x3a\x20\x31\x2c\x20\x73\x74\x6f\x70\x73\x3a\x20\x5b\x30\x2c\x20\x35\x30\x2c\x20\x31\x30\x30\x5d\x2c\x20\x63\x6f\x6c\x6f\x72\x53\x74\x6f\x70\x73\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x69\x6d\x61\x67\x65\x3a\x20\x7b\x20\x73\x72\x63\x3a\x20\x5b\x5d\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x70\x61\x74\x74\x65\x72\x6e\x3a\x20\x7b\x20\x73\x74\x79\x6c\x65\x3a\x20\x22\x73\x71\x75\x61\x72\x65\x73\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x36\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x36\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x32\x20\x7d\x20\x7d\x2c\x20\x66\x6f\x72\x65\x63\x61\x73\x74\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3a\x20\x7b\x20\x63\x6f\x75\x6e\x74\x3a\x20\x30\x2c\x20\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x35\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x34\x20\x7d\x2c\x20\x67\x72\x69\x64\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x65\x30\x65\x30\x65\x30\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x30\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x62\x61\x63\x6b\x22\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6c\x69\x6e\x65\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x7b\x20\x6c\x69\x6e\x65\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x20\x7d\x20\x7d\x2c\x20\x72\x6f\x77\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x35\x20\x7d\x2c\x20\x63\x6f\x6c\x75\x6d\x6e\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x35\x20\x7d\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x7b\x20\x74\x6f\x70\x3a\x20\x30\x2c\x20\x72\x69\x67\x68\x74\x3a\x20\x31\x30\x2c\x20\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x30\x2c\x20\x6c\x65\x66\x74\x3a\x20\x31\x32\x20\x7d\x20\x7d\x2c\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x5b\x5d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x68\x6f\x77\x46\x6f\x72\x53\x69\x6e\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x68\x6f\x77\x46\x6f\x72\x4e\x75\x6c\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x68\x6f\x77\x46\x6f\x72\x5a\x65\x72\x6f\x53\x65\x72\x69\x65\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6c\x6f\x61\x74\x69\x6e\x67\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x2c\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x41\x6c\x69\x67\x6e\x3a\x20\x22\x63\x65\x6e\x74\x65\x72\x22\x2c\x20\x69\x6e\x76\x65\x72\x73\x65\x4f\x72\x64\x65\x72\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x48\x6f\x76\x65\x72\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x2d\x32\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x34\x2c\x20\x63\x75\x73\x74\x6f\x6d\x4c\x65\x67\x65\x6e\x64\x49\x74\x65\x6d\x73\x3a\x20\x5b\x5d\x2c\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x75\x73\x65\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x72\x61\x64\x69\x75\x73\x3a\x20\x31\x32\x2c\x20\x63\x75\x73\x74\x6f\x6d\x48\x54\x4d\x4c\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x6f\x6e\x43\x6c\x69\x63\x6b\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x69\x74\x65\x6d\x4d\x61\x72\x67\x69\x6e\x3a\x20\x7b\x20\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x3a\x20\x35\x2c\x20\x76\x65\x72\x74\x69\x63\x61\x6c\x3a\x20\x32\x20\x7d\x2c\x20\x6f\x6e\x49\x74\x65\x6d\x43\x6c\x69\x63\x6b\x3a\x20\x7b\x20\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x6f\x6e\x49\x74\x65\x6d\x48\x6f\x76\x65\x72\x3a\x20\x7b\x20\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x3a\x20\x74\x72\x75\x65\x20\x7d\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x64\x69\x73\x63\x72\x65\x74\x65\x3a\x20\x5b\x5d\x2c\x20\x73\x69\x7a\x65\x3a\x20\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x39\x2c\x20\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x30\x2c\x20\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x2c\x20\x73\x68\x61\x70\x65\x3a\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x38\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x38\x2c\x20\x72\x61\x64\x69\x75\x73\x3a\x20\x32\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x6f\x6e\x43\x6c\x69\x63\x6b\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x6e\x44\x62\x6c\x43\x6c\x69\x63\x6b\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x68\x6f\x77\x4e\x75\x6c\x6c\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x68\x6f\x76\x65\x72\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x69\x7a\x65\x4f\x66\x66\x73\x65\x74\x3a\x20\x33\x20\x7d\x20\x7d\x2c\x20\x6e\x6f\x44\x61\x74\x61\x3a\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x61\x6c\x69\x67\x6e\x3a\x20\x22\x63\x65\x6e\x74\x65\x72\x22\x2c\x20\x76\x65\x72\x74\x69\x63\x61\x6c\x41\x6c\x69\x67\x6e\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x34\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x2c\x20\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x3a\x20\x5b\x5d\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x74\x61\x74\x65\x73\x3a\x20\x7b\x20\x6e\x6f\x72\x6d\x61\x6c\x3a\x20\x7b\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x30\x20\x7d\x20\x7d\x2c\x20\x68\x6f\x76\x65\x72\x3a\x20\x7b\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x6c\x69\x67\x68\x74\x65\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x30\x2e\x31\x20\x7d\x20\x7d\x2c\x20\x61\x63\x74\x69\x76\x65\x3a\x20\x7b\x20\x61\x6c\x6c\x6f\x77\x4d\x75\x6c\x74\x69\x70\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x64\x61\x72\x6b\x65\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x30\x2e\x35\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x61\x6c\x69\x67\x6e\x3a\x20\x22\x6c\x65\x66\x74\x22\x2c\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x35\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x66\x6c\x6f\x61\x74\x69\x6e\x67\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x34\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x39\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x2c\x20\x73\x75\x62\x74\x69\x74\x6c\x65\x3a\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x61\x6c\x69\x67\x6e\x3a\x20\x22\x6c\x65\x66\x74\x22\x2c\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x35\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x33\x30\x2c\x20\x66\x6c\x6f\x61\x74\x69\x6e\x67\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x75\x72\x76\x65\x3a\x20\x22\x73\x6d\x6f\x6f\x74\x68\x22\x2c\x20\x6c\x69\x6e\x65\x43\x61\x70\x3a\x20\x22\x62\x75\x74\x74\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x30\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x6e\x76\x65\x72\x73\x65\x4f\x72\x64\x65\x72\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x75\x73\x74\x6f\x6d\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x69\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x65\x6d\x65\x3a\x20\x22\x6c\x69\x67\x68\x74\x22\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x6f\x6e\x44\x61\x74\x61\x73\x65\x74\x48\x6f\x76\x65\x72\x3a\x20\x7b\x20\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x78\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x64\x64\x20\x4d\x4d\x4d\x22\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x79\x3a\x20\x7b\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x7b\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3f\x20\x74\x33\x20\x2b\x20\x22\x3a\x20\x22\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x7a\x3a\x20\x7b\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x22\x53\x69\x7a\x65\x3a\x20\x22\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x2c\x20\x69\x74\x65\x6d\x73\x3a\x20\x7b\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x22\x66\x6c\x65\x78\x22\x20\x7d\x2c\x20\x66\x69\x78\x65\x64\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x74\x6f\x70\x52\x69\x67\x68\x74\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x20\x7d\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x2c\x20\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x43\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x72\x6f\x74\x61\x74\x65\x3a\x20\x2d\x34\x35\x2c\x20\x72\x6f\x74\x61\x74\x65\x41\x6c\x77\x61\x79\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x68\x69\x64\x65\x4f\x76\x65\x72\x6c\x61\x70\x70\x69\x6e\x67\x4c\x61\x62\x65\x6c\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x74\x72\x69\x6d\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6d\x69\x6e\x48\x65\x69\x67\x68\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x78\x48\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x30\x2c\x20\x73\x68\x6f\x77\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x20\x7d\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x55\x54\x43\x3a\x20\x74\x72\x75\x65\x2c\x20\x64\x61\x74\x65\x74\x69\x6d\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x7b\x20\x79\x65\x61\x72\x3a\x20\x22\x79\x79\x79\x79\x22\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x22\x4d\x4d\x4d\x20\x27\x79\x79\x22\x2c\x20\x64\x61\x79\x3a\x20\x22\x64\x64\x20\x4d\x4d\x4d\x22\x2c\x20\x68\x6f\x75\x72\x3a\x20\x22\x48\x48\x3a\x6d\x6d\x22\x2c\x20\x6d\x69\x6e\x75\x74\x65\x3a\x20\x22\x48\x48\x3a\x6d\x6d\x3a\x73\x73\x22\x2c\x20\x73\x65\x63\x6f\x6e\x64\x3a\x20\x22\x48\x48\x3a\x6d\x6d\x3a\x73\x73\x22\x20\x7d\x2c\x20\x67\x72\x6f\x75\x70\x3a\x20\x7b\x20\x67\x72\x6f\x75\x70\x73\x3a\x20\x5b\x5d\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x34\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x65\x30\x65\x30\x65\x30\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x22\x31\x30\x30\x25\x22\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x20\x7d\x2c\x20\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x65\x30\x65\x30\x65\x30\x22\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x36\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x20\x7d\x2c\x20\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x3a\x20\x22\x6f\x6e\x22\x2c\x20\x6d\x69\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6d\x61\x78\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x72\x61\x6e\x67\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6c\x6f\x61\x74\x69\x6e\x67\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x65\x63\x69\x6d\x61\x6c\x73\x49\x6e\x46\x6c\x6f\x61\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x58\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x39\x30\x30\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x22\x20\x7d\x20\x7d\x2c\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x62\x61\x63\x6b\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x39\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x62\x36\x62\x36\x62\x36\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x64\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x33\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x73\x6f\x6c\x69\x64\x22\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x42\x31\x42\x39\x43\x34\x22\x2c\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x46\x72\x6f\x6d\x3a\x20\x22\x23\x44\x38\x45\x33\x46\x30\x22\x2c\x20\x63\x6f\x6c\x6f\x72\x54\x6f\x3a\x20\x22\x23\x42\x45\x44\x31\x45\x36\x22\x2c\x20\x73\x74\x6f\x70\x73\x3a\x20\x5b\x30\x2c\x20\x31\x30\x30\x5d\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x3a\x20\x30\x2e\x34\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x3a\x20\x30\x2e\x35\x20\x7d\x20\x7d\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x65\x66\x74\x3a\x20\x30\x2c\x20\x74\x6f\x70\x3a\x20\x30\x2c\x20\x62\x6c\x75\x72\x3a\x20\x31\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x34\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x30\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x2c\x20\x74\x68\x65\x6d\x65\x3a\x20\x7b\x20\x6d\x6f\x64\x65\x3a\x20\x22\x6c\x69\x67\x68\x74\x22\x2c\x20\x70\x61\x6c\x65\x74\x74\x65\x3a\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x31\x22\x2c\x20\x6d\x6f\x6e\x6f\x63\x68\x72\x6f\x6d\x65\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x22\x23\x30\x30\x38\x46\x46\x42\x22\x2c\x20\x73\x68\x61\x64\x65\x54\x6f\x3a\x20\x22\x6c\x69\x67\x68\x74\x22\x2c\x20\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x30\x2e\x36\x35\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x50\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x77\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x65\x77\x20\x6b\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x65\x77\x20\x41\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x65\x77\x20\x53\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x73\x65\x64\x52\x65\x76\x65\x72\x73\x65\x64\x41\x78\x69\x73\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x41\x78\x65\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x64\x72\x61\x77\x59\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x64\x72\x61\x77\x58\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x72\x32\x20\x3d\x20\x5b\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x5b\x69\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x65\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x61\x32\x2e\x6e\x6f\x64\x65\x5d\x2c\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x33\x3b\x20\x6e\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x72\x32\x5b\x6e\x32\x5d\x29\x2c\x20\x21\x73\x32\x20\x7c\x7c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x7c\x7c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x7c\x7c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x26\x26\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3e\x20\x31\x20\x26\x26\x20\x6f\x32\x5b\x6e\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x65\x6c\x65\x6d\x65\x6e\x74\x2d\x68\x69\x64\x64\x65\x6e\x22\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x65\x6c\x3a\x20\x6f\x32\x5b\x6e\x32\x5d\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x30\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x49\x6d\x61\x67\x65\x41\x6e\x6e\x6f\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x69\x6d\x61\x67\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x64\x64\x49\x6d\x61\x67\x65\x28\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x54\x65\x78\x74\x41\x6e\x6e\x6f\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x74\x65\x78\x74\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x64\x64\x54\x65\x78\x74\x28\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x54\x65\x78\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x43\x6f\x6c\x6f\x72\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x70\x33\x20\x3d\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x2c\x20\x66\x32\x20\x3d\x20\x74\x33\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x2c\x20\x78\x32\x20\x3d\x20\x74\x33\x2e\x61\x70\x70\x65\x6e\x64\x54\x6f\x2c\x20\x62\x32\x20\x3d\x20\x78\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x20\x3a\x20\x78\x32\x2c\x20\x76\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x64\x64\x69\x6e\x67\x4c\x65\x66\x74\x2c\x20\x6d\x32\x20\x3d\x20\x76\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x34\x20\x3a\x20\x76\x32\x2c\x20\x79\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x64\x64\x69\x6e\x67\x52\x69\x67\x68\x74\x2c\x20\x77\x32\x20\x3d\x20\x79\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x34\x20\x3a\x20\x79\x32\x2c\x20\x6b\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x64\x64\x69\x6e\x67\x42\x6f\x74\x74\x6f\x6d\x2c\x20\x41\x32\x20\x3d\x20\x6b\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x32\x20\x3a\x20\x6b\x32\x2c\x20\x53\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x64\x64\x69\x6e\x67\x54\x6f\x70\x2c\x20\x43\x32\x20\x3d\x20\x53\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x32\x20\x3a\x20\x53\x32\x2c\x20\x4c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x50\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x69\x32\x2c\x20\x79\x3a\x20\x61\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x73\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x72\x32\x20\x7c\x7c\x20\x22\x73\x74\x61\x72\x74\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x6e\x32\x20\x7c\x7c\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x68\x33\x20\x7c\x7c\x20\x22\x72\x65\x67\x75\x6c\x61\x72\x22\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x6c\x32\x20\x7c\x7c\x20\x4c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x6f\x32\x20\x7c\x7c\x20\x4c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x63\x32\x20\x7d\x29\x2c\x20\x54\x32\x20\x3d\x20\x4c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x62\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x54\x32\x20\x26\x26\x20\x54\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x50\x32\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4d\x32\x20\x3d\x20\x50\x32\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x49\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x4d\x32\x2e\x78\x20\x2d\x20\x6d\x32\x2c\x20\x4d\x32\x2e\x79\x20\x2d\x20\x43\x32\x2c\x20\x4d\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x6d\x32\x20\x2b\x20\x77\x32\x2c\x20\x4d\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x41\x32\x20\x2b\x20\x43\x32\x2c\x20\x70\x33\x2c\x20\x64\x32\x20\x7c\x7c\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x2c\x20\x31\x2c\x20\x67\x32\x2c\x20\x66\x32\x2c\x20\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x32\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x49\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x50\x32\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x49\x6d\x61\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x73\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x6f\x32\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x32\x30\x20\x3a\x20\x6c\x32\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x64\x32\x20\x3d\x20\x63\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x32\x30\x20\x3a\x20\x63\x32\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x61\x70\x70\x65\x6e\x64\x54\x6f\x2c\x20\x75\x32\x20\x3d\x20\x67\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x20\x3a\x20\x67\x32\x2c\x20\x70\x33\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x69\x6d\x61\x67\x65\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x33\x2e\x73\x69\x7a\x65\x28\x68\x33\x2c\x20\x64\x32\x29\x2e\x6d\x6f\x76\x65\x28\x72\x32\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x32\x20\x26\x26\x20\x66\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x70\x33\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x70\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x28\x7b\x20\x70\x61\x72\x61\x6d\x73\x3a\x20\x74\x33\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x3a\x20\x65\x32\x2c\x20\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x69\x32\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x78\x61\x78\x69\x73\x22\x2c\x20\x63\x6f\x6e\x74\x65\x78\x74\x4d\x65\x74\x68\x6f\x64\x3a\x20\x69\x32\x2e\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x7d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x28\x7b\x20\x70\x61\x72\x61\x6d\x73\x3a\x20\x74\x33\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x3a\x20\x65\x32\x2c\x20\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x69\x32\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x79\x61\x78\x69\x73\x22\x2c\x20\x63\x6f\x6e\x74\x65\x78\x74\x4d\x65\x74\x68\x6f\x64\x3a\x20\x69\x32\x2e\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x7d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x41\x78\x69\x73\x20\x3d\x20\x69\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x28\x7b\x20\x70\x61\x72\x61\x6d\x73\x3a\x20\x74\x33\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x3a\x20\x65\x32\x2c\x20\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x69\x32\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x70\x6f\x69\x6e\x74\x22\x2c\x20\x63\x6f\x6e\x74\x65\x78\x74\x4d\x65\x74\x68\x6f\x64\x3a\x20\x69\x32\x2e\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x7d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x72\x61\x6d\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x74\x65\x78\x74\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x74\x79\x70\x65\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x74\x65\x78\x74\x4d\x65\x74\x68\x6f\x64\x2c\x20\x6f\x32\x20\x3d\x20\x61\x32\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x29\x29\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x2c\x20\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x4c\x28\x29\x2c\x20\x64\x32\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x73\x32\x20\x3d\x3d\x3d\x20\x22\x78\x61\x78\x69\x73\x22\x20\x3f\x20\x63\x32\x2e\x78\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3a\x20\x73\x32\x20\x3d\x3d\x3d\x20\x22\x79\x61\x78\x69\x73\x22\x20\x3f\x20\x63\x32\x2e\x79\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3a\x20\x63\x32\x2e\x70\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x29\x2c\x20\x67\x32\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x64\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x78\x61\x78\x69\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x67\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x79\x61\x78\x69\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x67\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x6f\x69\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x67\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x6c\x61\x62\x65\x6c\x5b\x72\x65\x6c\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x68\x33\x2c\x20\x22\x27\x5d\x22\x29\x29\x2c\x20\x70\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x61\x64\x64\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x54\x6f\x41\x6e\x6e\x6f\x28\x75\x32\x2c\x20\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x33\x20\x26\x26\x20\x6c\x32\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x70\x33\x2e\x6e\x6f\x64\x65\x2c\x20\x75\x32\x29\x2c\x20\x69\x32\x20\x26\x26\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x2e\x6d\x65\x74\x68\x6f\x64\x73\x54\x6f\x45\x78\x65\x63\x2e\x70\x75\x73\x68\x28\x7b\x20\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x6f\x32\x2c\x20\x69\x64\x3a\x20\x67\x32\x2e\x69\x64\x20\x3f\x20\x67\x32\x2e\x69\x64\x20\x3a\x20\x78\x2e\x72\x61\x6e\x64\x6f\x6d\x49\x64\x28\x29\x2c\x20\x6d\x65\x74\x68\x6f\x64\x3a\x20\x72\x32\x2c\x20\x6c\x61\x62\x65\x6c\x3a\x20\x22\x61\x64\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x70\x61\x72\x61\x6d\x73\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x65\x61\x72\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6f\x69\x6e\x74\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x2e\x6d\x65\x74\x68\x6f\x64\x73\x54\x6f\x45\x78\x65\x63\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x6c\x61\x62\x65\x6c\x20\x21\x3d\x3d\x20\x22\x61\x64\x64\x54\x65\x78\x74\x22\x20\x26\x26\x20\x74\x34\x2e\x6c\x61\x62\x65\x6c\x20\x21\x3d\x3d\x20\x22\x61\x64\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x20\x7c\x7c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x2e\x6d\x65\x74\x68\x6f\x64\x73\x54\x6f\x45\x78\x65\x63\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x33\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x20\x3d\x20\x78\x2e\x6c\x69\x73\x74\x54\x6f\x41\x72\x72\x61\x79\x28\x69\x32\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x2e\x63\x61\x6c\x6c\x28\x69\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x3b\x20\x74\x34\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x74\x34\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6d\x6f\x76\x65\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x26\x26\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x2e\x6d\x65\x74\x68\x6f\x64\x73\x54\x6f\x45\x78\x65\x63\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x69\x64\x20\x3d\x3d\x3d\x20\x65\x32\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x2e\x6d\x65\x74\x68\x6f\x64\x73\x54\x6f\x45\x78\x65\x63\x2e\x73\x70\x6c\x69\x63\x65\x28\x61\x33\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x2e\x63\x61\x6c\x6c\x28\x61\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x70\x61\x72\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x54\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x69\x70\x70\x65\x64\x49\x6d\x67\x41\x72\x65\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x61\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x2c\x20\x73\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x31\x30\x29\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x20\x3e\x20\x73\x32\x20\x3f\x20\x61\x32\x20\x3a\x20\x73\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x69\x6d\x61\x67\x65\x2c\x20\x6e\x32\x20\x3d\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x69\x32\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x77\x69\x64\x74\x68\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x68\x65\x69\x67\x68\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x28\x6e\x32\x20\x3d\x20\x69\x32\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x31\x2c\x20\x6c\x32\x20\x3d\x20\x69\x32\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x68\x65\x69\x67\x68\x74\x29\x20\x3a\x20\x28\x6e\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x31\x2c\x20\x6c\x32\x20\x3d\x20\x72\x32\x29\x20\x3a\x20\x28\x6e\x32\x20\x3d\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\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\x4e\x53\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x70\x61\x74\x74\x65\x72\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x68\x33\x2c\x20\x7b\x20\x69\x64\x3a\x20\x74\x33\x2e\x70\x61\x74\x74\x65\x72\x6e\x49\x44\x2c\x20\x70\x61\x74\x74\x65\x72\x6e\x55\x6e\x69\x74\x73\x3a\x20\x74\x33\x2e\x70\x61\x74\x74\x65\x72\x6e\x55\x6e\x69\x74\x73\x20\x3f\x20\x74\x33\x2e\x70\x61\x74\x74\x65\x72\x6e\x55\x6e\x69\x74\x73\x20\x3a\x20\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x6e\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x6c\x32\x20\x2b\x20\x22\x70\x78\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\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\x4e\x53\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x69\x6d\x61\x67\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x32\x29\x2c\x20\x63\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x77\x69\x6e\x64\x6f\x77\x2e\x53\x56\x47\x2e\x78\x6c\x69\x6e\x6b\x2c\x20\x22\x68\x72\x65\x66\x22\x2c\x20\x6f\x32\x29\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x63\x32\x2c\x20\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x70\x72\x65\x73\x65\x72\x76\x65\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x6e\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x6c\x32\x20\x2b\x20\x22\x70\x78\x22\x20\x7d\x29\x2c\x20\x63\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x74\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x44\x65\x66\x73\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x29\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x25\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x69\x6c\x6c\x50\x61\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x28\x29\x5b\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x5b\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x5b\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x6f\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x6f\x32\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x46\x69\x6c\x6c\x54\x79\x70\x65\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x29\x2c\x20\x6c\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x32\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x20\x3f\x20\x72\x32\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x5b\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x72\x32\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x67\x62\x22\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x3f\x20\x6f\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x39\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x78\x2e\x68\x65\x78\x54\x6f\x52\x67\x62\x61\x28\x6f\x32\x2c\x20\x6c\x32\x29\x29\x20\x3a\x20\x6f\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x67\x62\x61\x22\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x4f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x52\x47\x42\x41\x28\x6f\x32\x29\x29\x2c\x20\x74\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x2c\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x70\x61\x74\x74\x65\x72\x6e\x22\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x50\x61\x74\x74\x65\x72\x6e\x46\x69\x6c\x6c\x28\x61\x32\x2c\x20\x6f\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x29\x29\x2c\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x67\x72\x61\x64\x69\x65\x6e\x74\x22\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x47\x72\x61\x64\x69\x65\x6e\x74\x46\x69\x6c\x6c\x28\x6f\x32\x2c\x20\x6c\x32\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x29\x29\x2c\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x69\x6d\x61\x67\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x73\x72\x63\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x74\x65\x72\x6e\x49\x44\x20\x3f\x20\x74\x33\x2e\x70\x61\x74\x74\x65\x72\x6e\x49\x44\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6c\x69\x70\x70\x65\x64\x49\x6d\x67\x41\x72\x65\x61\x28\x7b\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x6c\x32\x2c\x20\x69\x6d\x61\x67\x65\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x29\x20\x3f\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x3c\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x63\x32\x5b\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x5d\x20\x3a\x20\x63\x32\x5b\x30\x5d\x20\x3a\x20\x63\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x3f\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x70\x61\x74\x74\x65\x72\x6e\x55\x6e\x69\x74\x73\x3a\x20\x74\x33\x2e\x70\x61\x74\x74\x65\x72\x6e\x55\x6e\x69\x74\x73\x2c\x20\x70\x61\x74\x74\x65\x72\x6e\x49\x44\x3a\x20\x22\x70\x61\x74\x74\x65\x72\x6e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x2b\x20\x31\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x64\x32\x29\x20\x7d\x29\x2c\x20\x69\x32\x20\x3d\x20\x22\x75\x72\x6c\x28\x23\x70\x61\x74\x74\x65\x72\x6e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x2b\x20\x31\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x64\x32\x2c\x20\x22\x29\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x67\x72\x61\x64\x69\x65\x6e\x74\x22\x20\x3f\x20\x73\x32\x20\x3a\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x70\x61\x74\x74\x65\x72\x6e\x22\x20\x3f\x20\x61\x32\x20\x3a\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x73\x6f\x6c\x69\x64\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x68\x33\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x46\x69\x6c\x6c\x54\x79\x70\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x74\x79\x70\x65\x29\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x74\x79\x70\x65\x5b\x74\x33\x5d\x20\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2c\x20\x61\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x3f\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3a\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3a\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x3a\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x3f\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3a\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3a\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x2c\x20\x69\x32\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x69\x32\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x20\x3a\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x69\x32\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x29\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x50\x61\x74\x74\x65\x72\x6e\x46\x69\x6c\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x29\x20\x3f\x20\x73\x32\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x5b\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x73\x32\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x20\x3f\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x5b\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x74\x79\x6c\x65\x29\x20\x3f\x20\x74\x33\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x74\x79\x6c\x65\x5b\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6f\x32\x2e\x64\x72\x61\x77\x50\x61\x74\x74\x65\x72\x6e\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x74\x79\x6c\x65\x5b\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x5d\x2c\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x77\x69\x64\x74\x68\x2c\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x6c\x32\x2c\x20\x6e\x32\x2c\x20\x69\x32\x29\x20\x3a\x20\x61\x32\x20\x3a\x20\x74\x33\x20\x3d\x20\x6f\x32\x2e\x64\x72\x61\x77\x50\x61\x74\x74\x65\x72\x6e\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x73\x74\x79\x6c\x65\x2c\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x77\x69\x64\x74\x68\x2c\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x70\x61\x74\x74\x65\x72\x6e\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x6c\x32\x2c\x20\x6e\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x47\x72\x61\x64\x69\x65\x6e\x74\x46\x69\x6c\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x78\x28\x29\x2c\x20\x6c\x32\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x74\x79\x70\x65\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2c\x20\x63\x32\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x20\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x29\x20\x3f\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x5b\x69\x32\x5d\x20\x3a\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x67\x62\x61\x22\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x4f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x52\x47\x42\x41\x28\x68\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x20\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x29\x20\x3f\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x5b\x69\x32\x5d\x20\x3a\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x6f\x43\x6f\x6c\x6f\x72\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x6f\x43\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x73\x68\x61\x64\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x72\x6b\x22\x20\x3f\x20\x6e\x32\x2e\x73\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x28\x2d\x31\x20\x2a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x29\x2c\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x67\x62\x22\x29\x20\x3e\x20\x2d\x31\x20\x3f\x20\x78\x2e\x72\x67\x62\x32\x68\x65\x78\x28\x74\x33\x29\x20\x3a\x20\x74\x33\x29\x20\x3a\x20\x6e\x32\x2e\x73\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x28\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x29\x2c\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x67\x62\x22\x29\x20\x3e\x20\x2d\x31\x20\x3f\x20\x78\x2e\x72\x67\x62\x32\x68\x65\x78\x28\x74\x33\x29\x20\x3a\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x6f\x43\x6f\x6c\x6f\x72\x73\x5b\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x6f\x43\x6f\x6c\x6f\x72\x73\x5b\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x67\x32\x2c\x20\x67\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x67\x62\x61\x22\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x4f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x52\x47\x42\x41\x28\x67\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x69\x6e\x76\x65\x72\x73\x65\x43\x6f\x6c\x6f\x72\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x61\x32\x2c\x20\x61\x32\x20\x3d\x20\x75\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x67\x62\x22\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x78\x2e\x72\x67\x62\x32\x68\x65\x78\x28\x68\x33\x29\x29\x2c\x20\x61\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x67\x62\x22\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x78\x2e\x72\x67\x62\x32\x68\x65\x78\x28\x61\x32\x29\x29\x2c\x20\x6f\x32\x2e\x64\x72\x61\x77\x47\x72\x61\x64\x69\x65\x6e\x74\x28\x6c\x32\x2c\x20\x68\x33\x2c\x20\x61\x32\x2c\x20\x63\x32\x2c\x20\x64\x32\x2c\x20\x72\x32\x2e\x73\x69\x7a\x65\x2c\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x73\x74\x6f\x70\x73\x2c\x20\x73\x32\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2e\x63\x6f\x6c\x6f\x72\x53\x74\x6f\x70\x73\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x4d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x47\x6c\x6f\x62\x61\x6c\x4d\x61\x72\x6b\x65\x72\x53\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x29\x20\x3f\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x20\x3a\x20\x5b\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5d\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x30\x3b\x20\x65\x32\x20\x3c\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x65\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x2e\x70\x75\x73\x68\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x6c\x6f\x74\x43\x68\x61\x72\x74\x4d\x61\x72\x6b\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x2c\x20\x72\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2c\x20\x68\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x64\x32\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x64\x69\x73\x63\x72\x65\x74\x65\x20\x26\x26\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x64\x69\x73\x63\x72\x65\x74\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x65\x32\x5d\x20\x3e\x20\x30\x20\x7c\x7c\x20\x72\x32\x20\x7c\x7c\x20\x64\x32\x29\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x63\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x72\x32\x20\x7c\x7c\x20\x64\x32\x20\x3f\x20\x22\x22\x20\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x22\x20\x7d\x29\x29\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6c\x32\x2e\x78\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x6c\x32\x2e\x78\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x67\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x30\x29\x2c\x20\x69\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x67\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x26\x26\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x61\x72\x65\x61\x22\x20\x7c\x7c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x7c\x7c\x20\x28\x70\x33\x20\x2b\x3d\x20\x22\x20\x6e\x6f\x2d\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x29\x20\x3f\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x65\x32\x5d\x20\x3e\x20\x30\x20\x3a\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x20\x3e\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x32\x20\x7c\x7c\x20\x72\x32\x20\x7c\x7c\x20\x64\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x6c\x32\x2e\x79\x5b\x67\x32\x5d\x29\x20\x3f\x20\x70\x33\x20\x2b\x3d\x20\x22\x20\x77\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x78\x2e\x72\x61\x6e\x64\x6f\x6d\x49\x64\x28\x29\x29\x20\x3a\x20\x70\x33\x20\x3d\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6e\x75\x6c\x6c\x70\x6f\x69\x6e\x74\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4d\x61\x72\x6b\x65\x72\x43\x6f\x6e\x66\x69\x67\x28\x7b\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x70\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x75\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x75\x32\x5d\x20\x26\x26\x20\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x75\x32\x5d\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x20\x26\x26\x20\x28\x62\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x75\x32\x5d\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x29\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x75\x32\x5d\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x26\x26\x20\x28\x62\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x75\x32\x5d\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x29\x29\x2c\x20\x61\x32\x20\x26\x26\x20\x28\x62\x32\x2e\x70\x53\x69\x7a\x65\x20\x3d\x20\x61\x32\x29\x2c\x20\x28\x73\x32\x20\x3d\x20\x63\x32\x2e\x64\x72\x61\x77\x4d\x61\x72\x6b\x65\x72\x28\x6c\x32\x2e\x78\x5b\x67\x32\x5d\x2c\x20\x6c\x32\x2e\x79\x5b\x67\x32\x5d\x2c\x20\x62\x32\x29\x29\x2e\x61\x74\x74\x72\x28\x22\x72\x65\x6c\x22\x2c\x20\x75\x32\x29\x2c\x20\x73\x32\x2e\x61\x74\x74\x72\x28\x22\x6a\x22\x2c\x20\x75\x32\x29\x2c\x20\x73\x32\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x64\x65\x78\x22\x2c\x20\x65\x32\x29\x2c\x20\x73\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x65\x66\x61\x75\x6c\x74\x2d\x6d\x61\x72\x6b\x65\x72\x2d\x73\x69\x7a\x65\x22\x2c\x20\x62\x32\x2e\x70\x53\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x32\x2e\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x46\x69\x6c\x74\x65\x72\x28\x73\x32\x2c\x20\x65\x32\x2c\x20\x75\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x73\x28\x73\x32\x29\x2c\x20\x68\x33\x20\x26\x26\x20\x68\x33\x2e\x61\x64\x64\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x6f\x69\x6e\x74\x73\x41\x72\x72\x61\x79\x5b\x65\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x6f\x69\x6e\x74\x73\x41\x72\x72\x61\x79\x5b\x65\x32\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x6f\x69\x6e\x74\x73\x41\x72\x72\x61\x79\x5b\x65\x32\x5d\x2e\x70\x75\x73\x68\x28\x5b\x6c\x32\x2e\x78\x5b\x67\x32\x5d\x2c\x20\x6c\x32\x2e\x79\x5b\x67\x32\x5d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4d\x61\x72\x6b\x65\x72\x43\x6f\x6e\x66\x69\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x61\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x6e\x69\x73\x68\x52\x61\x64\x69\x75\x73\x2c\x20\x6f\x32\x20\x3d\x20\x72\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x72\x32\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4d\x61\x72\x6b\x65\x72\x53\x74\x79\x6c\x65\x28\x69\x32\x29\x2c\x20\x68\x33\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x69\x32\x5d\x2c\x20\x63\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x63\x32\x2e\x64\x69\x73\x63\x72\x65\x74\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x63\x32\x2e\x64\x69\x73\x63\x72\x65\x74\x65\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x3d\x3d\x20\x69\x32\x20\x26\x26\x20\x74\x34\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x20\x3d\x3d\x3d\x20\x73\x32\x20\x26\x26\x20\x28\x6c\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x74\x34\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x6c\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x74\x34\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x2c\x20\x68\x33\x20\x3d\x20\x74\x34\x2e\x73\x69\x7a\x65\x2c\x20\x6c\x32\x2e\x70\x6f\x69\x6e\x74\x53\x68\x61\x70\x65\x20\x3d\x20\x74\x34\x2e\x73\x68\x61\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x7b\x20\x70\x53\x69\x7a\x65\x3a\x20\x6f\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x68\x33\x20\x3a\x20\x6f\x32\x2c\x20\x70\x52\x61\x64\x69\x75\x73\x3a\x20\x63\x32\x2e\x72\x61\x64\x69\x75\x73\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x77\x69\x64\x74\x68\x29\x20\x3f\x20\x63\x32\x2e\x77\x69\x64\x74\x68\x5b\x69\x32\x5d\x20\x3a\x20\x63\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x20\x3f\x20\x63\x32\x2e\x68\x65\x69\x67\x68\x74\x5b\x69\x32\x5d\x20\x3a\x20\x63\x32\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x20\x3f\x20\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x5b\x69\x32\x5d\x20\x3a\x20\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x6c\x32\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3a\x20\x6c\x32\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x2c\x20\x73\x68\x61\x70\x65\x3a\x20\x6c\x32\x2e\x70\x6f\x69\x6e\x74\x53\x68\x61\x70\x65\x20\x7c\x7c\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x73\x68\x61\x70\x65\x29\x20\x3f\x20\x63\x32\x2e\x73\x68\x61\x70\x65\x5b\x69\x32\x5d\x20\x3a\x20\x63\x32\x2e\x73\x68\x61\x70\x65\x29\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x65\x32\x2c\x20\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x29\x20\x3f\x20\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x5b\x69\x32\x5d\x20\x3a\x20\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x2c\x20\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x29\x20\x3f\x20\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x5b\x69\x32\x5d\x20\x3a\x20\x63\x32\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x29\x20\x3f\x20\x63\x32\x2e\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x5b\x69\x32\x5d\x20\x3a\x20\x63\x32\x2e\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x45\x76\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x2c\x20\x69\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x69\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x69\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x44\x6f\x77\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x6e\x43\x6c\x69\x63\x6b\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x64\x62\x6c\x63\x6c\x69\x63\x6b\x22\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x6e\x44\x62\x6c\x43\x6c\x69\x63\x6b\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x2c\x20\x69\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x44\x6f\x77\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x74\x33\x29\x2c\x20\x7b\x20\x70\x61\x73\x73\x69\x76\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4d\x61\x72\x6b\x65\x72\x53\x74\x79\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x32\x29\x20\x3f\x20\x61\x32\x5b\x74\x33\x5d\x20\x3a\x20\x61\x32\x2c\x20\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x69\x32\x29\x20\x3f\x20\x69\x32\x5b\x74\x33\x5d\x20\x3a\x20\x69\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x49\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x70\x6f\x69\x6e\x74\x73\x50\x6f\x73\x2c\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x7a\x52\x61\x74\x69\x6f\x2c\x20\x6c\x32\x20\x3d\x20\x69\x32\x2e\x65\x6c\x50\x61\x72\x65\x6e\x74\x2c\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x33\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x32\x2e\x78\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x6f\x32\x2e\x78\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x63\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x65\x32\x20\x2b\x20\x31\x2c\x20\x67\x32\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x63\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x30\x29\x2c\x20\x65\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x63\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x30\x2c\x20\x70\x33\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x72\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x20\x21\x3d\x3d\x20\x31\x20\x2f\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x72\x32\x5d\x5b\x64\x32\x5d\x20\x2f\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x75\x62\x62\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x32\x2e\x6d\x69\x6e\x42\x75\x62\x62\x6c\x65\x52\x61\x64\x69\x75\x73\x20\x26\x26\x20\x70\x33\x20\x3c\x20\x66\x32\x2e\x6d\x69\x6e\x42\x75\x62\x62\x6c\x65\x52\x61\x64\x69\x75\x73\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x66\x32\x2e\x6d\x69\x6e\x42\x75\x62\x62\x6c\x65\x52\x61\x64\x69\x75\x73\x29\x2c\x20\x66\x32\x2e\x6d\x61\x78\x42\x75\x62\x62\x6c\x65\x52\x61\x64\x69\x75\x73\x20\x26\x26\x20\x70\x33\x20\x3e\x20\x66\x32\x2e\x6d\x61\x78\x42\x75\x62\x62\x6c\x65\x52\x61\x64\x69\x75\x73\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x66\x32\x2e\x6d\x61\x78\x42\x75\x62\x62\x6c\x65\x52\x61\x64\x69\x75\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x28\x75\x32\x20\x3d\x20\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x6f\x32\x2e\x78\x5b\x63\x32\x5d\x2c\x20\x62\x32\x20\x3d\x20\x6f\x32\x2e\x79\x5b\x63\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x75\x32\x20\x3d\x20\x75\x32\x20\x7c\x7c\x20\x30\x2c\x20\x62\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x72\x32\x5d\x5b\x64\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x28\x67\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x67\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x28\x78\x32\x2c\x20\x62\x32\x2c\x20\x75\x32\x2c\x20\x70\x33\x2c\x20\x72\x32\x2c\x20\x64\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x61\x64\x64\x28\x76\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x61\x64\x64\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x73\x32\x2c\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x62\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x64\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x67\x32\x20\x3d\x20\x6e\x65\x77\x20\x4d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x75\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x70\x33\x20\x3d\x20\x67\x32\x2e\x67\x65\x74\x4d\x61\x72\x6b\x65\x72\x43\x6f\x6e\x66\x69\x67\x28\x7b\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x6c\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x66\x69\x6e\x69\x73\x68\x52\x61\x64\x69\x75\x73\x3a\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x7c\x7c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x73\x32\x5d\x20\x26\x26\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x73\x32\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x3f\x20\x61\x32\x20\x3a\x20\x6e\x75\x6c\x6c\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x70\x33\x2e\x70\x53\x69\x7a\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x2c\x20\x78\x32\x20\x3d\x20\x64\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x2c\x20\x70\x61\x74\x74\x65\x72\x6e\x55\x6e\x69\x74\x73\x3a\x20\x22\x6f\x62\x6a\x65\x63\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x42\x6f\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x73\x32\x5d\x5b\x6f\x32\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x33\x2e\x73\x68\x61\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x20\x3f\x20\x66\x32\x20\x3d\x20\x75\x32\x2e\x64\x72\x61\x77\x43\x69\x72\x63\x6c\x65\x28\x69\x32\x29\x20\x3a\x20\x70\x33\x2e\x73\x68\x61\x70\x65\x20\x21\x3d\x3d\x20\x22\x73\x71\x75\x61\x72\x65\x22\x20\x26\x26\x20\x70\x33\x2e\x73\x68\x61\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x65\x63\x74\x22\x20\x7c\x7c\x20\x28\x66\x32\x20\x3d\x20\x75\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x30\x2c\x20\x30\x2c\x20\x70\x33\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x70\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x70\x33\x2e\x70\x52\x61\x64\x69\x75\x73\x29\x29\x2c\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6c\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x20\x26\x26\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6c\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x20\x26\x26\x20\x28\x78\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6c\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x29\x2c\x20\x66\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x74\x33\x20\x2d\x20\x70\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2d\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x79\x3a\x20\x65\x32\x20\x2d\x20\x70\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2d\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x63\x78\x3a\x20\x74\x33\x2c\x20\x63\x79\x3a\x20\x65\x32\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x78\x32\x2c\x20\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x46\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x72\x3a\x20\x61\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x3a\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x70\x33\x2e\x70\x6f\x69\x6e\x74\x53\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x20\x7d\x29\x2c\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x66\x32\x2c\x20\x79\x32\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x7c\x7c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x7c\x7c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x61\x6e\x69\x6d\x61\x74\x65\x4d\x61\x72\x6b\x65\x72\x28\x66\x32\x2c\x20\x30\x2c\x20\x70\x33\x2e\x73\x68\x61\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x20\x3f\x20\x61\x32\x20\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x70\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x70\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x2c\x20\x77\x32\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6e\x64\x6f\x77\x2e\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64\x28\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x31\x30\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x26\x26\x20\x70\x33\x2e\x73\x68\x61\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x2c\x20\x41\x32\x2c\x20\x53\x32\x2c\x20\x43\x32\x2c\x20\x4c\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x73\x70\x65\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x43\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x73\x32\x5d\x20\x26\x26\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x73\x32\x5d\x5b\x6f\x32\x5d\x29\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x6b\x32\x20\x3d\x20\x43\x32\x2e\x78\x2c\x20\x41\x32\x20\x3d\x20\x43\x32\x2e\x79\x2c\x20\x53\x32\x20\x3d\x20\x43\x32\x2e\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x43\x32\x2e\x72\x20\x3a\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x50\x32\x20\x3d\x20\x30\x3b\x20\x50\x32\x20\x3c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x50\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x5b\x50\x32\x5d\x2e\x69\x6e\x64\x65\x78\x20\x3d\x3d\x3d\x20\x73\x32\x20\x26\x26\x20\x28\x4c\x32\x20\x3d\x20\x31\x2c\x20\x61\x32\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x65\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x30\x29\x2c\x20\x68\x33\x2e\x61\x6e\x69\x6d\x61\x74\x65\x43\x69\x72\x63\x6c\x65\x28\x66\x32\x2c\x20\x7b\x20\x63\x78\x3a\x20\x6b\x32\x2c\x20\x63\x79\x3a\x20\x41\x32\x2c\x20\x72\x3a\x20\x53\x32\x20\x7d\x2c\x20\x7b\x20\x63\x78\x3a\x20\x74\x33\x2c\x20\x63\x79\x3a\x20\x65\x32\x2c\x20\x72\x3a\x20\x61\x32\x20\x7d\x2c\x20\x4c\x32\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x3a\x20\x61\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x65\x6c\x3a\x20\x72\x32\x2c\x20\x6a\x3a\x20\x72\x32\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x22\x64\x65\x66\x61\x75\x6c\x74\x2d\x6d\x61\x72\x6b\x65\x72\x2d\x73\x69\x7a\x65\x22\x3a\x20\x61\x32\x20\x7d\x29\x2c\x20\x63\x32\x2e\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x46\x69\x6c\x74\x65\x72\x28\x66\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x2c\x20\x67\x32\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x73\x28\x66\x32\x29\x2c\x20\x66\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x2c\x20\x66\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x65\x6e\x74\x65\x72\x54\x65\x78\x74\x49\x6e\x42\x75\x62\x62\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x79\x3a\x20\x74\x33\x20\x2b\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x20\x2f\x20\x34\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x7a\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x69\x32\x2c\x20\x6f\x32\x29\x2c\x20\x63\x32\x20\x3d\x20\x68\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x64\x32\x20\x3d\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x30\x29\x2c\x20\x65\x32\x20\x3e\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x64\x32\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x64\x32\x20\x2f\x20\x32\x29\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x5b\x61\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x5b\x61\x32\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x5b\x61\x32\x5d\x2e\x70\x75\x73\x68\x28\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x63\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x64\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x5b\x61\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x32\x2c\x20\x75\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x44\x72\x61\x77\x6e\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x64\x65\x78\x65\x73\x5b\x61\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x44\x72\x61\x77\x6e\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x64\x65\x78\x65\x73\x5b\x61\x32\x5d\x5b\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x44\x72\x61\x77\x6e\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x64\x65\x78\x65\x73\x5b\x61\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x5b\x61\x32\x5d\x5b\x67\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x5b\x61\x32\x5d\x5b\x75\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x74\x33\x20\x3e\x20\x70\x33\x2e\x78\x20\x2b\x20\x70\x33\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x32\x20\x7c\x7c\x20\x65\x32\x20\x3e\x20\x70\x33\x2e\x79\x20\x2b\x20\x70\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x32\x20\x7c\x7c\x20\x74\x33\x20\x2b\x20\x63\x32\x20\x3c\x20\x70\x33\x2e\x78\x29\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x73\x32\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x72\x32\x29\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x32\x2c\x20\x74\x65\x78\x74\x52\x65\x63\x74\x73\x3a\x20\x68\x33\x2c\x20\x64\x72\x61\x77\x6e\x65\x78\x74\x4c\x61\x62\x65\x6c\x3a\x20\x6c\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x3a\x20\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2c\x20\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x69\x32\x2c\x20\x64\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6e\x32\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x21\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x78\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x32\x20\x3d\x20\x6f\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x2d\x6c\x61\x62\x65\x6c\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x74\x33\x2e\x78\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x20\x3d\x20\x74\x33\x2e\x78\x5b\x67\x32\x5d\x20\x2b\x20\x6e\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x79\x5b\x67\x32\x5d\x20\x2b\x20\x6e\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x73\x32\x2c\x20\x21\x69\x73\x4e\x61\x4e\x28\x6c\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x67\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x30\x29\x2c\x20\x69\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x67\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x5b\x63\x32\x5d\x2c\x20\x70\x33\x20\x3d\x20\x22\x22\x2c\x20\x66\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x74\x34\x2c\x20\x7b\x20\x63\x74\x78\x3a\x20\x61\x32\x2e\x63\x74\x78\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x63\x32\x2c\x20\x77\x3a\x20\x72\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x66\x32\x28\x75\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x5b\x63\x32\x5d\x29\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x79\x5b\x67\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x6e\x65\x77\x20\x49\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x62\x32\x20\x3d\x20\x78\x32\x2e\x63\x65\x6e\x74\x65\x72\x54\x65\x78\x74\x49\x6e\x42\x75\x62\x62\x6c\x65\x28\x68\x33\x2c\x20\x65\x32\x2c\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x62\x32\x2e\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x66\x32\x28\x75\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6c\x6f\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x6c\x32\x2c\x20\x79\x3a\x20\x68\x33\x2c\x20\x74\x65\x78\x74\x3a\x20\x70\x33\x2c\x20\x69\x3a\x20\x65\x32\x2c\x20\x6a\x3a\x20\x63\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x64\x32\x2c\x20\x6f\x66\x66\x73\x65\x74\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x3a\x20\x74\x72\x75\x65\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x3a\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x6c\x6f\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x72\x65\x6e\x74\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x61\x6c\x77\x61\x79\x73\x44\x72\x61\x77\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x2c\x20\x70\x33\x20\x3d\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x29\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x72\x32\x29\x20\x3c\x20\x30\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x61\x32\x2c\x20\x79\x3a\x20\x73\x32\x2c\x20\x64\x72\x61\x77\x6e\x65\x78\x74\x4c\x61\x62\x65\x6c\x3a\x20\x74\x72\x75\x65\x2c\x20\x74\x65\x78\x74\x52\x65\x63\x74\x73\x3a\x20\x6e\x75\x6c\x6c\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x26\x26\x20\x28\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x28\x61\x32\x2c\x20\x73\x32\x2c\x20\x6e\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x2c\x20\x75\x32\x2c\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x64\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x29\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x7c\x7c\x20\x28\x61\x32\x20\x3d\x20\x66\x32\x2e\x78\x2c\x20\x73\x32\x20\x3d\x20\x66\x32\x2e\x79\x29\x2c\x20\x66\x32\x2e\x74\x65\x78\x74\x52\x65\x63\x74\x73\x20\x26\x26\x20\x28\x61\x32\x20\x3c\x20\x2d\x31\x30\x20\x2d\x20\x66\x32\x2e\x74\x65\x78\x74\x52\x65\x63\x74\x73\x2e\x77\x69\x64\x74\x68\x20\x7c\x7c\x20\x61\x32\x20\x3e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x66\x32\x2e\x74\x65\x78\x74\x52\x65\x63\x74\x73\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x31\x30\x29\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x72\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x29\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x29\x20\x26\x26\x20\x28\x78\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6f\x32\x5d\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x78\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x78\x32\x20\x3d\x20\x78\x32\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x6f\x32\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x29\x2c\x20\x67\x32\x20\x26\x26\x20\x28\x78\x32\x20\x3d\x20\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x64\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x79\x32\x20\x3d\x20\x64\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x7c\x7c\x20\x28\x62\x32\x20\x3d\x20\x30\x2c\x20\x79\x32\x20\x3d\x20\x30\x29\x2c\x20\x66\x32\x2e\x64\x72\x61\x77\x6e\x65\x78\x74\x4c\x61\x62\x65\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x30\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x64\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x2c\x20\x78\x3a\x20\x61\x32\x20\x2b\x20\x62\x32\x2c\x20\x79\x3a\x20\x73\x32\x20\x2b\x20\x79\x32\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x78\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x6c\x32\x20\x7c\x7c\x20\x64\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x74\x65\x78\x74\x3a\x20\x6e\x32\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x68\x33\x20\x7c\x7c\x20\x64\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x64\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x64\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x20\x7c\x7c\x20\x22\x6e\x6f\x72\x6d\x61\x6c\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x77\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x22\x2c\x20\x63\x78\x3a\x20\x61\x32\x2c\x20\x63\x79\x3a\x20\x73\x32\x20\x7d\x29\x2c\x20\x64\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x64\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x77\x32\x2c\x20\x6b\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x61\x64\x64\x28\x77\x32\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x44\x72\x61\x77\x6e\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x64\x65\x78\x65\x73\x5b\x72\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x44\x72\x61\x77\x6e\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x64\x65\x78\x65\x73\x5b\x72\x32\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x44\x72\x61\x77\x6e\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x64\x65\x78\x65\x73\x5b\x72\x32\x5d\x2e\x70\x75\x73\x68\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x54\x6f\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x70\x61\x64\x64\x69\x6e\x67\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x70\x61\x64\x64\x69\x6e\x67\x20\x2f\x20\x32\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x65\x32\x2e\x78\x20\x2d\x20\x73\x32\x2c\x20\x65\x32\x2e\x79\x20\x2d\x20\x72\x32\x20\x2f\x20\x32\x2c\x20\x6f\x32\x20\x2b\x20\x32\x20\x2a\x20\x73\x32\x2c\x20\x6e\x32\x20\x2b\x20\x72\x32\x2c\x20\x61\x32\x2e\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3d\x3d\x3d\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x20\x3f\x20\x22\x23\x66\x66\x66\x22\x20\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2c\x20\x61\x32\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x61\x32\x2e\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x2c\x20\x61\x32\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x6c\x32\x2c\x20\x61\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x20\x74\x65\x78\x74\x22\x29\x2c\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x5b\x69\x32\x5d\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x77\x69\x64\x74\x68\x20\x26\x26\x20\x73\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x54\x6f\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x28\x61\x32\x2c\x20\x73\x32\x29\x29\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x72\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x6c\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x21\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x26\x26\x20\x21\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x3f\x20\x72\x32\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x6f\x32\x20\x7d\x29\x20\x3a\x20\x72\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x6f\x32\x20\x7d\x29\x2c\x20\x61\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x6c\x22\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x62\x72\x69\x6e\x67\x46\x6f\x72\x77\x61\x72\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x3a\x6c\x61\x73\x74\x2d\x63\x68\x69\x6c\x64\x22\x29\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x26\x26\x20\x69\x32\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x65\x32\x5b\x61\x32\x5d\x2c\x20\x69\x32\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x58\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x42\x61\x72\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x76\x69\x73\x69\x62\x6c\x65\x53\x65\x72\x69\x65\x73\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x6e\x64\x65\x72\x65\x64\x50\x61\x74\x68\x2c\x20\x70\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x66\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x78\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x5b\x6e\x32\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x62\x32\x20\x3d\x20\x65\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x32\x20\x2a\x20\x67\x32\x29\x2c\x20\x76\x32\x20\x3d\x20\x69\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x68\x33\x20\x2a\x20\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x21\x70\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x62\x32\x20\x3d\x20\x65\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x32\x20\x2a\x20\x28\x67\x32\x20\x2b\x20\x31\x29\x29\x2c\x20\x76\x32\x20\x3d\x20\x69\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x68\x33\x20\x2a\x20\x28\x67\x32\x20\x2b\x20\x31\x29\x29\x20\x2d\x20\x78\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x65\x32\x2c\x20\x77\x32\x20\x3d\x20\x69\x32\x2c\x20\x6b\x32\x20\x3d\x20\x7b\x7d\x2c\x20\x41\x32\x20\x3d\x20\x70\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2c\x20\x53\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x26\x26\x20\x28\x76\x32\x20\x3d\x20\x64\x32\x2c\x20\x77\x32\x20\x3d\x20\x64\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x43\x32\x20\x3d\x20\x41\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x4c\x32\x20\x3d\x20\x41\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x50\x32\x20\x3d\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x54\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x5b\x72\x32\x5d\x5b\x6f\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x50\x32\x20\x3d\x20\x66\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x70\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x30\x5d\x28\x54\x32\x29\x2c\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x41\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4d\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x65\x32\x2c\x20\x79\x3a\x20\x69\x32\x2c\x20\x69\x3a\x20\x72\x32\x2c\x20\x6a\x3a\x20\x6f\x32\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x64\x50\x61\x74\x68\x3a\x20\x75\x32\x2c\x20\x62\x63\x78\x3a\x20\x62\x32\x2c\x20\x62\x63\x79\x3a\x20\x76\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x68\x33\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x63\x32\x2c\x20\x74\x65\x78\x74\x52\x65\x63\x74\x73\x3a\x20\x50\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x78\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x58\x3a\x20\x79\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x59\x3a\x20\x77\x32\x2c\x20\x62\x61\x72\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x3a\x20\x53\x32\x2c\x20\x6f\x66\x66\x58\x3a\x20\x43\x32\x2c\x20\x6f\x66\x66\x59\x3a\x20\x4c\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6b\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x42\x61\x72\x73\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x4d\x32\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x43\x6f\x6c\x75\x6d\x6e\x73\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x4d\x32\x29\x2c\x20\x75\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x79\x3a\x20\x6b\x32\x2e\x62\x63\x79\x2c\x20\x63\x78\x3a\x20\x6b\x32\x2e\x62\x63\x78\x2c\x20\x6a\x3a\x20\x6f\x32\x2c\x20\x76\x61\x6c\x3a\x20\x6c\x32\x5b\x72\x32\x5d\x5b\x6f\x32\x5d\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x68\x33\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x63\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x43\x61\x6c\x63\x75\x6c\x61\x74\x65\x64\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x28\x7b\x20\x78\x3a\x20\x6b\x32\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x58\x2c\x20\x79\x3a\x20\x6b\x32\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x59\x2c\x20\x76\x61\x6c\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3f\x20\x5b\x61\x32\x2c\x20\x73\x32\x5d\x20\x3a\x20\x6c\x32\x5b\x72\x32\x5d\x5b\x6f\x32\x5d\x2c\x20\x69\x3a\x20\x6e\x32\x2c\x20\x6a\x3a\x20\x6f\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x63\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x68\x33\x2c\x20\x74\x65\x78\x74\x52\x65\x63\x74\x73\x3a\x20\x50\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x3a\x20\x41\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x43\x6f\x6c\x75\x6d\x6e\x73\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x62\x63\x78\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x52\x65\x63\x74\x73\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x59\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x6f\x66\x66\x58\x2c\x20\x70\x33\x20\x3d\x20\x74\x33\x2e\x6f\x66\x66\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x2d\x3d\x20\x67\x32\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x6f\x32\x20\x2d\x20\x6e\x32\x20\x2f\x20\x32\x20\x2b\x20\x75\x32\x20\x3a\x20\x6f\x32\x20\x2d\x20\x78\x32\x20\x2b\x20\x6e\x32\x20\x2f\x20\x32\x20\x2b\x20\x75\x32\x2c\x20\x66\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x65\x32\x20\x2b\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2d\x20\x67\x32\x20\x2f\x20\x32\x20\x2d\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x3c\x20\x30\x2c\x20\x76\x32\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x28\x76\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x6c\x32\x20\x2b\x20\x28\x62\x32\x20\x3f\x20\x32\x20\x2a\x20\x6c\x32\x20\x3a\x20\x30\x29\x2c\x20\x72\x32\x20\x2d\x3d\x20\x6c\x32\x29\x2c\x20\x64\x32\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x65\x6e\x74\x65\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x66\x32\x20\x3f\x20\x62\x32\x20\x3f\x20\x76\x32\x20\x2b\x20\x6c\x32\x20\x2f\x20\x32\x20\x2b\x20\x70\x33\x20\x3a\x20\x76\x32\x20\x2b\x20\x6c\x32\x20\x2f\x20\x32\x20\x2d\x20\x70\x33\x20\x3a\x20\x62\x32\x20\x3f\x20\x76\x32\x20\x2d\x20\x6c\x32\x20\x2f\x20\x32\x20\x2b\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2b\x20\x70\x33\x20\x3a\x20\x76\x32\x20\x2b\x20\x6c\x32\x20\x2f\x20\x32\x20\x2b\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2d\x20\x70\x33\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x66\x32\x20\x3f\x20\x62\x32\x20\x3f\x20\x76\x32\x20\x2b\x20\x6c\x32\x20\x2b\x20\x70\x33\x20\x3a\x20\x76\x32\x20\x2b\x20\x6c\x32\x20\x2d\x20\x70\x33\x20\x3a\x20\x62\x32\x20\x3f\x20\x76\x32\x20\x2d\x20\x6c\x32\x20\x2b\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x67\x32\x20\x2b\x20\x70\x33\x20\x3a\x20\x76\x32\x20\x2b\x20\x6c\x32\x20\x2d\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2b\x20\x67\x32\x20\x2d\x20\x70\x33\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x74\x6f\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x66\x32\x20\x3f\x20\x62\x32\x20\x3f\x20\x76\x32\x20\x2b\x20\x70\x33\x20\x3a\x20\x76\x32\x20\x2d\x20\x70\x33\x20\x3a\x20\x62\x32\x20\x3f\x20\x76\x32\x20\x2d\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2d\x20\x70\x33\x20\x3a\x20\x76\x32\x20\x2b\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x70\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x7c\x7c\x20\x28\x63\x32\x20\x3c\x20\x30\x20\x3f\x20\x63\x32\x20\x3d\x20\x30\x20\x2b\x20\x67\x32\x20\x3a\x20\x63\x32\x20\x2b\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x33\x20\x3e\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x67\x32\x29\x29\x2c\x20\x7b\x20\x62\x63\x78\x3a\x20\x6f\x32\x2c\x20\x62\x63\x79\x3a\x20\x72\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x58\x3a\x20\x65\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x59\x3a\x20\x63\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x42\x61\x72\x73\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x62\x63\x79\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x52\x65\x63\x74\x73\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x58\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x6f\x66\x66\x58\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x6f\x66\x66\x59\x2c\x20\x70\x33\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3f\x20\x30\x20\x3a\x20\x70\x33\x29\x20\x2b\x20\x6f\x32\x20\x2f\x20\x32\x20\x2b\x20\x6c\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2b\x20\x75\x32\x20\x2d\x20\x33\x2c\x20\x78\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x3c\x20\x30\x2c\x20\x62\x32\x20\x3d\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x28\x62\x32\x20\x3d\x20\x69\x32\x20\x2b\x20\x6e\x32\x20\x2d\x20\x28\x78\x32\x20\x3f\x20\x32\x20\x2a\x20\x6e\x32\x20\x3a\x20\x30\x29\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2d\x20\x6e\x32\x29\x2c\x20\x64\x32\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x65\x6e\x74\x65\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x78\x32\x20\x3f\x20\x62\x32\x20\x2b\x20\x6e\x32\x20\x2f\x20\x32\x20\x2d\x20\x67\x32\x20\x3a\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x62\x32\x20\x2d\x20\x6e\x32\x20\x2f\x20\x32\x29\x20\x2b\x20\x67\x32\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x78\x32\x20\x3f\x20\x62\x32\x20\x2b\x20\x6e\x32\x20\x2d\x20\x63\x32\x20\x2d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x20\x2d\x20\x67\x32\x20\x3a\x20\x62\x32\x20\x2d\x20\x6e\x32\x20\x2b\x20\x63\x32\x20\x2b\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x20\x2b\x20\x67\x32\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x74\x6f\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x78\x32\x20\x3f\x20\x62\x32\x20\x2d\x20\x63\x32\x20\x2b\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x20\x2d\x20\x67\x32\x20\x3a\x20\x62\x32\x20\x2d\x20\x63\x32\x20\x2d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x20\x2b\x20\x67\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x7c\x7c\x20\x28\x68\x33\x20\x3c\x20\x30\x20\x3f\x20\x68\x33\x20\x3d\x20\x68\x33\x20\x2b\x20\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x63\x32\x20\x3a\x20\x68\x33\x20\x2b\x20\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x3e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2d\x20\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x63\x32\x29\x29\x2c\x20\x7b\x20\x62\x63\x78\x3a\x20\x69\x32\x2c\x20\x62\x63\x79\x3a\x20\x72\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x58\x3a\x20\x68\x33\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x59\x3a\x20\x66\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x43\x61\x6c\x63\x75\x6c\x61\x74\x65\x64\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x76\x61\x6c\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x52\x65\x63\x74\x73\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x67\x32\x20\x3d\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x30\x29\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x20\x26\x26\x20\x28\x67\x32\x20\x3d\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x2d\x39\x30\x2c\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x32\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x6e\x65\x77\x20\x7a\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x70\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x66\x32\x20\x3d\x20\x63\x32\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x78\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x62\x32\x20\x3d\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x72\x32\x29\x20\x3e\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x21\x62\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x70\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x2d\x6c\x61\x62\x65\x6c\x73\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x67\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x76\x32\x20\x3d\x20\x66\x32\x28\x73\x32\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x6f\x32\x2c\x20\x77\x3a\x20\x64\x32\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x72\x32\x5d\x5b\x6f\x32\x5d\x20\x3c\x20\x30\x2c\x20\x77\x32\x20\x3d\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x6f\x72\x69\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x20\x26\x26\x20\x28\x77\x32\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x26\x26\x20\x28\x63\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x79\x32\x20\x3f\x20\x22\x65\x6e\x64\x22\x20\x3a\x20\x22\x73\x74\x61\x72\x74\x22\x29\x2c\x20\x77\x32\x20\x3d\x3d\x3d\x20\x22\x63\x65\x6e\x74\x65\x72\x22\x20\x26\x26\x20\x28\x63\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x29\x2c\x20\x77\x32\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x26\x26\x20\x28\x63\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x79\x32\x20\x3f\x20\x22\x65\x6e\x64\x22\x20\x3a\x20\x22\x73\x74\x61\x72\x74\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x68\x69\x64\x65\x4f\x76\x65\x72\x66\x6c\x6f\x77\x69\x6e\x67\x4c\x61\x62\x65\x6c\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3c\x20\x70\x33\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x76\x32\x2c\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x29\x2e\x77\x69\x64\x74\x68\x20\x26\x26\x20\x28\x76\x32\x20\x3d\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x68\x69\x64\x65\x4f\x76\x65\x72\x66\x6c\x6f\x77\x69\x6e\x67\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x6e\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x31\x2e\x36\x20\x3e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x68\x33\x29\x20\x26\x26\x20\x28\x76\x32\x20\x3d\x20\x22\x22\x29\x20\x3a\x20\x6e\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x31\x2e\x36\x20\x3e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x6c\x32\x29\x20\x26\x26\x20\x28\x76\x32\x20\x3d\x20\x22\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x65\x28\x7b\x7d\x2c\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x73\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x63\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x3d\x3d\x20\x22\x73\x74\x61\x72\x74\x22\x20\x3f\x20\x6b\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x22\x65\x6e\x64\x22\x20\x3a\x20\x63\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x3d\x3d\x20\x22\x65\x6e\x64\x22\x20\x26\x26\x20\x28\x6b\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x22\x73\x74\x61\x72\x74\x22\x29\x29\x2c\x20\x75\x32\x2e\x70\x6c\x6f\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x69\x32\x2c\x20\x79\x3a\x20\x61\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x76\x32\x2c\x20\x69\x3a\x20\x72\x32\x2c\x20\x6a\x3a\x20\x6f\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x78\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x3a\x20\x6b\x32\x2c\x20\x61\x6c\x77\x61\x79\x73\x44\x72\x61\x77\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x3a\x20\x74\x72\x75\x65\x2c\x20\x6f\x66\x66\x73\x65\x74\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x45\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x49\x6e\x61\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x20\x3d\x20\x22\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x6f\x75\x73\x65\x6f\x76\x65\x72\x2d\x69\x6e\x61\x63\x74\x69\x76\x65\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x41\x6c\x6c\x53\x65\x72\x69\x65\x73\x45\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x65\x72\x69\x65\x73\x42\x79\x4e\x61\x6d\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x69\x6e\x6e\x65\x72\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x74\x33\x29\x2c\x20\x22\x27\x5d\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x53\x65\x72\x69\x65\x73\x48\x69\x64\x64\x65\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x53\x65\x72\x69\x65\x73\x42\x79\x4e\x61\x6d\x65\x28\x74\x33\x29\x2c\x20\x69\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x69\x73\x48\x69\x64\x64\x65\x6e\x3a\x20\x65\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x22\x29\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x43\x6c\x61\x73\x73\x54\x6f\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x32\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x30\x3b\x20\x61\x33\x20\x3c\x20\x69\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x5b\x61\x33\x5d\x2e\x69\x6e\x64\x65\x78\x20\x3d\x3d\x3d\x20\x65\x32\x20\x26\x26\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x29\x2c\x20\x61\x32\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x73\x53\x65\x72\x69\x65\x73\x48\x69\x64\x64\x65\x6e\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x28\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x65\x32\x2e\x69\x73\x48\x69\x64\x64\x65\x6e\x29\x2c\x20\x65\x32\x2e\x69\x73\x48\x69\x64\x64\x65\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x68\x6f\x77\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x73\x53\x65\x72\x69\x65\x73\x48\x69\x64\x64\x65\x6e\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x69\x73\x48\x69\x64\x64\x65\x6e\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x28\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x73\x53\x65\x72\x69\x65\x73\x48\x69\x64\x64\x65\x6e\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x69\x73\x48\x69\x64\x64\x65\x6e\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x28\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x2c\x20\x65\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x69\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x69\x32\x20\x3f\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x20\x3d\x20\x5b\x5d\x29\x20\x3a\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6d\x70\x74\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x28\x73\x32\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x73\x32\x2c\x20\x74\x33\x20\x26\x26\x20\x28\x65\x32\x20\x26\x26\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x72\x65\x76\x65\x72\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x78\x69\x73\x4d\x69\x6e\x4d\x61\x78\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x73\x32\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x6d\x70\x74\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x69\x32\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x74\x33\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x20\x3d\x20\x5b\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x4f\x6e\x48\x6f\x76\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x7c\x7c\x20\x28\x65\x32\x20\x3d\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x2c\x20\x72\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x28\x72\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x27\x5d\x22\x29\x29\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x27\x5d\x22\x29\x29\x29\x20\x3a\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x20\x2b\x20\x31\x2c\x20\x22\x27\x5d\x22\x29\x29\x20\x3a\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x20\x2b\x20\x31\x2c\x20\x22\x27\x5d\x20\x70\x61\x74\x68\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x5b\x6e\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x49\x6e\x61\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x72\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x49\x6e\x61\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x2c\x20\x72\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x49\x6e\x61\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x2c\x20\x6f\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6f\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x49\x6e\x61\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x5b\x6c\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x49\x6e\x61\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x52\x61\x6e\x67\x65\x49\x6e\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x65\x61\x74\x6d\x61\x70\x2d\x72\x65\x63\x74\x22\x29\x2c\x20\x72\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x30\x3b\x20\x65\x33\x20\x3c\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x5b\x65\x33\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x5b\x74\x34\x5d\x28\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x49\x6e\x61\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x28\x22\x61\x64\x64\x22\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x30\x3b\x20\x65\x33\x20\x3c\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x5b\x65\x33\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x76\x61\x6c\x22\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x20\x3e\x3d\x20\x74\x34\x2e\x66\x72\x6f\x6d\x20\x26\x26\x20\x61\x33\x20\x3c\x3d\x20\x74\x34\x2e\x74\x6f\x20\x26\x26\x20\x73\x32\x5b\x65\x33\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x49\x6e\x61\x63\x74\x69\x76\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x65\x61\x74\x6d\x61\x70\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x72\x61\x6e\x67\x65\x73\x5b\x6f\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x20\x26\x26\x20\x72\x32\x28\x22\x72\x65\x6d\x6f\x76\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x41\x63\x74\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x2c\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x22\x61\x73\x63\x22\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x26\x26\x20\x28\x73\x33\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x6f\x6c\x75\x6d\x6e\x22\x29\x2c\x20\x65\x33\x2e\x64\x61\x74\x61\x20\x26\x26\x20\x65\x33\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x21\x73\x33\x20\x3f\x20\x61\x33\x20\x3a\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x61\x73\x63\x22\x20\x3f\x20\x30\x20\x3a\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x61\x73\x63\x22\x20\x3f\x20\x72\x32\x20\x3c\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x72\x32\x20\x3e\x3d\x20\x30\x3b\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x61\x73\x63\x22\x20\x3f\x20\x72\x32\x2b\x2b\x20\x3a\x20\x72\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x5b\x72\x32\x5d\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x73\x32\x5b\x72\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x32\x28\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x65\x33\x5b\x69\x33\x5d\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2c\x20\x72\x32\x20\x3d\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x61\x33\x2c\x20\x70\x61\x74\x68\x73\x3a\x20\x5b\x5d\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x65\x33\x5b\x69\x33\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x20\x7d\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x73\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x33\x5b\x6f\x32\x5d\x2e\x68\x61\x73\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x70\x61\x74\x68\x54\x6f\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x73\x33\x5b\x6f\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x70\x61\x74\x68\x54\x6f\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x70\x61\x74\x68\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x64\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x70\x75\x73\x68\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x5b\x22\x6c\x69\x6e\x65\x22\x2c\x20\x22\x61\x72\x65\x61\x22\x2c\x20\x22\x62\x61\x72\x22\x2c\x20\x22\x72\x61\x6e\x67\x65\x62\x61\x72\x22\x2c\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x2c\x20\x22\x72\x61\x64\x61\x72\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x33\x2c\x20\x73\x33\x20\x3d\x20\x28\x61\x33\x20\x3d\x20\x69\x33\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x33\x2c\x20\x22\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x29\x29\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x73\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x28\x73\x33\x2c\x20\x72\x32\x2c\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x50\x72\x65\x76\x42\x75\x62\x62\x6c\x65\x53\x63\x61\x74\x74\x65\x72\x50\x61\x74\x68\x73\x28\x22\x62\x75\x62\x62\x6c\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x50\x72\x65\x76\x42\x75\x62\x62\x6c\x65\x53\x63\x61\x74\x74\x65\x72\x50\x61\x74\x68\x73\x28\x22\x73\x63\x61\x74\x74\x65\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x22\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x22\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x33\x2c\x20\x22\x27\x5d\x20\x72\x65\x63\x74\x22\x29\x29\x2c\x20\x61\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x34\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x33\x5b\x74\x34\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x65\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x73\x34\x20\x3d\x20\x7b\x20\x78\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x34\x28\x22\x78\x22\x29\x29\x2c\x20\x79\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x34\x28\x22\x79\x22\x29\x29\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x34\x28\x22\x77\x69\x64\x74\x68\x22\x29\x29\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x34\x28\x22\x68\x65\x69\x67\x68\x74\x22\x29\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x70\x75\x73\x68\x28\x7b\x20\x72\x65\x63\x74\x3a\x20\x73\x34\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x69\x33\x5b\x74\x34\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6f\x6c\x6f\x72\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x69\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x70\x75\x73\x68\x28\x61\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x50\x72\x65\x76\x42\x75\x62\x62\x6c\x65\x53\x63\x61\x74\x74\x65\x72\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2c\x20\x22\x27\x5d\x20\x63\x69\x72\x63\x6c\x65\x22\x29\x29\x2c\x20\x72\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x78\x3a\x20\x73\x32\x5b\x6f\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x29\x2c\x20\x79\x3a\x20\x73\x32\x5b\x6f\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x29\x2c\x20\x72\x3a\x20\x73\x32\x5b\x6f\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x70\x75\x73\x68\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x65\x61\x72\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x4e\x6f\x44\x61\x74\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6e\x6f\x44\x61\x74\x61\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x2c\x20\x72\x32\x20\x3d\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6e\x6f\x44\x61\x74\x61\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x65\x32\x2e\x61\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x3f\x20\x28\x61\x32\x20\x3d\x20\x31\x30\x2c\x20\x72\x32\x20\x3d\x20\x22\x73\x74\x61\x72\x74\x22\x29\x20\x3a\x20\x65\x32\x2e\x61\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x31\x30\x2c\x20\x72\x32\x20\x3d\x20\x22\x65\x6e\x64\x22\x29\x2c\x20\x65\x32\x2e\x76\x65\x72\x74\x69\x63\x61\x6c\x41\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x3f\x20\x73\x32\x20\x3d\x20\x35\x30\x20\x3a\x20\x65\x32\x2e\x76\x65\x72\x74\x69\x63\x61\x6c\x41\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x35\x30\x29\x2c\x20\x61\x32\x20\x2b\x3d\x20\x65\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x73\x32\x20\x3d\x20\x73\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x20\x2b\x20\x32\x20\x2b\x20\x65\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x65\x32\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x65\x32\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x22\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x61\x32\x2c\x20\x79\x3a\x20\x73\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x65\x32\x2e\x74\x65\x78\x74\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x72\x32\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x65\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x65\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x65\x32\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x65\x78\x74\x2d\x6e\x6f\x64\x61\x74\x61\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x61\x64\x64\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x4e\x75\x6c\x6c\x53\x65\x72\x69\x65\x73\x54\x6f\x5a\x65\x72\x6f\x56\x61\x6c\x75\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x5b\x69\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x74\x33\x5b\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x69\x32\x5d\x2e\x70\x75\x73\x68\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x73\x41\x6c\x6c\x53\x65\x72\x69\x65\x73\x45\x71\x75\x61\x6c\x58\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x64\x53\x65\x72\x69\x65\x73\x58\x28\x29\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x5b\x61\x32\x5d\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x69\x32\x5b\x61\x32\x20\x2b\x20\x31\x5d\x5b\x30\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\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\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x48\x61\x73\x45\x71\x75\x61\x6c\x58\x20\x3d\x20\x74\x33\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x69\x6c\x74\x65\x72\x65\x64\x53\x65\x72\x69\x65\x73\x58\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x3f\x20\x74\x34\x20\x3a\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x59\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x3d\x20\x2d\x31\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x74\x65\x6d\x73\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x5b\x69\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x2b\x20\x31\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x20\x2b\x3d\x20\x74\x33\x5b\x69\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x74\x33\x5b\x69\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x69\x32\x5d\x5b\x61\x32\x5d\x20\x3e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x69\x32\x5d\x5b\x61\x32\x5d\x20\x3c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x74\x65\x6d\x73\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x74\x65\x6d\x73\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x3d\x20\x31\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x7a\x65\x72\x6f\x53\x65\x72\x69\x65\x73\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x72\x61\x64\x69\x75\x73\x4f\x6e\x53\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x5a\x65\x72\x6f\x53\x65\x72\x69\x65\x73\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x69\x61\x6c\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x72\x61\x6e\x67\x65\x42\x61\x72\x47\x72\x6f\x75\x70\x52\x6f\x77\x73\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x31\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x20\x28\x69\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x68\x33\x29\x20\x2f\x20\x63\x32\x2c\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x28\x69\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x29\x2c\x20\x73\x32\x20\x3d\x20\x73\x32\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x49\x6e\x76\x65\x72\x74\x65\x64\x59\x20\x2b\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3a\x20\x30\x29\x20\x2d\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x49\x6e\x76\x65\x72\x74\x65\x64\x59\x20\x3a\x20\x30\x29\x2c\x20\x65\x32\x20\x3d\x20\x28\x69\x32\x20\x2d\x20\x73\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x29\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x74\x65\x6d\x73\x2c\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x29\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x75\x6d\x6e\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x2c\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x78\x52\x61\x74\x69\x6f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x6e\x69\x74\x69\x61\x6c\x58\x52\x61\x74\x69\x6f\x29\x2c\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x26\x26\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x21\x3d\x3d\x20\x30\x2e\x35\x20\x26\x26\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x2f\x20\x64\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x2f\x20\x64\x32\x29\x2c\x20\x28\x72\x32\x20\x3d\x20\x61\x32\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x75\x6d\x6e\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x29\x20\x3c\x20\x31\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x5b\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2d\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x30\x29\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x5b\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x30\x29\x2c\x20\x74\x33\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x28\x61\x32\x20\x2d\x20\x72\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x29\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x32\x2c\x20\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x69\x32\x2c\x20\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x61\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x73\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x72\x32\x2c\x20\x7a\x65\x72\x6f\x48\x3a\x20\x6f\x32\x2c\x20\x7a\x65\x72\x6f\x57\x3a\x20\x6e\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x50\x61\x74\x68\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x3f\x20\x69\x32\x20\x3a\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x72\x61\x6e\x67\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x72\x61\x6e\x67\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x20\x3e\x3d\x20\x61\x33\x2e\x66\x72\x6f\x6d\x20\x26\x26\x20\x74\x33\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x20\x3c\x3d\x20\x61\x33\x2e\x74\x6f\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x61\x33\x2e\x63\x6f\x6c\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x69\x32\x5d\x20\x26\x26\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x69\x32\x5d\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x69\x32\x5d\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x29\x2c\x20\x72\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x3f\x20\x6e\x32\x20\x3a\x20\x61\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x6f\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x33\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x72\x75\x65\x20\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x20\x7c\x7c\x20\x28\x61\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x5b\x69\x32\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x62\x61\x72\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x31\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x78\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x41\x63\x74\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x43\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x63\x32\x20\x3d\x3d\x3d\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3e\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x43\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x65\x32\x20\x25\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x43\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x43\x6f\x6c\x6f\x72\x73\x5b\x65\x32\x5d\x2c\x20\x67\x32\x20\x3d\x20\x68\x33\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x61\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x32\x20\x3a\x20\x30\x2c\x20\x72\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x72\x32\x20\x3a\x20\x30\x2c\x20\x73\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x73\x32\x20\x3a\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x6f\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6f\x32\x20\x3a\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x52\x61\x64\x69\x75\x73\x2c\x20\x64\x32\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x4f\x70\x61\x63\x69\x74\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x61\x64\x64\x28\x67\x32\x29\x2c\x20\x67\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x42\x61\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x52\x61\x74\x69\x6f\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x77\x2c\x20\x67\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x6f\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x32\x29\x20\x3f\x20\x6f\x32\x5b\x6c\x32\x5d\x20\x3a\x20\x6f\x32\x29\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x7b\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x65\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x6f\x32\x2c\x20\x79\x52\x61\x74\x69\x6f\x3a\x20\x61\x32\x2c\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x69\x32\x2c\x20\x79\x31\x3a\x20\x73\x32\x2c\x20\x79\x32\x3a\x20\x72\x32\x20\x7d\x2c\x20\x70\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x52\x6f\x75\x6e\x64\x65\x64\x42\x61\x72\x73\x28\x64\x32\x2c\x20\x75\x32\x2c\x20\x6e\x32\x2c\x20\x68\x33\x2c\x20\x63\x32\x29\x2c\x20\x66\x32\x20\x3d\x20\x69\x32\x2c\x20\x78\x32\x20\x3d\x20\x69\x32\x20\x2b\x20\x65\x32\x2c\x20\x62\x32\x20\x3d\x20\x67\x32\x2e\x6d\x6f\x76\x65\x28\x66\x32\x2c\x20\x73\x32\x29\x2c\x20\x76\x32\x20\x3d\x20\x67\x32\x2e\x6d\x6f\x76\x65\x28\x66\x32\x2c\x20\x73\x32\x29\x2c\x20\x79\x32\x20\x3d\x20\x67\x32\x2e\x6c\x69\x6e\x65\x28\x78\x32\x20\x2d\x20\x6f\x32\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x76\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x28\x6c\x32\x2c\x20\x63\x32\x2c\x20\x66\x61\x6c\x73\x65\x29\x29\x2c\x20\x62\x32\x20\x3d\x20\x62\x32\x20\x2b\x20\x67\x32\x2e\x6c\x69\x6e\x65\x28\x66\x32\x2c\x20\x70\x33\x2e\x79\x32\x29\x20\x2b\x20\x70\x33\x2e\x70\x61\x74\x68\x57\x69\x74\x68\x52\x61\x64\x69\x75\x73\x20\x2b\x20\x67\x32\x2e\x6c\x69\x6e\x65\x28\x78\x32\x20\x2d\x20\x6f\x32\x2c\x20\x70\x33\x2e\x79\x32\x29\x20\x2b\x20\x79\x32\x20\x2b\x20\x79\x32\x20\x2b\x20\x22\x7a\x22\x2c\x20\x76\x32\x20\x3d\x20\x76\x32\x20\x2b\x20\x67\x32\x2e\x6c\x69\x6e\x65\x28\x66\x32\x2c\x20\x73\x32\x29\x20\x2b\x20\x79\x32\x20\x2b\x20\x79\x32\x20\x2b\x20\x79\x32\x20\x2b\x20\x79\x32\x20\x2b\x20\x79\x32\x20\x2b\x20\x67\x32\x2e\x6c\x69\x6e\x65\x28\x66\x32\x2c\x20\x73\x32\x29\x2c\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x41\x72\x72\x6a\x2e\x70\x75\x73\x68\x28\x70\x33\x2e\x79\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x41\x72\x72\x6a\x46\x2e\x70\x75\x73\x68\x28\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x20\x2d\x20\x70\x33\x2e\x79\x32\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x41\x72\x72\x6a\x56\x61\x6c\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x29\x29\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x62\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x76\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x42\x61\x72\x70\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x31\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x78\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x77\x2c\x20\x64\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x72\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x32\x29\x20\x3f\x20\x72\x32\x5b\x6e\x32\x5d\x20\x3a\x20\x72\x32\x29\x20\x7c\x7c\x20\x28\x72\x32\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x7b\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x72\x32\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x65\x32\x2c\x20\x78\x32\x3a\x20\x73\x32\x2c\x20\x78\x31\x3a\x20\x61\x32\x20\x7d\x2c\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x52\x6f\x75\x6e\x64\x65\x64\x42\x61\x72\x73\x28\x63\x32\x2c\x20\x67\x32\x2c\x20\x6f\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x29\x2c\x20\x70\x33\x20\x3d\x20\x64\x32\x2e\x6d\x6f\x76\x65\x28\x61\x32\x2c\x20\x65\x32\x29\x2c\x20\x66\x32\x20\x3d\x20\x64\x32\x2e\x6d\x6f\x76\x65\x28\x61\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x28\x6e\x32\x2c\x20\x68\x33\x2c\x20\x66\x61\x6c\x73\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x65\x32\x2c\x20\x62\x32\x20\x3d\x20\x65\x32\x20\x2b\x20\x69\x32\x2c\x20\x76\x32\x20\x3d\x20\x64\x32\x2e\x6c\x69\x6e\x65\x28\x61\x32\x2c\x20\x62\x32\x20\x2d\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x33\x20\x3d\x20\x70\x33\x20\x2b\x20\x64\x32\x2e\x6c\x69\x6e\x65\x28\x75\x32\x2e\x78\x32\x2c\x20\x78\x32\x29\x20\x2b\x20\x75\x32\x2e\x70\x61\x74\x68\x57\x69\x74\x68\x52\x61\x64\x69\x75\x73\x20\x2b\x20\x64\x32\x2e\x6c\x69\x6e\x65\x28\x75\x32\x2e\x78\x32\x2c\x20\x62\x32\x20\x2d\x20\x72\x32\x29\x20\x2b\x20\x76\x32\x20\x2b\x20\x76\x32\x20\x2b\x20\x22\x7a\x22\x2c\x20\x66\x32\x20\x3d\x20\x66\x32\x20\x2b\x20\x64\x32\x2e\x6c\x69\x6e\x65\x28\x61\x32\x2c\x20\x78\x32\x29\x20\x2b\x20\x76\x32\x20\x2b\x20\x76\x32\x20\x2b\x20\x76\x32\x20\x2b\x20\x76\x32\x20\x2b\x20\x76\x32\x20\x2b\x20\x64\x32\x2e\x6c\x69\x6e\x65\x28\x61\x32\x2c\x20\x78\x32\x29\x2c\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x78\x41\x72\x72\x6a\x2e\x70\x75\x73\x68\x28\x75\x32\x2e\x78\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x78\x41\x72\x72\x6a\x46\x2e\x70\x75\x73\x68\x28\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x61\x32\x20\x2d\x20\x75\x32\x2e\x78\x32\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x78\x41\x72\x72\x6a\x56\x61\x6c\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x5b\x6c\x32\x5d\x5b\x68\x33\x5d\x29\x29\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x70\x33\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x66\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x52\x6f\x75\x6e\x64\x65\x64\x42\x61\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x2c\x20\x6c\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x32\x20\x3f\x20\x6f\x32\x20\x3d\x20\x6e\x32\x5b\x61\x32\x20\x3e\x20\x6e\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x3f\x20\x6e\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x3a\x20\x61\x32\x5d\x20\x3a\x20\x6f\x32\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x32\x20\x21\x3d\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x72\x61\x64\x69\x75\x73\x4f\x6e\x53\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x26\x26\x20\x21\x6c\x32\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x22\x22\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x78\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x2e\x78\x31\x20\x2d\x20\x65\x32\x2e\x78\x32\x29\x20\x3c\x20\x6f\x32\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x2e\x78\x31\x20\x2d\x20\x65\x32\x2e\x78\x32\x29\x29\x2c\x20\x69\x32\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x69\x32\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x69\x32\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x3e\x20\x30\x20\x3a\x20\x69\x32\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x3c\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x26\x26\x20\x28\x6f\x32\x20\x2a\x3d\x20\x2d\x31\x29\x2c\x20\x63\x32\x20\x2d\x3d\x20\x6f\x32\x2c\x20\x68\x33\x20\x3d\x20\x72\x32\x2e\x71\x75\x61\x64\x72\x61\x74\x69\x63\x43\x75\x72\x76\x65\x28\x63\x32\x20\x2b\x20\x6f\x32\x2c\x20\x65\x32\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x63\x32\x20\x2b\x20\x6f\x32\x2c\x20\x65\x32\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x28\x64\x32\x20\x3f\x20\x2d\x31\x20\x2a\x20\x6f\x32\x20\x3a\x20\x6f\x32\x29\x29\x20\x2b\x20\x72\x32\x2e\x6c\x69\x6e\x65\x28\x63\x32\x20\x2b\x20\x6f\x32\x2c\x20\x65\x32\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x65\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x65\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x28\x64\x32\x20\x3f\x20\x2d\x31\x20\x2a\x20\x6f\x32\x20\x3a\x20\x6f\x32\x29\x29\x20\x2b\x20\x72\x32\x2e\x71\x75\x61\x64\x72\x61\x74\x69\x63\x43\x75\x72\x76\x65\x28\x63\x32\x20\x2b\x20\x6f\x32\x2c\x20\x65\x32\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x65\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x65\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x63\x32\x2c\x20\x65\x32\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x65\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x65\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x70\x61\x74\x68\x57\x69\x74\x68\x52\x61\x64\x69\x75\x73\x3a\x20\x68\x33\x2c\x20\x78\x32\x3a\x20\x63\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x22\x22\x2c\x20\x75\x32\x20\x3d\x20\x65\x32\x2e\x79\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x2e\x79\x31\x20\x2d\x20\x65\x32\x2e\x79\x32\x29\x20\x3c\x20\x6f\x32\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x2e\x79\x31\x20\x2d\x20\x65\x32\x2e\x79\x32\x29\x29\x2c\x20\x69\x32\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x69\x32\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x69\x32\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x3c\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x26\x26\x20\x28\x6f\x32\x20\x2a\x3d\x20\x2d\x31\x29\x2c\x20\x75\x32\x20\x2b\x3d\x20\x6f\x32\x2c\x20\x67\x32\x20\x3d\x20\x72\x32\x2e\x71\x75\x61\x64\x72\x61\x74\x69\x63\x43\x75\x72\x76\x65\x28\x65\x32\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x75\x32\x20\x2d\x20\x6f\x32\x2c\x20\x65\x32\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x28\x70\x33\x20\x3f\x20\x2d\x31\x20\x2a\x20\x6f\x32\x20\x3a\x20\x6f\x32\x29\x2c\x20\x75\x32\x20\x2d\x20\x6f\x32\x29\x20\x2b\x20\x72\x32\x2e\x6c\x69\x6e\x65\x28\x65\x32\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x65\x32\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x20\x2d\x20\x65\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x28\x70\x33\x20\x3f\x20\x2d\x31\x20\x2a\x20\x6f\x32\x20\x3a\x20\x6f\x32\x29\x2c\x20\x75\x32\x20\x2d\x20\x6f\x32\x29\x20\x2b\x20\x72\x32\x2e\x71\x75\x61\x64\x72\x61\x74\x69\x63\x43\x75\x72\x76\x65\x28\x65\x32\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x65\x32\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x20\x2d\x20\x65\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x75\x32\x20\x2d\x20\x6f\x32\x2c\x20\x65\x32\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x65\x32\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x20\x2d\x20\x65\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x70\x61\x74\x68\x57\x69\x74\x68\x52\x61\x64\x69\x75\x73\x3a\x20\x67\x32\x2c\x20\x79\x32\x3a\x20\x75\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x5a\x65\x72\x6f\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x65\x32\x5b\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x2b\x3d\x20\x65\x32\x5b\x61\x32\x5d\x5b\x72\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x7a\x65\x72\x6f\x53\x65\x72\x69\x65\x73\x65\x73\x2e\x70\x75\x73\x68\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x6f\x32\x20\x3e\x3d\x20\x30\x3b\x20\x6f\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x7a\x65\x72\x6f\x53\x65\x72\x69\x65\x73\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x6f\x32\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x6f\x32\x20\x3d\x3d\x3d\x20\x74\x68\x69\x73\x2e\x72\x61\x64\x69\x75\x73\x4f\x6e\x53\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x72\x61\x64\x69\x75\x73\x4f\x6e\x53\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x2d\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x6e\x32\x20\x3e\x3d\x20\x30\x3b\x20\x6e\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x72\x61\x64\x69\x75\x73\x4f\x6e\x53\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x72\x61\x64\x69\x75\x73\x4f\x6e\x53\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x20\x2d\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x58\x46\x6f\x72\x56\x61\x6c\x75\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x20\x3f\x20\x65\x32\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x65\x32\x20\x2b\x20\x74\x33\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x20\x2d\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x74\x33\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x20\x3a\x20\x30\x29\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x59\x46\x6f\x72\x56\x61\x6c\x75\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x20\x3f\x20\x65\x32\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x65\x32\x20\x2d\x20\x74\x33\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2b\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x74\x33\x20\x2f\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x30\x29\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x47\x6f\x61\x6c\x56\x61\x6c\x75\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x61\x32\x5d\x20\x26\x26\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x29\x20\x26\x26\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x28\x6f\x28\x73\x33\x20\x3d\x20\x7b\x7d\x2c\x20\x74\x33\x2c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x78\x22\x20\x3f\x20\x72\x32\x2e\x67\x65\x74\x58\x46\x6f\x72\x56\x61\x6c\x75\x65\x28\x61\x33\x2e\x76\x61\x6c\x75\x65\x2c\x20\x65\x32\x2c\x20\x66\x61\x6c\x73\x65\x29\x20\x3a\x20\x72\x32\x2e\x67\x65\x74\x59\x46\x6f\x72\x56\x61\x6c\x75\x65\x28\x61\x33\x2e\x76\x61\x6c\x75\x65\x2c\x20\x69\x32\x2c\x20\x66\x61\x6c\x73\x65\x29\x29\x2c\x20\x6f\x28\x73\x33\x2c\x20\x22\x61\x74\x74\x72\x73\x22\x2c\x20\x61\x33\x29\x2c\x20\x73\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x47\x6f\x61\x6c\x4c\x69\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6f\x61\x6c\x58\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x6f\x61\x6c\x59\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x67\x6f\x61\x6c\x73\x2d\x67\x72\x6f\x75\x70\x73\x22\x20\x7d\x29\x2c\x20\x68\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x43\x74\x78\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x32\x29\x20\x26\x26\x20\x61\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x48\x65\x69\x67\x68\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x6f\x32\x20\x2f\x20\x32\x2c\x20\x61\x33\x20\x3d\x20\x69\x32\x20\x2b\x20\x65\x33\x20\x2b\x20\x6f\x32\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x6e\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x74\x34\x2e\x78\x2c\x20\x61\x33\x20\x2d\x20\x32\x20\x2a\x20\x65\x33\x2c\x20\x74\x34\x2e\x78\x2c\x20\x61\x33\x2c\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x3f\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3f\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3a\x20\x32\x2c\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x43\x61\x70\x29\x2c\x20\x6c\x32\x2e\x61\x64\x64\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x29\x20\x26\x26\x20\x73\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3a\x20\x72\x32\x20\x2f\x20\x32\x2c\x20\x61\x33\x20\x3d\x20\x65\x32\x20\x2b\x20\x69\x33\x20\x2b\x20\x72\x32\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x6e\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x61\x33\x20\x2d\x20\x32\x20\x2a\x20\x69\x33\x2c\x20\x74\x34\x2e\x79\x2c\x20\x61\x33\x2c\x20\x74\x34\x2e\x79\x2c\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x3f\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x48\x65\x69\x67\x68\x74\x20\x3f\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x32\x2c\x20\x74\x34\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x43\x61\x70\x29\x2c\x20\x6c\x32\x2e\x61\x64\x64\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x46\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x20\x3d\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x20\x3d\x20\x69\x32\x2e\x78\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x58\x52\x61\x74\x69\x6f\x20\x3d\x20\x69\x32\x2e\x69\x6e\x69\x74\x69\x61\x6c\x58\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x20\x3d\x20\x69\x32\x2e\x79\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x58\x52\x61\x74\x69\x6f\x20\x3d\x20\x69\x32\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x58\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x20\x3d\x20\x69\x32\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x20\x3d\x20\x69\x32\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x49\x6e\x76\x65\x72\x74\x65\x64\x59\x20\x3d\x20\x69\x32\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x49\x6e\x76\x65\x72\x74\x65\x64\x59\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x59\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x72\x32\x2e\x67\x65\x74\x4c\x6f\x67\x53\x65\x72\x69\x65\x73\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x20\x3d\x20\x72\x32\x2e\x67\x65\x74\x4c\x6f\x67\x59\x52\x61\x74\x69\x6f\x73\x28\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x69\x6e\x69\x74\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x20\x3e\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x6d\x61\x78\x49\x74\x65\x6d\x73\x20\x26\x26\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x22\x57\x41\x52\x4e\x49\x4e\x47\x3a\x20\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x20\x61\x72\x65\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x62\x75\x74\x20\x74\x68\x65\x72\x65\x20\x61\x72\x65\x20\x74\x6f\x6f\x20\x6d\x61\x6e\x79\x20\x74\x6f\x20\x64\x69\x73\x70\x6c\x61\x79\x2e\x20\x54\x68\x69\x73\x20\x6d\x61\x79\x20\x63\x61\x75\x73\x65\x20\x70\x65\x72\x66\x6f\x72\x6d\x61\x6e\x63\x65\x20\x69\x73\x73\x75\x65\x20\x77\x68\x65\x6e\x20\x72\x65\x6e\x64\x65\x72\x69\x6e\x67\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x2c\x20\x6c\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x2c\x20\x63\x32\x2c\x20\x64\x32\x2c\x20\x67\x32\x2c\x20\x75\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x70\x33\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x62\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x76\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x69\x32\x5b\x6e\x32\x5d\x20\x3a\x20\x6e\x32\x2c\x20\x77\x32\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x72\x65\x6c\x3a\x20\x6e\x32\x20\x2b\x20\x31\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x76\x32\x5d\x29\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x76\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x43\x6c\x61\x73\x73\x54\x6f\x53\x65\x72\x69\x65\x73\x28\x77\x32\x2c\x20\x76\x32\x29\x2c\x20\x74\x33\x5b\x6e\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x3d\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x30\x2c\x20\x41\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x76\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x53\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x53\x32\x2e\x79\x2c\x20\x6b\x32\x20\x3d\x20\x53\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x63\x32\x20\x3d\x20\x53\x32\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x67\x32\x20\x3d\x20\x53\x32\x2e\x7a\x65\x72\x6f\x57\x2c\x20\x75\x32\x20\x3d\x20\x53\x32\x2e\x78\x2c\x20\x41\x32\x20\x3d\x20\x53\x32\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x68\x33\x20\x3d\x20\x53\x32\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x64\x32\x20\x3d\x20\x53\x32\x2e\x7a\x65\x72\x6f\x48\x2c\x20\x74\x68\x69\x73\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x7c\x7c\x20\x62\x32\x2e\x70\x75\x73\x68\x28\x75\x32\x20\x2b\x20\x41\x32\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x43\x32\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x76\x32\x20\x7d\x29\x2c\x20\x4c\x32\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x67\x6f\x61\x6c\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x22\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x22\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x22\x20\x7d\x29\x2c\x20\x50\x32\x20\x3d\x20\x30\x3b\x20\x50\x32\x20\x3c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x20\x50\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x54\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x28\x6e\x32\x2c\x20\x50\x32\x2c\x20\x76\x32\x29\x2c\x20\x4d\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x49\x32\x20\x3d\x20\x7b\x20\x69\x6e\x64\x65\x78\x65\x73\x3a\x20\x7b\x20\x69\x3a\x20\x6e\x32\x2c\x20\x6a\x3a\x20\x50\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x76\x32\x2c\x20\x62\x63\x3a\x20\x6c\x32\x20\x7d\x2c\x20\x78\x3a\x20\x75\x32\x2c\x20\x79\x3a\x20\x70\x33\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x54\x32\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x77\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x28\x4d\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x42\x61\x72\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x49\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x6b\x32\x2c\x20\x7a\x65\x72\x6f\x57\x3a\x20\x67\x32\x2c\x20\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x63\x32\x20\x7d\x29\x29\x2c\x20\x41\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x5b\x50\x32\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x29\x20\x3a\x20\x28\x4d\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x49\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x68\x33\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x41\x32\x2c\x20\x7a\x65\x72\x6f\x48\x3a\x20\x64\x32\x20\x7d\x29\x29\x2c\x20\x6b\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x5b\x50\x32\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x7a\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x64\x72\x61\x77\x47\x6f\x61\x6c\x4c\x69\x6e\x65\x28\x7b\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x4d\x32\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x4d\x32\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x67\x6f\x61\x6c\x58\x3a\x20\x4d\x32\x2e\x67\x6f\x61\x6c\x58\x2c\x20\x67\x6f\x61\x6c\x59\x3a\x20\x4d\x32\x2e\x67\x6f\x61\x6c\x59\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x6b\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x41\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7a\x32\x20\x26\x26\x20\x4c\x32\x2e\x61\x64\x64\x28\x7a\x32\x29\x2c\x20\x70\x33\x20\x3d\x20\x4d\x32\x2e\x79\x2c\x20\x75\x32\x20\x3d\x20\x4d\x32\x2e\x78\x2c\x20\x50\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x62\x32\x2e\x70\x75\x73\x68\x28\x75\x32\x20\x2b\x20\x41\x32\x20\x2f\x20\x32\x29\x2c\x20\x66\x32\x2e\x70\x75\x73\x68\x28\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x58\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x50\x61\x74\x68\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x28\x74\x33\x2c\x20\x6e\x32\x2c\x20\x50\x32\x2c\x20\x76\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x6e\x64\x65\x72\x53\x65\x72\x69\x65\x73\x28\x7b\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x76\x32\x2c\x20\x70\x61\x74\x68\x46\x69\x6c\x6c\x3a\x20\x58\x32\x2c\x20\x6a\x3a\x20\x50\x32\x2c\x20\x69\x3a\x20\x6e\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x4d\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x4d\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x54\x32\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x77\x32\x2c\x20\x78\x3a\x20\x75\x32\x2c\x20\x79\x3a\x20\x70\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x6b\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x41\x32\x2c\x20\x65\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x57\x72\x61\x70\x3a\x20\x43\x32\x2c\x20\x65\x6c\x47\x6f\x61\x6c\x73\x4d\x61\x72\x6b\x65\x72\x73\x3a\x20\x4c\x32\x2c\x20\x76\x69\x73\x69\x62\x6c\x65\x53\x65\x72\x69\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x61\x72\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x5b\x76\x32\x5d\x20\x3d\x20\x62\x32\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x59\x76\x61\x6c\x75\x65\x73\x5b\x76\x32\x5d\x20\x3d\x20\x66\x32\x2c\x20\x6f\x32\x2e\x61\x64\x64\x28\x77\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6e\x64\x65\x72\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x46\x69\x6c\x6c\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x6c\x69\x6e\x65\x46\x69\x6c\x6c\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x70\x33\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x66\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x78\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x62\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x79\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x57\x72\x61\x70\x2c\x20\x77\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x47\x6f\x61\x6c\x73\x4d\x61\x72\x6b\x65\x72\x73\x2c\x20\x6b\x32\x20\x3d\x20\x74\x33\x2e\x76\x69\x73\x69\x62\x6c\x65\x53\x65\x72\x69\x65\x73\x2c\x20\x41\x32\x20\x3d\x20\x74\x33\x2e\x74\x79\x70\x65\x2c\x20\x53\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x43\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x7c\x7c\x20\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x3f\x20\x53\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x73\x32\x5d\x20\x3a\x20\x53\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x65\x32\x5d\x29\x2c\x20\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x73\x32\x5d\x20\x26\x26\x20\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x73\x32\x5d\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x73\x32\x5d\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4c\x32\x20\x3d\x20\x73\x32\x20\x2f\x20\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x47\x72\x61\x64\x75\x61\x6c\x6c\x79\x2e\x64\x65\x6c\x61\x79\x20\x2a\x20\x28\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x20\x2f\x20\x53\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x29\x20\x2f\x20\x32\x2e\x34\x2c\x20\x50\x32\x20\x3d\x20\x43\x32\x2e\x72\x65\x6e\x64\x65\x72\x50\x61\x74\x68\x73\x28\x7b\x20\x69\x3a\x20\x72\x32\x2c\x20\x6a\x3a\x20\x73\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x6f\x32\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x6e\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x61\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x6c\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x43\x61\x70\x3a\x20\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x6c\x69\x6e\x65\x43\x61\x70\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x69\x32\x2c\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x3a\x20\x4c\x32\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x53\x70\x65\x65\x64\x3a\x20\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x2c\x20\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x53\x70\x65\x65\x64\x3a\x20\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x73\x70\x65\x65\x64\x2c\x20\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x41\x32\x2c\x20\x22\x2d\x61\x72\x65\x61\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x50\x32\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x53\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x54\x32\x20\x3d\x20\x53\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x6f\x72\x65\x63\x61\x73\x74\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x54\x32\x2e\x63\x6f\x75\x6e\x74\x20\x3e\x20\x30\x20\x26\x26\x20\x73\x32\x20\x3e\x3d\x20\x53\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2d\x20\x54\x32\x2e\x63\x6f\x75\x6e\x74\x20\x26\x26\x20\x28\x50\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x2c\x20\x54\x32\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x29\x2c\x20\x50\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x2c\x20\x54\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x2c\x20\x50\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x20\x54\x32\x2e\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x29\x29\x2c\x20\x67\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x75\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x50\x32\x2e\x61\x74\x74\x72\x28\x22\x64\x61\x74\x61\x2d\x72\x61\x6e\x67\x65\x2d\x79\x31\x22\x2c\x20\x67\x32\x29\x2c\x20\x50\x32\x2e\x61\x74\x74\x72\x28\x22\x64\x61\x74\x61\x2d\x72\x61\x6e\x67\x65\x2d\x79\x32\x22\x2c\x20\x75\x32\x29\x29\x2c\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x46\x69\x6c\x74\x65\x72\x28\x50\x32\x2c\x20\x65\x32\x2c\x20\x73\x32\x29\x2c\x20\x68\x33\x2e\x61\x64\x64\x28\x50\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4d\x32\x20\x3d\x20\x6e\x65\x77\x20\x58\x28\x74\x68\x69\x73\x29\x2e\x68\x61\x6e\x64\x6c\x65\x42\x61\x72\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x28\x7b\x20\x78\x3a\x20\x63\x32\x2c\x20\x79\x3a\x20\x64\x32\x2c\x20\x79\x31\x3a\x20\x67\x32\x2c\x20\x79\x32\x3a\x20\x75\x32\x2c\x20\x69\x3a\x20\x72\x32\x2c\x20\x6a\x3a\x20\x73\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x70\x33\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x66\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x78\x32\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x62\x32\x2c\x20\x72\x65\x6e\x64\x65\x72\x65\x64\x50\x61\x74\x68\x3a\x20\x50\x32\x2c\x20\x76\x69\x73\x69\x62\x6c\x65\x53\x65\x72\x69\x65\x73\x3a\x20\x6b\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x79\x32\x2e\x61\x64\x64\x28\x4d\x32\x29\x2c\x20\x68\x33\x2e\x61\x64\x64\x28\x79\x32\x29\x2c\x20\x77\x32\x20\x26\x26\x20\x68\x33\x2e\x61\x64\x64\x28\x77\x32\x29\x2c\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x42\x61\x72\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x65\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x7a\x65\x72\x6f\x57\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x69\x2c\x20\x64\x32\x20\x3d\x20\x65\x32\x2e\x6a\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x28\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x63\x32\x5d\x5b\x64\x32\x5d\x20\x2d\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x58\x52\x61\x74\x69\x6f\x20\x2d\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x6f\x32\x20\x2b\x20\x69\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x58\x46\x6f\x72\x56\x61\x6c\x75\x65\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x63\x32\x5d\x5b\x64\x32\x5d\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x42\x61\x72\x70\x61\x74\x68\x73\x28\x7b\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x67\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2c\x20\x78\x31\x3a\x20\x73\x32\x2c\x20\x78\x32\x3a\x20\x72\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x61\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x69\x3a\x20\x63\x32\x2c\x20\x6a\x3a\x20\x64\x32\x2c\x20\x77\x3a\x20\x68\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x6f\x32\x20\x2b\x3d\x20\x6e\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x62\x61\x72\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x28\x7b\x20\x6a\x3a\x20\x64\x32\x2c\x20\x69\x3a\x20\x63\x32\x2c\x20\x79\x31\x3a\x20\x67\x32\x20\x2d\x20\x69\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x2c\x20\x79\x32\x3a\x20\x69\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x6c\x32\x20\x7d\x29\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x75\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x75\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x78\x3a\x20\x72\x32\x2c\x20\x79\x3a\x20\x6f\x32\x2c\x20\x67\x6f\x61\x6c\x58\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x47\x6f\x61\x6c\x56\x61\x6c\x75\x65\x73\x28\x22\x78\x22\x2c\x20\x73\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x32\x2c\x20\x64\x32\x29\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x67\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x65\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x7a\x65\x72\x6f\x48\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x64\x32\x20\x3d\x20\x65\x32\x2e\x69\x2c\x20\x67\x32\x20\x3d\x20\x65\x32\x2e\x6a\x2c\x20\x75\x32\x20\x3d\x20\x65\x32\x2e\x62\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x63\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x63\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7c\x7c\x20\x28\x70\x33\x20\x3d\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x29\x2c\x20\x69\x32\x20\x3d\x20\x28\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x70\x33\x5d\x5b\x67\x32\x5d\x20\x2d\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x20\x2d\x20\x72\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x69\x32\x20\x2b\x20\x72\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x59\x46\x6f\x72\x56\x61\x6c\x75\x65\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x2c\x20\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x28\x7b\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x66\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x72\x32\x2c\x20\x79\x31\x3a\x20\x6f\x32\x2c\x20\x79\x32\x3a\x20\x61\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x6e\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x69\x3a\x20\x64\x32\x2c\x20\x6a\x3a\x20\x67\x32\x2c\x20\x77\x3a\x20\x68\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x69\x32\x20\x2b\x3d\x20\x73\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x62\x61\x72\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x28\x7b\x20\x62\x63\x3a\x20\x75\x32\x2c\x20\x6a\x3a\x20\x67\x32\x2c\x20\x69\x3a\x20\x64\x32\x2c\x20\x78\x31\x3a\x20\x66\x32\x20\x2d\x20\x6e\x32\x20\x2f\x20\x32\x20\x2d\x20\x72\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x2c\x20\x78\x32\x3a\x20\x72\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x20\x2b\x20\x6e\x32\x20\x2f\x20\x32\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x6c\x32\x20\x7d\x29\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x78\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x78\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x78\x3a\x20\x69\x32\x2c\x20\x79\x3a\x20\x61\x32\x2c\x20\x67\x6f\x61\x6c\x59\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x47\x6f\x61\x6c\x56\x61\x6c\x75\x65\x73\x28\x22\x79\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6f\x32\x2c\x20\x64\x32\x2c\x20\x67\x32\x29\x2c\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x66\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x73\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x70\x61\x74\x68\x73\x20\x26\x26\x20\x72\x32\x2e\x70\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x72\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x31\x30\x29\x20\x3d\x3d\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2c\x20\x31\x30\x29\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x73\x32\x5d\x2e\x70\x61\x74\x68\x73\x5b\x65\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x73\x32\x5d\x2e\x70\x61\x74\x68\x73\x5b\x65\x32\x5d\x2e\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x52\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x6e\x74\x68\x73\x33\x31\x20\x3d\x20\x5b\x31\x2c\x20\x33\x2c\x20\x35\x2c\x20\x37\x2c\x20\x38\x2c\x20\x31\x30\x2c\x20\x31\x32\x5d\x2c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x6e\x74\x68\x73\x33\x30\x20\x3d\x20\x5b\x32\x2c\x20\x34\x2c\x20\x36\x2c\x20\x39\x2c\x20\x31\x31\x5d\x2c\x20\x74\x68\x69\x73\x2e\x64\x61\x79\x73\x43\x6e\x74\x4f\x66\x59\x65\x61\x72\x20\x3d\x20\x5b\x30\x2c\x20\x33\x31\x2c\x20\x35\x39\x2c\x20\x39\x30\x2c\x20\x31\x32\x30\x2c\x20\x31\x35\x31\x2c\x20\x31\x38\x31\x2c\x20\x32\x31\x32\x2c\x20\x32\x34\x33\x2c\x20\x32\x37\x33\x2c\x20\x33\x30\x34\x2c\x20\x33\x33\x34\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x56\x61\x6c\x69\x64\x44\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x69\x73\x4e\x61\x4e\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x65\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x54\x69\x6d\x65\x53\x74\x61\x6d\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x44\x61\x74\x65\x2e\x70\x61\x72\x73\x65\x28\x74\x33\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x64\x61\x74\x65\x74\x69\x6d\x65\x55\x54\x43\x20\x3f\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x74\x33\x29\x2e\x74\x6f\x49\x53\x4f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x73\x75\x62\x73\x74\x72\x28\x30\x2c\x20\x32\x35\x29\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x20\x3a\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x74\x33\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x20\x3a\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x44\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x64\x61\x74\x65\x74\x69\x6d\x65\x55\x54\x43\x20\x3f\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x74\x33\x29\x2e\x74\x6f\x55\x54\x43\x53\x74\x72\x69\x6e\x67\x28\x29\x29\x20\x3a\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x72\x73\x65\x44\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x44\x61\x74\x65\x2e\x70\x61\x72\x73\x65\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4e\x61\x4e\x28\x65\x32\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x54\x69\x6d\x65\x53\x74\x61\x6d\x70\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x44\x61\x74\x65\x2e\x70\x61\x72\x73\x65\x28\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x2d\x2f\x67\x2c\x20\x22\x2f\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x61\x2d\x7a\x5d\x2b\x2f\x67\x69\x2c\x20\x22\x20\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x54\x69\x6d\x65\x53\x74\x61\x6d\x70\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x72\x73\x65\x44\x61\x74\x65\x57\x69\x74\x68\x54\x69\x6d\x65\x7a\x6f\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x44\x61\x74\x65\x2e\x70\x61\x72\x73\x65\x28\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x2d\x2f\x67\x2c\x20\x22\x2f\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x61\x2d\x7a\x5d\x2b\x2f\x67\x69\x2c\x20\x22\x20\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x64\x61\x74\x65\x74\x69\x6d\x65\x55\x54\x43\x2c\x20\x73\x32\x20\x3d\x20\x5b\x22\x5c\x30\x22\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x75\x28\x69\x32\x2e\x6d\x6f\x6e\x74\x68\x73\x29\x29\x2c\x20\x72\x32\x20\x3d\x20\x5b\x22\x01\x22\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x75\x28\x69\x32\x2e\x73\x68\x6f\x72\x74\x4d\x6f\x6e\x74\x68\x73\x29\x29\x2c\x20\x6f\x32\x20\x3d\x20\x5b\x22\x02\x22\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x75\x28\x69\x32\x2e\x64\x61\x79\x73\x29\x29\x2c\x20\x6e\x32\x20\x3d\x20\x5b\x22\x03\x22\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x75\x28\x69\x32\x2e\x73\x68\x6f\x72\x74\x44\x61\x79\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x32\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x34\x20\x2b\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x65\x33\x20\x3d\x20\x65\x33\x20\x7c\x7c\x20\x32\x3b\x20\x69\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x65\x33\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x22\x30\x22\x20\x2b\x20\x69\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x61\x32\x20\x3f\x20\x74\x33\x2e\x67\x65\x74\x55\x54\x43\x46\x75\x6c\x6c\x59\x65\x61\x72\x28\x29\x20\x3a\x20\x74\x33\x2e\x67\x65\x74\x46\x75\x6c\x6c\x59\x65\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x79\x79\x79\x79\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x68\x33\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x79\x79\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x68\x33\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x73\x75\x62\x73\x74\x72\x28\x32\x2c\x20\x32\x29\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x79\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x28\x61\x32\x20\x3f\x20\x74\x33\x2e\x67\x65\x74\x55\x54\x43\x4d\x6f\x6e\x74\x68\x28\x29\x20\x3a\x20\x74\x33\x2e\x67\x65\x74\x4d\x6f\x6e\x74\x68\x28\x29\x29\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x4d\x4d\x4d\x4d\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x73\x32\x5b\x30\x5d\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x4d\x4d\x4d\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x72\x32\x5b\x30\x5d\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x4d\x4d\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6c\x32\x28\x63\x32\x29\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x4d\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x61\x32\x20\x3f\x20\x74\x33\x2e\x67\x65\x74\x55\x54\x43\x44\x61\x74\x65\x28\x29\x20\x3a\x20\x74\x33\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x64\x64\x64\x64\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6f\x32\x5b\x30\x5d\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x64\x64\x64\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6e\x32\x5b\x30\x5d\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x64\x64\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6c\x32\x28\x64\x32\x29\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x64\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x64\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x61\x32\x20\x3f\x20\x74\x33\x2e\x67\x65\x74\x55\x54\x43\x48\x6f\x75\x72\x73\x28\x29\x20\x3a\x20\x74\x33\x2e\x67\x65\x74\x48\x6f\x75\x72\x73\x28\x29\x2c\x20\x70\x33\x20\x3d\x20\x67\x32\x20\x3e\x20\x31\x32\x20\x3f\x20\x67\x32\x20\x2d\x20\x31\x32\x20\x3a\x20\x67\x32\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x31\x32\x20\x3a\x20\x67\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x48\x48\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6c\x32\x28\x67\x32\x29\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x48\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x67\x32\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x68\x68\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6c\x32\x28\x70\x33\x29\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x68\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x61\x32\x20\x3f\x20\x74\x33\x2e\x67\x65\x74\x55\x54\x43\x4d\x69\x6e\x75\x74\x65\x73\x28\x29\x20\x3a\x20\x74\x33\x2e\x67\x65\x74\x4d\x69\x6e\x75\x74\x65\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x6d\x6d\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6c\x32\x28\x66\x32\x29\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x6d\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x61\x32\x20\x3f\x20\x74\x33\x2e\x67\x65\x74\x55\x54\x43\x53\x65\x63\x6f\x6e\x64\x73\x28\x29\x20\x3a\x20\x74\x33\x2e\x67\x65\x74\x53\x65\x63\x6f\x6e\x64\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x73\x73\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6c\x32\x28\x78\x32\x29\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x73\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x78\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x61\x32\x20\x3f\x20\x74\x33\x2e\x67\x65\x74\x55\x54\x43\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x73\x28\x29\x20\x3a\x20\x74\x33\x2e\x67\x65\x74\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x66\x66\x66\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6c\x32\x28\x62\x32\x2c\x20\x33\x29\x29\x2c\x20\x62\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x62\x32\x20\x2f\x20\x31\x30\x29\x2c\x20\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x66\x66\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6c\x32\x28\x62\x32\x29\x29\x2c\x20\x62\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x62\x32\x20\x2f\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x67\x32\x20\x3c\x20\x31\x32\x20\x3f\x20\x22\x41\x4d\x22\x20\x3a\x20\x22\x50\x4d\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x66\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x62\x32\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x54\x54\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x76\x32\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x54\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x76\x32\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x32\x20\x3d\x20\x76\x32\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x74\x74\x2b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6d\x32\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x74\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x6d\x32\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x2d\x74\x33\x2e\x67\x65\x74\x54\x69\x6d\x65\x7a\x6f\x6e\x65\x4f\x66\x66\x73\x65\x74\x28\x29\x2c\x20\x77\x32\x20\x3d\x20\x61\x32\x20\x7c\x7c\x20\x21\x79\x32\x20\x3f\x20\x22\x5a\x22\x20\x3a\x20\x79\x32\x20\x3e\x20\x30\x20\x3f\x20\x22\x2b\x22\x20\x3a\x20\x22\x2d\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x28\x79\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x79\x32\x29\x29\x20\x25\x20\x36\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x32\x20\x2b\x3d\x20\x6c\x32\x28\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x79\x32\x20\x2f\x20\x36\x30\x29\x29\x20\x2b\x20\x22\x3a\x22\x20\x2b\x20\x6c\x32\x28\x6b\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x5e\x7c\x5b\x5e\x5c\x5c\x5d\x29\x4b\x2f\x67\x2c\x20\x22\x24\x31\x22\x20\x2b\x20\x77\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x28\x61\x32\x20\x3f\x20\x74\x33\x2e\x67\x65\x74\x55\x54\x43\x44\x61\x79\x28\x29\x20\x3a\x20\x74\x33\x2e\x67\x65\x74\x44\x61\x79\x28\x29\x29\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x6f\x32\x5b\x30\x5d\x2c\x20\x22\x67\x22\x29\x2c\x20\x6f\x32\x5b\x41\x32\x5d\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x6e\x32\x5b\x30\x5d\x2c\x20\x22\x67\x22\x29\x2c\x20\x6e\x32\x5b\x41\x32\x5d\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x73\x32\x5b\x30\x5d\x2c\x20\x22\x67\x22\x29\x2c\x20\x73\x32\x5b\x63\x32\x5d\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x72\x32\x5b\x30\x5d\x2c\x20\x22\x67\x22\x29\x2c\x20\x72\x32\x5b\x63\x32\x5d\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x5c\x28\x2e\x29\x2f\x67\x2c\x20\x22\x24\x31\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x54\x69\x6d\x65\x55\x6e\x69\x74\x73\x66\x72\x6f\x6d\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x74\x33\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x65\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x28\x73\x32\x2c\x20\x22\x79\x79\x79\x79\x20\x4d\x4d\x20\x64\x64\x20\x48\x48\x20\x6d\x6d\x20\x73\x73\x20\x66\x66\x66\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x28\x72\x32\x2c\x20\x22\x79\x79\x79\x79\x20\x4d\x4d\x20\x64\x64\x20\x48\x48\x20\x6d\x6d\x20\x73\x73\x20\x66\x66\x66\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6d\x69\x6e\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6f\x32\x5b\x36\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x61\x78\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6e\x32\x5b\x36\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x69\x6e\x53\x65\x63\x6f\x6e\x64\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6f\x32\x5b\x35\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x61\x78\x53\x65\x63\x6f\x6e\x64\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6e\x32\x5b\x35\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x69\x6e\x4d\x69\x6e\x75\x74\x65\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6f\x32\x5b\x34\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x61\x78\x4d\x69\x6e\x75\x74\x65\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6e\x32\x5b\x34\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x69\x6e\x48\x6f\x75\x72\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6f\x32\x5b\x33\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x61\x78\x48\x6f\x75\x72\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6e\x32\x5b\x33\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x69\x6e\x44\x61\x74\x65\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6f\x32\x5b\x32\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x61\x78\x44\x61\x74\x65\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6e\x32\x5b\x32\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x69\x6e\x4d\x6f\x6e\x74\x68\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6f\x32\x5b\x31\x5d\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x2c\x20\x6d\x61\x78\x4d\x6f\x6e\x74\x68\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6e\x32\x5b\x31\x5d\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x2c\x20\x6d\x69\x6e\x59\x65\x61\x72\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6f\x32\x5b\x30\x5d\x2c\x20\x31\x30\x29\x2c\x20\x6d\x61\x78\x59\x65\x61\x72\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6e\x32\x5b\x30\x5d\x2c\x20\x31\x30\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x4c\x65\x61\x70\x59\x65\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x25\x20\x34\x20\x3d\x3d\x20\x30\x20\x26\x26\x20\x74\x33\x20\x25\x20\x31\x30\x30\x20\x21\x3d\x20\x30\x20\x7c\x7c\x20\x74\x33\x20\x25\x20\x34\x30\x30\x20\x3d\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x61\x6c\x63\x75\x6c\x63\x61\x74\x65\x4c\x61\x73\x74\x44\x61\x79\x73\x4f\x66\x4d\x6f\x6e\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x2d\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x59\x65\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x33\x36\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x73\x4c\x65\x61\x70\x59\x65\x61\x72\x28\x74\x33\x29\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x33\x36\x36\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x52\x65\x6d\x61\x69\x6e\x69\x6e\x67\x44\x61\x79\x73\x4f\x66\x59\x65\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x61\x79\x73\x43\x6e\x74\x4f\x66\x59\x65\x61\x72\x5b\x65\x32\x5d\x20\x2b\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x3e\x20\x31\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x69\x73\x4c\x65\x61\x70\x59\x65\x61\x72\x28\x29\x20\x26\x26\x20\x61\x32\x2b\x2b\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x33\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x33\x20\x3d\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x74\x33\x29\x2c\x20\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x74\x68\x69\x73\x2e\x6d\x6f\x6e\x74\x68\x73\x33\x30\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x20\x3e\x20\x2d\x31\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x3d\x20\x32\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x73\x4c\x65\x61\x70\x59\x65\x61\x72\x28\x65\x32\x29\x20\x3f\x20\x32\x39\x20\x3a\x20\x32\x38\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x74\x68\x69\x73\x2e\x6d\x6f\x6e\x74\x68\x73\x33\x31\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x20\x3e\x20\x2d\x31\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x33\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x48\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x28\x73\x32\x2c\x20\x46\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x64\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x32\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x73\x32\x29\x2c\x20\x69\x32\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x73\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x61\x6e\x67\x65\x42\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x6e\x67\x65\x42\x61\x72\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x69\x6e\x69\x74\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x73\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x22\x20\x7d\x29\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x2c\x20\x63\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x67\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x75\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x69\x33\x5b\x6f\x32\x5d\x20\x3a\x20\x6f\x32\x2c\x20\x70\x33\x20\x3d\x20\x73\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x75\x32\x5d\x29\x2c\x20\x72\x65\x6c\x3a\x20\x6f\x32\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x75\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x43\x6c\x61\x73\x73\x54\x6f\x53\x65\x72\x69\x65\x73\x28\x70\x33\x2c\x20\x75\x32\x29\x2c\x20\x74\x33\x5b\x6f\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x3d\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x30\x2c\x20\x62\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x3d\x20\x76\x32\x2e\x79\x2c\x20\x68\x33\x20\x3d\x20\x76\x32\x2e\x7a\x65\x72\x6f\x57\x2c\x20\x63\x32\x20\x3d\x20\x76\x32\x2e\x78\x2c\x20\x62\x32\x20\x3d\x20\x76\x32\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x76\x32\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x6c\x32\x20\x3d\x20\x76\x32\x2e\x7a\x65\x72\x6f\x48\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x73\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x75\x32\x20\x7d\x29\x2c\x20\x77\x32\x20\x3d\x20\x73\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x2d\x67\x6f\x61\x6c\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x22\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x22\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x22\x20\x7d\x29\x2c\x20\x6b\x32\x20\x3d\x20\x30\x3b\x20\x6b\x32\x20\x3c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x20\x6b\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x28\x6f\x32\x2c\x20\x6b\x32\x2c\x20\x75\x32\x29\x2c\x20\x53\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x5b\x6f\x32\x5d\x5b\x6b\x32\x5d\x2c\x20\x43\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x5b\x6f\x32\x5d\x5b\x6b\x32\x5d\x2c\x20\x4c\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x50\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x54\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x63\x32\x2c\x20\x79\x3a\x20\x64\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x41\x32\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x70\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x67\x32\x20\x3d\x20\x76\x32\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x66\x32\x20\x3d\x20\x76\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x32\x20\x3d\x20\x64\x32\x20\x2b\x20\x66\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4d\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x4c\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x72\x61\x6e\x67\x65\x42\x61\x72\x47\x72\x6f\x75\x70\x52\x6f\x77\x73\x20\x26\x26\x20\x28\x4d\x32\x20\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x49\x32\x20\x3d\x20\x28\x67\x32\x20\x2d\x20\x66\x32\x20\x2a\x20\x4d\x32\x29\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6f\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6b\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\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\x69\x66\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6f\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6b\x32\x5d\x2e\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x7a\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x65\x74\x65\x63\x74\x4f\x76\x65\x72\x6c\x61\x70\x70\x69\x6e\x67\x42\x61\x72\x73\x28\x7b\x20\x69\x3a\x20\x6f\x32\x2c\x20\x6a\x3a\x20\x6b\x32\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x50\x32\x2c\x20\x73\x72\x74\x79\x3a\x20\x49\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x66\x32\x2c\x20\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x67\x32\x2c\x20\x69\x6e\x69\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x3a\x20\x76\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x32\x20\x3d\x20\x7a\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x50\x32\x20\x3d\x20\x7a\x32\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\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\x62\x32\x20\x3d\x20\x28\x4c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x52\x61\x6e\x67\x65\x42\x61\x72\x50\x61\x74\x68\x73\x28\x65\x28\x7b\x20\x69\x6e\x64\x65\x78\x65\x73\x3a\x20\x7b\x20\x69\x3a\x20\x6f\x32\x2c\x20\x6a\x3a\x20\x6b\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x75\x32\x20\x7d\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x66\x32\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x50\x32\x2c\x20\x7a\x65\x72\x6f\x57\x3a\x20\x68\x33\x2c\x20\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x67\x32\x2c\x20\x79\x31\x3a\x20\x53\x32\x2c\x20\x79\x32\x3a\x20\x43\x32\x20\x7d\x2c\x20\x54\x32\x29\x29\x29\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x32\x20\x3d\x20\x28\x4c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x52\x61\x6e\x67\x65\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x28\x65\x28\x7b\x20\x69\x6e\x64\x65\x78\x65\x73\x3a\x20\x7b\x20\x69\x3a\x20\x6f\x32\x2c\x20\x6a\x3a\x20\x6b\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x75\x32\x20\x7d\x2c\x20\x7a\x65\x72\x6f\x48\x3a\x20\x6c\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x62\x32\x2c\x20\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x6e\x32\x20\x7d\x2c\x20\x54\x32\x29\x29\x29\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x58\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x64\x72\x61\x77\x47\x6f\x61\x6c\x4c\x69\x6e\x65\x28\x7b\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x4c\x32\x2e\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x50\x32\x2c\x20\x67\x6f\x61\x6c\x58\x3a\x20\x4c\x32\x2e\x67\x6f\x61\x6c\x58\x2c\x20\x67\x6f\x61\x6c\x59\x3a\x20\x4c\x32\x2e\x67\x6f\x61\x6c\x59\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x66\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x62\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x58\x32\x20\x26\x26\x20\x77\x32\x2e\x61\x64\x64\x28\x58\x32\x29\x2c\x20\x64\x32\x20\x3d\x20\x4c\x32\x2e\x79\x2c\x20\x63\x32\x20\x3d\x20\x4c\x32\x2e\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x45\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x50\x61\x74\x68\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x28\x74\x33\x2c\x20\x6f\x32\x2c\x20\x6b\x32\x2c\x20\x75\x32\x29\x2c\x20\x59\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x75\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x6e\x64\x65\x72\x53\x65\x72\x69\x65\x73\x28\x7b\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x75\x32\x2c\x20\x70\x61\x74\x68\x46\x69\x6c\x6c\x3a\x20\x45\x32\x2c\x20\x6c\x69\x6e\x65\x46\x69\x6c\x6c\x3a\x20\x59\x32\x2c\x20\x6a\x3a\x20\x6b\x32\x2c\x20\x69\x3a\x20\x6f\x32\x2c\x20\x78\x3a\x20\x63\x32\x2c\x20\x79\x3a\x20\x64\x32\x2c\x20\x79\x31\x3a\x20\x53\x32\x2c\x20\x79\x32\x3a\x20\x43\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x4c\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x4c\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x41\x32\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x70\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x66\x32\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x50\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x62\x32\x2c\x20\x65\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x57\x72\x61\x70\x3a\x20\x79\x32\x2c\x20\x65\x6c\x47\x6f\x61\x6c\x73\x4d\x61\x72\x6b\x65\x72\x73\x3a\x20\x77\x32\x2c\x20\x76\x69\x73\x69\x62\x6c\x65\x53\x65\x72\x69\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x72\x61\x6e\x67\x65\x62\x61\x72\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x61\x64\x64\x28\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x74\x65\x63\x74\x4f\x76\x65\x72\x6c\x61\x70\x70\x69\x6e\x67\x42\x61\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x73\x72\x74\x79\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x69\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x68\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x63\x32\x20\x3d\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x69\x33\x5d\x2e\x72\x61\x6e\x67\x65\x4e\x61\x6d\x65\x2c\x20\x64\x32\x20\x3d\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x69\x33\x5d\x2e\x78\x2c\x20\x67\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x64\x32\x29\x2c\x20\x75\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x5b\x65\x32\x5d\x2e\x66\x69\x6e\x64\x49\x6e\x64\x65\x78\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x78\x20\x3d\x3d\x3d\x20\x64\x32\x20\x26\x26\x20\x74\x34\x2e\x6f\x76\x65\x72\x6c\x61\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x20\x3d\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x72\x61\x6e\x67\x65\x42\x61\x72\x47\x72\x6f\x75\x70\x52\x6f\x77\x73\x20\x3f\x20\x73\x33\x20\x2b\x20\x6f\x32\x20\x2a\x20\x67\x32\x20\x3a\x20\x73\x33\x20\x2b\x20\x72\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x2b\x20\x6f\x32\x20\x2a\x20\x67\x32\x2c\x20\x75\x32\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x21\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x72\x61\x6e\x67\x65\x42\x61\x72\x4f\x76\x65\x72\x6c\x61\x70\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x5b\x65\x32\x5d\x5b\x75\x32\x5d\x2e\x6f\x76\x65\x72\x6c\x61\x70\x73\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x63\x32\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x28\x72\x32\x20\x3d\x20\x6e\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x68\x33\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x2b\x20\x6f\x32\x20\x2a\x20\x28\x31\x30\x30\x20\x2d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x31\x30\x29\x29\x20\x2f\x20\x31\x30\x30\x20\x2f\x20\x32\x20\x2b\x20\x72\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x2b\x20\x68\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x63\x32\x29\x29\x20\x2b\x20\x6f\x32\x20\x2a\x20\x67\x32\x29\x2c\x20\x7b\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x72\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x52\x61\x6e\x67\x65\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x65\x73\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x7a\x65\x72\x6f\x48\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x69\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x6a\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x52\x61\x6e\x67\x65\x56\x61\x6c\x75\x65\x28\x63\x32\x2c\x20\x6c\x32\x29\x2c\x20\x67\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x64\x32\x2e\x73\x74\x61\x72\x74\x2c\x20\x64\x32\x2e\x65\x6e\x64\x29\x2c\x20\x75\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x64\x32\x2e\x73\x74\x61\x72\x74\x2c\x20\x64\x32\x2e\x65\x6e\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x69\x33\x20\x3d\x20\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x6e\x32\x5d\x5b\x6c\x32\x5d\x20\x2d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x20\x2d\x20\x73\x33\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x69\x33\x20\x2b\x20\x73\x33\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x5b\x6c\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x5b\x6c\x32\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x67\x32\x20\x3d\x20\x72\x32\x20\x3a\x20\x28\x67\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x67\x32\x20\x2f\x20\x68\x33\x2c\x20\x75\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x75\x32\x20\x2f\x20\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x75\x32\x20\x2d\x20\x67\x32\x29\x2c\x20\x78\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x28\x7b\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x70\x33\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x73\x33\x2c\x20\x79\x31\x3a\x20\x67\x32\x2c\x20\x79\x32\x3a\x20\x75\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x69\x3a\x20\x63\x32\x2c\x20\x6a\x3a\x20\x6c\x32\x2c\x20\x77\x3a\x20\x6f\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x69\x33\x20\x2b\x3d\x20\x61\x32\x29\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x78\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x78\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x66\x32\x2c\x20\x78\x3a\x20\x69\x33\x2c\x20\x79\x3a\x20\x75\x32\x2c\x20\x67\x6f\x61\x6c\x59\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x47\x6f\x61\x6c\x56\x61\x6c\x75\x65\x73\x28\x22\x79\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x29\x2c\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x70\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x52\x61\x6e\x67\x65\x42\x61\x72\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x65\x73\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x7a\x65\x72\x6f\x57\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x63\x32\x20\x3d\x20\x6c\x32\x20\x2b\x20\x61\x32\x20\x2f\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x2c\x20\x64\x32\x20\x3d\x20\x6c\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x2c\x20\x67\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x64\x32\x20\x2d\x20\x63\x32\x29\x2c\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x42\x61\x72\x70\x61\x74\x68\x73\x28\x7b\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x6e\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x6f\x32\x2c\x20\x78\x31\x3a\x20\x63\x32\x2c\x20\x78\x32\x3a\x20\x64\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x2c\x20\x69\x3a\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x6a\x3a\x20\x65\x32\x2e\x6a\x2c\x20\x77\x3a\x20\x68\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x69\x33\x20\x2b\x3d\x20\x72\x32\x29\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x75\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x75\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x67\x32\x2c\x20\x78\x3a\x20\x64\x32\x2c\x20\x67\x6f\x61\x6c\x58\x3a\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x47\x6f\x61\x6c\x56\x61\x6c\x75\x65\x73\x28\x22\x78\x22\x2c\x20\x6c\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x65\x32\x2e\x6a\x29\x2c\x20\x79\x3a\x20\x69\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x52\x61\x6e\x67\x65\x56\x61\x6c\x75\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x2c\x20\x65\x6e\x64\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x54\x6f\x6f\x6c\x74\x69\x70\x56\x61\x6c\x75\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x74\x78\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x77\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x5b\x69\x33\x5d\x5b\x61\x32\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x5b\x69\x33\x5d\x5b\x61\x32\x5d\x2c\x20\x68\x33\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x61\x32\x5d\x2c\x20\x63\x32\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x69\x33\x5d\x2e\x6e\x61\x6d\x65\x20\x3f\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x69\x33\x5d\x2e\x6e\x61\x6d\x65\x20\x3a\x20\x22\x22\x2c\x20\x64\x32\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x79\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x67\x32\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x79\x2e\x74\x69\x74\x6c\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x75\x32\x20\x3d\x20\x7b\x20\x77\x3a\x20\x6f\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x69\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x61\x32\x2c\x20\x73\x74\x61\x72\x74\x3a\x20\x6e\x32\x2c\x20\x65\x6e\x64\x3a\x20\x6c\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x67\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x67\x32\x28\x63\x32\x2c\x20\x75\x32\x29\x29\x2c\x20\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x73\x33\x29\x20\x26\x26\x20\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x72\x32\x29\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x73\x33\x2c\x20\x6c\x32\x20\x3d\x20\x72\x32\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x69\x33\x5d\x2e\x64\x61\x74\x61\x5b\x61\x32\x5d\x2e\x78\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x69\x33\x5d\x2e\x64\x61\x74\x61\x5b\x61\x32\x5d\x2e\x78\x20\x2b\x20\x22\x3a\x22\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x64\x32\x28\x68\x33\x2c\x20\x75\x32\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x22\x22\x2c\x20\x66\x32\x20\x3d\x20\x22\x22\x2c\x20\x78\x32\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x69\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x62\x32\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x28\x62\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x6e\x32\x29\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x29\x2c\x20\x66\x32\x20\x3d\x20\x62\x32\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x28\x62\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x6c\x32\x29\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x6e\x32\x2c\x20\x66\x32\x20\x3d\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x6e\x32\x29\x2c\x20\x66\x32\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x6e\x32\x2c\x20\x65\x6e\x64\x3a\x20\x6c\x32\x2c\x20\x73\x74\x61\x72\x74\x56\x61\x6c\x3a\x20\x70\x33\x2c\x20\x65\x6e\x64\x56\x61\x6c\x3a\x20\x66\x32\x2c\x20\x79\x6c\x61\x62\x65\x6c\x3a\x20\x68\x33\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x78\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x63\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x62\x75\x69\x6c\x64\x43\x75\x73\x74\x6f\x6d\x54\x6f\x6f\x6c\x74\x69\x70\x48\x54\x4d\x4c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x27\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x22\x3e\x3c\x64\x69\x76\x3e\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x65\x72\x69\x65\x73\x2d\x6e\x61\x6d\x65\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x20\x27\x20\x2b\x20\x65\x32\x20\x2b\x20\x27\x22\x3e\x27\x20\x2b\x20\x28\x69\x33\x20\x7c\x7c\x20\x22\x22\x29\x20\x2b\x20\x27\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x64\x69\x76\x3e\x3c\x64\x69\x76\x3e\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x3e\x27\x20\x2b\x20\x74\x33\x2e\x79\x6c\x61\x62\x65\x6c\x20\x2b\x20\x27\x20\x3c\x2f\x73\x70\x61\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x76\x61\x6c\x75\x65\x20\x73\x74\x61\x72\x74\x2d\x76\x61\x6c\x75\x65\x22\x3e\x27\x20\x2b\x20\x74\x33\x2e\x73\x74\x61\x72\x74\x20\x2b\x20\x27\x3c\x2f\x73\x70\x61\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x65\x70\x61\x72\x61\x74\x6f\x72\x22\x3e\x2d\x3c\x2f\x73\x70\x61\x6e\x3e\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x76\x61\x6c\x75\x65\x20\x65\x6e\x64\x2d\x76\x61\x6c\x75\x65\x22\x3e\x27\x20\x2b\x20\x74\x33\x2e\x65\x6e\x64\x20\x2b\x20\x22\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x64\x69\x76\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x73\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x44\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6c\x69\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x65\x61\x73\x69\x6e\x67\x3a\x20\x22\x73\x77\x69\x6e\x67\x22\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x35\x2c\x20\x63\x75\x72\x76\x65\x3a\x20\x22\x73\x74\x72\x61\x69\x67\x68\x74\x22\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x30\x2c\x20\x68\x6f\x76\x65\x72\x3a\x20\x7b\x20\x73\x69\x7a\x65\x4f\x66\x66\x73\x65\x74\x3a\x20\x36\x20\x7d\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x73\x68\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x20\x3d\x20\x22\x22\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2e\x73\x68\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x73\x68\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x74\x33\x2c\x20\x7b\x20\x67\x72\x69\x64\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x7b\x20\x6c\x65\x66\x74\x3a\x20\x30\x2c\x20\x72\x69\x67\x68\x74\x3a\x20\x30\x2c\x20\x74\x6f\x70\x3a\x20\x30\x2c\x20\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x30\x20\x7d\x20\x7d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x7a\x6f\x6f\x6d\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x62\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x73\x74\x61\x63\x6b\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x65\x61\x73\x69\x6e\x67\x3a\x20\x22\x73\x77\x69\x6e\x67\x22\x20\x7d\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x62\x61\x72\x3a\x20\x7b\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x63\x65\x6e\x74\x65\x72\x22\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x6c\x69\x6e\x65\x43\x61\x70\x3a\x20\x22\x72\x6f\x75\x6e\x64\x22\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x38\x35\x20\x7d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x73\x68\x61\x70\x65\x3a\x20\x22\x73\x71\x75\x61\x72\x65\x22\x2c\x20\x72\x61\x64\x69\x75\x73\x3a\x20\x32\x2c\x20\x73\x69\x7a\x65\x3a\x20\x38\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x3a\x20\x22\x62\x65\x74\x77\x65\x65\x6e\x22\x2c\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x62\x61\x63\x6b\x22\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x67\x72\x61\x64\x69\x65\x6e\x74\x22\x20\x7d\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x33\x33\x33\x22\x5d\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x75\x73\x74\x6f\x6d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x5f\x67\x65\x74\x42\x6f\x78\x54\x6f\x6f\x6c\x74\x69\x70\x28\x73\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x5b\x22\x4f\x70\x65\x6e\x22\x2c\x20\x22\x48\x69\x67\x68\x22\x2c\x20\x22\x22\x2c\x20\x22\x4c\x6f\x77\x22\x2c\x20\x22\x43\x6c\x6f\x73\x65\x22\x5d\x2c\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x73\x74\x61\x74\x65\x73\x3a\x20\x7b\x20\x61\x63\x74\x69\x76\x65\x3a\x20\x7b\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x32\x34\x32\x39\x32\x65\x22\x5d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x75\x73\x74\x6f\x6d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x5f\x67\x65\x74\x42\x6f\x78\x54\x6f\x6f\x6c\x74\x69\x70\x28\x73\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x5b\x22\x4d\x69\x6e\x69\x6d\x75\x6d\x22\x2c\x20\x22\x51\x31\x22\x2c\x20\x22\x4d\x65\x64\x69\x61\x6e\x22\x2c\x20\x22\x51\x33\x22\x2c\x20\x22\x4d\x61\x78\x69\x6d\x75\x6d\x22\x5d\x2c\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x35\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x22\x23\x31\x31\x31\x22\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x6c\x69\x6e\x65\x43\x61\x70\x3a\x20\x22\x73\x71\x75\x61\x72\x65\x22\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x62\x61\x72\x3a\x20\x7b\x20\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x3a\x20\x30\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x63\x65\x6e\x74\x65\x72\x22\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x74\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x5b\x69\x32\x5d\x5b\x61\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x5b\x69\x32\x5d\x5b\x61\x32\x5d\x20\x2d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x3a\x20\x74\x72\x75\x65\x2c\x20\x63\x75\x73\x74\x6f\x6d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x20\x26\x26\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x20\x26\x26\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x48\x28\x74\x34\x2e\x63\x74\x78\x2c\x20\x6e\x75\x6c\x6c\x29\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x54\x6f\x6f\x6c\x74\x69\x70\x56\x61\x6c\x75\x65\x73\x28\x74\x34\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x79\x6c\x61\x62\x65\x6c\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x73\x74\x61\x72\x74\x56\x61\x6c\x2c\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x65\x6e\x64\x56\x61\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x62\x75\x69\x6c\x64\x43\x75\x73\x74\x6f\x6d\x54\x6f\x6f\x6c\x74\x69\x70\x48\x54\x4d\x4c\x28\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x61\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x73\x32\x2c\x20\x79\x6c\x61\x62\x65\x6c\x3a\x20\x72\x32\x2c\x20\x73\x74\x61\x72\x74\x3a\x20\x6f\x32\x2c\x20\x65\x6e\x64\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x33\x29\x20\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x48\x28\x74\x34\x2e\x63\x74\x78\x2c\x20\x6e\x75\x6c\x6c\x29\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x54\x6f\x6f\x6c\x74\x69\x70\x56\x61\x6c\x75\x65\x73\x28\x74\x34\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x79\x6c\x61\x62\x65\x6c\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x73\x74\x61\x72\x74\x2c\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x62\x75\x69\x6c\x64\x43\x75\x73\x74\x6f\x6d\x54\x6f\x6f\x6c\x74\x69\x70\x48\x54\x4d\x4c\x28\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x61\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x73\x32\x2c\x20\x79\x6c\x61\x62\x65\x6c\x3a\x20\x72\x32\x2c\x20\x73\x74\x61\x72\x74\x3a\x20\x6f\x32\x2c\x20\x65\x6e\x64\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x3a\x20\x22\x62\x65\x74\x77\x65\x65\x6e\x22\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x72\x65\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x34\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x67\x72\x61\x64\x69\x65\x6e\x74\x22\x2c\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x7b\x20\x69\x6e\x76\x65\x72\x73\x65\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x68\x61\x64\x65\x3a\x20\x22\x6c\x69\x67\x68\x74\x22\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x3a\x20\x30\x2e\x36\x35\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x3a\x20\x30\x2e\x35\x2c\x20\x73\x74\x6f\x70\x73\x3a\x20\x5b\x30\x2c\x20\x31\x30\x30\x2c\x20\x31\x30\x30\x5d\x20\x7d\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x30\x2c\x20\x68\x6f\x76\x65\x72\x3a\x20\x7b\x20\x73\x69\x7a\x65\x4f\x66\x66\x73\x65\x74\x3a\x20\x36\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x62\x72\x75\x73\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x74\x33\x2c\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x20\x61\x75\x74\x6f\x53\x65\x6c\x65\x63\x74\x65\x64\x3a\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x7a\x6f\x6f\x6d\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x74\x61\x63\x6b\x65\x64\x31\x30\x30\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x7c\x7c\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x5b\x69\x32\x5d\x2e\x6d\x69\x6e\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x5b\x69\x32\x5d\x2e\x6d\x61\x78\x20\x3d\x20\x31\x30\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x28\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x65\x32\x20\x7c\x7c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x34\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x74\x34\x20\x3f\x20\x74\x34\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x30\x29\x20\x2b\x20\x22\x25\x22\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6f\x6e\x76\x65\x72\x74\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6f\x6e\x76\x65\x72\x74\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x58\x61\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x20\x22\x6e\x75\x6d\x65\x72\x69\x63\x22\x2c\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x7c\x7c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x34\x29\x20\x3f\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x74\x34\x29\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x20\x26\x26\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x20\x3a\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x26\x26\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x69\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x34\x29\x20\x3f\x20\x74\x34\x20\x3a\x20\x53\x74\x72\x69\x6e\x67\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x73\x32\x20\x26\x26\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x34\x29\x20\x3f\x20\x61\x32\x28\x73\x32\x5b\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x74\x34\x29\x20\x2d\x20\x31\x5d\x29\x20\x3a\x20\x61\x32\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x7c\x7c\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x20\x7d\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x73\x6f\x6c\x69\x64\x22\x2c\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x7b\x20\x73\x68\x61\x64\x65\x3a\x20\x22\x6c\x69\x67\x68\x74\x22\x2c\x20\x69\x6e\x76\x65\x72\x73\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x30\x2e\x35\x35\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x3a\x20\x30\x2e\x34\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x3a\x20\x30\x2e\x38\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x36\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x68\x6f\x76\x65\x72\x3a\x20\x7b\x20\x73\x69\x7a\x65\x4f\x66\x66\x73\x65\x74\x3a\x20\x32\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x73\x74\x61\x63\x6b\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x3a\x20\x74\x72\x75\x65\x2c\x20\x6d\x61\x72\x6b\x65\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x78\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x74\x6f\x70\x22\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x73\x68\x61\x70\x65\x3a\x20\x22\x73\x71\x75\x61\x72\x65\x22\x2c\x20\x73\x69\x7a\x65\x3a\x20\x31\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x59\x3a\x20\x32\x20\x7d\x20\x7d\x2c\x20\x67\x72\x69\x64\x3a\x20\x7b\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x7b\x20\x72\x69\x67\x68\x74\x3a\x20\x32\x30\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x7a\x6f\x6f\x6d\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x31\x34\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x36\x30\x30\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x7b\x20\x73\x74\x6f\x70\x73\x3a\x20\x5b\x30\x2c\x20\x31\x30\x30\x5d\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x3a\x20\x74\x72\x75\x65\x2c\x20\x78\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x67\x72\x69\x64\x3a\x20\x7b\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x7b\x20\x6c\x65\x66\x74\x3a\x20\x30\x2c\x20\x72\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x69\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x70\x69\x65\x3a\x20\x7b\x20\x64\x6f\x6e\x75\x74\x3a\x20\x7b\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x31\x29\x20\x2b\x20\x22\x25\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x2c\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x7b\x20\x73\x68\x61\x64\x65\x3a\x20\x22\x6c\x69\x67\x68\x74\x22\x2c\x20\x73\x74\x6f\x70\x73\x3a\x20\x5b\x30\x2c\x20\x31\x30\x30\x5d\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x74\x68\x65\x6d\x65\x3a\x20\x22\x64\x61\x72\x6b\x22\x2c\x20\x66\x69\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x72\x69\x67\x68\x74\x22\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x6f\x6e\x75\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x31\x29\x20\x2b\x20\x22\x25\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x66\x66\x66\x22\x5d\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x2c\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x7b\x20\x73\x68\x61\x64\x65\x3a\x20\x22\x6c\x69\x67\x68\x74\x22\x2c\x20\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x30\x2e\x33\x35\x2c\x20\x73\x74\x6f\x70\x73\x3a\x20\x5b\x38\x30\x2c\x20\x31\x30\x30\x5d\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x3a\x20\x31\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x3a\x20\x31\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x74\x68\x65\x6d\x65\x3a\x20\x22\x64\x61\x72\x6b\x22\x2c\x20\x66\x69\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x72\x69\x67\x68\x74\x22\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3f\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3a\x20\x36\x2c\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x31\x29\x20\x2b\x20\x22\x25\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x37\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x74\x68\x65\x6d\x65\x3a\x20\x22\x64\x61\x72\x6b\x22\x2c\x20\x66\x69\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x72\x69\x67\x68\x74\x22\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x61\x64\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x3f\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x3a\x20\x36\x2c\x20\x7b\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x31\x70\x78\x22\x20\x7d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x33\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x31\x2c\x20\x73\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x32\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x3a\x20\x74\x72\x75\x65\x2c\x20\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x67\x72\x69\x64\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x22\x23\x61\x38\x61\x38\x61\x38\x22\x5d\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x22\x31\x31\x70\x78\x22\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x70\x65\x65\x64\x3a\x20\x38\x30\x30\x20\x7d\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x7b\x20\x73\x68\x61\x64\x65\x3a\x20\x22\x64\x61\x72\x6b\x22\x2c\x20\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x3a\x20\x30\x2e\x34\x2c\x20\x69\x6e\x76\x65\x72\x73\x65\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x64\x69\x61\x67\x6f\x6e\x61\x6c\x32\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x3a\x20\x31\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x3a\x20\x31\x2c\x20\x73\x74\x6f\x70\x73\x3a\x20\x5b\x37\x30\x2c\x20\x39\x38\x2c\x20\x31\x30\x30\x5d\x20\x7d\x20\x7d\x2c\x20\x6c\x65\x67\x65\x6e\x64\x3a\x20\x7b\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x72\x69\x67\x68\x74\x22\x20\x7d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x69\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x72\x75\x65\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x67\x65\x74\x42\x6f\x78\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4d\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x74\x79\x70\x65\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x73\x32\x20\x3f\x20\x27\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x75\x73\x74\x6f\x6d\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x22\x3e\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x6e\x61\x6d\x65\x20\x3f\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x6e\x61\x6d\x65\x20\x3a\x20\x22\x73\x65\x72\x69\x65\x73\x2d\x22\x20\x2b\x20\x28\x65\x32\x20\x2b\x20\x31\x29\x2c\x20\x22\x3a\x20\x3c\x73\x74\x72\x6f\x6e\x67\x3e\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x2c\x20\x22\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x22\x29\x20\x3a\x20\x27\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x78\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x27\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x27\x22\x3e\x27\x29\x20\x2b\x20\x22\x3c\x64\x69\x76\x3e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x5b\x30\x5d\x2c\x20\x27\x3a\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x76\x61\x6c\x75\x65\x22\x3e\x27\x29\x20\x2b\x20\x72\x32\x20\x2b\x20\x22\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x20\x2b\x20\x22\x3c\x64\x69\x76\x3e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x5b\x31\x5d\x2c\x20\x27\x3a\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x76\x61\x6c\x75\x65\x22\x3e\x27\x29\x20\x2b\x20\x6f\x32\x20\x2b\x20\x22\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x20\x2b\x20\x28\x6e\x32\x20\x3f\x20\x22\x3c\x64\x69\x76\x3e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x5b\x32\x5d\x2c\x20\x27\x3a\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x76\x61\x6c\x75\x65\x22\x3e\x27\x29\x20\x2b\x20\x6e\x32\x20\x2b\x20\x22\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x20\x3a\x20\x22\x22\x29\x20\x2b\x20\x22\x3c\x64\x69\x76\x3e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x5b\x33\x5d\x2c\x20\x27\x3a\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x76\x61\x6c\x75\x65\x22\x3e\x27\x29\x20\x2b\x20\x6c\x32\x20\x2b\x20\x22\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x20\x2b\x20\x22\x3c\x64\x69\x76\x3e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x5b\x34\x5d\x2c\x20\x27\x3a\x20\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x76\x61\x6c\x75\x65\x22\x3e\x27\x29\x20\x2b\x20\x68\x33\x20\x2b\x20\x22\x3c\x2f\x73\x70\x61\x6e\x3e\x3c\x2f\x64\x69\x76\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x4e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x4f\x76\x65\x72\x72\x69\x64\x65\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x4c\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x44\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x69\x73\x74\x6f\x67\x72\x61\x6d\x22\x20\x26\x26\x20\x28\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x20\x22\x62\x61\x72\x22\x2c\x20\x61\x32\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x20\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x62\x61\x72\x3a\x20\x7b\x20\x63\x6f\x6c\x75\x6d\x6e\x57\x69\x64\x74\x68\x3a\x20\x22\x39\x39\x2e\x39\x39\x25\x22\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x61\x32\x29\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x78\x74\x65\x6e\x64\x59\x41\x78\x69\x73\x28\x61\x32\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x78\x74\x65\x6e\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x69\x6e\x69\x74\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x20\x26\x26\x20\x69\x28\x61\x32\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x20\x3d\x20\x5b\x22\x6c\x69\x6e\x65\x22\x2c\x20\x22\x61\x72\x65\x61\x22\x2c\x20\x22\x62\x61\x72\x22\x2c\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x2c\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x2c\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x2c\x20\x22\x68\x69\x73\x74\x6f\x67\x72\x61\x6d\x22\x2c\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x2c\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x2c\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x2c\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x2c\x20\x22\x70\x69\x65\x22\x2c\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x2c\x20\x22\x64\x6f\x6e\x75\x74\x22\x2c\x20\x22\x72\x61\x64\x61\x72\x22\x2c\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x29\x20\x21\x3d\x3d\x20\x2d\x31\x20\x3f\x20\x72\x32\x5b\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x5d\x28\x29\x20\x3a\x20\x72\x32\x2e\x6c\x69\x6e\x65\x28\x29\x2c\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x62\x72\x75\x73\x68\x20\x26\x26\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x62\x72\x75\x73\x68\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x72\x32\x2e\x62\x72\x75\x73\x68\x28\x6c\x32\x29\x29\x2c\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x31\x30\x30\x25\x22\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x72\x32\x2e\x73\x74\x61\x63\x6b\x65\x64\x31\x30\x30\x28\x61\x32\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x46\x6f\x72\x44\x61\x72\x6b\x54\x68\x65\x6d\x65\x28\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x46\x6f\x72\x44\x61\x72\x6b\x54\x68\x65\x6d\x65\x28\x61\x32\x29\x2c\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x20\x3d\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x78\x61\x78\x69\x73\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x65\x32\x20\x7c\x7c\x20\x28\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x28\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x46\x6f\x72\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x58\x41\x78\x69\x73\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x2c\x20\x6c\x32\x2c\x20\x61\x32\x29\x29\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x26\x26\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x63\x68\x61\x72\x74\x20\x26\x26\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x26\x26\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x72\x32\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x28\x6c\x32\x29\x29\x2c\x20\x6e\x32\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x6f\x32\x2c\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x6e\x32\x2c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x68\x33\x2c\x20\x61\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x55\x73\x65\x72\x49\x6e\x70\x75\x74\x45\x72\x72\x6f\x72\x73\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x46\x6f\x72\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x58\x41\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x44\x28\x69\x32\x29\x2c\x20\x73\x32\x20\x3d\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x7c\x7c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x29\x20\x26\x26\x20\x69\x32\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x20\x26\x26\x20\x69\x32\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x20\x26\x26\x20\x69\x32\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x70\x69\x65\x22\x20\x7c\x7c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x7c\x7c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x20\x7c\x7c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x61\x72\x22\x20\x7c\x7c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x20\x7c\x7c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x75\x6d\x65\x72\x69\x63\x22\x2c\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x3f\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x3a\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x20\x26\x26\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x20\x7c\x7c\x20\x72\x32\x20\x7c\x7c\x20\x21\x6f\x32\x20\x7c\x7c\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x62\x65\x74\x77\x65\x65\x6e\x22\x20\x7c\x7c\x20\x28\x69\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x76\x65\x72\x74\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x28\x69\x32\x29\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x65\x6e\x64\x59\x41\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x4c\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x21\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x7c\x7c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x29\x20\x26\x26\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x26\x26\x20\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x7b\x7d\x29\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x21\x3d\x3d\x20\x41\x72\x72\x61\x79\x20\x26\x26\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x79\x61\x78\x69\x73\x20\x26\x26\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x79\x61\x78\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x21\x3d\x3d\x20\x41\x72\x72\x61\x79\x20\x26\x26\x20\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x2c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x79\x61\x78\x69\x73\x29\x29\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x21\x3d\x3d\x20\x41\x72\x72\x61\x79\x20\x3f\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x5b\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x69\x32\x2e\x79\x41\x78\x69\x73\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x29\x5d\x20\x3a\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x2c\x20\x69\x32\x2e\x79\x41\x78\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x26\x26\x20\x21\x73\x32\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x29\x2c\x20\x61\x32\x20\x26\x26\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x73\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x6e\x61\x6d\x65\x20\x7c\x7c\x20\x28\x73\x32\x5b\x61\x33\x5d\x2e\x6e\x61\x6d\x65\x20\x3d\x20\x22\x73\x65\x72\x69\x65\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x33\x20\x2b\x20\x31\x29\x29\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x5b\x61\x33\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x5b\x61\x33\x5d\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x20\x3d\x20\x73\x32\x5b\x61\x33\x5d\x2e\x6e\x61\x6d\x65\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x5b\x61\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x69\x32\x2e\x79\x41\x78\x69\x73\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x2e\x73\x68\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x61\x32\x20\x26\x26\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x22\x41\x20\x6d\x75\x6c\x74\x69\x2d\x73\x65\x72\x69\x65\x73\x20\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x20\x63\x68\x61\x72\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x68\x61\x76\x65\x20\x65\x71\x75\x61\x6c\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x73\x65\x72\x69\x65\x73\x20\x61\x6e\x64\x20\x79\x2d\x61\x78\x65\x73\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x6d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x74\x6f\x20\x65\x71\x75\x61\x6c\x69\x7a\x65\x20\x62\x6f\x74\x68\x2e\x22\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x65\x6e\x64\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x2c\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x78\x61\x78\x69\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x78\x74\x65\x6e\x64\x59\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x74\x33\x29\x2c\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x78\x74\x65\x6e\x64\x58\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x74\x33\x29\x2c\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x78\x74\x65\x6e\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x65\x6e\x64\x59\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x4c\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x79\x61\x78\x69\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x79\x61\x78\x69\x73\x20\x3a\x20\x5b\x5d\x2c\x20\x65\x32\x2e\x79\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x65\x6e\x64\x58\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x4c\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x78\x61\x78\x69\x73\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x78\x61\x78\x69\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x78\x61\x78\x69\x73\x20\x3a\x20\x5b\x5d\x2c\x20\x65\x32\x2e\x78\x41\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x74\x65\x6e\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x4c\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x33\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x3a\x20\x5b\x5d\x2c\x20\x65\x32\x2e\x70\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x46\x6f\x72\x44\x61\x72\x6b\x54\x68\x65\x6d\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x74\x68\x65\x6d\x65\x20\x26\x26\x20\x74\x33\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x72\x6b\x22\x20\x26\x26\x20\x28\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x20\x7c\x7c\x20\x28\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x7b\x7d\x29\x2c\x20\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x74\x68\x65\x6d\x65\x20\x21\x3d\x3d\x20\x22\x6c\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x74\x68\x65\x6d\x65\x20\x3d\x20\x22\x64\x61\x72\x6b\x22\x29\x2c\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x20\x7c\x7c\x20\x28\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x22\x23\x66\x36\x66\x37\x66\x38\x22\x29\x2c\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x7c\x7c\x20\x28\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3d\x20\x22\x23\x34\x32\x34\x32\x34\x32\x22\x29\x2c\x20\x74\x33\x2e\x74\x68\x65\x6d\x65\x2e\x70\x61\x6c\x65\x74\x74\x65\x20\x7c\x7c\x20\x28\x74\x33\x2e\x74\x68\x65\x6d\x65\x2e\x70\x61\x6c\x65\x74\x74\x65\x20\x3d\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x34\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x55\x73\x65\x72\x49\x6e\x70\x75\x74\x45\x72\x72\x6f\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x65\x6e\x61\x62\x6c\x65\x64\x20\x77\x68\x65\x6e\x20\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x69\x73\x20\x74\x72\x75\x65\x2e\x20\x54\x75\x72\x6e\x20\x6f\x66\x66\x20\x61\x6e\x79\x20\x6f\x74\x68\x65\x72\x20\x6f\x70\x74\x69\x6f\x6e\x20\x62\x79\x20\x73\x65\x74\x74\x69\x6e\x67\x20\x69\x74\x20\x74\x6f\x20\x66\x61\x6c\x73\x65\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x65\x32\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x4d\x75\x6c\x74\x69\x70\x6c\x65\x20\x59\x20\x41\x78\x69\x73\x20\x66\x6f\x72\x20\x62\x61\x72\x73\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e\x20\x53\x77\x69\x74\x63\x68\x20\x74\x6f\x20\x63\x6f\x6c\x75\x6d\x6e\x20\x63\x68\x61\x72\x74\x20\x62\x79\x20\x73\x65\x74\x74\x69\x6e\x67\x20\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x3d\x66\x61\x6c\x73\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x28\x65\x32\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x7c\x7c\x20\x65\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x20\x26\x26\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x22\x74\x69\x63\x6b\x57\x69\x64\x74\x68\x22\x29\x2c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x28\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x22\x52\x65\x76\x65\x72\x73\x65\x64\x20\x79\x2d\x61\x78\x69\x73\x20\x69\x6e\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x22\x20\x63\x68\x61\x72\x74\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x2e\x22\x29\x29\x2c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x4f\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x47\x6c\x6f\x62\x61\x6c\x56\x61\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4d\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x50\x65\x72\x63\x65\x6e\x74\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x58\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5a\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4c\x6f\x67\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x74\x61\x63\x6b\x65\x64\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x59\x76\x61\x6c\x75\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x68\x61\x73\x47\x72\x6f\x75\x70\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x67\x72\x6f\x75\x70\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x72\x65\x73\x69\x7a\x65\x54\x69\x6d\x65\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x33\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x73\x69\x7a\x65\x54\x69\x6d\x65\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x33\x2e\x64\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x70\x6f\x69\x6e\x74\x73\x41\x72\x72\x61\x79\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x43\x6f\x75\x6e\x74\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x73\x6b\x69\x70\x4c\x61\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x73\x6b\x69\x70\x46\x69\x72\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x69\x73\x44\x61\x74\x61\x58\x59\x5a\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x69\x73\x4d\x75\x6c\x74\x69\x4c\x69\x6e\x65\x58\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x6d\x61\x78\x58\x20\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x61\x78\x58\x20\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x69\x6e\x58\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x6d\x61\x78\x44\x61\x74\x65\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x44\x61\x74\x65\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x5a\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x6d\x61\x78\x5a\x20\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x33\x2e\x78\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x79\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x79\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x78\x52\x61\x6e\x67\x65\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x79\x52\x61\x6e\x67\x65\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x7a\x52\x61\x6e\x67\x65\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x78\x54\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x6c\x6f\x62\x61\x6c\x56\x61\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x68\x61\x72\x74\x49\x44\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x75\x69\x64\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x65\x76\x65\x6e\x74\x73\x3a\x20\x7b\x20\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x3a\x20\x5b\x5d\x2c\x20\x6d\x6f\x75\x6e\x74\x65\x64\x3a\x20\x5b\x5d\x2c\x20\x75\x70\x64\x61\x74\x65\x64\x3a\x20\x5b\x5d\x2c\x20\x63\x6c\x69\x63\x6b\x65\x64\x3a\x20\x5b\x5d\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x5b\x5d\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x5b\x5d\x2c\x20\x7a\x6f\x6f\x6d\x65\x64\x3a\x20\x5b\x5d\x2c\x20\x73\x63\x72\x6f\x6c\x6c\x65\x64\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x2c\x20\x63\x6c\x69\x65\x6e\x74\x58\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x6c\x69\x65\x6e\x74\x59\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x20\x73\x74\x79\x6c\x65\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x20\x7d\x20\x7d\x2c\x20\x72\x61\x64\x61\x72\x50\x6f\x6c\x79\x67\x6f\x6e\x73\x3a\x20\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x20\x7d\x20\x7d\x2c\x20\x6d\x61\x72\x6b\x65\x72\x73\x3a\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x73\x3a\x20\x5b\x5d\x2c\x20\x73\x69\x7a\x65\x3a\x20\x74\x33\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x2c\x20\x6c\x61\x72\x67\x65\x73\x74\x53\x69\x7a\x65\x3a\x20\x30\x20\x7d\x2c\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x73\x54\x6f\x75\x63\x68\x44\x65\x76\x69\x63\x65\x3a\x20\x22\x6f\x6e\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x20\x69\x6e\x20\x77\x69\x6e\x64\x6f\x77\x20\x7c\x7c\x20\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x6d\x73\x4d\x61\x78\x54\x6f\x75\x63\x68\x50\x6f\x69\x6e\x74\x73\x2c\x20\x69\x73\x44\x69\x72\x74\x79\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x73\x45\x78\x65\x63\x43\x61\x6c\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x6c\x61\x73\x74\x58\x41\x78\x69\x73\x3a\x20\x5b\x5d\x2c\x20\x6c\x61\x73\x74\x59\x41\x78\x69\x73\x3a\x20\x5b\x5d\x2c\x20\x63\x6f\x6c\x75\x6d\x6e\x53\x65\x72\x69\x65\x73\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x5b\x5d\x2c\x20\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x3a\x20\x5b\x5d\x2c\x20\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x72\x69\x73\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x2d\x31\x2c\x20\x63\x61\x70\x74\x75\x72\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x2d\x31\x2c\x20\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3a\x20\x5b\x5d\x2c\x20\x67\x6f\x6c\x64\x65\x6e\x50\x61\x64\x64\x69\x6e\x67\x3a\x20\x33\x35\x2c\x20\x69\x6e\x76\x61\x6c\x69\x64\x4c\x6f\x67\x53\x63\x61\x6c\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x67\x6e\x6f\x72\x65\x59\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x79\x41\x78\x69\x73\x53\x61\x6d\x65\x53\x63\x61\x6c\x65\x49\x6e\x64\x69\x63\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x3a\x20\x30\x2c\x20\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x3a\x20\x30\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x61\x75\x74\x6f\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x3d\x3d\x3d\x20\x22\x7a\x6f\x6f\x6d\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x74\x6f\x6f\x6c\x73\x2e\x7a\x6f\x6f\x6d\x20\x26\x26\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x61\x75\x74\x6f\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x3d\x3d\x3d\x20\x22\x70\x61\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x74\x6f\x6f\x6c\x73\x2e\x70\x61\x6e\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x61\x75\x74\x6f\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x3d\x3d\x3d\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x74\x6f\x6f\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x61\x73\x74\x43\x6c\x69\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x7b\x7d\x2c\x20\x76\x69\x73\x69\x62\x6c\x65\x58\x52\x61\x6e\x67\x65\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x79\x56\x61\x6c\x75\x65\x44\x65\x63\x69\x6d\x61\x6c\x3a\x20\x30\x2c\x20\x74\x6f\x74\x61\x6c\x3a\x20\x30\x2c\x20\x53\x56\x47\x4e\x53\x3a\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x2c\x20\x73\x76\x67\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x73\x76\x67\x48\x65\x69\x67\x68\x74\x3a\x20\x30\x2c\x20\x6e\x6f\x44\x61\x74\x61\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x6f\x63\x61\x6c\x65\x3a\x20\x7b\x7d\x2c\x20\x64\x6f\x6d\x3a\x20\x7b\x7d\x2c\x20\x6d\x65\x6d\x6f\x72\x79\x3a\x20\x7b\x20\x6d\x65\x74\x68\x6f\x64\x73\x54\x6f\x45\x78\x65\x63\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x6b\x69\x70\x4c\x61\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x6b\x69\x70\x46\x69\x72\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x3a\x20\x5b\x5d\x2c\x20\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x69\x73\x44\x61\x74\x61\x58\x59\x5a\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x65\x73\x69\x7a\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x65\x73\x69\x7a\x65\x54\x69\x6d\x65\x72\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x3a\x20\x5b\x5d\x2c\x20\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x48\x61\x73\x45\x71\x75\x61\x6c\x58\x3a\x20\x74\x72\x75\x65\x2c\x20\x70\x6f\x69\x6e\x74\x73\x41\x72\x72\x61\x79\x3a\x20\x5b\x5d\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x3a\x20\x5b\x5d\x2c\x20\x6c\x61\x73\x74\x44\x72\x61\x77\x6e\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x64\x65\x78\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x68\x61\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x61\x73\x69\x6e\x67\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x7a\x6f\x6f\x6d\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x67\x72\x69\x64\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x3a\x20\x30\x2c\x20\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x4c\x61\x62\x65\x6c\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x3a\x20\x5b\x5d\x2c\x20\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x74\x4b\x65\x79\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x74\x56\x61\x6c\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x74\x5a\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x4c\x49\x4e\x45\x5f\x48\x45\x49\x47\x48\x54\x5f\x52\x41\x54\x49\x4f\x3a\x20\x31\x2e\x36\x31\x38\x2c\x20\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x3a\x20\x30\x2c\x20\x78\x41\x78\x69\x73\x47\x72\x6f\x75\x70\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x3a\x20\x30\x2c\x20\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x79\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x73\x63\x61\x6c\x65\x58\x3a\x20\x31\x2c\x20\x73\x63\x61\x6c\x65\x59\x3a\x20\x31\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x3a\x20\x30\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x3a\x20\x30\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x41\x78\x69\x73\x58\x3a\x20\x5b\x5d\x2c\x20\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x73\x3a\x20\x5b\x5d\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x59\x3a\x20\x30\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x58\x3a\x20\x30\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x6e\x75\x6c\x6c\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x6c\x6f\x62\x61\x6c\x56\x61\x72\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x47\x6c\x6f\x62\x61\x6c\x56\x61\x72\x73\x28\x65\x32\x29\x2c\x20\x65\x32\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x74\x33\x29\x2c\x20\x65\x32\x2e\x69\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x29\x2c\x20\x65\x32\x2e\x6c\x61\x73\x74\x58\x41\x78\x69\x73\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x65\x32\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x29\x2c\x20\x65\x32\x2e\x6c\x61\x73\x74\x59\x41\x78\x69\x73\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x65\x32\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x57\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x4e\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x29\x2e\x69\x6e\x69\x74\x28\x7b\x20\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x4f\x76\x65\x72\x72\x69\x64\x65\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x6f\x6e\x66\x69\x67\x3a\x20\x74\x33\x2c\x20\x67\x6c\x6f\x62\x61\x6c\x73\x3a\x20\x6e\x65\x77\x20\x4f\x28\x29\x2e\x69\x6e\x69\x74\x28\x74\x33\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x42\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x74\x68\x72\x65\x65\x44\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x4d\x75\x6c\x74\x69\x46\x6f\x72\x6d\x61\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x58\x59\x28\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x32\x44\x41\x72\x72\x61\x79\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x46\x6f\x72\x6d\x61\x74\x58\x59\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x41\x63\x74\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x28\x29\x2c\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x2e\x78\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\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\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x46\x6f\x72\x6d\x61\x74\x32\x44\x41\x72\x72\x61\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x41\x63\x74\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x28\x29\x2c\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x3d\x3d\x3d\x20\x41\x72\x72\x61\x79\x29\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\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x46\x6f\x72\x6d\x61\x74\x32\x44\x41\x72\x72\x61\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x5b\x31\x5d\x29\x20\x26\x26\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x5b\x31\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x34\x20\x26\x26\x20\x21\x73\x32\x20\x3f\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x78\x2e\x70\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x5b\x31\x5d\x5b\x33\x5d\x29\x29\x20\x3a\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x3d\x20\x35\x20\x3f\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x78\x2e\x70\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x5b\x34\x5d\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x78\x2e\x70\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x5b\x31\x5d\x29\x29\x2c\x20\x61\x32\x2e\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x6f\x32\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x74\x68\x72\x65\x65\x44\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x5b\x32\x5d\x29\x2c\x20\x61\x32\x2e\x69\x73\x44\x61\x74\x61\x58\x59\x5a\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x46\x6f\x72\x6d\x61\x74\x58\x59\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x32\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x32\x5d\x2e\x79\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x32\x5d\x2e\x79\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x78\x2e\x70\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x32\x5d\x2e\x79\x5b\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x32\x5d\x2e\x79\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x78\x2e\x70\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x32\x5d\x2e\x79\x29\x29\x29\x2c\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x32\x5d\x2e\x67\x6f\x61\x6c\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x32\x5d\x2e\x67\x6f\x61\x6c\x73\x29\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x32\x5d\x2e\x67\x6f\x61\x6c\x73\x29\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x2e\x70\x75\x73\x68\x28\x6e\x75\x6c\x6c\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x2c\x20\x68\x33\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x29\x2c\x20\x63\x32\x20\x3d\x20\x21\x68\x33\x20\x26\x26\x20\x21\x21\x73\x32\x2e\x69\x73\x56\x61\x6c\x69\x64\x44\x61\x74\x65\x28\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x20\x7c\x7c\x20\x63\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x20\x7c\x7c\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x61\x32\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x61\x32\x2e\x69\x73\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x7c\x7c\x20\x64\x32\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x66\x61\x6c\x6c\x62\x61\x63\x6b\x54\x6f\x43\x61\x74\x65\x67\x6f\x72\x79\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x73\x32\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x65\x28\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x73\x32\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x65\x28\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x29\x29\x20\x3a\x20\x28\x61\x32\x2e\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x61\x32\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x66\x61\x6c\x6c\x62\x61\x63\x6b\x54\x6f\x43\x61\x74\x65\x67\x6f\x72\x79\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x29\x29\x20\x3a\x20\x28\x61\x32\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x61\x32\x2e\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6e\x32\x5d\x2e\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x20\x26\x26\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x2e\x7a\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x68\x72\x65\x65\x44\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x65\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x7a\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x69\x73\x44\x61\x74\x61\x58\x59\x5a\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x61\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x32\x44\x41\x72\x72\x61\x79\x28\x29\x20\x3f\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x28\x22\x61\x72\x72\x61\x79\x22\x2c\x20\x74\x33\x2c\x20\x65\x32\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x58\x59\x28\x29\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x28\x22\x78\x79\x22\x2c\x20\x74\x33\x2c\x20\x65\x32\x29\x29\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x73\x74\x61\x72\x74\x29\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x65\x6e\x64\x29\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x72\x61\x6e\x67\x65\x55\x6e\x69\x71\x75\x65\x73\x29\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x20\x26\x26\x20\x74\x34\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x2e\x79\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x35\x2c\x20\x69\x33\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\x61\x33\x20\x3d\x20\x30\x3b\x20\x61\x33\x20\x3c\x20\x74\x35\x2e\x79\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x33\x20\x21\x3d\x3d\x20\x61\x33\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\x32\x20\x3d\x20\x65\x35\x2e\x79\x31\x2c\x20\x72\x32\x20\x3d\x20\x65\x35\x2e\x79\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x35\x2e\x79\x5b\x61\x33\x5d\x2e\x79\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3c\x3d\x20\x74\x35\x2e\x79\x5b\x61\x33\x5d\x2e\x79\x32\x20\x26\x26\x20\x6f\x32\x20\x3c\x3d\x20\x72\x32\x20\x26\x26\x20\x28\x74\x35\x2e\x6f\x76\x65\x72\x6c\x61\x70\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x35\x2e\x72\x61\x6e\x67\x65\x4e\x61\x6d\x65\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x74\x35\x2e\x6f\x76\x65\x72\x6c\x61\x70\x73\x2e\x70\x75\x73\x68\x28\x65\x35\x2e\x72\x61\x6e\x67\x65\x4e\x61\x6d\x65\x29\x2c\x20\x74\x35\x2e\x6f\x76\x65\x72\x6c\x61\x70\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x35\x2e\x79\x5b\x61\x33\x5d\x2e\x72\x61\x6e\x67\x65\x4e\x61\x6d\x65\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x74\x35\x2e\x6f\x76\x65\x72\x6c\x61\x70\x73\x2e\x70\x75\x73\x68\x28\x74\x35\x2e\x79\x5b\x61\x33\x5d\x2e\x72\x61\x6e\x67\x65\x4e\x61\x6d\x65\x29\x29\x3b\x0a\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\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x43\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x42\x6f\x78\x44\x61\x74\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x61\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x32\x44\x41\x72\x72\x61\x79\x28\x29\x20\x3f\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x43\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x42\x6f\x78\x44\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x28\x22\x61\x72\x72\x61\x79\x22\x2c\x20\x74\x33\x2c\x20\x65\x32\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x58\x59\x28\x29\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x43\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x42\x6f\x78\x44\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x28\x22\x78\x79\x22\x2c\x20\x74\x33\x2c\x20\x65\x32\x29\x29\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x5b\x65\x32\x5d\x20\x3d\x20\x61\x32\x2e\x6f\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x5b\x65\x32\x5d\x20\x3d\x20\x61\x32\x2e\x68\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4d\x5b\x65\x32\x5d\x20\x3d\x20\x61\x32\x2e\x6d\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x5b\x65\x32\x5d\x20\x3d\x20\x61\x32\x2e\x6c\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x5b\x65\x32\x5d\x20\x3d\x20\x61\x32\x2e\x63\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x3d\x3d\x3d\x20\x69\x33\x2e\x66\x69\x6e\x64\x49\x6e\x64\x65\x78\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x34\x2e\x78\x20\x3d\x3d\x3d\x20\x74\x34\x2e\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x74\x34\x2e\x78\x2c\x20\x6f\x76\x65\x72\x6c\x61\x70\x73\x3a\x20\x5b\x5d\x2c\x20\x79\x3a\x20\x5b\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6f\x32\x20\x3d\x20\x22\x50\x6c\x65\x61\x73\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x20\x5b\x53\x74\x61\x72\x74\x2c\x20\x45\x6e\x64\x5d\x20\x76\x61\x6c\x75\x65\x73\x20\x69\x6e\x20\x76\x61\x6c\x69\x64\x20\x66\x6f\x72\x6d\x61\x74\x2e\x20\x52\x65\x61\x64\x20\x6d\x6f\x72\x65\x20\x68\x74\x74\x70\x73\x3a\x2f\x2f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2e\x63\x6f\x6d\x2f\x64\x6f\x63\x73\x2f\x73\x65\x72\x69\x65\x73\x2f\x23\x72\x61\x6e\x67\x65\x63\x68\x61\x72\x74\x73\x22\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x41\x63\x74\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x22\x61\x72\x72\x61\x79\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x5b\x31\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6c\x32\x5d\x5b\x31\x5d\x5b\x30\x5d\x29\x2c\x20\x73\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6c\x32\x5d\x5b\x31\x5d\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x22\x78\x79\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x2e\x79\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x33\x20\x3d\x20\x78\x2e\x72\x61\x6e\x64\x6f\x6d\x49\x64\x28\x29\x2c\x20\x6e\x33\x20\x3d\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x74\x34\x5d\x2e\x78\x2c\x20\x6c\x33\x20\x3d\x20\x7b\x20\x79\x31\x3a\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x74\x34\x5d\x2e\x79\x5b\x30\x5d\x2c\x20\x79\x32\x3a\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x74\x34\x5d\x2e\x79\x5b\x31\x5d\x2c\x20\x72\x61\x6e\x67\x65\x4e\x61\x6d\x65\x3a\x20\x6f\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x74\x34\x5d\x2e\x72\x61\x6e\x67\x65\x4e\x61\x6d\x65\x20\x3d\x20\x6f\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x34\x20\x3d\x20\x72\x32\x2e\x66\x69\x6e\x64\x49\x6e\x64\x65\x78\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x35\x2e\x78\x20\x3d\x3d\x3d\x20\x6e\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x5b\x68\x34\x5d\x2e\x79\x2e\x70\x75\x73\x68\x28\x6c\x33\x29\x2c\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x6c\x33\x2e\x79\x31\x29\x2c\x20\x73\x32\x2e\x70\x75\x73\x68\x28\x6c\x33\x2e\x79\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x63\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x61\x32\x2c\x20\x65\x6e\x64\x3a\x20\x73\x32\x2c\x20\x72\x61\x6e\x67\x65\x55\x6e\x69\x71\x75\x65\x73\x3a\x20\x72\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x43\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x42\x6f\x78\x44\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x69\x32\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x2c\x20\x72\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6e\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x68\x33\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x22\x61\x72\x72\x61\x79\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x20\x26\x26\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x36\x20\x7c\x7c\x20\x21\x73\x32\x20\x26\x26\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x30\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x35\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x63\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x63\x32\x5d\x5b\x31\x5d\x29\x2c\x20\x6f\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x63\x32\x5d\x5b\x32\x5d\x29\x2c\x20\x73\x32\x20\x3f\x20\x28\x6e\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x63\x32\x5d\x5b\x33\x5d\x29\x2c\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x63\x32\x5d\x5b\x34\x5d\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x63\x32\x5d\x5b\x35\x5d\x29\x29\x20\x3a\x20\x28\x6c\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x63\x32\x5d\x5b\x33\x5d\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x63\x32\x5d\x5b\x34\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x30\x3b\x20\x64\x32\x20\x3c\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x64\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x64\x32\x5d\x5b\x31\x5d\x29\x20\x26\x26\x20\x28\x72\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x64\x32\x5d\x5b\x31\x5d\x5b\x30\x5d\x29\x2c\x20\x6f\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x64\x32\x5d\x5b\x31\x5d\x5b\x31\x5d\x29\x2c\x20\x73\x32\x20\x3f\x20\x28\x6e\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x64\x32\x5d\x5b\x31\x5d\x5b\x32\x5d\x29\x2c\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x64\x32\x5d\x5b\x31\x5d\x5b\x33\x5d\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x64\x32\x5d\x5b\x31\x5d\x5b\x34\x5d\x29\x29\x20\x3a\x20\x28\x6c\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x64\x32\x5d\x5b\x31\x5d\x5b\x32\x5d\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x64\x32\x5d\x5b\x31\x5d\x5b\x33\x5d\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x22\x78\x79\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x79\x29\x20\x26\x26\x20\x28\x72\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x79\x5b\x30\x5d\x29\x2c\x20\x6f\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x79\x5b\x31\x5d\x29\x2c\x20\x73\x32\x20\x3f\x20\x28\x6e\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x79\x5b\x32\x5d\x29\x2c\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x79\x5b\x33\x5d\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x79\x5b\x34\x5d\x29\x29\x20\x3a\x20\x28\x6c\x32\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x79\x5b\x32\x5d\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x5b\x67\x32\x5d\x2e\x79\x5b\x33\x5d\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6f\x3a\x20\x72\x32\x2c\x20\x68\x3a\x20\x6f\x32\x2c\x20\x6d\x3a\x20\x6e\x32\x2c\x20\x6c\x3a\x20\x6c\x32\x2c\x20\x63\x3a\x20\x68\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x72\x73\x65\x44\x61\x74\x61\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x69\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x3f\x20\x61\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x20\x3a\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3d\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x26\x26\x20\x73\x32\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x73\x32\x2e\x68\x61\x73\x47\x72\x6f\x75\x70\x73\x20\x3d\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x26\x26\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x67\x72\x6f\x75\x70\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x67\x72\x6f\x75\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x2c\x20\x73\x32\x2e\x68\x61\x73\x47\x72\x6f\x75\x70\x73\x20\x26\x26\x20\x28\x73\x32\x2e\x67\x72\x6f\x75\x70\x73\x20\x3d\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x67\x72\x6f\x75\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x34\x20\x3d\x20\x30\x3b\x20\x74\x34\x20\x3c\x20\x6f\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x74\x34\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x6f\x32\x5b\x74\x34\x5d\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x32\x2e\x69\x73\x56\x61\x6c\x69\x64\x44\x61\x74\x65\x28\x6f\x32\x5b\x74\x34\x5d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x44\x61\x74\x65\x20\x66\x6f\x72\x6d\x61\x74\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x20\x61\x20\x76\x61\x6c\x69\x64\x20\x4a\x61\x76\x61\x53\x63\x72\x69\x70\x74\x20\x44\x61\x74\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x72\x32\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x65\x28\x6f\x32\x5b\x74\x34\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x6f\x32\x5b\x74\x34\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x74\x68\x72\x65\x65\x44\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6f\x69\x64\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x65\x72\x72\x6f\x72\x28\x22\x49\x74\x20\x69\x73\x20\x61\x20\x70\x6f\x73\x73\x69\x62\x69\x6c\x69\x74\x79\x20\x74\x68\x61\x74\x20\x79\x6f\x75\x20\x6d\x61\x79\x20\x68\x61\x76\x65\x20\x6e\x6f\x74\x20\x69\x6e\x63\x6c\x75\x64\x65\x64\x20\x27\x64\x61\x74\x61\x27\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x69\x6e\x20\x73\x65\x72\x69\x65\x73\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x26\x26\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x41\x72\x65\x61\x22\x20\x26\x26\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x26\x26\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x41\x72\x65\x61\x22\x20\x7c\x7c\x20\x28\x73\x32\x2e\x69\x73\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x28\x74\x33\x2c\x20\x6c\x32\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x4d\x75\x6c\x74\x69\x46\x6f\x72\x6d\x61\x74\x28\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x32\x44\x41\x72\x72\x61\x79\x28\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x46\x6f\x72\x6d\x61\x74\x32\x44\x41\x72\x72\x61\x79\x28\x74\x33\x2c\x20\x6c\x32\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x58\x59\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x46\x6f\x72\x6d\x61\x74\x58\x59\x28\x74\x33\x2c\x20\x6c\x32\x29\x2c\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x26\x26\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x43\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x42\x6f\x78\x44\x61\x74\x61\x28\x74\x33\x2c\x20\x6c\x32\x29\x2c\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x29\x2c\x20\x73\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x29\x2c\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x29\x2c\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x2c\x20\x6c\x32\x20\x21\x3d\x3d\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x66\x61\x6c\x6c\x62\x61\x63\x6b\x54\x6f\x43\x61\x74\x65\x67\x6f\x72\x79\x20\x7c\x7c\x20\x28\x73\x32\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\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\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x3f\x20\x28\x73\x32\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x6e\x32\x28\x29\x2c\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x29\x29\x20\x3a\x20\x61\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x65\x72\x69\x63\x22\x20\x26\x26\x20\x28\x73\x32\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x6f\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x20\x3d\x20\x6f\x32\x2c\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x29\x29\x29\x2c\x20\x73\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x74\x77\x6f\x44\x53\x65\x72\x69\x65\x73\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x70\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x5a\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x74\x68\x72\x65\x65\x44\x53\x65\x72\x69\x65\x73\x29\x2c\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x6e\x61\x6d\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x6c\x32\x5d\x2e\x6e\x61\x6d\x65\x29\x20\x3a\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x73\x65\x72\x69\x65\x73\x2d\x22\x20\x2b\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6c\x32\x20\x2b\x20\x31\x2c\x20\x31\x30\x29\x29\x2c\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x63\x6f\x6c\x6f\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x6c\x32\x5d\x2e\x63\x6f\x6c\x6f\x72\x29\x20\x3a\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x2e\x70\x75\x73\x68\x28\x76\x6f\x69\x64\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x72\x73\x65\x44\x61\x74\x61\x4e\x6f\x6e\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x20\x3d\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x61\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x73\x65\x72\x69\x65\x73\x2d\x22\x20\x2b\x20\x28\x61\x32\x20\x2b\x20\x31\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x45\x78\x74\x65\x72\x6e\x61\x6c\x4c\x61\x62\x65\x6c\x73\x44\x61\x74\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x65\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x66\x61\x6c\x6c\x62\x61\x63\x6b\x54\x6f\x43\x61\x74\x65\x67\x6f\x72\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x30\x5d\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x35\x2e\x78\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x74\x35\x2e\x78\x20\x26\x26\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x70\x75\x73\x68\x28\x74\x35\x2e\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x34\x29\x20\x3d\x3d\x3d\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x44\x28\x65\x32\x29\x2e\x63\x6f\x6e\x76\x65\x72\x74\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x58\x61\x78\x69\x73\x28\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x30\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x6e\x65\x72\x61\x74\x65\x45\x78\x74\x65\x72\x6e\x61\x6c\x4c\x61\x62\x65\x6c\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x6e\x65\x72\x61\x74\x65\x45\x78\x74\x65\x72\x6e\x61\x6c\x4c\x61\x62\x65\x6c\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x67\x65\x6e\x65\x72\x61\x74\x65\x45\x78\x74\x65\x72\x6e\x61\x6c\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x61\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x58\x59\x28\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x64\x61\x74\x61\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x65\x34\x2c\x20\x69\x33\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\x69\x33\x2e\x66\x69\x6e\x64\x49\x6e\x64\x65\x78\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x35\x29\x20\x7b\x0a\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\x65\x35\x2e\x78\x20\x3d\x3d\x3d\x20\x74\x35\x2e\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3d\x3d\x3d\x20\x65\x34\x3b\x0a\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\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x33\x5b\x74\x34\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x34\x20\x3a\x20\x69\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x73\x32\x5b\x72\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x58\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x5b\x5d\x20\x3a\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x30\x3b\x20\x68\x33\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x68\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x70\x75\x73\x68\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x61\x32\x2c\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x65\x32\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x61\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x65\x32\x2e\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x72\x73\x65\x44\x61\x74\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x65\x78\x63\x6c\x75\x64\x65\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x59\x41\x78\x69\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x66\x61\x6c\x6c\x62\x61\x63\x6b\x54\x6f\x43\x61\x74\x65\x67\x6f\x72\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x6f\x72\x65\x2e\x72\x65\x73\x65\x74\x47\x6c\x6f\x62\x61\x6c\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x6f\x72\x65\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x28\x29\x2c\x20\x61\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x61\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x28\x74\x33\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x61\x4e\x6f\x6e\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x65\x72\x69\x65\x73\x28\x29\x2c\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x73\x32\x2e\x73\x65\x74\x4e\x75\x6c\x6c\x53\x65\x72\x69\x65\x73\x54\x6f\x5a\x65\x72\x6f\x56\x61\x6c\x75\x65\x73\x28\x61\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x28\x29\x2c\x20\x61\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x53\x74\x61\x63\x6b\x65\x64\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x50\x65\x72\x63\x65\x6e\x74\x53\x65\x72\x69\x65\x73\x28\x29\x2c\x20\x61\x32\x2e\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x61\x32\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x75\x6d\x65\x72\x69\x63\x22\x20\x7c\x7c\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x30\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x45\x78\x74\x65\x72\x6e\x61\x6c\x4c\x61\x62\x65\x6c\x73\x44\x61\x74\x61\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x43\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x28\x61\x32\x2e\x6c\x61\x62\x65\x6c\x73\x29\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x72\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x32\x5b\x6f\x32\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x69\x73\x4d\x75\x6c\x74\x69\x4c\x69\x6e\x65\x58\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\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\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x63\x6c\x75\x64\x65\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x59\x41\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x67\x6e\x6f\x72\x65\x59\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x65\x73\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x20\x26\x26\x20\x21\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x69\x6e\x64\x65\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x56\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x4b\x65\x79\x46\x6f\x72\x6d\x61\x74\x20\x3d\x20\x22\x64\x64\x20\x4d\x4d\x4d\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x28\x72\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x65\x32\x29\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x28\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x66\x61\x75\x6c\x74\x47\x65\x6e\x65\x72\x61\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x3f\x20\x74\x33\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x66\x61\x75\x6c\x74\x59\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x56\x61\x6c\x75\x65\x44\x65\x63\x69\x6d\x61\x6c\x20\x21\x3d\x3d\x20\x30\x20\x3f\x20\x74\x33\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x65\x32\x2e\x64\x65\x63\x69\x6d\x61\x6c\x73\x49\x6e\x46\x6c\x6f\x61\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x2e\x64\x65\x63\x69\x6d\x61\x6c\x73\x49\x6e\x46\x6c\x6f\x61\x74\x20\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x56\x61\x6c\x75\x65\x44\x65\x63\x69\x6d\x61\x6c\x29\x20\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x69\x32\x5d\x20\x2d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x32\x5d\x20\x3c\x20\x35\x20\x3f\x20\x74\x33\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x31\x29\x20\x3a\x20\x74\x33\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x30\x29\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x64\x65\x66\x61\x75\x6c\x74\x47\x65\x6e\x65\x72\x61\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x4b\x65\x79\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x64\x65\x66\x61\x75\x6c\x74\x47\x65\x6e\x65\x72\x61\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x5a\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x65\x67\x65\x6e\x64\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x64\x65\x66\x61\x75\x6c\x74\x47\x65\x6e\x65\x72\x61\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x34\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x65\x72\x69\x63\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x64\x65\x63\x69\x6d\x61\x6c\x73\x49\x6e\x46\x6c\x6f\x61\x74\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x64\x65\x63\x69\x6d\x61\x6c\x73\x49\x6e\x46\x6c\x6f\x61\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x2d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x69\x32\x20\x3c\x20\x31\x30\x30\x20\x3f\x20\x74\x34\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x31\x29\x20\x3a\x20\x74\x34\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x20\x2d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x20\x3c\x20\x34\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x74\x6f\x46\x69\x78\x65\x64\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x4b\x65\x79\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x4b\x65\x79\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x2c\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x79\x29\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x79\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x79\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x7a\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x5a\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x7a\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x65\x67\x65\x6e\x64\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x61\x32\x5d\x20\x3d\x20\x69\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x61\x32\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x79\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x29\x20\x3f\x20\x73\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x64\x65\x66\x61\x75\x6c\x74\x59\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x65\x33\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x74\x33\x2e\x64\x65\x66\x61\x75\x6c\x74\x59\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x73\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x3a\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x34\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x61\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x47\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x61\x62\x65\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x3a\x20\x5b\x5d\x2c\x20\x72\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x35\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x3a\x20\x22\x31\x32\x70\x78\x22\x2c\x20\x6f\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x36\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x5b\x61\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x22\x22\x20\x3a\x20\x74\x33\x5b\x61\x32\x5d\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x2c\x20\x63\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x64\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x67\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x75\x32\x20\x3d\x20\x6e\x65\x77\x20\x56\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x70\x33\x20\x3d\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x75\x32\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x28\x63\x32\x2c\x20\x6c\x32\x2c\x20\x70\x33\x2c\x20\x7b\x20\x69\x3a\x20\x61\x32\x2c\x20\x64\x61\x74\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x2c\x20\x77\x3a\x20\x6e\x32\x20\x7d\x29\x2c\x20\x64\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x64\x32\x28\x6c\x32\x2c\x20\x74\x33\x5b\x61\x32\x5d\x2c\x20\x7b\x20\x69\x3a\x20\x61\x32\x2c\x20\x64\x61\x74\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x2c\x20\x77\x3a\x20\x6e\x32\x20\x7d\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x20\x3f\x20\x69\x33\x20\x3d\x20\x22\x79\x65\x61\x72\x22\x20\x3a\x20\x74\x35\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x64\x61\x79\x22\x20\x3f\x20\x69\x33\x20\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x20\x3a\x20\x74\x35\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x68\x6f\x75\x72\x22\x20\x3f\x20\x69\x33\x20\x3d\x20\x22\x64\x61\x79\x22\x20\x3a\x20\x74\x35\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x69\x6e\x75\x74\x65\x22\x20\x26\x26\x20\x28\x69\x33\x20\x3d\x20\x22\x68\x6f\x75\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x33\x20\x3d\x3d\x3d\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x3f\x20\x28\x67\x32\x20\x3d\x20\x66\x32\x28\x65\x32\x5b\x61\x32\x5d\x2e\x75\x6e\x69\x74\x29\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x5b\x61\x32\x5d\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x68\x33\x20\x3d\x20\x65\x32\x5b\x61\x32\x5d\x2e\x76\x61\x6c\x75\x65\x29\x20\x3a\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x64\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x22\x22\x29\x2c\x20\x68\x33\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x22\x22\x29\x2c\x20\x68\x33\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x68\x33\x29\x20\x3f\x20\x68\x33\x20\x3a\x20\x68\x33\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x62\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x6f\x32\x20\x3f\x20\x78\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x68\x33\x2c\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x72\x32\x2c\x20\x31\x30\x29\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x2c\x20\x22\x20\x30\x20\x30\x29\x22\x29\x2c\x20\x66\x61\x6c\x73\x65\x29\x20\x3a\x20\x78\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x68\x33\x2c\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x72\x32\x2c\x20\x31\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x21\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x68\x33\x29\x20\x26\x26\x20\x28\x68\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x4e\x61\x4e\x22\x29\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x68\x33\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x69\x6e\x76\x61\x6c\x69\x64\x22\x29\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x68\x33\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x69\x6e\x66\x69\x6e\x69\x74\x79\x22\x29\x20\x3e\x3d\x20\x30\x20\x7c\x7c\x20\x73\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x68\x33\x29\x20\x3e\x3d\x20\x30\x20\x26\x26\x20\x76\x32\x29\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x22\x22\x29\x2c\x20\x7b\x20\x78\x3a\x20\x69\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x68\x33\x2c\x20\x74\x65\x78\x74\x52\x65\x63\x74\x3a\x20\x62\x32\x2c\x20\x69\x73\x42\x6f\x6c\x64\x3a\x20\x67\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x4c\x61\x62\x65\x6c\x42\x61\x73\x65\x64\x4f\x6e\x54\x69\x63\x6b\x61\x6d\x6f\x75\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x32\x30\x29\x29\x2c\x20\x73\x32\x20\x3e\x20\x69\x32\x20\x7c\x7c\x20\x74\x33\x20\x25\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x69\x32\x20\x2f\x20\x28\x73\x32\x20\x2b\x20\x31\x29\x29\x20\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x28\x65\x32\x2e\x74\x65\x78\x74\x20\x3d\x20\x22\x22\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x46\x6f\x72\x4f\x76\x65\x72\x66\x6c\x6f\x77\x69\x6e\x67\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x6b\x69\x70\x46\x69\x72\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x26\x26\x20\x28\x65\x32\x2e\x74\x65\x78\x74\x20\x3d\x20\x22\x22\x29\x2c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x69\x32\x20\x2d\x20\x31\x20\x26\x26\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x6b\x69\x70\x4c\x61\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x26\x26\x20\x28\x65\x32\x2e\x74\x65\x78\x74\x20\x3d\x20\x22\x22\x29\x2c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x68\x69\x64\x65\x4f\x76\x65\x72\x6c\x61\x70\x70\x69\x6e\x67\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x73\x32\x5b\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x20\x3c\x20\x6f\x32\x2e\x74\x65\x78\x74\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x28\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3f\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x29\x20\x2f\x20\x31\x32\x20\x3a\x20\x31\x2e\x30\x31\x29\x20\x2b\x20\x6f\x32\x2e\x78\x20\x26\x26\x20\x28\x65\x32\x2e\x74\x65\x78\x74\x20\x3d\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x46\x6f\x72\x52\x65\x76\x65\x72\x73\x65\x64\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x59\x41\x78\x69\x73\x48\x69\x64\x64\x65\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x21\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x73\x68\x6f\x77\x46\x6f\x72\x4e\x75\x6c\x6c\x53\x65\x72\x69\x65\x73\x20\x26\x26\x20\x69\x32\x2e\x69\x73\x53\x65\x72\x69\x65\x73\x4e\x75\x6c\x6c\x28\x74\x33\x29\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x59\x41\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x65\x32\x5d\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x68\x65\x6d\x65\x2e\x70\x75\x73\x68\x45\x78\x74\x72\x61\x43\x6f\x6c\x6f\x72\x73\x28\x74\x33\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x65\x32\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x59\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x68\x33\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x65\x32\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x73\x32\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x20\x26\x26\x20\x28\x74\x33\x20\x2b\x3d\x20\x61\x32\x2e\x77\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x65\x32\x3b\x20\x63\x32\x20\x3e\x3d\x20\x30\x3b\x20\x63\x32\x2d\x2d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x68\x33\x20\x2b\x20\x65\x32\x20\x2f\x20\x31\x30\x20\x2b\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x73\x32\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x72\x32\x20\x2a\x20\x63\x32\x29\x2c\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x26\x26\x20\x28\x64\x32\x20\x2b\x3d\x20\x72\x32\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x6c\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x74\x33\x20\x2b\x20\x69\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2d\x20\x61\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x61\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x64\x32\x20\x2b\x20\x61\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x33\x20\x2b\x20\x69\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x61\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x64\x32\x20\x2b\x20\x61\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x61\x32\x2e\x63\x6f\x6c\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x61\x64\x64\x28\x67\x32\x29\x2c\x20\x68\x33\x20\x2b\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x6a\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x63\x61\x6c\x65\x53\x76\x67\x4e\x6f\x64\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x6e\x75\x6c\x6c\x2c\x20\x22\x77\x69\x64\x74\x68\x22\x29\x29\x2c\x20\x61\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x6e\x75\x6c\x6c\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x6e\x75\x6c\x6c\x2c\x20\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x69\x32\x20\x2a\x20\x65\x32\x29\x2c\x20\x74\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x6e\x75\x6c\x6c\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x2c\x20\x61\x32\x20\x2a\x20\x65\x32\x29\x2c\x20\x74\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x6e\x75\x6c\x6c\x2c\x20\x22\x76\x69\x65\x77\x42\x6f\x78\x22\x2c\x20\x22\x30\x20\x30\x20\x22\x20\x2b\x20\x69\x32\x20\x2b\x20\x22\x20\x22\x20\x2b\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x69\x78\x53\x76\x67\x53\x74\x72\x69\x6e\x67\x46\x6f\x72\x49\x65\x31\x31\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x78\x2e\x69\x73\x49\x45\x31\x31\x28\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x26\x6e\x62\x73\x70\x3b\x2f\x67\x2c\x20\x22\x26\x23\x31\x36\x30\x3b\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x5c\x2f\x32\x30\x30\x30\x5c\x2f\x73\x76\x67\x22\x2f\x67\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2b\x2b\x65\x32\x20\x3d\x3d\x3d\x20\x32\x20\x3f\x20\x27\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x6a\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x73\x76\x67\x6a\x73\x2e\x64\x65\x76\x22\x27\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3d\x20\x28\x69\x32\x20\x3d\x20\x69\x32\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x78\x6d\x6c\x6e\x73\x3a\x4e\x53\x5c\x64\x2b\x3d\x22\x22\x2f\x67\x2c\x20\x22\x22\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x4e\x53\x5c\x64\x2b\x3a\x28\x5c\x77\x2b\x3a\x5c\x77\x2b\x3d\x22\x29\x2f\x67\x2c\x20\x22\x24\x31\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x76\x67\x53\x74\x72\x69\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x76\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x21\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x63\x61\x6c\x65\x53\x76\x67\x4e\x6f\x64\x65\x28\x69\x32\x2c\x20\x74\x33\x29\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x58\x4d\x4c\x53\x65\x72\x69\x61\x6c\x69\x7a\x65\x72\x28\x29\x2e\x73\x65\x72\x69\x61\x6c\x69\x7a\x65\x54\x6f\x53\x74\x72\x69\x6e\x67\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x78\x53\x76\x67\x53\x74\x72\x69\x6e\x67\x46\x6f\x72\x49\x65\x31\x31\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x65\x61\x6e\x75\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x72\x65\x63\x74\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x2e\x63\x61\x6c\x6c\x28\x61\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x20\x26\x26\x20\x65\x32\x5b\x30\x5d\x20\x26\x26\x20\x28\x65\x32\x5b\x30\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x22\x2c\x20\x2d\x35\x30\x30\x29\x2c\x20\x65\x32\x5b\x30\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x31\x22\x2c\x20\x2d\x35\x30\x30\x29\x2c\x20\x65\x32\x5b\x30\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x32\x22\x2c\x20\x2d\x35\x30\x30\x29\x29\x2c\x20\x69\x32\x20\x26\x26\x20\x69\x32\x5b\x30\x5d\x20\x26\x26\x20\x28\x69\x32\x5b\x30\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x22\x2c\x20\x2d\x31\x30\x30\x29\x2c\x20\x69\x32\x5b\x30\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x31\x22\x2c\x20\x2d\x31\x30\x30\x29\x2c\x20\x69\x32\x5b\x30\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x32\x22\x2c\x20\x2d\x31\x30\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x76\x67\x55\x72\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x6e\x75\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x53\x76\x67\x53\x74\x72\x69\x6e\x67\x28\x29\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x42\x6c\x6f\x62\x28\x5b\x74\x33\x5d\x2c\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3b\x63\x68\x61\x72\x73\x65\x74\x3d\x75\x74\x66\x2d\x38\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x55\x52\x4c\x2e\x63\x72\x65\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x55\x52\x4c\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x61\x74\x61\x55\x52\x49\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x72\x6f\x6d\x69\x73\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x20\x3f\x20\x74\x33\x2e\x73\x63\x61\x6c\x65\x20\x7c\x7c\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x3a\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6c\x65\x61\x6e\x75\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\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\x63\x61\x6e\x76\x61\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2a\x20\x73\x32\x2c\x20\x72\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x73\x74\x79\x6c\x65\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x31\x30\x29\x20\x2a\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3d\x3d\x3d\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x20\x3f\x20\x22\x23\x66\x66\x66\x22\x20\x3a\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x67\x65\x74\x43\x6f\x6e\x74\x65\x78\x74\x28\x22\x32\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x66\x69\x6c\x6c\x53\x74\x79\x6c\x65\x20\x3d\x20\x6f\x32\x2c\x20\x6e\x32\x2e\x66\x69\x6c\x6c\x52\x65\x63\x74\x28\x30\x2c\x20\x30\x2c\x20\x72\x32\x2e\x77\x69\x64\x74\x68\x20\x2a\x20\x73\x32\x2c\x20\x72\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2a\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x53\x76\x67\x53\x74\x72\x69\x6e\x67\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x77\x69\x6e\x64\x6f\x77\x2e\x63\x61\x6e\x76\x67\x20\x26\x26\x20\x78\x2e\x69\x73\x49\x45\x31\x31\x28\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x63\x61\x6e\x76\x67\x2e\x43\x61\x6e\x76\x67\x2e\x66\x72\x6f\x6d\x53\x74\x72\x69\x6e\x67\x28\x6e\x32\x2c\x20\x6c\x32\x2c\x20\x7b\x20\x69\x67\x6e\x6f\x72\x65\x43\x6c\x65\x61\x72\x3a\x20\x74\x72\x75\x65\x2c\x20\x69\x67\x6e\x6f\x72\x65\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x73\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x6d\x73\x54\x6f\x42\x6c\x6f\x62\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x73\x74\x6f\x70\x28\x29\x2c\x20\x69\x32\x28\x7b\x20\x62\x6c\x6f\x62\x3a\x20\x63\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x22\x64\x61\x74\x61\x3a\x69\x6d\x61\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x2c\x22\x20\x2b\x20\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x6c\x32\x29\x2c\x20\x67\x32\x20\x3d\x20\x6e\x65\x77\x20\x49\x6d\x61\x67\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x2e\x63\x72\x6f\x73\x73\x4f\x72\x69\x67\x69\x6e\x20\x3d\x20\x22\x61\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\x22\x2c\x20\x67\x32\x2e\x6f\x6e\x6c\x6f\x61\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x64\x72\x61\x77\x49\x6d\x61\x67\x65\x28\x67\x32\x2c\x20\x30\x2c\x20\x30\x29\x2c\x20\x72\x32\x2e\x6d\x73\x54\x6f\x42\x6c\x6f\x62\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x34\x20\x3d\x20\x72\x32\x2e\x6d\x73\x54\x6f\x42\x6c\x6f\x62\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x7b\x20\x62\x6c\x6f\x62\x3a\x20\x74\x34\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x72\x32\x2e\x74\x6f\x44\x61\x74\x61\x55\x52\x4c\x28\x22\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x7b\x20\x69\x6d\x67\x55\x52\x49\x3a\x20\x65\x33\x20\x7d\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\x7d\x2c\x20\x67\x32\x2e\x73\x72\x63\x20\x3d\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x70\x6f\x72\x74\x54\x6f\x53\x56\x47\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x72\x69\x67\x67\x65\x72\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x28\x74\x68\x69\x73\x2e\x73\x76\x67\x55\x72\x6c\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x78\x70\x6f\x72\x74\x2e\x73\x76\x67\x2e\x66\x69\x6c\x65\x6e\x61\x6d\x65\x2c\x20\x22\x2e\x73\x76\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x70\x6f\x72\x74\x54\x6f\x50\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x55\x52\x49\x28\x29\x2e\x74\x68\x65\x6e\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x69\x6d\x67\x55\x52\x49\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x62\x6c\x6f\x62\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3f\x20\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2e\x6d\x73\x53\x61\x76\x65\x4f\x72\x4f\x70\x65\x6e\x42\x6c\x6f\x62\x28\x61\x32\x2c\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x68\x61\x72\x74\x49\x44\x20\x2b\x20\x22\x2e\x70\x6e\x67\x22\x29\x20\x3a\x20\x74\x33\x2e\x74\x72\x69\x67\x67\x65\x72\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x28\x69\x32\x2c\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x78\x70\x6f\x72\x74\x2e\x70\x6e\x67\x2e\x66\x69\x6c\x65\x6e\x61\x6d\x65\x2c\x20\x22\x2e\x70\x6e\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x70\x6f\x72\x74\x54\x6f\x43\x53\x56\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6c\x75\x6d\x6e\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6c\x69\x6e\x65\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x22\x5c\x6e\x22\x20\x3a\x20\x73\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6e\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x68\x33\x20\x3d\x20\x22\x22\x2c\x20\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x42\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x64\x32\x20\x3d\x20\x6e\x65\x77\x20\x47\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x67\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x7c\x7c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x30\x5d\x2c\x20\x72\x33\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x65\x32\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x41\x63\x74\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x73\x33\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x74\x34\x5d\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x72\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x74\x34\x2c\x20\x77\x3a\x20\x6f\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x64\x32\x2e\x67\x65\x74\x4c\x61\x62\x65\x6c\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2c\x20\x30\x2c\x20\x74\x34\x29\x2e\x74\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x69\x33\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x5b\x74\x34\x5d\x20\x3a\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x69\x33\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x74\x34\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x74\x34\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x69\x33\x29\x20\x26\x26\x20\x28\x69\x33\x20\x3d\x20\x69\x33\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x29\x2c\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x69\x33\x29\x20\x3f\x20\x69\x33\x20\x3a\x20\x69\x33\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x78\x70\x6f\x72\x74\x2e\x63\x73\x76\x2e\x68\x65\x61\x64\x65\x72\x43\x61\x74\x65\x67\x6f\x72\x79\x29\x2c\x20\x69\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x34\x2e\x6e\x61\x6d\x65\x20\x3f\x20\x74\x34\x2e\x6e\x61\x6d\x65\x20\x3a\x20\x22\x73\x65\x72\x69\x65\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x69\x33\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x22\x29\x20\x3f\x20\x69\x33\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x22\x29\x20\x3a\x20\x22\x73\x65\x72\x69\x65\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x28\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x78\x70\x6f\x72\x74\x2e\x63\x73\x76\x2e\x68\x65\x61\x64\x65\x72\x56\x61\x6c\x75\x65\x29\x2c\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x2e\x6a\x6f\x69\x6e\x28\x61\x32\x29\x29\x29\x2c\x20\x69\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x65\x34\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x2e\x6a\x6f\x69\x6e\x28\x61\x32\x29\x29\x2c\x20\x74\x35\x2e\x64\x61\x74\x61\x20\x26\x26\x20\x74\x35\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x30\x3b\x20\x73\x33\x20\x3c\x20\x74\x35\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x67\x32\x28\x73\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x33\x20\x7c\x7c\x20\x28\x63\x32\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x58\x59\x28\x29\x20\x3f\x20\x72\x33\x20\x3d\x20\x69\x32\x5b\x65\x34\x5d\x2e\x64\x61\x74\x61\x5b\x73\x33\x5d\x2e\x78\x20\x3a\x20\x63\x32\x2e\x69\x73\x46\x6f\x72\x6d\x61\x74\x32\x44\x41\x72\x72\x61\x79\x28\x29\x20\x26\x26\x20\x28\x72\x33\x20\x3d\x20\x69\x32\x5b\x65\x34\x5d\x2e\x64\x61\x74\x61\x5b\x73\x33\x5d\x20\x3f\x20\x69\x32\x5b\x65\x34\x5d\x2e\x64\x61\x74\x61\x5b\x73\x33\x5d\x5b\x30\x5d\x20\x3a\x20\x22\x22\x29\x29\x2c\x20\x65\x34\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x28\x64\x33\x20\x3d\x20\x72\x33\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x53\x74\x72\x69\x6e\x67\x28\x64\x33\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x3d\x20\x31\x30\x20\x3f\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x78\x70\x6f\x72\x74\x2e\x63\x73\x76\x2e\x64\x61\x74\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x72\x33\x29\x20\x3a\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x72\x33\x29\x20\x3f\x20\x72\x33\x20\x3a\x20\x72\x33\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x22\x29\x29\x29\x3b\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\x68\x34\x20\x3d\x20\x30\x3b\x20\x68\x34\x20\x3c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x68\x34\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x34\x5d\x5b\x73\x33\x5d\x29\x3b\x0a\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\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x7c\x7c\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x26\x26\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x29\x20\x26\x26\x20\x28\x6e\x32\x2e\x70\x6f\x70\x28\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x29\x2c\x20\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x26\x26\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x29\x20\x26\x26\x20\x28\x6e\x32\x2e\x70\x6f\x70\x28\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4d\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x29\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x26\x26\x20\x28\x6e\x32\x2e\x70\x6f\x70\x28\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x5b\x65\x34\x5d\x5b\x73\x33\x5d\x29\x29\x2c\x20\x6e\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x2e\x6a\x6f\x69\x6e\x28\x61\x32\x29\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\x76\x61\x72\x20\x64\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x3a\x20\x28\x28\x6e\x32\x20\x3d\x20\x5b\x5d\x29\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x22\x29\x29\x2c\x20\x6e\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x33\x5d\x29\x2c\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x2e\x6a\x6f\x69\x6e\x28\x61\x32\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x68\x33\x20\x2b\x3d\x20\x6c\x32\x2e\x6a\x6f\x69\x6e\x28\x72\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x72\x69\x67\x67\x65\x72\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x28\x22\x64\x61\x74\x61\x3a\x74\x65\x78\x74\x2f\x63\x73\x76\x3b\x20\x63\x68\x61\x72\x73\x65\x74\x3d\x75\x74\x66\x2d\x38\x2c\x22\x20\x2b\x20\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x22\x5c\x75\x46\x45\x46\x46\x22\x20\x2b\x20\x68\x33\x29\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x78\x70\x6f\x72\x74\x2e\x63\x73\x76\x2e\x66\x69\x6c\x65\x6e\x61\x6d\x65\x2c\x20\x22\x2e\x63\x73\x76\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x72\x69\x67\x67\x65\x72\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\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\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x68\x72\x65\x66\x20\x3d\x20\x74\x33\x2c\x20\x61\x32\x2e\x64\x6f\x77\x6e\x6c\x6f\x61\x64\x20\x3d\x20\x28\x65\x32\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x68\x61\x72\x74\x49\x44\x29\x20\x2b\x20\x69\x32\x2c\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\x61\x32\x29\x2c\x20\x61\x32\x2e\x63\x6c\x69\x63\x6b\x28\x29\x2c\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x5f\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x20\x3d\x20\x6e\x65\x77\x20\x47\x28\x65\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x21\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x43\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x43\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x6e\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x6e\x4c\x61\x62\x65\x6c\x73\x52\x65\x63\x74\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x59\x20\x3d\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x59\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x31\x2c\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x59\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x59\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x43\x61\x74\x65\x67\x6f\x72\x79\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x43\x61\x74\x65\x67\x6f\x72\x79\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2e\x77\x69\x64\x74\x68\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x25\x22\x29\x20\x3e\x20\x2d\x31\x20\x3f\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x58\x61\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x58\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x59\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x61\x64\x64\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x5b\x72\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x58\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x41\x6e\x64\x47\x72\x6f\x75\x70\x28\x74\x72\x75\x65\x2c\x20\x65\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x68\x61\x73\x47\x72\x6f\x75\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x6f\x75\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x6f\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x70\x75\x73\x68\x28\x6f\x32\x5b\x6e\x32\x5d\x2e\x74\x69\x74\x6c\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x73\x74\x79\x6c\x65\x20\x26\x26\x20\x28\x6c\x32\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x6c\x32\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x6c\x32\x2e\x78\x61\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x6c\x32\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x6c\x32\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x58\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x41\x6e\x64\x47\x72\x6f\x75\x70\x28\x66\x61\x6c\x73\x65\x2c\x20\x65\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x5b\x74\x34\x5d\x2e\x63\x6f\x6c\x73\x20\x2a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x22\x20\x7d\x29\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2b\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x79\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x59\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x29\x20\x2b\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x65\x78\x74\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x2d\x74\x65\x78\x74\x20\x22\x20\x2b\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x61\x64\x64\x28\x63\x32\x29\x2c\x20\x69\x32\x2e\x61\x64\x64\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x2c\x20\x67\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2d\x20\x64\x32\x2c\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x59\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x20\x2b\x20\x64\x32\x2c\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x59\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x48\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x61\x64\x64\x28\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x58\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x41\x6e\x64\x47\x72\x6f\x75\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x6c\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x36\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x36\x5d\x20\x3a\x20\x7b\x7d\x2c\x20\x68\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x63\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x67\x32\x20\x3d\x20\x6c\x32\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x75\x32\x20\x3d\x20\x6c\x32\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x70\x33\x20\x3d\x20\x6c\x32\x2e\x78\x61\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x73\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x73\x2c\x20\x66\x32\x20\x3d\x20\x6c\x32\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x20\x7c\x7c\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x78\x32\x20\x3d\x20\x6c\x32\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7c\x7c\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x2c\x20\x62\x32\x20\x3d\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x76\x32\x20\x3d\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6d\x32\x20\x3d\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x3f\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3a\x20\x76\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x6d\x32\x20\x3e\x20\x31\x20\x3f\x20\x6d\x32\x20\x2d\x20\x31\x20\x3a\x20\x6d\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x79\x32\x2c\x20\x62\x32\x20\x3d\x20\x62\x32\x20\x2b\x20\x72\x32\x28\x30\x2c\x20\x6f\x32\x29\x20\x2f\x20\x32\x20\x2b\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6d\x32\x2c\x20\x62\x32\x20\x3d\x20\x62\x32\x20\x2b\x20\x72\x32\x28\x30\x2c\x20\x6f\x32\x29\x20\x2b\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x33\x20\x3d\x20\x62\x32\x20\x2d\x20\x72\x32\x28\x73\x33\x2c\x20\x6f\x32\x29\x20\x2f\x20\x32\x20\x2b\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x76\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x6f\x32\x20\x2f\x20\x32\x20\x3d\x3d\x3d\x20\x62\x32\x20\x26\x26\x20\x6d\x32\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x6c\x33\x20\x3d\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x33\x20\x3d\x20\x6e\x32\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x4c\x61\x62\x65\x6c\x28\x61\x32\x2c\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2c\x20\x6c\x33\x2c\x20\x73\x33\x2c\x20\x68\x33\x2c\x20\x67\x32\x2c\x20\x74\x33\x29\x2c\x20\x77\x33\x20\x3d\x20\x32\x38\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x74\x33\x20\x26\x26\x20\x28\x77\x33\x20\x3d\x20\x32\x32\x29\x2c\x20\x74\x33\x20\x7c\x7c\x20\x28\x77\x33\x20\x3d\x20\x77\x33\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x67\x32\x29\x20\x2b\x20\x28\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x47\x72\x6f\x75\x70\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x29\x20\x2b\x20\x28\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3f\x20\x31\x30\x20\x3a\x20\x30\x29\x29\x2c\x20\x79\x33\x20\x3d\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x21\x3d\x3d\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x20\x26\x26\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x3f\x20\x6e\x32\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x63\x68\x65\x63\x6b\x4c\x61\x62\x65\x6c\x42\x61\x73\x65\x64\x4f\x6e\x54\x69\x63\x6b\x61\x6d\x6f\x75\x6e\x74\x28\x73\x33\x2c\x20\x79\x33\x2c\x20\x76\x32\x29\x20\x3a\x20\x6e\x32\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x63\x68\x65\x63\x6b\x46\x6f\x72\x4f\x76\x65\x72\x66\x6c\x6f\x77\x69\x6e\x67\x4c\x61\x62\x65\x6c\x73\x28\x73\x33\x2c\x20\x79\x33\x2c\x20\x76\x32\x2c\x20\x68\x33\x2c\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x26\x26\x20\x79\x33\x2e\x74\x65\x78\x74\x20\x26\x26\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x43\x6f\x75\x6e\x74\x2b\x2b\x2c\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x33\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x79\x33\x2e\x78\x2c\x20\x79\x3a\x20\x6e\x32\x2e\x6f\x66\x66\x59\x20\x2b\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x77\x33\x20\x2d\x20\x28\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x3f\x20\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x32\x20\x3a\x20\x30\x29\x2c\x20\x74\x65\x78\x74\x3a\x20\x79\x33\x2e\x74\x65\x78\x74\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x79\x33\x2e\x69\x73\x42\x6f\x6c\x64\x20\x3f\x20\x36\x30\x30\x20\x3a\x20\x66\x32\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x67\x32\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x75\x32\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x70\x33\x29\x20\x3f\x20\x74\x33\x20\x26\x26\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x70\x33\x5b\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x2b\x20\x73\x33\x20\x2d\x20\x31\x5d\x20\x3a\x20\x70\x33\x5b\x73\x33\x5d\x20\x3a\x20\x70\x33\x2c\x20\x69\x73\x50\x6c\x61\x69\x6e\x54\x65\x78\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x28\x74\x33\x20\x3f\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x6c\x61\x62\x65\x6c\x20\x22\x20\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x67\x72\x6f\x75\x70\x2d\x6c\x61\x62\x65\x6c\x20\x22\x29\x20\x2b\x20\x78\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x61\x64\x64\x28\x6b\x33\x29\x2c\x20\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x41\x32\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\x4e\x53\x28\x64\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x74\x69\x74\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x32\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x79\x33\x2e\x74\x65\x78\x74\x29\x20\x3f\x20\x79\x33\x2e\x74\x65\x78\x74\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x79\x33\x2e\x74\x65\x78\x74\x2c\x20\x6b\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x41\x32\x29\x2c\x20\x79\x33\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x22\x22\x20\x26\x26\x20\x28\x68\x33\x2e\x70\x75\x73\x68\x28\x79\x33\x2e\x74\x65\x78\x74\x29\x2c\x20\x63\x32\x2e\x70\x75\x73\x68\x28\x79\x33\x29\x29\x3b\x0a\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\x73\x33\x20\x3c\x20\x76\x32\x20\x2d\x20\x31\x20\x26\x26\x20\x28\x62\x32\x20\x2b\x3d\x20\x72\x32\x28\x73\x33\x20\x2b\x20\x31\x2c\x20\x6f\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6b\x32\x20\x3d\x20\x30\x3b\x20\x6b\x32\x20\x3c\x3d\x20\x76\x32\x20\x2d\x20\x31\x3b\x20\x6b\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x32\x28\x6b\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x58\x61\x78\x69\x73\x49\x6e\x76\x65\x72\x73\x65\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x3f\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x41\x78\x69\x73\x58\x5b\x74\x33\x5d\x20\x3a\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x69\x6e\x76\x65\x72\x73\x65\x64\x22\x2c\x20\x72\x65\x6c\x3a\x20\x74\x33\x20\x7d\x29\x2c\x20\x6c\x32\x20\x3d\x20\x72\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x69\x6e\x76\x65\x72\x73\x65\x64\x2d\x74\x65\x78\x74\x73\x2d\x67\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x20\x2b\x20\x6f\x32\x20\x2b\x20\x22\x2c\x20\x30\x29\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x61\x64\x64\x28\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x73\x68\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x63\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x5b\x63\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x68\x33\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x69\x32\x20\x3d\x20\x2d\x65\x32\x20\x2f\x20\x32\x2e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x30\x5d\x2c\x20\x67\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x67\x32\x2e\x73\x68\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x33\x20\x3d\x20\x68\x33\x5b\x6f\x33\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x22\x22\x20\x3a\x20\x68\x33\x5b\x6f\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x33\x20\x3d\x20\x64\x32\x28\x6e\x33\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x74\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x6f\x33\x2c\x20\x77\x3a\x20\x73\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x33\x20\x3d\x20\x61\x32\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x59\x41\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x28\x67\x32\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x74\x33\x29\x2c\x20\x75\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6e\x33\x29\x20\x26\x26\x20\x28\x75\x33\x20\x3d\x20\x6e\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2f\x20\x32\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x67\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x34\x20\x3d\x20\x72\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x67\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2d\x20\x31\x35\x2c\x20\x79\x3a\x20\x69\x32\x20\x2b\x20\x65\x32\x20\x2b\x20\x67\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2d\x20\x75\x33\x2c\x20\x74\x65\x78\x74\x3a\x20\x6e\x33\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x61\x32\x2e\x79\x61\x78\x69\x73\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x3f\x20\x22\x73\x74\x61\x72\x74\x22\x20\x3a\x20\x22\x65\x6e\x64\x22\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x33\x29\x20\x3f\x20\x63\x33\x5b\x6f\x33\x5d\x20\x3a\x20\x63\x33\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x67\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x67\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x67\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x69\x73\x50\x6c\x61\x69\x6e\x54\x65\x78\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x6c\x61\x62\x65\x6c\x20\x22\x20\x2b\x20\x67\x32\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x61\x64\x64\x28\x70\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x33\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\x4e\x53\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x74\x69\x74\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x33\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6e\x33\x29\x20\x3f\x20\x6e\x33\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x6e\x33\x2c\x20\x70\x34\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x66\x33\x29\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x33\x20\x3d\x20\x72\x32\x2e\x72\x6f\x74\x61\x74\x65\x41\x72\x6f\x75\x6e\x64\x43\x65\x6e\x74\x65\x72\x28\x70\x34\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x34\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x2c\x20\x22\x20\x30\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x78\x33\x2e\x79\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x2b\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x70\x33\x20\x3d\x20\x30\x3b\x20\x70\x33\x20\x3c\x3d\x20\x68\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x70\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x28\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x72\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x2d\x69\x6e\x76\x65\x72\x73\x65\x64\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x20\x2b\x20\x6f\x32\x20\x2b\x20\x22\x2c\x20\x30\x29\x22\x20\x7d\x29\x2c\x20\x78\x32\x20\x3d\x20\x72\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x2d\x74\x65\x78\x74\x20\x22\x20\x2b\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x32\x2e\x61\x64\x64\x28\x78\x32\x29\x2c\x20\x6e\x32\x2e\x61\x64\x64\x28\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x73\x43\x61\x74\x65\x67\x6f\x72\x79\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x26\x26\x20\x28\x62\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x32\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x72\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x76\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x62\x32\x2c\x20\x31\x20\x2b\x20\x76\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x76\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x62\x32\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x76\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x76\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x61\x64\x64\x28\x79\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x64\x72\x61\x77\x59\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x28\x62\x32\x2c\x20\x68\x33\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2c\x20\x30\x2c\x20\x65\x32\x2c\x20\x6e\x32\x29\x2c\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x58\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x74\x33\x20\x3c\x20\x30\x20\x7c\x7c\x20\x74\x33\x20\x2d\x20\x32\x20\x3e\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x59\x20\x2b\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x20\x2b\x20\x72\x32\x20\x2b\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x68\x65\x69\x67\x68\x74\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x74\x33\x20\x2b\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x72\x32\x20\x2b\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x73\x32\x20\x2b\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x65\x32\x20\x2b\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x63\x6f\x6c\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x61\x64\x64\x28\x6f\x32\x29\x2c\x20\x6f\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x69\x63\x6b\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x58\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x69\x32\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x5b\x73\x32\x5d\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x65\x32\x2e\x70\x75\x73\x68\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x69\x32\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x72\x32\x3b\x20\x6f\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x2d\x3d\x20\x31\x29\x2c\x20\x61\x32\x20\x2b\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6e\x32\x2c\x20\x65\x32\x2e\x70\x75\x73\x68\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x22\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x20\x74\x65\x78\x74\x3a\x6e\x6f\x74\x28\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x67\x72\x6f\x75\x70\x2d\x6c\x61\x62\x65\x6c\x29\x22\x29\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x69\x6e\x76\x65\x72\x73\x65\x64\x20\x74\x65\x78\x74\x22\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x69\x6e\x76\x65\x72\x73\x65\x64\x2d\x74\x65\x78\x74\x73\x2d\x67\x20\x74\x65\x78\x74\x20\x74\x73\x70\x61\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x7c\x7c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x41\x6c\x77\x61\x79\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x72\x6f\x74\x61\x74\x65\x41\x72\x6f\x75\x6e\x64\x43\x65\x6e\x74\x65\x72\x28\x61\x32\x5b\x6f\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x79\x20\x3d\x20\x6e\x32\x2e\x79\x20\x2d\x20\x31\x2c\x20\x6e\x32\x2e\x78\x20\x3d\x20\x6e\x32\x2e\x78\x20\x2b\x20\x31\x2c\x20\x61\x32\x5b\x6f\x32\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6e\x32\x2e\x78\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6e\x32\x2e\x79\x2c\x20\x22\x29\x22\x29\x29\x2c\x20\x61\x32\x5b\x6f\x32\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x22\x2c\x20\x22\x65\x6e\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x30\x2c\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x2d\x31\x30\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x61\x32\x5b\x6f\x32\x5d\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x74\x72\x69\x6d\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x2e\x63\x61\x6c\x6c\x28\x6c\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x70\x6c\x61\x63\x65\x54\x65\x78\x74\x57\x69\x74\x68\x45\x6c\x6c\x69\x70\x73\x69\x73\x28\x69\x33\x2c\x20\x69\x33\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x3f\x20\x32\x30\x20\x3a\x20\x31\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x21\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x29\x2c\x20\x73\x33\x20\x3d\x20\x30\x3b\x20\x73\x33\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x61\x32\x5b\x73\x33\x5d\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x74\x72\x69\x6d\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x2e\x63\x61\x6c\x6c\x28\x72\x33\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x70\x6c\x61\x63\x65\x54\x65\x78\x74\x57\x69\x74\x68\x45\x6c\x6c\x69\x70\x73\x69\x73\x28\x74\x34\x2c\x20\x74\x34\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x2c\x20\x69\x33\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x73\x32\x5b\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x2c\x20\x63\x32\x20\x3d\x20\x73\x32\x5b\x30\x5d\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x78\x20\x3c\x20\x2d\x32\x30\x20\x26\x26\x20\x73\x32\x5b\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x73\x32\x5b\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x29\x2c\x20\x63\x32\x2e\x78\x20\x2b\x20\x63\x32\x2e\x77\x69\x64\x74\x68\x20\x3e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x26\x26\x20\x21\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x73\x32\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x73\x32\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x30\x3b\x20\x64\x32\x20\x3c\x20\x72\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x64\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x70\x6c\x61\x63\x65\x54\x65\x78\x74\x57\x69\x74\x68\x45\x6c\x6c\x69\x70\x73\x69\x73\x28\x72\x32\x5b\x64\x32\x5d\x2c\x20\x72\x32\x5b\x64\x32\x5d\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x61\x78\x57\x69\x64\x74\x68\x20\x2d\x20\x32\x20\x2a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x20\x2d\x20\x32\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x55\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x20\x3d\x20\x6e\x65\x77\x20\x47\x28\x65\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x47\x72\x69\x64\x41\x72\x65\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x69\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x22\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x31\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x29\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x61\x64\x64\x28\x73\x32\x29\x2c\x20\x74\x33\x2e\x61\x64\x64\x28\x61\x32\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x47\x72\x69\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x6e\x64\x65\x72\x47\x72\x69\x64\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x47\x72\x69\x64\x41\x72\x65\x61\x28\x74\x33\x2e\x65\x6c\x29\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x72\x65\x61\x74\x65\x47\x72\x69\x64\x4d\x61\x73\x6b\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x29\x20\x3f\x20\x30\x20\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x73\x32\x2c\x20\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x20\x3d\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x4e\x53\x28\x65\x32\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x63\x6c\x69\x70\x50\x61\x74\x68\x22\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x2c\x20\x22\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x75\x69\x64\x29\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x4d\x61\x73\x6b\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x4e\x53\x28\x65\x32\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x63\x6c\x69\x70\x50\x61\x74\x68\x22\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x4d\x61\x73\x6b\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x2c\x20\x22\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x75\x69\x64\x29\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x4e\x53\x28\x65\x32\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x63\x6c\x69\x70\x50\x61\x74\x68\x22\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x2c\x20\x22\x66\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x75\x69\x64\x29\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x4e\x6f\x6e\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x4e\x53\x28\x65\x32\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x63\x6c\x69\x70\x50\x61\x74\x68\x22\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x4e\x6f\x6e\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x2c\x20\x22\x6e\x6f\x6e\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x75\x69\x64\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x72\x32\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x7c\x7c\x20\x72\x32\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x7c\x7c\x20\x72\x32\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x7c\x7c\x20\x72\x32\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x42\x61\x72\x43\x6f\x75\x6e\x74\x20\x3e\x20\x30\x29\x20\x26\x26\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x21\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x6c\x65\x66\x74\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x72\x69\x67\x68\x74\x2c\x20\x65\x32\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x20\x3e\x20\x6f\x32\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x65\x32\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x29\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x2d\x61\x32\x20\x2f\x20\x32\x20\x2d\x20\x6f\x32\x20\x2d\x20\x32\x2c\x20\x2d\x61\x32\x20\x2f\x20\x32\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x61\x32\x20\x2b\x20\x6e\x32\x20\x2b\x20\x6f\x32\x20\x2b\x20\x34\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x61\x32\x2c\x20\x30\x2c\x20\x22\x23\x66\x66\x66\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6c\x61\x72\x67\x65\x73\x74\x53\x69\x7a\x65\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x32\x20\x2a\x20\x2d\x6c\x32\x2c\x20\x32\x20\x2a\x20\x2d\x6c\x32\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x34\x20\x2a\x20\x6c\x32\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x34\x20\x2a\x20\x6c\x32\x2c\x20\x30\x2c\x20\x22\x23\x66\x66\x66\x22\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x4d\x61\x73\x6b\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x64\x65\x66\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x29\x2c\x20\x68\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x29\x2c\x20\x68\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x4e\x6f\x6e\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x29\x2c\x20\x68\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x4d\x61\x73\x6b\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x31\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x78\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x78\x43\x6f\x75\x6e\x74\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x72\x65\x6e\x74\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x65\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x6b\x69\x70\x46\x69\x72\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x7c\x7c\x20\x65\x32\x20\x3d\x3d\x3d\x20\x6f\x32\x20\x2d\x20\x31\x20\x26\x26\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x6b\x69\x70\x4c\x61\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x26\x26\x20\x21\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x7c\x7c\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x61\x72\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x78\x61\x78\x69\x73\x2e\x6c\x69\x6e\x65\x73\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x28\x7b\x20\x78\x31\x3a\x20\x69\x32\x2c\x20\x79\x31\x3a\x20\x61\x32\x2c\x20\x78\x32\x3a\x20\x73\x32\x2c\x20\x79\x32\x3a\x20\x72\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x68\x61\x73\x47\x72\x6f\x75\x70\x73\x20\x26\x26\x20\x28\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x29\x20\x26\x26\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x62\x65\x74\x77\x65\x65\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x6f\x75\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\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\x64\x32\x20\x3d\x20\x30\x2c\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x64\x32\x20\x3c\x20\x65\x32\x20\x26\x26\x20\x67\x32\x20\x3c\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x2b\x3d\x20\x63\x32\x5b\x67\x32\x5d\x2e\x63\x6f\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x3d\x3d\x3d\x20\x65\x32\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x30\x2e\x36\x20\x2a\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x29\x3b\x0a\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\x6e\x65\x77\x20\x5f\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x58\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x28\x69\x32\x2c\x20\x68\x33\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x78\x31\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x72\x65\x6e\x74\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x6c\x69\x6e\x65\x73\x2d\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x22\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x68\x33\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x2c\x20\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x29\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x65\x32\x20\x2d\x20\x28\x6e\x32\x20\x3f\x20\x68\x33\x20\x3a\x20\x30\x29\x2c\x20\x69\x32\x2c\x20\x61\x32\x20\x2b\x20\x28\x6e\x32\x20\x3f\x20\x68\x33\x20\x3a\x20\x30\x29\x2c\x20\x73\x32\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x2c\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x6c\x69\x6e\x65\x22\x29\x2c\x20\x72\x32\x2e\x61\x64\x64\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x42\x61\x6e\x64\x52\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x31\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x78\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x74\x79\x70\x65\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x68\x33\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x20\x21\x3d\x3d\x20\x22\x63\x6f\x6c\x75\x6d\x6e\x22\x20\x7c\x7c\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x5b\x6f\x32\x5d\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x65\x32\x5d\x2c\x20\x64\x32\x20\x3d\x20\x6c\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x69\x32\x20\x2d\x20\x28\x6f\x32\x20\x3d\x3d\x3d\x20\x22\x72\x6f\x77\x22\x20\x3f\x20\x68\x33\x20\x3a\x20\x30\x29\x2c\x20\x61\x32\x2c\x20\x73\x32\x20\x2b\x20\x28\x6f\x32\x20\x3d\x3d\x3d\x20\x22\x72\x6f\x77\x22\x20\x3f\x20\x32\x20\x2a\x20\x68\x33\x20\x3a\x20\x30\x29\x2c\x20\x72\x32\x2c\x20\x30\x2c\x20\x63\x32\x2c\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x5b\x6f\x32\x5d\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x2e\x61\x64\x64\x28\x64\x32\x29\x2c\x20\x64\x32\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x2c\x20\x64\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x64\x72\x61\x77\x58\x59\x4c\x69\x6e\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x43\x6f\x75\x6e\x74\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x78\x61\x78\x69\x73\x2e\x6c\x69\x6e\x65\x73\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x74\x34\x2e\x78\x43\x2c\x20\x73\x33\x20\x3d\x20\x74\x34\x2e\x78\x31\x2c\x20\x72\x33\x20\x3d\x20\x74\x34\x2e\x79\x31\x2c\x20\x6f\x33\x20\x3d\x20\x74\x34\x2e\x78\x32\x2c\x20\x6e\x33\x20\x3d\x20\x74\x34\x2e\x79\x32\x2c\x20\x6c\x33\x20\x3d\x20\x30\x3b\x20\x6c\x33\x20\x3c\x20\x61\x33\x3b\x20\x6c\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x5b\x6c\x33\x5d\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x6f\x33\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x5b\x6c\x33\x5d\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x65\x32\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x73\x28\x7b\x20\x69\x3a\x20\x6c\x33\x2c\x20\x78\x31\x3a\x20\x73\x33\x2c\x20\x79\x31\x3a\x20\x72\x33\x2c\x20\x78\x32\x3a\x20\x6f\x33\x2c\x20\x79\x32\x3a\x20\x6e\x33\x2c\x20\x78\x43\x6f\x75\x6e\x74\x3a\x20\x69\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x65\x32\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x56\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x7b\x20\x78\x43\x3a\x20\x69\x32\x2c\x20\x78\x31\x3a\x20\x6f\x32\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x72\x32\x2c\x20\x79\x32\x3a\x20\x6e\x32\x20\x7d\x29\x20\x3a\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x43\x6f\x75\x6e\x74\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x74\x34\x2e\x78\x43\x2c\x20\x72\x33\x20\x3d\x20\x74\x34\x2e\x78\x31\x2c\x20\x6f\x33\x20\x3d\x20\x74\x34\x2e\x79\x31\x2c\x20\x6e\x33\x20\x3d\x20\x74\x34\x2e\x78\x32\x2c\x20\x6c\x33\x20\x3d\x20\x74\x34\x2e\x79\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x21\x3d\x3d\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x65\x78\x74\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x6c\x61\x62\x65\x6c\x20\x74\x73\x70\x61\x6e\x3a\x6e\x6f\x74\x28\x3a\x65\x6d\x70\x74\x79\x29\x22\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x61\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x74\x35\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x73\x28\x7b\x20\x69\x3a\x20\x61\x34\x2c\x20\x78\x31\x3a\x20\x73\x33\x2e\x78\x20\x2b\x20\x73\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x79\x31\x3a\x20\x6f\x33\x2c\x20\x78\x32\x3a\x20\x73\x33\x2e\x78\x20\x2b\x20\x73\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x79\x32\x3a\x20\x6c\x33\x2c\x20\x78\x43\x6f\x75\x6e\x74\x3a\x20\x69\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x65\x32\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x56\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\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x34\x20\x3d\x20\x30\x3b\x20\x68\x34\x20\x3c\x20\x61\x33\x20\x2b\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x30\x20\x3a\x20\x31\x29\x3b\x20\x68\x34\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x34\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x61\x33\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x6e\x33\x20\x3d\x20\x72\x33\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x2c\x20\x65\x32\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x73\x28\x7b\x20\x69\x3a\x20\x68\x34\x2c\x20\x78\x31\x3a\x20\x72\x33\x2c\x20\x79\x31\x3a\x20\x6f\x33\x2c\x20\x78\x32\x3a\x20\x6e\x33\x2c\x20\x79\x32\x3a\x20\x6c\x33\x2c\x20\x78\x43\x6f\x75\x6e\x74\x3a\x20\x69\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x65\x32\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x56\x20\x7d\x29\x2c\x20\x6e\x33\x20\x3d\x20\x72\x33\x20\x2b\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x61\x33\x20\x2d\x20\x31\x20\x3a\x20\x61\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x7b\x20\x78\x43\x3a\x20\x69\x32\x2c\x20\x78\x31\x3a\x20\x6f\x32\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x72\x32\x2c\x20\x79\x32\x3a\x20\x6e\x32\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x79\x61\x78\x69\x73\x2e\x6c\x69\x6e\x65\x73\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x64\x32\x20\x3d\x20\x61\x32\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x64\x32\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3f\x20\x31\x20\x3a\x20\x30\x29\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x28\x7b\x20\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x6c\x32\x2c\x20\x78\x32\x3a\x20\x63\x32\x2c\x20\x79\x32\x3a\x20\x68\x33\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x48\x20\x7d\x29\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x20\x2b\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3f\x20\x64\x32\x20\x3a\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x64\x72\x61\x77\x49\x6e\x76\x65\x72\x74\x65\x64\x58\x59\x4c\x69\x6e\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x78\x43\x6f\x75\x6e\x74\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x78\x61\x78\x69\x73\x2e\x6c\x69\x6e\x65\x73\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x73\x68\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x65\x32\x20\x2b\x20\x31\x3b\x20\x6f\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x78\x61\x78\x69\x73\x2e\x6c\x69\x6e\x65\x73\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x28\x7b\x20\x78\x31\x3a\x20\x73\x32\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x61\x32\x2c\x20\x79\x32\x3a\x20\x72\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x56\x20\x7d\x29\x2c\x20\x6e\x65\x77\x20\x5f\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x58\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x28\x73\x32\x2c\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x29\x2c\x20\x61\x32\x20\x3d\x20\x73\x32\x20\x3d\x20\x73\x32\x20\x2b\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x65\x32\x20\x2b\x20\x30\x2e\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x79\x61\x78\x69\x73\x2e\x6c\x69\x6e\x65\x73\x2e\x73\x68\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2b\x20\x31\x3b\x20\x63\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x4c\x69\x6e\x65\x28\x7b\x20\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x6e\x32\x2c\x20\x78\x32\x3a\x20\x68\x33\x2c\x20\x79\x32\x3a\x20\x6c\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x48\x20\x7d\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x20\x2b\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6e\x64\x65\x72\x47\x72\x69\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x20\x3d\x20\x65\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x22\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x48\x20\x3d\x20\x65\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x6c\x69\x6e\x65\x73\x2d\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x22\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x56\x20\x3d\x20\x65\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x6c\x69\x6e\x65\x73\x2d\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x48\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x56\x29\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x56\x2e\x68\x69\x64\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x72\x69\x64\x4c\x69\x6e\x65\x73\x48\x2e\x68\x69\x64\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x3a\x20\x35\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x73\x32\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x29\x2c\x20\x21\x28\x61\x32\x20\x3e\x20\x32\x29\x29\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3f\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x64\x72\x61\x77\x58\x59\x4c\x69\x6e\x65\x73\x28\x7b\x20\x78\x43\x6f\x75\x6e\x74\x3a\x20\x69\x32\x2c\x20\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x3a\x20\x61\x32\x20\x7d\x29\x29\x20\x3a\x20\x28\x69\x32\x20\x3d\x20\x61\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x54\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x2c\x20\x74\x68\x69\x73\x2e\x5f\x64\x72\x61\x77\x49\x6e\x76\x65\x72\x74\x65\x64\x58\x59\x4c\x69\x6e\x65\x73\x28\x7b\x20\x78\x43\x6f\x75\x6e\x74\x3a\x20\x69\x32\x2c\x20\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x3a\x20\x61\x32\x20\x7d\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x47\x72\x69\x64\x42\x61\x6e\x64\x73\x28\x69\x32\x2c\x20\x61\x32\x29\x2c\x20\x7b\x20\x65\x6c\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x67\x2c\x20\x78\x41\x78\x69\x73\x54\x69\x63\x6b\x57\x69\x64\x74\x68\x3a\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x69\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x47\x72\x69\x64\x42\x61\x6e\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x72\x6f\x77\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x72\x6f\x77\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x65\x32\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x65\x32\x3b\x20\x6f\x32\x2b\x2b\x2c\x20\x6e\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3e\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x72\x6f\x77\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x42\x61\x6e\x64\x52\x65\x63\x74\x28\x7b\x20\x63\x3a\x20\x6e\x32\x2c\x20\x78\x31\x3a\x20\x30\x2c\x20\x79\x31\x3a\x20\x61\x32\x2c\x20\x78\x32\x3a\x20\x72\x32\x2c\x20\x79\x32\x3a\x20\x73\x32\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x72\x6f\x77\x22\x20\x7d\x29\x2c\x20\x61\x32\x20\x2b\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x63\x6f\x6c\x75\x6d\x6e\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x63\x6f\x6c\x75\x6d\x6e\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x26\x26\x20\x21\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x74\x33\x20\x3a\x20\x74\x33\x20\x2d\x20\x31\x2c\x20\x68\x33\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x63\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6c\x32\x2c\x20\x64\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x67\x32\x20\x3d\x20\x30\x2c\x20\x75\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x74\x33\x3b\x20\x67\x32\x2b\x2b\x2c\x20\x75\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x20\x3e\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x63\x6f\x6c\x75\x6d\x6e\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x64\x72\x61\x77\x47\x72\x69\x64\x42\x61\x6e\x64\x52\x65\x63\x74\x28\x7b\x20\x63\x3a\x20\x75\x32\x2c\x20\x78\x31\x3a\x20\x68\x33\x2c\x20\x79\x31\x3a\x20\x30\x2c\x20\x78\x32\x3a\x20\x63\x32\x2c\x20\x79\x32\x3a\x20\x64\x32\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x63\x6f\x6c\x75\x6d\x6e\x22\x20\x7d\x29\x2c\x20\x68\x33\x20\x2b\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x71\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6e\x69\x63\x65\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x31\x30\x2c\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x3a\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x20\x2d\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x61\x64\x6a\x75\x73\x74\x54\x69\x63\x6b\x73\x46\x6f\x72\x53\x6d\x61\x6c\x6c\x52\x61\x6e\x67\x65\x28\x69\x32\x2c\x20\x61\x32\x2c\x20\x6f\x32\x29\x29\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2d\x20\x31\x29\x2c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x65\x32\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x21\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x20\x26\x26\x20\x21\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x65\x32\x29\x20\x7c\x7c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x65\x32\x20\x3d\x3d\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x30\x2c\x20\x65\x32\x20\x3d\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x61\x72\x53\x63\x61\x6c\x65\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3e\x20\x65\x32\x20\x3f\x20\x28\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x22\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x67\x72\x65\x61\x74\x65\x72\x20\x74\x68\x61\x6e\x20\x61\x78\x69\x73\x2e\x6d\x61\x78\x22\x29\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x20\x2b\x20\x30\x2e\x31\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x3d\x20\x65\x32\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x74\x33\x20\x2d\x20\x30\x2e\x35\x2c\x20\x65\x32\x20\x3d\x20\x65\x32\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x32\x20\x3a\x20\x65\x32\x20\x2b\x20\x30\x2e\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3c\x20\x31\x20\x26\x26\x20\x73\x32\x20\x26\x26\x20\x28\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x7c\x7c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x32\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x7c\x7c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x32\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x29\x20\x26\x26\x20\x28\x65\x32\x20\x2a\x3d\x20\x31\x2e\x30\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x69\x32\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3c\x20\x32\x20\x3f\x20\x68\x33\x20\x3d\x20\x32\x20\x3a\x20\x68\x33\x20\x3e\x20\x32\x20\x26\x26\x20\x28\x68\x33\x20\x2d\x3d\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x6f\x32\x20\x2f\x20\x68\x33\x2c\x20\x64\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x78\x2e\x6c\x6f\x67\x31\x30\x28\x63\x32\x29\x29\x2c\x20\x67\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x31\x30\x2c\x20\x64\x32\x29\x2c\x20\x75\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x63\x32\x20\x2f\x20\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x75\x32\x20\x3c\x20\x31\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x75\x32\x20\x2a\x20\x67\x32\x2c\x20\x66\x32\x20\x3d\x20\x70\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x74\x33\x20\x2f\x20\x70\x33\x29\x2c\x20\x62\x32\x20\x3d\x20\x70\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x65\x32\x20\x2f\x20\x70\x33\x29\x2c\x20\x76\x32\x20\x3d\x20\x66\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x20\x26\x26\x20\x6f\x32\x20\x3e\x20\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x3b\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x76\x32\x29\x2c\x20\x21\x28\x28\x76\x32\x20\x2b\x3d\x20\x70\x33\x29\x20\x3e\x20\x62\x32\x29\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x72\x65\x73\x75\x6c\x74\x3a\x20\x6c\x32\x2c\x20\x6e\x69\x63\x65\x4d\x69\x6e\x3a\x20\x6c\x32\x5b\x30\x5d\x2c\x20\x6e\x69\x63\x65\x4d\x61\x78\x3a\x20\x6c\x32\x5b\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x32\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x6c\x32\x20\x3d\x20\x5b\x5d\x29\x2e\x70\x75\x73\x68\x28\x6d\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x20\x2d\x20\x74\x33\x29\x20\x2f\x20\x69\x32\x2c\x20\x77\x32\x20\x3d\x20\x30\x3b\x20\x77\x32\x20\x3c\x3d\x20\x69\x32\x3b\x20\x77\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x32\x20\x2b\x3d\x20\x79\x32\x2c\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x6d\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x32\x5b\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x32\x5d\x20\x3e\x3d\x20\x65\x32\x20\x26\x26\x20\x6c\x32\x2e\x70\x6f\x70\x28\x29\x2c\x20\x7b\x20\x72\x65\x73\x75\x6c\x74\x3a\x20\x6c\x32\x2c\x20\x6e\x69\x63\x65\x4d\x69\x6e\x3a\x20\x6c\x32\x5b\x30\x5d\x2c\x20\x6e\x69\x63\x65\x4d\x61\x78\x3a\x20\x6c\x32\x5b\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6c\x69\x6e\x65\x61\x72\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x31\x30\x2c\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x20\x2d\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x61\x64\x6a\x75\x73\x74\x54\x69\x63\x6b\x73\x46\x6f\x72\x53\x6d\x61\x6c\x6c\x52\x61\x6e\x67\x65\x28\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x29\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x73\x32\x20\x2f\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x31\x30\x2c\x20\x72\x32\x20\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x3b\x20\x69\x32\x20\x3e\x3d\x20\x30\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x29\x2c\x20\x6e\x32\x20\x2b\x3d\x20\x72\x32\x2c\x20\x69\x32\x20\x2d\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x72\x65\x73\x75\x6c\x74\x3a\x20\x6f\x32\x2c\x20\x6e\x69\x63\x65\x4d\x69\x6e\x3a\x20\x6f\x32\x5b\x30\x5d\x2c\x20\x6e\x69\x63\x65\x4d\x61\x78\x3a\x20\x6f\x32\x5b\x6f\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x4d\x61\x74\x68\x2e\x6c\x6f\x67\x28\x65\x32\x29\x20\x2f\x20\x4d\x61\x74\x68\x2e\x6c\x6f\x67\x28\x69\x32\x29\x29\x20\x2b\x20\x31\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x73\x32\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x69\x32\x2c\x20\x72\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x61\x32\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x74\x33\x29\x2c\x20\x7b\x20\x72\x65\x73\x75\x6c\x74\x3a\x20\x61\x32\x2c\x20\x6e\x69\x63\x65\x4d\x69\x6e\x3a\x20\x61\x32\x5b\x30\x5d\x2c\x20\x6e\x69\x63\x65\x4d\x61\x78\x3a\x20\x61\x32\x5b\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x61\x64\x6a\x75\x73\x74\x54\x69\x63\x6b\x73\x46\x6f\x72\x53\x6d\x61\x6c\x6c\x52\x61\x6e\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x65\x32\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x65\x32\x5d\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x65\x32\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x4e\x75\x6d\x62\x65\x72\x28\x73\x32\x29\x29\x20\x26\x26\x20\x21\x78\x2e\x69\x73\x46\x6c\x6f\x61\x74\x28\x73\x32\x29\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x69\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x20\x3c\x20\x74\x33\x20\x3f\x20\x61\x32\x20\x3a\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x59\x53\x63\x61\x6c\x65\x46\x6f\x72\x49\x6e\x64\x65\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x73\x32\x2e\x78\x61\x78\x69\x73\x20\x3a\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x61\x32\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x20\x3d\x20\x5b\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x69\x32\x20\x2d\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x20\x26\x26\x20\x6f\x32\x20\x3c\x3d\x20\x35\x20\x26\x26\x20\x28\x61\x32\x2e\x69\x6e\x76\x61\x6c\x69\x64\x4c\x6f\x67\x53\x63\x61\x6c\x65\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x72\x32\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x20\x26\x26\x20\x6f\x32\x20\x3e\x20\x35\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x32\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x53\x63\x61\x6c\x65\x28\x65\x32\x2c\x20\x69\x32\x2c\x20\x72\x32\x2e\x6c\x6f\x67\x42\x61\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x32\x20\x21\x3d\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x69\x32\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x32\x2e\x6d\x69\x6e\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x72\x32\x2e\x6d\x61\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x72\x32\x2e\x66\x6f\x72\x63\x65\x4e\x69\x63\x65\x53\x63\x61\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6d\x61\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6d\x69\x6e\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x66\x6f\x72\x63\x65\x4e\x69\x63\x65\x53\x63\x61\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x6e\x69\x63\x65\x53\x63\x61\x6c\x65\x28\x65\x32\x2c\x20\x69\x32\x2c\x20\x72\x32\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3f\x20\x72\x32\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3a\x20\x6f\x32\x20\x3c\x20\x35\x20\x26\x26\x20\x6f\x32\x20\x3e\x20\x31\x20\x3f\x20\x6f\x32\x20\x2b\x20\x31\x20\x3a\x20\x35\x2c\x20\x74\x33\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x61\x72\x53\x63\x61\x6c\x65\x28\x65\x32\x2c\x20\x69\x32\x2c\x20\x72\x32\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x61\x72\x53\x63\x61\x6c\x65\x28\x30\x2c\x20\x35\x2c\x20\x35\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x58\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2c\x20\x72\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x20\x2d\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x21\x3d\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x65\x32\x29\x20\x3f\x20\x61\x32\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x61\x72\x53\x63\x61\x6c\x65\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x73\x32\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3f\x20\x73\x32\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3a\x20\x72\x32\x20\x3c\x20\x35\x20\x26\x26\x20\x72\x32\x20\x3e\x20\x31\x20\x3f\x20\x72\x32\x20\x2b\x20\x31\x20\x3a\x20\x35\x2c\x20\x30\x29\x20\x3a\x20\x61\x32\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x61\x72\x53\x63\x61\x6c\x65\x28\x30\x2c\x20\x35\x2c\x20\x35\x29\x2c\x20\x61\x32\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x53\x63\x61\x6c\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x6d\x69\x6e\x59\x41\x72\x72\x2e\x63\x6f\x6e\x63\x61\x74\x28\x5b\x5d\x29\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x6d\x61\x78\x59\x41\x72\x72\x2e\x63\x6f\x6e\x63\x61\x74\x28\x5b\x5d\x29\x2c\x20\x72\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x6e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x65\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x69\x33\x2c\x20\x6f\x32\x20\x21\x3d\x3d\x20\x69\x33\x20\x3f\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x69\x33\x2c\x20\x73\x69\x6d\x69\x6c\x61\x72\x49\x6e\x64\x65\x78\x3a\x20\x6f\x32\x2c\x20\x61\x6c\x72\x65\x61\x64\x79\x45\x78\x69\x73\x74\x73\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x20\x3a\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x69\x33\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x61\x32\x5b\x6e\x32\x5d\x2c\x20\x68\x33\x20\x3d\x20\x73\x32\x5b\x6e\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x65\x74\x59\x53\x63\x61\x6c\x65\x46\x6f\x72\x49\x6e\x64\x65\x78\x28\x6f\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x61\x6d\x65\x53\x63\x61\x6c\x65\x49\x6e\x4d\x75\x6c\x74\x69\x70\x6c\x65\x41\x78\x65\x73\x28\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x61\x6d\x65\x53\x63\x61\x6c\x65\x49\x6e\x4d\x75\x6c\x74\x69\x70\x6c\x65\x41\x78\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x6f\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x61\x6c\x72\x65\x61\x64\x79\x45\x78\x69\x73\x74\x73\x20\x26\x26\x20\x28\x6f\x32\x5b\x74\x34\x2e\x69\x6e\x64\x65\x78\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x5b\x74\x34\x2e\x69\x6e\x64\x65\x78\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x6f\x32\x5b\x74\x34\x2e\x69\x6e\x64\x65\x78\x5d\x2e\x70\x75\x73\x68\x28\x74\x34\x2e\x69\x6e\x64\x65\x78\x29\x2c\x20\x6f\x32\x5b\x74\x34\x2e\x69\x6e\x64\x65\x78\x5d\x2e\x70\x75\x73\x68\x28\x74\x34\x2e\x73\x69\x6d\x69\x6c\x61\x72\x49\x6e\x64\x65\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x72\x32\x2e\x79\x41\x78\x69\x73\x53\x61\x6d\x65\x53\x63\x61\x6c\x65\x49\x6e\x64\x69\x63\x65\x73\x20\x3d\x20\x6f\x32\x2c\x20\x6f\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x2c\x20\x72\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x20\x21\x3d\x3d\x20\x61\x33\x20\x26\x26\x20\x28\x73\x33\x20\x3d\x20\x74\x34\x2c\x20\x72\x33\x20\x3d\x20\x69\x33\x2c\x20\x73\x33\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x35\x29\x20\x21\x3d\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x5b\x65\x33\x5d\x20\x3d\x20\x6f\x32\x5b\x65\x33\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x5b\x61\x33\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x33\x29\x20\x3d\x3d\x3d\x20\x69\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x73\x6f\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x6f\x32\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x6e\x32\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x32\x20\x3d\x20\x6c\x32\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x34\x29\x29\x20\x3d\x3d\x3d\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x64\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x69\x33\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x63\x32\x5b\x73\x33\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x63\x32\x5b\x73\x33\x5d\x20\x3d\x20\x5b\x5d\x2c\x20\x64\x32\x5b\x73\x33\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x63\x32\x5b\x73\x33\x5d\x2e\x70\x75\x73\x68\x28\x7b\x20\x6b\x65\x79\x3a\x20\x69\x33\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x34\x20\x7d\x29\x2c\x20\x64\x32\x5b\x73\x33\x5d\x2e\x70\x75\x73\x68\x28\x7b\x20\x6b\x65\x79\x3a\x20\x69\x33\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x65\x32\x5b\x69\x33\x5d\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x61\x70\x70\x6c\x79\x28\x6e\x75\x6c\x6c\x2c\x20\x41\x72\x72\x61\x79\x28\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x29\x29\x2e\x6d\x61\x70\x28\x4e\x75\x6d\x62\x65\x72\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x76\x61\x6c\x75\x65\x4f\x66\x2c\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x29\x2c\x20\x75\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x61\x70\x70\x6c\x79\x28\x6e\x75\x6c\x6c\x2c\x20\x41\x72\x72\x61\x79\x28\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x29\x29\x2e\x6d\x61\x70\x28\x4e\x75\x6d\x62\x65\x72\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x76\x61\x6c\x75\x65\x4f\x66\x2c\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x5b\x65\x33\x5d\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x35\x2e\x76\x61\x6c\x75\x65\x2c\x20\x67\x32\x5b\x65\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x64\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x5b\x65\x33\x5d\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x35\x2e\x76\x61\x6c\x75\x65\x2c\x20\x75\x32\x5b\x65\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x33\x20\x3d\x20\x67\x32\x5b\x69\x33\x5d\x2c\x20\x6e\x33\x20\x3d\x20\x75\x32\x5b\x69\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x28\x6e\x33\x20\x3d\x20\x30\x2c\x20\x74\x35\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x36\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x36\x2e\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x28\x6e\x33\x20\x2b\x3d\x20\x74\x36\x2e\x76\x61\x6c\x75\x65\x29\x2c\x20\x6f\x33\x20\x21\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x28\x6f\x33\x20\x2b\x3d\x20\x63\x32\x5b\x69\x33\x5d\x5b\x65\x34\x5d\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x74\x35\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x34\x2c\x20\x6c\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x5b\x6c\x33\x5d\x2e\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x65\x33\x20\x26\x26\x20\x28\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6d\x69\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6f\x33\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6d\x69\x6e\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6d\x69\x6e\x28\x72\x32\x2e\x6d\x69\x6e\x59\x29\x20\x3a\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6d\x69\x6e\x29\x2c\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6d\x61\x78\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6e\x33\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6d\x61\x78\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6d\x61\x78\x28\x72\x32\x2e\x6d\x61\x78\x59\x29\x20\x3a\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x5b\x65\x33\x5d\x2e\x6d\x61\x78\x29\x2c\x20\x61\x32\x2e\x73\x65\x74\x59\x53\x63\x61\x6c\x65\x46\x6f\x72\x49\x6e\x64\x65\x78\x28\x65\x33\x2c\x20\x6f\x33\x2c\x20\x6e\x33\x29\x29\x3b\x0a\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\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x7c\x7c\x20\x28\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x20\x7c\x7c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x22\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x61\x78\x69\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x69\x6e\x20\x61\x20\x6d\x75\x6c\x74\x69\x2d\x79\x61\x78\x69\x73\x20\x63\x68\x61\x72\x74\x2e\x22\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x30\x5d\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x5b\x6c\x32\x5d\x20\x3e\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x2c\x20\x63\x32\x2c\x20\x64\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x6f\x32\x5d\x2c\x20\x67\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x6f\x32\x5d\x2c\x20\x75\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x61\x63\x6b\x65\x64\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x33\x2c\x20\x6c\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x6f\x33\x5b\x6e\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3f\x20\x28\x70\x33\x20\x3d\x20\x75\x32\x5b\x6e\x32\x5d\x2c\x20\x68\x33\x20\x3d\x20\x63\x32\x20\x3d\x20\x70\x33\x2c\x20\x75\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x5b\x65\x33\x5d\x20\x3c\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x26\x26\x20\x73\x32\x5b\x65\x33\x5d\x20\x3e\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x26\x26\x20\x28\x74\x35\x20\x3e\x20\x63\x32\x20\x26\x26\x20\x74\x35\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x74\x35\x29\x2c\x20\x6f\x33\x5b\x65\x33\x5d\x20\x3c\x20\x68\x33\x20\x26\x26\x20\x6f\x33\x5b\x65\x33\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x6f\x33\x5b\x65\x33\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x20\x3a\x20\x28\x68\x33\x20\x3d\x20\x63\x32\x20\x3d\x20\x70\x33\x2c\x20\x6f\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x5b\x65\x33\x5d\x20\x3c\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x26\x26\x20\x73\x32\x5b\x65\x33\x5d\x20\x3e\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x74\x35\x2c\x20\x6f\x34\x20\x3d\x20\x74\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x72\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x69\x33\x5b\x65\x33\x5d\x2c\x20\x72\x33\x29\x2c\x20\x6f\x34\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x69\x33\x5b\x65\x33\x5d\x2c\x20\x6f\x34\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6f\x34\x20\x3e\x20\x63\x32\x20\x26\x26\x20\x6f\x34\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x6f\x34\x29\x2c\x20\x72\x33\x20\x3c\x20\x68\x33\x20\x26\x26\x20\x72\x33\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x72\x33\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\x7d\x29\x29\x2c\x20\x68\x33\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x63\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x64\x32\x2c\x20\x63\x32\x20\x3d\x20\x67\x32\x29\x2c\x20\x28\x63\x32\x20\x2a\x3d\x20\x63\x32\x20\x3c\x20\x30\x20\x3f\x20\x30\x2e\x39\x20\x3a\x20\x31\x2e\x31\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x63\x32\x20\x3c\x20\x67\x32\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x67\x32\x29\x2c\x20\x28\x68\x33\x20\x2a\x3d\x20\x68\x33\x20\x3c\x20\x30\x20\x3f\x20\x31\x2e\x31\x20\x3a\x20\x30\x2e\x39\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x68\x33\x20\x3e\x20\x64\x32\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x64\x32\x29\x2c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x3f\x20\x28\x65\x32\x5b\x6c\x33\x5d\x2e\x6d\x69\x6e\x20\x3d\x20\x74\x34\x2e\x6d\x69\x6e\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x68\x33\x20\x3a\x20\x74\x34\x2e\x6d\x69\x6e\x2c\x20\x65\x32\x5b\x6c\x33\x5d\x2e\x6d\x61\x78\x20\x3d\x20\x74\x34\x2e\x6d\x61\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x63\x32\x20\x3a\x20\x74\x34\x2e\x6d\x61\x78\x29\x20\x3a\x20\x28\x65\x32\x5b\x30\x5d\x2e\x6d\x69\x6e\x20\x3d\x20\x74\x34\x2e\x6d\x69\x6e\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x68\x33\x20\x3a\x20\x74\x34\x2e\x6d\x69\x6e\x2c\x20\x65\x32\x5b\x30\x5d\x2e\x6d\x61\x78\x20\x3d\x20\x74\x34\x2e\x6d\x61\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x63\x32\x20\x3a\x20\x74\x34\x2e\x6d\x61\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x5a\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x73\x63\x61\x6c\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x71\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x59\x52\x61\x6e\x67\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x58\x52\x61\x6e\x67\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x5a\x52\x61\x6e\x67\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4d\x69\x6e\x59\x4d\x61\x78\x59\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x6f\x32\x20\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x6e\x32\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x2c\x20\x63\x32\x20\x3d\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x3f\x20\x28\x68\x33\x20\x3d\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x2c\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x29\x20\x3a\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x3f\x20\x28\x68\x33\x20\x3d\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x2c\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x29\x20\x3a\x20\x72\x32\x2e\x69\x73\x52\x61\x6e\x67\x65\x44\x61\x74\x61\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x2c\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x45\x6e\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x74\x33\x3b\x20\x64\x32\x20\x3c\x20\x61\x32\x3b\x20\x64\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x72\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x6c\x32\x5b\x64\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x72\x32\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x72\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3d\x20\x72\x32\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x64\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x6c\x32\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x75\x32\x29\x20\x3f\x20\x28\x63\x32\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6f\x32\x2c\x20\x63\x32\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x2c\x20\x65\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x65\x32\x2c\x20\x63\x32\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x29\x2c\x20\x68\x33\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x65\x32\x2c\x20\x68\x33\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x2c\x20\x69\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x69\x32\x2c\x20\x68\x33\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x28\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6f\x32\x2c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x2c\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6f\x32\x2c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x2c\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6f\x32\x2c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x2c\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6f\x32\x2c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6f\x32\x2c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4d\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x29\x29\x2c\x20\x21\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x64\x32\x5d\x2e\x74\x79\x70\x65\x20\x7c\x7c\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x64\x32\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x64\x32\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6f\x32\x2c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x2c\x20\x65\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x65\x32\x2c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x29\x2c\x20\x69\x32\x20\x3d\x20\x6f\x32\x29\x2c\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x64\x32\x5d\x20\x26\x26\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x20\x26\x26\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x21\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x6e\x32\x2c\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x29\x2c\x20\x65\x32\x20\x3d\x20\x6e\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6f\x32\x2c\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x29\x2c\x20\x69\x32\x20\x3d\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x78\x2e\x69\x73\x46\x6c\x6f\x61\x74\x28\x75\x32\x29\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x78\x2e\x6e\x6f\x45\x78\x70\x6f\x6e\x65\x6e\x74\x73\x28\x75\x32\x29\x2c\x20\x72\x32\x2e\x79\x56\x61\x6c\x75\x65\x44\x65\x63\x69\x6d\x61\x6c\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x72\x32\x2e\x79\x56\x61\x6c\x75\x65\x44\x65\x63\x69\x6d\x61\x6c\x2c\x20\x75\x32\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x5b\x31\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x29\x29\x2c\x20\x6e\x32\x20\x3e\x20\x68\x33\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x20\x26\x26\x20\x68\x33\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x68\x33\x5b\x64\x32\x5d\x5b\x67\x32\x5d\x29\x29\x20\x3a\x20\x72\x32\x2e\x68\x61\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x26\x26\x20\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x52\x61\x6e\x67\x65\x53\x74\x61\x72\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x72\x32\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x65\x32\x29\x2c\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x6f\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x30\x29\x2c\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x30\x29\x29\x2c\x20\x7b\x20\x6d\x69\x6e\x59\x3a\x20\x6e\x32\x2c\x20\x6d\x61\x78\x59\x3a\x20\x6f\x32\x2c\x20\x6c\x6f\x77\x65\x73\x74\x59\x3a\x20\x65\x32\x2c\x20\x68\x69\x67\x68\x65\x73\x74\x59\x3a\x20\x69\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x59\x52\x61\x6e\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4d\x69\x6e\x59\x4d\x61\x78\x59\x28\x61\x32\x2c\x20\x69\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x61\x32\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x2e\x70\x75\x73\x68\x28\x73\x32\x2e\x6d\x69\x6e\x59\x29\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x2e\x70\x75\x73\x68\x28\x73\x32\x2e\x6d\x61\x78\x59\x29\x2c\x20\x69\x32\x20\x3d\x20\x73\x32\x2e\x6c\x6f\x77\x65\x73\x74\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4d\x69\x6e\x59\x4d\x61\x78\x59\x28\x30\x2c\x20\x69\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x72\x32\x2e\x6d\x69\x6e\x59\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x3d\x20\x72\x32\x2e\x6d\x61\x78\x59\x2c\x20\x69\x32\x20\x3d\x20\x72\x32\x2e\x6c\x6f\x77\x65\x73\x74\x59\x2c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x5f\x73\x65\x74\x53\x74\x61\x63\x6b\x65\x64\x4d\x69\x6e\x4d\x61\x78\x28\x29\x2c\x20\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x61\x72\x65\x61\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x26\x26\x20\x21\x74\x33\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x26\x26\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x69\x32\x20\x21\x3d\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x69\x32\x20\x21\x3d\x3d\x20\x74\x33\x2e\x6d\x61\x78\x59\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x2d\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x69\x32\x20\x3e\x3d\x20\x30\x20\x26\x26\x20\x69\x32\x20\x3c\x3d\x20\x31\x30\x20\x7c\x7c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6d\x69\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6d\x61\x78\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x30\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x69\x32\x20\x2d\x20\x35\x20\x2a\x20\x6f\x32\x20\x2f\x20\x31\x30\x30\x2c\x20\x69\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x30\x29\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x3d\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x2b\x20\x35\x20\x2a\x20\x6f\x32\x20\x2f\x20\x31\x30\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x6d\x61\x78\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x33\x2e\x6d\x61\x78\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3d\x20\x65\x33\x2e\x6d\x61\x78\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x33\x2e\x6d\x61\x78\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3d\x20\x65\x33\x2e\x6d\x61\x78\x28\x74\x33\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x20\x3f\x20\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3a\x20\x74\x33\x2e\x6d\x61\x78\x59\x29\x29\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x3d\x20\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x69\x33\x5d\x29\x2c\x20\x65\x33\x2e\x6d\x69\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x33\x2e\x6d\x69\x6e\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3d\x20\x65\x33\x2e\x6d\x69\x6e\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x33\x2e\x6d\x69\x6e\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3d\x20\x65\x33\x2e\x6d\x69\x6e\x28\x74\x33\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x20\x3f\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x3f\x20\x30\x20\x3a\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3a\x20\x74\x33\x2e\x6d\x69\x6e\x59\x29\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5b\x22\x6d\x69\x6e\x22\x2c\x20\x22\x6d\x61\x78\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x5b\x69\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x5b\x69\x33\x5d\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x28\x69\x33\x20\x3d\x3d\x3d\x20\x22\x6d\x69\x6e\x22\x20\x3f\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x5b\x69\x33\x5d\x20\x3a\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x5b\x69\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x73\x63\x61\x6c\x65\x73\x2e\x73\x65\x74\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x53\x63\x61\x6c\x65\x73\x28\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x69\x32\x2c\x20\x74\x33\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3d\x20\x65\x33\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x69\x33\x5d\x20\x3d\x20\x65\x33\x2e\x6e\x69\x63\x65\x4d\x61\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x73\x63\x61\x6c\x65\x73\x2e\x73\x65\x74\x59\x53\x63\x61\x6c\x65\x46\x6f\x72\x49\x6e\x64\x65\x78\x28\x30\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x74\x33\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x3d\x20\x74\x33\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x61\x78\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x30\x5d\x20\x3d\x20\x74\x33\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x2c\x20\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x30\x5d\x20\x3d\x20\x74\x33\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x61\x78\x29\x2c\x20\x7b\x20\x6d\x69\x6e\x59\x3a\x20\x74\x33\x2e\x6d\x69\x6e\x59\x2c\x20\x6d\x61\x78\x59\x3a\x20\x74\x33\x2e\x6d\x61\x78\x59\x2c\x20\x6d\x69\x6e\x59\x41\x72\x72\x3a\x20\x74\x33\x2e\x6d\x69\x6e\x59\x41\x72\x72\x2c\x20\x6d\x61\x78\x59\x41\x72\x72\x3a\x20\x74\x33\x2e\x6d\x61\x78\x59\x41\x72\x72\x2c\x20\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x3a\x20\x74\x33\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x58\x52\x61\x6e\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x65\x72\x69\x63\x22\x20\x7c\x7c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x7c\x7c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x26\x26\x20\x21\x74\x33\x2e\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x20\x7c\x7c\x20\x74\x33\x2e\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x20\x7c\x7c\x20\x74\x33\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x30\x3b\x20\x65\x33\x20\x3c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x5b\x69\x33\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x5b\x69\x33\x5d\x29\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x61\x78\x58\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x33\x2e\x6d\x61\x78\x58\x2c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x5b\x69\x33\x5d\x29\x2c\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x61\x78\x58\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x33\x2e\x6d\x61\x78\x58\x2c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x5b\x69\x33\x5d\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x33\x2e\x6d\x69\x6e\x58\x2c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x5b\x69\x33\x5d\x29\x2c\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x69\x6e\x58\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x33\x2e\x6d\x69\x6e\x58\x2c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x65\x33\x5d\x5b\x69\x33\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x61\x78\x58\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2c\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x61\x78\x58\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x31\x2c\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x69\x6e\x58\x20\x3d\x20\x31\x29\x2c\x20\x74\x33\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x74\x33\x2e\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x20\x7c\x7c\x20\x74\x33\x2e\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x28\x61\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x35\x30\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x65\x72\x69\x63\x22\x20\x26\x26\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3c\x20\x33\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2d\x20\x31\x29\x2c\x20\x61\x32\x20\x3e\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x26\x26\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x21\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2d\x20\x31\x29\x29\x20\x3a\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x20\x3f\x20\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x33\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x29\x2c\x20\x74\x33\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x2e\x6d\x61\x78\x58\x20\x2d\x20\x74\x33\x2e\x6d\x69\x6e\x58\x20\x2d\x20\x31\x29\x29\x20\x3a\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x2c\x20\x74\x33\x2e\x78\x54\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x61\x32\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x61\x78\x58\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x72\x61\x6e\x67\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x74\x33\x2e\x6d\x61\x78\x58\x20\x2d\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x72\x61\x6e\x67\x65\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x58\x20\x21\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x20\x26\x26\x20\x74\x33\x2e\x6d\x61\x78\x58\x20\x21\x3d\x3d\x20\x2d\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x21\x74\x33\x2e\x64\x61\x74\x61\x46\x6f\x72\x6d\x61\x74\x58\x4e\x75\x6d\x65\x72\x69\x63\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\x73\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x6d\x69\x6e\x58\x20\x2d\x20\x31\x3b\x20\x72\x32\x20\x3c\x20\x74\x33\x2e\x6d\x61\x78\x58\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x70\x75\x73\x68\x28\x72\x32\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x3d\x20\x7b\x20\x72\x65\x73\x75\x6c\x74\x3a\x20\x73\x32\x2c\x20\x6e\x69\x63\x65\x4d\x69\x6e\x3a\x20\x73\x32\x5b\x30\x5d\x2c\x20\x6e\x69\x63\x65\x4d\x61\x78\x3a\x20\x73\x32\x5b\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x63\x61\x6c\x65\x73\x2e\x73\x65\x74\x58\x53\x63\x61\x6c\x65\x28\x74\x33\x2e\x6d\x69\x6e\x58\x2c\x20\x74\x33\x2e\x6d\x61\x78\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x63\x61\x6c\x65\x73\x2e\x6c\x69\x6e\x65\x61\x72\x53\x63\x61\x6c\x65\x28\x31\x2c\x20\x61\x32\x2c\x20\x61\x32\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x20\x26\x26\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x63\x61\x6c\x65\x73\x2e\x6c\x69\x6e\x65\x61\x72\x53\x63\x61\x6c\x65\x28\x31\x2c\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x61\x32\x20\x2d\x20\x31\x29\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x58\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x26\x26\x20\x28\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x74\x33\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x72\x65\x73\x75\x6c\x74\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x74\x33\x2e\x78\x54\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x3d\x20\x74\x33\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x68\x61\x6e\x64\x6c\x65\x53\x69\x6e\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x4d\x69\x6e\x58\x44\x69\x66\x66\x28\x29\x2c\x20\x7b\x20\x6d\x69\x6e\x58\x3a\x20\x74\x33\x2e\x6d\x69\x6e\x58\x2c\x20\x6d\x61\x78\x58\x3a\x20\x74\x33\x2e\x6d\x61\x78\x58\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x5a\x52\x61\x6e\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x69\x73\x44\x61\x74\x61\x58\x59\x5a\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x30\x3b\x20\x65\x32\x20\x3c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x29\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x61\x78\x5a\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x33\x2e\x6d\x61\x78\x5a\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x5a\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x33\x2e\x6d\x69\x6e\x5a\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x68\x61\x6e\x64\x6c\x65\x53\x69\x6e\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6d\x69\x6e\x58\x20\x3d\x3d\x3d\x20\x74\x33\x2e\x6d\x61\x78\x58\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x74\x33\x2e\x6d\x69\x6e\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x64\x61\x74\x65\x74\x69\x6d\x65\x55\x54\x43\x20\x3f\x20\x61\x32\x2e\x73\x65\x74\x55\x54\x43\x44\x61\x74\x65\x28\x61\x32\x2e\x67\x65\x74\x55\x54\x43\x44\x61\x74\x65\x28\x29\x20\x2d\x20\x32\x29\x20\x3a\x20\x61\x32\x2e\x73\x65\x74\x44\x61\x74\x65\x28\x61\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x29\x20\x2d\x20\x32\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x61\x32\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x74\x33\x2e\x6d\x61\x78\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x64\x61\x74\x65\x74\x69\x6d\x65\x55\x54\x43\x20\x3f\x20\x73\x32\x2e\x73\x65\x74\x55\x54\x43\x44\x61\x74\x65\x28\x73\x32\x2e\x67\x65\x74\x55\x54\x43\x44\x61\x74\x65\x28\x29\x20\x2b\x20\x32\x29\x20\x3a\x20\x73\x32\x2e\x73\x65\x74\x44\x61\x74\x65\x28\x73\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x29\x20\x2b\x20\x32\x29\x2c\x20\x74\x33\x2e\x6d\x61\x78\x58\x20\x3d\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x73\x32\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x65\x72\x69\x63\x22\x20\x7c\x7c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x26\x26\x20\x21\x74\x33\x2e\x6e\x6f\x4c\x61\x62\x65\x6c\x73\x50\x72\x6f\x76\x69\x64\x65\x64\x29\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x74\x33\x2e\x6d\x69\x6e\x58\x20\x2d\x20\x32\x2c\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x69\x6e\x58\x20\x3d\x20\x74\x33\x2e\x6d\x69\x6e\x58\x2c\x20\x74\x33\x2e\x6d\x61\x78\x58\x20\x3d\x20\x74\x33\x2e\x6d\x61\x78\x58\x20\x2b\x20\x32\x2c\x20\x74\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x61\x78\x58\x20\x3d\x20\x74\x33\x2e\x6d\x61\x78\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x67\x65\x74\x4d\x69\x6e\x58\x44\x69\x66\x66\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x65\x32\x2e\x70\x75\x73\x68\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x74\x33\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x5b\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x74\x33\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x73\x6f\x72\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x2d\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x33\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x33\x20\x2d\x20\x61\x32\x5b\x69\x33\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x73\x32\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x21\x3d\x3d\x20\x31\x20\x26\x26\x20\x74\x33\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x21\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x20\x7c\x7c\x20\x28\x74\x33\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x3d\x20\x30\x2e\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x73\x65\x74\x53\x74\x61\x63\x6b\x65\x64\x4d\x69\x6e\x4d\x61\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x65\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x69\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x33\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x6f\x32\x5d\x5b\x61\x32\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x6f\x32\x5d\x5b\x61\x32\x5d\x29\x20\x26\x26\x20\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x6f\x32\x5d\x5b\x61\x32\x5d\x20\x3e\x20\x30\x20\x3f\x20\x73\x32\x20\x3d\x20\x73\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x6f\x32\x5d\x5b\x61\x32\x5d\x29\x20\x2b\x20\x31\x65\x2d\x34\x20\x3a\x20\x72\x32\x20\x2b\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x6f\x32\x5d\x5b\x61\x32\x5d\x29\x29\x2c\x20\x6f\x32\x20\x3d\x3d\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x26\x26\x20\x28\x65\x32\x2e\x70\x75\x73\x68\x28\x73\x32\x29\x2c\x20\x69\x32\x2e\x70\x75\x73\x68\x28\x72\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6d\x61\x78\x59\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x33\x2e\x6d\x61\x78\x59\x2c\x20\x65\x32\x5b\x6e\x32\x5d\x29\x2c\x20\x74\x33\x2e\x6d\x69\x6e\x59\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x33\x2e\x6d\x69\x6e\x59\x2c\x20\x69\x32\x5b\x6e\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x24\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x74\x68\x69\x73\x2e\x61\x78\x69\x73\x46\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x43\x61\x74\x65\x67\x6f\x72\x79\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x6f\x66\x66\x58\x20\x3d\x20\x30\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x6f\x66\x66\x58\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x6e\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x20\x3d\x20\x6e\x65\x77\x20\x47\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x59\x61\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x22\x2c\x20\x72\x65\x6c\x3a\x20\x74\x33\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x20\x2b\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x41\x78\x69\x73\x58\x5b\x74\x33\x5d\x20\x2b\x20\x22\x2c\x20\x30\x29\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x69\x73\x59\x41\x78\x69\x73\x48\x69\x64\x64\x65\x6e\x28\x74\x33\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x61\x64\x64\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x2c\x20\x64\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x63\x32\x2c\x20\x67\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x2c\x20\x75\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x74\x33\x5d\x2c\x20\x70\x33\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x63\x68\x65\x63\x6b\x46\x6f\x72\x52\x65\x76\x65\x72\x73\x65\x64\x4c\x61\x62\x65\x6c\x73\x28\x74\x33\x2c\x20\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6c\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x33\x20\x3d\x20\x70\x33\x5b\x6c\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x33\x20\x3d\x20\x75\x32\x28\x78\x33\x2c\x20\x6c\x33\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x33\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x70\x61\x64\x64\x69\x6e\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x62\x33\x20\x2a\x3d\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x33\x20\x3d\x20\x65\x32\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x59\x41\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x28\x73\x32\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x74\x33\x29\x2c\x20\x6d\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x62\x33\x2c\x20\x79\x3a\x20\x67\x32\x20\x2b\x20\x63\x32\x20\x2f\x20\x31\x30\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x31\x2c\x20\x74\x65\x78\x74\x3a\x20\x78\x33\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x3f\x20\x22\x73\x74\x61\x72\x74\x22\x20\x3a\x20\x22\x65\x6e\x64\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x72\x32\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x6f\x32\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x6e\x32\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x76\x33\x29\x20\x3f\x20\x76\x33\x5b\x6c\x33\x5d\x20\x3a\x20\x76\x33\x2c\x20\x69\x73\x50\x6c\x61\x69\x6e\x54\x65\x78\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x6c\x61\x62\x65\x6c\x20\x22\x20\x2b\x20\x73\x32\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x33\x20\x3d\x3d\x3d\x20\x63\x32\x20\x26\x26\x20\x28\x66\x32\x20\x3d\x20\x6d\x32\x29\x2c\x20\x68\x33\x2e\x61\x64\x64\x28\x6d\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x33\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\x4e\x53\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x74\x69\x74\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x79\x33\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x78\x33\x29\x20\x3f\x20\x78\x33\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x78\x33\x2c\x20\x6d\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x79\x33\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x33\x20\x3d\x20\x61\x32\x2e\x72\x6f\x74\x61\x74\x65\x41\x72\x6f\x75\x6e\x64\x43\x65\x6e\x74\x65\x72\x28\x66\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x6b\x33\x20\x3d\x20\x61\x32\x2e\x72\x6f\x74\x61\x74\x65\x41\x72\x6f\x75\x6e\x64\x43\x65\x6e\x74\x65\x72\x28\x6d\x32\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x77\x33\x2e\x78\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6b\x33\x2e\x79\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x2b\x3d\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x62\x32\x20\x3d\x20\x63\x32\x3b\x20\x62\x32\x20\x3e\x3d\x20\x30\x3b\x20\x62\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x28\x62\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x22\x20\x7d\x29\x2c\x20\x79\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x26\x26\x20\x28\x79\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x41\x78\x69\x73\x58\x5b\x74\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x79\x32\x2c\x20\x79\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2b\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x65\x78\x74\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x65\x6e\x64\x22\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x2d\x74\x65\x78\x74\x20\x22\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x32\x2e\x61\x64\x64\x28\x77\x32\x29\x2c\x20\x6c\x32\x2e\x61\x64\x64\x28\x76\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x2c\x20\x41\x32\x20\x3d\x20\x33\x31\x20\x2b\x20\x6b\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x26\x26\x20\x28\x41\x32\x20\x3d\x20\x2d\x33\x31\x20\x2d\x20\x6b\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x29\x2c\x20\x6b\x32\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x53\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x41\x32\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2b\x20\x6b\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2d\x20\x32\x2c\x20\x41\x32\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2b\x20\x6b\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x32\x2c\x20\x6b\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x30\x2c\x20\x6b\x32\x2e\x77\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x61\x64\x64\x28\x53\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x64\x72\x61\x77\x59\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x28\x41\x32\x2c\x20\x63\x32\x2c\x20\x6b\x32\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2c\x20\x74\x33\x2c\x20\x64\x32\x2c\x20\x6c\x32\x29\x2c\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x59\x61\x78\x69\x73\x49\x6e\x76\x65\x72\x73\x65\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x69\x6e\x76\x65\x72\x73\x65\x64\x22\x20\x7d\x29\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x58\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x59\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x64\x64\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x72\x32\x20\x2b\x20\x30\x2e\x31\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x74\x33\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x63\x32\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x28\x68\x33\x20\x3d\x20\x63\x32\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x63\x68\x65\x63\x6b\x46\x6f\x72\x52\x65\x76\x65\x72\x73\x65\x64\x4c\x61\x62\x65\x6c\x73\x28\x74\x33\x2c\x20\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x64\x32\x20\x3f\x20\x30\x20\x3a\x20\x72\x32\x3b\x20\x64\x32\x20\x3f\x20\x67\x32\x20\x3c\x20\x64\x32\x20\x3a\x20\x67\x32\x20\x3e\x3d\x20\x30\x3b\x20\x64\x32\x20\x3f\x20\x67\x32\x2b\x2b\x20\x3a\x20\x67\x32\x2d\x2d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x68\x33\x5b\x67\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x20\x3d\x20\x6c\x32\x28\x75\x32\x2c\x20\x67\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2d\x20\x28\x6e\x32\x20\x2d\x20\x6f\x32\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x4c\x61\x62\x65\x6c\x28\x68\x33\x2c\x20\x63\x32\x2c\x20\x70\x33\x2c\x20\x67\x32\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x6e\x4c\x61\x62\x65\x6c\x73\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x66\x32\x2e\x78\x2c\x20\x75\x32\x20\x3d\x20\x66\x32\x2e\x74\x65\x78\x74\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x6e\x4c\x61\x62\x65\x6c\x73\x2e\x70\x75\x73\x68\x28\x66\x32\x2e\x74\x65\x78\x74\x29\x2c\x20\x67\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x6b\x69\x70\x46\x69\x72\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x22\x22\x29\x2c\x20\x67\x32\x20\x3d\x3d\x3d\x20\x68\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x6b\x69\x70\x4c\x61\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x70\x33\x2c\x20\x79\x3a\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x6f\x66\x66\x58\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x33\x30\x20\x2d\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x32\x20\x3a\x20\x30\x29\x2c\x20\x74\x65\x78\x74\x3a\x20\x75\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x73\x5b\x74\x33\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x73\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x69\x73\x50\x6c\x61\x69\x6e\x54\x65\x78\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x6c\x61\x62\x65\x6c\x20\x22\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x61\x64\x64\x28\x78\x32\x29\x2c\x20\x78\x32\x2e\x74\x73\x70\x61\x6e\x28\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\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\x4e\x53\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x74\x69\x74\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x75\x32\x2c\x20\x78\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x62\x32\x29\x2c\x20\x6e\x32\x20\x2b\x3d\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x73\x65\x64\x59\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x54\x65\x78\x74\x28\x61\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x73\x65\x64\x59\x41\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x28\x61\x32\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x76\x65\x72\x73\x65\x64\x59\x41\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x42\x6f\x72\x64\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x73\x32\x20\x2d\x3d\x20\x31\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x73\x32\x20\x2b\x20\x61\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x6f\x66\x66\x58\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x6f\x66\x66\x58\x2c\x20\x61\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x30\x2c\x20\x61\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x64\x64\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x76\x65\x72\x73\x65\x64\x59\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x54\x65\x78\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x2d\x69\x6e\x76\x65\x72\x73\x65\x64\x22\x20\x7d\x29\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x79\x3a\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x6f\x66\x66\x58\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x46\x6f\x6e\x74\x53\x69\x7a\x65\x29\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x32\x30\x2c\x20\x74\x65\x78\x74\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x2d\x74\x65\x78\x74\x20\x22\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x64\x64\x28\x73\x32\x29\x2c\x20\x74\x33\x2e\x61\x64\x64\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x79\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x52\x6f\x74\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x2c\x20\x72\x32\x20\x3d\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x6f\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x69\x74\x6c\x65\x20\x74\x65\x78\x74\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x29\x2c\x20\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x50\x61\x64\x64\x69\x6e\x67\x46\x6f\x72\x59\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x28\x74\x33\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x22\x2c\x20\x6c\x32\x2e\x78\x50\x6f\x73\x20\x2d\x20\x28\x65\x32\x20\x3f\x20\x31\x30\x20\x3a\x20\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x61\x32\x2e\x72\x6f\x74\x61\x74\x65\x41\x72\x6f\x75\x6e\x64\x43\x65\x6e\x74\x65\x72\x28\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x20\x3f\x20\x2d\x31\x20\x2a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x72\x6f\x74\x61\x74\x65\x20\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x72\x6f\x74\x61\x74\x65\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x68\x33\x2e\x78\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x68\x33\x2e\x79\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x78\x50\x61\x64\x64\x69\x6e\x67\x46\x6f\x72\x59\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x31\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x7b\x20\x78\x50\x6f\x73\x3a\x20\x6f\x32\x2c\x20\x70\x61\x64\x64\x3a\x20\x30\x20\x7d\x20\x3a\x20\x28\x61\x32\x20\x3f\x20\x28\x6f\x32\x20\x3d\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x69\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2b\x20\x6e\x32\x20\x2f\x20\x32\x2c\x20\x28\x72\x32\x20\x2b\x3d\x20\x31\x29\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x20\x2d\x3d\x20\x6e\x32\x20\x2f\x20\x32\x29\x29\x20\x3a\x20\x28\x6f\x32\x20\x3d\x20\x2d\x31\x20\x2a\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x6e\x32\x20\x2f\x20\x32\x20\x2b\x20\x69\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x32\x35\x2c\x20\x6f\x32\x20\x3d\x20\x2d\x31\x20\x2a\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2d\x20\x6e\x32\x29\x29\x2c\x20\x7b\x20\x78\x50\x6f\x73\x3a\x20\x6f\x32\x2c\x20\x70\x61\x64\x64\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x59\x41\x78\x69\x73\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x31\x38\x2c\x20\x6f\x32\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x65\x59\x73\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6e\x32\x2c\x20\x6c\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x67\x6e\x6f\x72\x65\x59\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x6c\x32\x29\x20\x3e\x20\x2d\x31\x20\x7c\x7c\x20\x21\x6e\x32\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x6e\x32\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x7c\x7c\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x5b\x6c\x32\x5d\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x65\x32\x5b\x6c\x32\x5d\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x28\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x2d\x20\x31\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x41\x78\x69\x73\x58\x5b\x6c\x32\x5d\x20\x3d\x20\x73\x32\x20\x2d\x20\x6e\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x29\x20\x3a\x20\x28\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x2b\x20\x6f\x32\x2c\x20\x68\x33\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x6f\x32\x20\x2b\x20\x63\x32\x20\x2b\x20\x32\x30\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x41\x78\x69\x73\x58\x5b\x6c\x32\x5d\x20\x3d\x20\x73\x32\x20\x2d\x20\x6e\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x32\x30\x29\x20\x3a\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x2d\x20\x72\x32\x2c\x20\x68\x33\x20\x7c\x7c\x20\x28\x72\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x63\x32\x20\x2b\x20\x32\x30\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x41\x78\x69\x73\x58\x5b\x6c\x32\x5d\x20\x3d\x20\x61\x32\x20\x2b\x20\x6e\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x59\x41\x78\x69\x73\x54\x65\x78\x74\x41\x6c\x69\x67\x6e\x6d\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x65\x32\x20\x3d\x20\x78\x2e\x6c\x69\x73\x74\x54\x6f\x41\x72\x72\x61\x79\x28\x65\x32\x29\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x69\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x20\x26\x26\x20\x61\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x61\x6c\x69\x67\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x32\x2c\x20\x22\x27\x5d\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x74\x65\x78\x74\x73\x2d\x67\x22\x29\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x32\x2c\x20\x22\x27\x5d\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x2d\x6c\x61\x62\x65\x6c\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x78\x2e\x6c\x69\x73\x74\x54\x6f\x41\x72\x72\x61\x79\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x61\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x3f\x20\x28\x72\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x22\x2c\x20\x22\x73\x74\x61\x72\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x7c\x7c\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x22\x2c\x20\x30\x29\x22\x29\x29\x29\x20\x3a\x20\x61\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x61\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x63\x65\x6e\x74\x65\x72\x22\x20\x3f\x20\x28\x72\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x22\x2c\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2a\x20\x28\x61\x32\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x3f\x20\x31\x20\x3a\x20\x2d\x31\x29\x2c\x20\x22\x2c\x20\x30\x29\x22\x29\x29\x29\x20\x3a\x20\x61\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x61\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x72\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x22\x2c\x20\x22\x65\x6e\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x26\x26\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x22\x2c\x20\x30\x29\x22\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x4a\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x76\x65\x6e\x74\x20\x3d\x20\x78\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x76\x65\x6e\x74\x2c\x20\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x76\x65\x6e\x74\x73\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x33\x29\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x76\x65\x6e\x74\x73\x5b\x74\x33\x5d\x2e\x70\x75\x73\x68\x28\x65\x32\x29\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x76\x65\x6e\x74\x73\x5b\x74\x33\x5d\x20\x3d\x20\x5b\x65\x32\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x76\x65\x6e\x74\x73\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x33\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x76\x65\x6e\x74\x73\x5b\x74\x33\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x21\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x76\x65\x6e\x74\x73\x5b\x74\x33\x5d\x2e\x73\x70\x6c\x69\x63\x65\x28\x61\x32\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x76\x65\x6e\x74\x73\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x74\x33\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x26\x26\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7c\x7c\x20\x28\x65\x32\x20\x3d\x20\x5b\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x76\x65\x6e\x74\x73\x5b\x74\x33\x5d\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x73\x32\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x5b\x72\x32\x5d\x2e\x61\x70\x70\x6c\x79\x28\x6e\x75\x6c\x6c\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x75\x70\x45\x76\x65\x6e\x74\x48\x61\x6e\x64\x6c\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x68\x61\x72\x74\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x74\x34\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x65\x32\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x20\x7c\x7c\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x3f\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6d\x6f\x75\x73\x65\x4d\x6f\x76\x65\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6d\x6f\x75\x73\x65\x4d\x6f\x76\x65\x28\x74\x35\x2c\x20\x69\x32\x2c\x20\x61\x33\x29\x20\x3a\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x20\x7c\x7c\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6c\x65\x61\x76\x65\x22\x20\x3f\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x28\x74\x35\x2c\x20\x69\x32\x2c\x20\x61\x33\x29\x20\x3a\x20\x28\x74\x35\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x20\x26\x26\x20\x74\x35\x2e\x77\x68\x69\x63\x68\x20\x3d\x3d\x3d\x20\x31\x20\x7c\x7c\x20\x74\x35\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x29\x20\x26\x26\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x63\x6c\x69\x63\x6b\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x63\x6c\x69\x63\x6b\x28\x74\x35\x2c\x20\x69\x32\x2c\x20\x61\x33\x29\x2c\x20\x69\x32\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x5b\x74\x35\x2c\x20\x69\x32\x2c\x20\x61\x33\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x7b\x20\x63\x61\x70\x74\x75\x72\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x61\x73\x73\x69\x76\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x69\x33\x2c\x20\x74\x33\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x76\x65\x6e\x74\x2c\x20\x7b\x20\x70\x61\x73\x73\x69\x76\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x6f\x72\x65\x2e\x73\x65\x74\x75\x70\x42\x72\x75\x73\x68\x48\x61\x6e\x64\x6c\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x76\x65\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x6c\x69\x63\x6b\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x26\x26\x20\x61\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x6f\x70\x65\x6e\x22\x29\x20\x26\x26\x20\x69\x32\x20\x21\x3d\x3d\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x63\x6f\x6e\x22\x20\x26\x26\x20\x61\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x6f\x70\x65\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3d\x20\x74\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x3f\x20\x74\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3a\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3d\x20\x74\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x3f\x20\x74\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3a\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x59\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x51\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x4c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x6c\x6f\x63\x61\x6c\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x63\x68\x61\x72\x74\x20\x26\x26\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x63\x68\x61\x72\x74\x2e\x6c\x6f\x63\x61\x6c\x65\x73\x20\x26\x26\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x63\x68\x61\x72\x74\x2e\x6c\x6f\x63\x61\x6c\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x6c\x6f\x63\x61\x6c\x65\x73\x2e\x63\x6f\x6e\x63\x61\x74\x28\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x2e\x63\x68\x61\x72\x74\x2e\x6c\x6f\x63\x61\x6c\x65\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x6e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x57\x72\x6f\x6e\x67\x20\x6c\x6f\x63\x61\x6c\x65\x20\x6e\x61\x6d\x65\x20\x70\x72\x6f\x76\x69\x64\x65\x64\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x6d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x79\x6f\x75\x20\x73\x65\x74\x20\x74\x68\x65\x20\x63\x6f\x72\x72\x65\x63\x74\x20\x6c\x6f\x63\x61\x6c\x65\x20\x6e\x61\x6d\x65\x20\x69\x6e\x20\x6f\x70\x74\x69\x6f\x6e\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x43\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x20\x3d\x20\x61\x32\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x4b\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x41\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x5f\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x24\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x74\x33\x20\x21\x3d\x3d\x20\x22\x72\x61\x64\x61\x72\x22\x20\x26\x26\x20\x28\x73\x32\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x28\x61\x32\x20\x3d\x20\x6e\x32\x2e\x64\x72\x61\x77\x59\x61\x78\x69\x73\x49\x6e\x76\x65\x72\x73\x65\x64\x28\x30\x29\x2c\x20\x69\x32\x20\x3d\x20\x6f\x32\x2e\x64\x72\x61\x77\x58\x61\x78\x69\x73\x49\x6e\x76\x65\x72\x73\x65\x64\x28\x30\x29\x2c\x20\x73\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x69\x32\x29\x2c\x20\x73\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x61\x32\x29\x29\x20\x3a\x20\x28\x69\x32\x20\x3d\x20\x6f\x32\x2e\x64\x72\x61\x77\x58\x61\x78\x69\x73\x28\x29\x2c\x20\x73\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x69\x32\x29\x2c\x20\x72\x32\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x69\x67\x6e\x6f\x72\x65\x59\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x33\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x6e\x32\x2e\x64\x72\x61\x77\x59\x61\x78\x69\x73\x28\x65\x33\x29\x2c\x20\x73\x32\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x61\x64\x64\x28\x61\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x74\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x66\x69\x6c\x6c\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x66\x69\x6c\x6c\x2e\x74\x79\x70\x65\x2c\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6c\x6f\x72\x46\x72\x6f\x6d\x2c\x20\x6e\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6c\x6f\x72\x54\x6f\x2c\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x6f\x70\x61\x63\x69\x74\x79\x46\x72\x6f\x6d\x2c\x20\x68\x33\x20\x3d\x20\x61\x32\x2e\x6f\x70\x61\x63\x69\x74\x79\x54\x6f\x2c\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x73\x74\x6f\x70\x73\x2c\x20\x64\x32\x20\x3d\x20\x73\x32\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x67\x32\x20\x3d\x20\x73\x32\x2e\x6c\x65\x66\x74\x2c\x20\x75\x32\x20\x3d\x20\x73\x32\x2e\x74\x6f\x70\x2c\x20\x70\x33\x20\x3d\x20\x73\x32\x2e\x62\x6c\x75\x72\x2c\x20\x66\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x62\x32\x20\x3d\x20\x73\x32\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x79\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x3d\x3d\x20\x22\x67\x72\x61\x64\x69\x65\x6e\x74\x22\x20\x26\x26\x20\x28\x79\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x47\x72\x61\x64\x69\x65\x6e\x74\x28\x22\x76\x65\x72\x74\x69\x63\x61\x6c\x22\x2c\x20\x6f\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x32\x2c\x20\x6e\x75\x6c\x6c\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x77\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x21\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x6b\x32\x29\x20\x7c\x7c\x20\x6b\x32\x20\x3c\x20\x30\x29\x20\x26\x26\x20\x28\x6b\x32\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x21\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x41\x32\x29\x20\x7c\x7c\x20\x41\x32\x20\x3c\x20\x30\x29\x20\x26\x26\x20\x28\x41\x32\x20\x3d\x20\x30\x29\x2c\x20\x77\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x2c\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x79\x32\x3a\x20\x6b\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x41\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x6b\x32\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x79\x32\x2c\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x20\x7d\x29\x2c\x20\x64\x32\x20\x26\x26\x20\x28\x77\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x77\x32\x2c\x20\x7b\x20\x6c\x65\x66\x74\x3a\x20\x67\x32\x2c\x20\x74\x6f\x70\x3a\x20\x75\x32\x2c\x20\x62\x6c\x75\x72\x3a\x20\x70\x33\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x66\x32\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x62\x32\x20\x7d\x29\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x77\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x59\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x2d\x61\x32\x2c\x20\x30\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x61\x32\x2c\x20\x30\x2c\x20\x69\x32\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x69\x32\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x69\x32\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x20\x7d\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x2d\x61\x32\x2c\x20\x30\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x61\x32\x2c\x20\x30\x2c\x20\x69\x32\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x30\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2d\x68\x69\x64\x64\x65\x6e\x22\x20\x7d\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x65\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x52\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x6f\x72\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x62\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x20\x3e\x20\x65\x33\x2e\x62\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x20\x3f\x20\x31\x20\x3a\x20\x65\x33\x2e\x62\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x20\x3e\x20\x74\x34\x2e\x62\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x20\x3f\x20\x2d\x31\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x4e\x28\x7b\x7d\x29\x2c\x20\x6f\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x34\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x7b\x7d\x2c\x20\x61\x33\x20\x3d\x20\x73\x32\x5b\x30\x5d\x2e\x62\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x2c\x20\x6f\x33\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x69\x6e\x6e\x65\x72\x57\x69\x64\x74\x68\x20\x3e\x20\x30\x20\x3f\x20\x77\x69\x6e\x64\x6f\x77\x2e\x69\x6e\x6e\x65\x72\x57\x69\x64\x74\x68\x20\x3a\x20\x73\x63\x72\x65\x65\x6e\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x33\x20\x3e\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x33\x20\x3d\x20\x79\x2e\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x50\x72\x6f\x70\x73\x28\x72\x32\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x6e\x33\x2c\x20\x74\x34\x29\x2c\x20\x74\x34\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x74\x34\x29\x2c\x20\x65\x32\x2e\x6f\x76\x65\x72\x72\x69\x64\x65\x52\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x33\x20\x3c\x20\x73\x32\x5b\x6c\x32\x5d\x2e\x62\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x20\x26\x26\x20\x28\x74\x34\x20\x3d\x20\x79\x2e\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x50\x72\x6f\x70\x73\x28\x72\x32\x2c\x20\x73\x32\x5b\x6c\x32\x5d\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x69\x32\x29\x2c\x20\x74\x34\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x74\x34\x29\x2c\x20\x65\x32\x2e\x6f\x76\x65\x72\x72\x69\x64\x65\x52\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x34\x29\x29\x3b\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\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x79\x2e\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x50\x72\x6f\x70\x73\x28\x72\x32\x2c\x20\x74\x33\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x6e\x32\x29\x2c\x20\x6f\x32\x28\x6e\x32\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x6e\x32\x2c\x20\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x28\x7b\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6f\x76\x65\x72\x72\x69\x64\x65\x52\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x4f\x70\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x4e\x28\x74\x33\x29\x2e\x69\x6e\x69\x74\x28\x7b\x20\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x4f\x76\x65\x72\x72\x69\x64\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x69\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x46\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x65\x61\x74\x6d\x61\x70\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x74\x72\x65\x65\x6d\x61\x70\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x65\x61\x74\x6d\x61\x70\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x26\x26\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x43\x6f\x6c\x6f\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x43\x6f\x6c\x6f\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x64\x65\x29\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x64\x65\x66\x69\x6e\x65\x64\x28\x29\x20\x3a\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x61\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x33\x20\x7c\x7c\x20\x28\x73\x33\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x30\x5d\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x33\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x28\x74\x33\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x46\x6e\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x73\x33\x28\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x33\x5d\x5b\x30\x5d\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x33\x5d\x5b\x30\x5d\x20\x3a\x20\x30\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x33\x5d\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x61\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x61\x33\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x29\x20\x3a\x20\x73\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x69\x33\x5d\x20\x3d\x20\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x6e\x6f\x63\x68\x72\x6f\x6d\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x65\x61\x74\x6d\x61\x70\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x29\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x30\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x6e\x6f\x63\x68\x72\x6f\x6d\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x6f\x32\x20\x3d\x20\x31\x20\x2f\x20\x28\x73\x32\x20\x2f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x6e\x6f\x63\x68\x72\x6f\x6d\x65\x2e\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x29\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x6e\x6f\x63\x68\x72\x6f\x6d\x65\x2e\x73\x68\x61\x64\x65\x54\x6f\x2c\x20\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x30\x3b\x20\x68\x33\x20\x3c\x20\x73\x32\x3b\x20\x68\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x64\x61\x72\x6b\x22\x20\x3f\x20\x28\x63\x32\x20\x3d\x20\x69\x32\x2e\x73\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x28\x2d\x31\x20\x2a\x20\x6c\x32\x2c\x20\x72\x32\x29\x2c\x20\x6c\x32\x20\x2b\x3d\x20\x6f\x32\x29\x20\x3a\x20\x28\x63\x32\x20\x3d\x20\x69\x32\x2e\x73\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x28\x6c\x32\x2c\x20\x72\x32\x29\x2c\x20\x6c\x32\x20\x2b\x3d\x20\x6f\x32\x29\x2c\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x61\x32\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x45\x78\x74\x72\x61\x43\x6f\x6c\x6f\x72\x73\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x5b\x22\x66\x69\x6c\x6c\x22\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x5b\x69\x33\x5d\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x5b\x69\x33\x5d\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x74\x33\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x46\x6e\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3a\x20\x64\x32\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x5b\x69\x33\x5d\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x5b\x69\x33\x5d\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x74\x33\x2e\x70\x75\x73\x68\x45\x78\x74\x72\x61\x43\x6f\x6c\x6f\x72\x73\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x5b\x69\x33\x5d\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x64\x32\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x45\x78\x74\x72\x61\x43\x6f\x6c\x6f\x72\x73\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x35\x30\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x61\x72\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x61\x72\x50\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x72\x6b\x22\x20\x3f\x20\x22\x23\x34\x32\x34\x32\x34\x32\x22\x20\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x5d\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x61\x72\x50\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x61\x72\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x45\x78\x74\x72\x61\x43\x6f\x6c\x6f\x72\x73\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x61\x72\x50\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x32\x30\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x64\x32\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x45\x78\x74\x72\x61\x43\x6f\x6c\x6f\x72\x73\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x75\x73\x68\x45\x78\x74\x72\x61\x43\x6f\x6c\x6f\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x20\x7c\x7c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x65\x61\x74\x6d\x61\x70\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x7c\x7c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x65\x61\x74\x6d\x61\x70\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x69\x6e\x76\x65\x72\x73\x65\x29\x2c\x20\x69\x32\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x73\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x73\x32\x20\x2d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x72\x32\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x6f\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x75\x70\x64\x61\x74\x65\x54\x68\x65\x6d\x65\x4f\x70\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x20\x3d\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x20\x7c\x7c\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x64\x65\x20\x7c\x7c\x20\x22\x6c\x69\x67\x68\x74\x22\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x74\x68\x65\x6d\x65\x2e\x70\x61\x6c\x65\x74\x74\x65\x20\x3f\x20\x74\x33\x2e\x74\x68\x65\x6d\x65\x2e\x70\x61\x6c\x65\x74\x74\x65\x20\x3a\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x64\x61\x72\x6b\x22\x20\x3f\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x34\x22\x20\x3a\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x31\x22\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x20\x3f\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x20\x3a\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x64\x61\x72\x6b\x22\x20\x3f\x20\x22\x23\x66\x36\x66\x37\x66\x38\x22\x20\x3a\x20\x22\x23\x33\x37\x33\x64\x33\x66\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x74\x68\x65\x6d\x65\x20\x3d\x20\x65\x32\x2c\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x61\x32\x2c\x20\x74\x33\x2e\x74\x68\x65\x6d\x65\x2e\x70\x61\x6c\x65\x74\x74\x65\x20\x3d\x20\x69\x32\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x72\x65\x64\x65\x66\x69\x6e\x65\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x2e\x70\x61\x6c\x65\x74\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x31\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x30\x30\x38\x46\x46\x42\x22\x2c\x20\x22\x23\x30\x30\x45\x33\x39\x36\x22\x2c\x20\x22\x23\x46\x45\x42\x30\x31\x39\x22\x2c\x20\x22\x23\x46\x46\x34\x35\x36\x30\x22\x2c\x20\x22\x23\x37\x37\x35\x44\x44\x30\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x32\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x33\x66\x35\x31\x62\x35\x22\x2c\x20\x22\x23\x30\x33\x61\x39\x66\x34\x22\x2c\x20\x22\x23\x34\x63\x61\x66\x35\x30\x22\x2c\x20\x22\x23\x66\x39\x63\x65\x31\x64\x22\x2c\x20\x22\x23\x46\x46\x39\x38\x30\x30\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x33\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x33\x33\x62\x32\x64\x66\x22\x2c\x20\x22\x23\x35\x34\x36\x45\x37\x41\x22\x2c\x20\x22\x23\x64\x34\x35\x32\x36\x65\x22\x2c\x20\x22\x23\x31\x33\x64\x38\x61\x61\x22\x2c\x20\x22\x23\x41\x35\x39\x37\x38\x42\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x34\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x34\x65\x63\x64\x63\x34\x22\x2c\x20\x22\x23\x63\x37\x66\x34\x36\x34\x22\x2c\x20\x22\x23\x38\x31\x44\x34\x46\x41\x22\x2c\x20\x22\x23\x66\x64\x36\x61\x36\x61\x22\x2c\x20\x22\x23\x35\x34\x36\x45\x37\x41\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x35\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x32\x62\x39\x30\x38\x66\x22\x2c\x20\x22\x23\x66\x39\x61\x33\x61\x34\x22\x2c\x20\x22\x23\x39\x30\x65\x65\x37\x65\x22\x2c\x20\x22\x23\x66\x61\x34\x34\x34\x33\x22\x2c\x20\x22\x23\x36\x39\x64\x32\x65\x37\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x36\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x34\x34\x39\x44\x44\x31\x22\x2c\x20\x22\x23\x46\x38\x36\x36\x32\x34\x22\x2c\x20\x22\x23\x45\x41\x33\x35\x34\x36\x22\x2c\x20\x22\x23\x36\x36\x32\x45\x39\x42\x22\x2c\x20\x22\x23\x43\x35\x44\x38\x36\x44\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x37\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x44\x37\x32\x36\x33\x44\x22\x2c\x20\x22\x23\x31\x42\x39\x39\x38\x42\x22\x2c\x20\x22\x23\x32\x45\x32\x39\x34\x45\x22\x2c\x20\x22\x23\x46\x34\x36\x30\x33\x36\x22\x2c\x20\x22\x23\x45\x32\x43\x30\x34\x34\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x38\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x36\x36\x32\x45\x39\x42\x22\x2c\x20\x22\x23\x46\x38\x36\x36\x32\x34\x22\x2c\x20\x22\x23\x46\x39\x43\x38\x30\x45\x22\x2c\x20\x22\x23\x45\x41\x33\x35\x34\x36\x22\x2c\x20\x22\x23\x34\x33\x42\x43\x43\x44\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x39\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x35\x43\x34\x37\x34\x32\x22\x2c\x20\x22\x23\x41\x35\x39\x37\x38\x42\x22\x2c\x20\x22\x23\x38\x44\x35\x42\x34\x43\x22\x2c\x20\x22\x23\x35\x41\x32\x41\x32\x37\x22\x2c\x20\x22\x23\x43\x34\x42\x42\x41\x46\x22\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x61\x6c\x65\x74\x74\x65\x31\x30\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x41\x33\x30\x30\x44\x36\x22\x2c\x20\x22\x23\x37\x44\x30\x32\x45\x42\x22\x2c\x20\x22\x23\x35\x36\x35\x33\x46\x45\x22\x2c\x20\x22\x23\x32\x39\x38\x33\x46\x46\x22\x2c\x20\x22\x23\x30\x30\x42\x31\x46\x32\x22\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3d\x20\x5b\x22\x23\x30\x30\x38\x46\x46\x42\x22\x2c\x20\x22\x23\x30\x30\x45\x33\x39\x36\x22\x2c\x20\x22\x23\x46\x45\x42\x30\x31\x39\x22\x2c\x20\x22\x23\x46\x46\x34\x35\x36\x30\x22\x2c\x20\x22\x23\x37\x37\x35\x44\x44\x30\x22\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x61\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x28\x22\x74\x69\x74\x6c\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x28\x22\x73\x75\x62\x74\x69\x74\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x74\x69\x74\x6c\x65\x22\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x69\x74\x6c\x65\x20\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x75\x62\x74\x69\x74\x6c\x65\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x72\x32\x20\x3d\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x61\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x3f\x20\x28\x61\x32\x20\x3d\x20\x31\x30\x2c\x20\x72\x32\x20\x3d\x20\x22\x73\x74\x61\x72\x74\x22\x29\x20\x3a\x20\x69\x32\x2e\x61\x6c\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x31\x30\x2c\x20\x72\x32\x20\x3d\x20\x22\x65\x6e\x64\x22\x29\x2c\x20\x61\x32\x20\x2b\x3d\x20\x69\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x73\x32\x20\x3d\x20\x73\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x20\x2b\x20\x69\x32\x2e\x6d\x61\x72\x67\x69\x6e\x20\x2f\x20\x32\x2c\x20\x69\x32\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x61\x32\x2c\x20\x79\x3a\x20\x73\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x69\x32\x2e\x74\x65\x78\x74\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x72\x32\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x69\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x69\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x69\x32\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x2d\x74\x65\x78\x74\x22\x29\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x61\x64\x64\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x73\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x74\x69\x74\x6c\x65\x22\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x69\x74\x6c\x65\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x75\x62\x74\x69\x74\x6c\x65\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x2d\x74\x65\x78\x74\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x21\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x72\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x6f\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x6f\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x35\x20\x3a\x20\x6f\x32\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x69\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x61\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x73\x52\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x68\x65\x69\x67\x68\x74\x20\x7c\x7c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x7c\x7c\x20\x28\x65\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6d\x61\x78\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2b\x20\x22\x70\x78\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x78\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x65\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x21\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x20\x3f\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x6c\x67\x52\x65\x63\x74\x20\x3d\x20\x7b\x20\x78\x3a\x20\x69\x32\x2e\x78\x2c\x20\x79\x3a\x20\x69\x32\x2e\x79\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x69\x32\x2e\x77\x69\x64\x74\x68\x20\x7d\x20\x3a\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x6c\x67\x52\x65\x63\x74\x20\x3d\x20\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x20\x7d\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x7c\x7c\x20\x31\x2e\x35\x20\x2a\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x3e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x2e\x35\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x6c\x67\x52\x65\x63\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x74\x72\x69\x6e\x67\x46\x72\x6f\x6d\x4d\x75\x6c\x74\x69\x41\x72\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x4d\x75\x6c\x74\x69\x4c\x69\x6e\x65\x58\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x34\x29\x20\x3f\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x73\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x2e\x61\x70\x70\x6c\x79\x28\x4d\x61\x74\x68\x2c\x20\x75\x28\x61\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x65\x32\x5b\x61\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x73\x32\x29\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x72\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x4c\x61\x62\x65\x6c\x73\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x78\x41\x78\x69\x73\x54\x69\x6d\x65\x53\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x61\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x61\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x6c\x67\x57\x69\x64\x74\x68\x46\x6f\x72\x53\x69\x64\x65\x4c\x65\x67\x65\x6e\x64\x73\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x72\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x74\x72\x69\x6e\x67\x46\x72\x6f\x6d\x41\x72\x72\x28\x69\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x74\x72\x69\x6e\x67\x46\x72\x6f\x6d\x4d\x75\x6c\x74\x69\x41\x72\x72\x28\x72\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x34\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x56\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x6c\x32\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x6e\x32\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x28\x73\x32\x2c\x20\x72\x32\x2c\x20\x6c\x32\x2c\x20\x7b\x20\x69\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x74\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x32\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x28\x73\x32\x2c\x20\x6f\x32\x2c\x20\x6c\x32\x2c\x20\x7b\x20\x69\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x74\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x72\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x53\x74\x72\x69\x6e\x67\x28\x72\x32\x29\x2e\x74\x72\x69\x6d\x28\x29\x20\x3d\x3d\x3d\x20\x22\x22\x29\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x72\x32\x20\x3d\x20\x22\x31\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x63\x32\x20\x3d\x20\x68\x33\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x72\x32\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x2c\x20\x64\x32\x20\x3d\x20\x63\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x20\x21\x3d\x3d\x20\x6f\x32\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x68\x33\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x6f\x32\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x29\x2c\x20\x28\x74\x33\x20\x3d\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x63\x32\x2e\x77\x69\x64\x74\x68\x20\x3e\x3d\x20\x64\x32\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x63\x32\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x64\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x63\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3e\x3d\x20\x64\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3f\x20\x63\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3a\x20\x64\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x29\x2e\x77\x69\x64\x74\x68\x20\x2a\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x6c\x67\x57\x69\x64\x74\x68\x46\x6f\x72\x53\x69\x64\x65\x4c\x65\x67\x65\x6e\x64\x73\x20\x2d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x2d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x6c\x65\x66\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x72\x69\x67\x68\x74\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x20\x21\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x41\x6c\x77\x61\x79\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x33\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x74\x34\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x2c\x20\x22\x20\x30\x20\x30\x29\x22\x29\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x67\x32\x28\x72\x32\x29\x2c\x20\x72\x32\x20\x21\x3d\x3d\x20\x6f\x32\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x67\x32\x28\x6f\x32\x29\x29\x2c\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x28\x63\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3e\x20\x64\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3f\x20\x63\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3a\x20\x64\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x20\x2f\x20\x31\x2e\x35\x2c\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x63\x32\x2e\x77\x69\x64\x74\x68\x20\x3e\x20\x64\x32\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x63\x32\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x64\x32\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x28\x74\x33\x20\x3d\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x29\x2c\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x78\x41\x78\x69\x73\x47\x72\x6f\x75\x70\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x68\x61\x73\x47\x72\x6f\x75\x70\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x28\x28\x74\x33\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x67\x72\x6f\x75\x70\x2e\x73\x74\x79\x6c\x65\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x74\x33\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x6f\x75\x70\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x74\x69\x74\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x72\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x74\x72\x69\x6e\x67\x46\x72\x6f\x6d\x41\x72\x72\x28\x73\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x74\x72\x69\x6e\x67\x46\x72\x6f\x6d\x4d\x75\x6c\x74\x69\x41\x72\x72\x28\x72\x32\x2c\x20\x73\x32\x29\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x72\x32\x2c\x20\x61\x32\x29\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x20\x21\x3d\x3d\x20\x6f\x32\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x6f\x32\x2c\x20\x61\x32\x29\x29\x2c\x20\x69\x32\x20\x3d\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x3e\x3d\x20\x68\x33\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x68\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x6c\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3e\x3d\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x3f\x20\x6c\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3a\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x28\x69\x32\x20\x3d\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x29\x2c\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x69\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x78\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x61\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x69\x32\x20\x3d\x20\x61\x32\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x65\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x78\x41\x78\x69\x73\x54\x69\x6d\x65\x53\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x28\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x65\x72\x72\x6f\x72\x28\x22\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x70\x6f\x73\x73\x69\x62\x6c\x79\x20\x73\x75\x70\x70\x6c\x69\x65\x64\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x44\x61\x74\x65\x20\x66\x6f\x72\x6d\x61\x74\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x73\x75\x70\x70\x6c\x79\x20\x61\x20\x76\x61\x6c\x69\x64\x20\x4a\x61\x76\x61\x53\x63\x72\x69\x70\x74\x20\x44\x61\x74\x65\x22\x29\x2c\x20\x30\x29\x20\x3a\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x34\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x2e\x30\x35\x20\x2a\x20\x28\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x61\x32\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x29\x2e\x77\x69\x64\x74\x68\x20\x2a\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x20\x21\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6f\x76\x65\x72\x6c\x61\x70\x70\x69\x6e\x67\x58\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x61\x64\x64\x69\x6e\x67\x58\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x73\x6b\x69\x70\x4c\x61\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x32\x2e\x73\x6b\x69\x70\x46\x69\x72\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x6c\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x6e\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x35\x29\x20\x21\x3d\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x28\x6e\x33\x29\x20\x7c\x7c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x64\x43\x74\x78\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x34\x20\x3d\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x5b\x30\x5d\x2c\x20\x6c\x33\x20\x3d\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x5b\x65\x32\x2e\x64\x43\x74\x78\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2b\x20\x6f\x32\x20\x2f\x20\x31\x2e\x37\x35\x20\x2d\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x52\x69\x67\x68\x74\x2c\x20\x68\x33\x20\x3d\x20\x6e\x34\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2d\x20\x6f\x32\x20\x2f\x20\x31\x2e\x37\x35\x20\x2b\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x4c\x65\x66\x74\x2c\x20\x63\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x3e\x20\x30\x20\x3f\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x33\x20\x3e\x20\x61\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x61\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x2d\x20\x63\x32\x20\x26\x26\x20\x28\x61\x32\x2e\x73\x6b\x69\x70\x4c\x61\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x68\x33\x20\x3c\x20\x2d\x28\x74\x35\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x21\x74\x35\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x7c\x7c\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x26\x26\x20\x73\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x3f\x20\x31\x30\x20\x3a\x20\x6f\x32\x20\x2f\x20\x31\x2e\x37\x35\x29\x20\x26\x26\x20\x28\x61\x32\x2e\x73\x6b\x69\x70\x46\x69\x72\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x3f\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x72\x69\x67\x68\x74\x20\x3c\x20\x6f\x32\x20\x26\x26\x20\x21\x61\x32\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x28\x61\x32\x2e\x73\x6b\x69\x70\x4c\x61\x73\x74\x54\x69\x6d\x65\x6c\x69\x6e\x65\x6c\x61\x62\x65\x6c\x20\x3d\x20\x74\x72\x75\x65\x29\x20\x3a\x20\x72\x32\x20\x21\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x72\x69\x67\x68\x74\x20\x3c\x20\x6f\x32\x20\x2f\x20\x32\x20\x2d\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x52\x69\x67\x68\x74\x20\x26\x26\x20\x21\x61\x32\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x21\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x74\x72\x69\x6d\x20\x26\x26\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x21\x3d\x3d\x20\x22\x62\x65\x74\x77\x65\x65\x6e\x22\x20\x7c\x7c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x26\x26\x20\x28\x65\x32\x2e\x64\x43\x74\x78\x2e\x78\x50\x61\x64\x52\x69\x67\x68\x74\x20\x3d\x20\x6f\x32\x20\x2f\x20\x32\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3f\x20\x28\x65\x32\x2e\x64\x43\x74\x78\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x6c\x65\x66\x74\x20\x3c\x20\x6f\x32\x20\x26\x26\x20\x28\x65\x32\x2e\x64\x43\x74\x78\x2e\x78\x50\x61\x64\x4c\x65\x66\x74\x20\x3d\x20\x6f\x32\x20\x2f\x20\x32\x20\x2b\x20\x31\x29\x2c\x20\x65\x32\x2e\x64\x43\x74\x78\x2e\x78\x50\x61\x64\x52\x69\x67\x68\x74\x20\x3d\x20\x6f\x32\x20\x2f\x20\x32\x20\x2b\x20\x31\x29\x20\x3a\x20\x6c\x32\x28\x74\x34\x2c\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x6f\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x79\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x20\x3d\x20\x31\x30\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x47\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x32\x2c\x20\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x6f\x32\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x32\x2e\x69\x73\x59\x41\x78\x69\x73\x48\x69\x64\x64\x65\x6e\x28\x6f\x32\x29\x20\x26\x26\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x69\x6e\x57\x69\x64\x74\x68\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x69\x6e\x57\x69\x64\x74\x68\x29\x2c\x20\x21\x73\x32\x2e\x69\x73\x59\x41\x78\x69\x73\x48\x69\x64\x64\x65\x6e\x28\x6f\x32\x29\x20\x26\x26\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x6e\x32\x2e\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x6f\x32\x5d\x2c\x20\x63\x32\x20\x3d\x20\x6e\x32\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x49\x4e\x5f\x56\x41\x4c\x55\x45\x20\x3f\x20\x30\x20\x3a\x20\x6e\x32\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x2c\x20\x64\x32\x20\x3d\x20\x53\x74\x72\x69\x6e\x67\x28\x63\x32\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x53\x74\x72\x69\x6e\x67\x28\x6e\x32\x2e\x6e\x69\x63\x65\x4d\x61\x78\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x63\x32\x20\x3a\x20\x6e\x32\x2e\x6e\x69\x63\x65\x4d\x61\x78\x2c\x20\x67\x32\x20\x3d\x20\x68\x33\x28\x64\x32\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x6f\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x2d\x31\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x75\x32\x20\x3d\x20\x67\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x67\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x67\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x28\x67\x32\x20\x3d\x20\x64\x32\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x3d\x20\x68\x33\x28\x67\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x74\x72\x69\x6e\x67\x46\x72\x6f\x6d\x41\x72\x72\x28\x70\x33\x29\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x6f\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x2d\x31\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x64\x43\x74\x78\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x53\x74\x72\x69\x6e\x67\x46\x72\x6f\x6d\x4d\x75\x6c\x74\x69\x41\x72\x72\x28\x67\x32\x2c\x20\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x33\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x62\x32\x20\x3d\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x2c\x20\x22\x20\x30\x20\x30\x29\x22\x29\x2c\x20\x76\x32\x20\x3d\x20\x66\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x67\x32\x2c\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x62\x32\x2c\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x79\x32\x20\x3d\x20\x76\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x21\x3d\x3d\x20\x75\x32\x20\x26\x26\x20\x28\x79\x32\x20\x3d\x20\x66\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x75\x32\x2c\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x62\x32\x2c\x20\x66\x61\x6c\x73\x65\x29\x29\x2c\x20\x69\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x28\x6c\x32\x20\x3e\x20\x79\x32\x2e\x77\x69\x64\x74\x68\x20\x7c\x7c\x20\x6c\x32\x20\x3e\x20\x76\x32\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x6c\x32\x20\x3a\x20\x79\x32\x2e\x77\x69\x64\x74\x68\x20\x3e\x20\x76\x32\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x79\x32\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x76\x32\x2e\x77\x69\x64\x74\x68\x29\x20\x2b\x20\x61\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x79\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3e\x20\x76\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3f\x20\x79\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3a\x20\x76\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x79\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x65\x33\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x33\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x33\x2e\x74\x69\x74\x6c\x65\x2e\x72\x6f\x74\x61\x74\x65\x2c\x20\x22\x20\x30\x20\x30\x29\x22\x29\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x65\x33\x2e\x74\x69\x74\x6c\x65\x2e\x74\x65\x78\x74\x2c\x20\x65\x33\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x65\x33\x2e\x74\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x72\x32\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x6f\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x6f\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x54\x6f\x74\x61\x6c\x59\x41\x78\x69\x73\x57\x69\x64\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x30\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x3f\x20\x31\x30\x20\x3a\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x47\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x33\x2c\x20\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x6e\x32\x5d\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x2c\x20\x68\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x33\x2e\x77\x69\x64\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x21\x6c\x32\x20\x3f\x20\x28\x68\x33\x20\x3d\x20\x6f\x33\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x73\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x67\x6e\x6f\x72\x65\x59\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x33\x29\x20\x3e\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x6e\x32\x29\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x68\x33\x20\x2d\x20\x6f\x33\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x73\x32\x29\x29\x20\x3a\x20\x68\x33\x20\x3d\x20\x6c\x32\x20\x7c\x7c\x20\x72\x32\x2e\x69\x73\x59\x41\x78\x69\x73\x48\x69\x64\x64\x65\x6e\x28\x6e\x32\x29\x20\x3f\x20\x30\x20\x3a\x20\x35\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x6e\x32\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x3f\x20\x61\x32\x20\x2b\x3d\x20\x68\x33\x20\x3a\x20\x69\x32\x20\x2b\x3d\x20\x68\x33\x2c\x20\x65\x32\x20\x2b\x3d\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x28\x74\x34\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x28\x74\x34\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x21\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x5b\x30\x5d\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x5b\x30\x5d\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x31\x35\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x4c\x65\x66\x74\x20\x3d\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x52\x69\x67\x68\x74\x20\x3d\x20\x61\x32\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x6e\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x72\x69\x64\x50\x61\x64\x46\x6f\x72\x43\x6f\x6c\x75\x6d\x6e\x73\x49\x6e\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6e\x6f\x44\x61\x74\x61\x20\x7c\x7c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x7c\x7c\x20\x74\x34\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x7c\x7c\x20\x74\x34\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x7c\x7c\x20\x74\x34\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x73\x32\x20\x3d\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x28\x61\x32\x29\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x42\x61\x72\x43\x6f\x75\x6e\x74\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x42\x61\x72\x43\x6f\x75\x6e\x74\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x74\x34\x2e\x74\x79\x70\x65\x29\x20\x26\x26\x20\x28\x72\x32\x20\x2d\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x31\x29\x2c\x20\x28\x69\x32\x28\x61\x32\x29\x20\x7c\x7c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x42\x61\x72\x43\x6f\x75\x6e\x74\x20\x3e\x20\x30\x29\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x21\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x72\x32\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x61\x78\x58\x20\x2d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x69\x6e\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x20\x3c\x3d\x20\x33\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x29\x2c\x20\x6f\x32\x20\x3d\x20\x6c\x32\x20\x2f\x20\x74\x33\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x2f\x20\x6f\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x2f\x20\x6f\x32\x29\x2c\x20\x6e\x32\x20\x3e\x20\x74\x33\x20\x2f\x20\x32\x20\x26\x26\x20\x28\x6e\x32\x20\x2f\x3d\x20\x32\x29\x2c\x20\x28\x73\x32\x20\x3d\x20\x6e\x32\x20\x2f\x20\x72\x32\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x63\x6f\x6c\x75\x6d\x6e\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x29\x20\x3c\x20\x31\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x31\x29\x2c\x20\x73\x32\x20\x3d\x20\x73\x32\x20\x2f\x20\x28\x72\x32\x20\x3e\x20\x31\x20\x3f\x20\x31\x20\x3a\x20\x31\x2e\x35\x29\x20\x2b\x20\x35\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x20\x3d\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x72\x69\x64\x50\x61\x64\x46\x6f\x72\x74\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x7c\x7c\x20\x21\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x30\x20\x3a\x20\x31\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x5b\x22\x74\x69\x74\x6c\x65\x22\x2c\x20\x22\x73\x75\x62\x74\x69\x74\x6c\x65\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x5b\x69\x33\x5d\x2e\x74\x65\x78\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x32\x20\x2b\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x5b\x69\x33\x5d\x2e\x6d\x61\x72\x67\x69\x6e\x20\x3a\x20\x61\x32\x20\x2b\x3d\x20\x74\x33\x2e\x64\x43\x74\x78\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x7c\x7c\x20\x21\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x30\x20\x3a\x20\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x21\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x7c\x7c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x28\x61\x32\x20\x2b\x3d\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x28\x22\x74\x69\x74\x6c\x65\x22\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x28\x22\x73\x75\x62\x74\x69\x74\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x73\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x72\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x61\x32\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2b\x20\x73\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x72\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x47\x72\x69\x64\x58\x50\x6f\x73\x46\x6f\x72\x44\x75\x61\x6c\x59\x41\x78\x69\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x47\x28\x74\x68\x69\x73\x2e\x64\x43\x74\x78\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x32\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x67\x6e\x6f\x72\x65\x59\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x72\x32\x29\x20\x21\x3d\x3d\x20\x2d\x31\x20\x7c\x7c\x20\x73\x32\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x7c\x7c\x20\x61\x32\x2e\x69\x73\x59\x41\x78\x69\x73\x48\x69\x64\x64\x65\x6e\x28\x72\x32\x29\x20\x7c\x7c\x20\x28\x73\x32\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x26\x26\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x2d\x20\x28\x65\x32\x5b\x72\x32\x5d\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x74\x33\x5b\x72\x32\x5d\x2e\x77\x69\x64\x74\x68\x29\x20\x2d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x72\x32\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x2e\x32\x20\x2d\x20\x31\x32\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3c\x20\x32\x20\x26\x26\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x6c\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x20\x3d\x20\x7b\x7d\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x4c\x65\x66\x74\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x52\x69\x67\x68\x74\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x73\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x59\x41\x78\x69\x73\x20\x3d\x20\x6e\x65\x77\x20\x6f\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x58\x41\x78\x69\x73\x20\x3d\x20\x6e\x65\x77\x20\x72\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x47\x72\x69\x64\x20\x3d\x20\x6e\x65\x77\x20\x6e\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x6c\x67\x57\x69\x64\x74\x68\x46\x6f\x72\x53\x69\x64\x65\x4c\x65\x67\x65\x6e\x64\x73\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x50\x61\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x61\x64\x64\x69\x6e\x67\x2c\x20\x74\x68\x69\x73\x2e\x78\x50\x61\x64\x52\x69\x67\x68\x74\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x78\x50\x61\x64\x4c\x65\x66\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x6c\x6f\x74\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x73\x52\x65\x63\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x26\x26\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x64\x69\x73\x63\x72\x65\x74\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x20\x3e\x20\x30\x29\x20\x26\x26\x20\x4f\x62\x6a\x65\x63\x74\x2e\x65\x6e\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x50\x61\x64\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x67\x28\x65\x33\x2c\x20\x32\x29\x2c\x20\x61\x33\x20\x3d\x20\x69\x33\x5b\x30\x5d\x2c\x20\x73\x32\x20\x3d\x20\x69\x33\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x72\x69\x64\x50\x61\x64\x5b\x61\x33\x5d\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x73\x32\x2c\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6c\x61\x72\x67\x65\x73\x74\x53\x69\x7a\x65\x20\x2f\x20\x31\x2e\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x46\x6f\x72\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x46\x6f\x72\x4e\x6f\x6e\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x47\x72\x69\x64\x2e\x67\x72\x69\x64\x50\x61\x64\x46\x6f\x72\x74\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x28\x29\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x74\x6f\x70\x20\x2d\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x62\x6f\x74\x74\x6f\x6d\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2d\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x6c\x65\x66\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x72\x69\x67\x68\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x78\x50\x61\x64\x52\x69\x67\x68\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x78\x50\x61\x64\x4c\x65\x66\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x47\x72\x69\x64\x2e\x67\x72\x69\x64\x50\x61\x64\x46\x6f\x72\x43\x6f\x6c\x75\x6d\x6e\x73\x49\x6e\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x28\x69\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2d\x20\x32\x20\x2a\x20\x61\x32\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x2b\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x6c\x65\x66\x74\x20\x2b\x20\x74\x68\x69\x73\x2e\x78\x50\x61\x64\x4c\x65\x66\x74\x20\x2b\x20\x28\x61\x32\x20\x3e\x20\x30\x20\x3f\x20\x61\x32\x20\x2b\x20\x34\x20\x3a\x20\x30\x29\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2b\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x50\x61\x64\x2e\x74\x6f\x70\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x46\x6f\x72\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x59\x41\x78\x69\x73\x2e\x67\x65\x74\x79\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x28\x29\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x59\x41\x78\x69\x73\x2e\x67\x65\x74\x79\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x61\x32\x5b\x69\x33\x5d\x2e\x77\x69\x64\x74\x68\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x69\x33\x20\x7d\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x73\x32\x5b\x69\x33\x5d\x2e\x77\x69\x64\x74\x68\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x69\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x59\x41\x78\x69\x73\x2e\x67\x65\x74\x54\x6f\x74\x61\x6c\x59\x41\x78\x69\x73\x57\x69\x64\x74\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x58\x41\x78\x69\x73\x2e\x67\x65\x74\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x28\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x58\x41\x78\x69\x73\x2e\x67\x65\x74\x78\x41\x78\x69\x73\x47\x72\x6f\x75\x70\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6f\x72\x64\x73\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x58\x41\x78\x69\x73\x2e\x67\x65\x74\x78\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x61\x6c\x43\x68\x65\x63\x6b\x73\x46\x6f\x72\x41\x78\x69\x73\x43\x6f\x6f\x72\x64\x73\x28\x72\x32\x2c\x20\x6e\x32\x2c\x20\x6f\x32\x29\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x59\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3f\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x38\x20\x3a\x20\x2d\x34\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x58\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x20\x3c\x3d\x20\x2d\x34\x35\x20\x3f\x20\x2d\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x2f\x20\x34\x20\x3a\x20\x30\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x69\x32\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x59\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x2e\x35\x20\x2a\x20\x2d\x31\x29\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x59\x20\x3d\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x59\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x58\x20\x3d\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x41\x78\x69\x73\x58\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x6e\x32\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x69\x32\x2e\x78\x41\x78\x69\x73\x47\x72\x6f\x75\x70\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x72\x32\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x69\x32\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x57\x69\x64\x74\x68\x2c\x20\x69\x32\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x31\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x61\x72\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x29\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x69\x32\x2e\x67\x6f\x6c\x64\x65\x6e\x50\x61\x64\x64\x69\x6e\x67\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x20\x3d\x20\x7b\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x20\x7d\x29\x2c\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x29\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x58\x41\x78\x69\x73\x2e\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x61\x64\x64\x69\x6e\x67\x58\x4c\x61\x62\x65\x6c\x73\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x6c\x32\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x74\x33\x2e\x6c\x67\x52\x65\x63\x74\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x68\x33\x20\x2d\x20\x28\x74\x33\x2e\x69\x73\x53\x70\x61\x72\x6b\x6c\x69\x6e\x65\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x3f\x20\x30\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3f\x20\x31\x30\x20\x3a\x20\x31\x35\x29\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x69\x32\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x35\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x63\x32\x2c\x20\x64\x32\x28\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x74\x6f\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x63\x32\x2c\x20\x64\x32\x28\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x6c\x65\x66\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x63\x32\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x6c\x32\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x68\x33\x20\x2d\x20\x31\x32\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x6c\x32\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x72\x69\x67\x68\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x63\x32\x2c\x20\x69\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x6c\x32\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x68\x33\x20\x2d\x20\x31\x32\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x6c\x32\x20\x2d\x20\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x4c\x65\x67\x65\x6e\x64\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x47\x72\x69\x64\x2e\x73\x65\x74\x47\x72\x69\x64\x58\x50\x6f\x73\x46\x6f\x72\x44\x75\x61\x6c\x59\x41\x78\x69\x73\x28\x73\x32\x2c\x20\x61\x32\x29\x2c\x20\x6e\x65\x77\x20\x24\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x73\x65\x74\x59\x41\x78\x69\x73\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x61\x32\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x46\x6f\x72\x4e\x6f\x6e\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x21\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x32\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x69\x65\x22\x20\x7c\x7c\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x7c\x7c\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x20\x3f\x20\x22\x70\x69\x65\x22\x20\x3a\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x73\x32\x5d\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x73\x32\x5d\x2e\x6f\x66\x66\x73\x65\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x65\x32\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x69\x32\x2e\x67\x72\x69\x64\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x6c\x65\x66\x74\x20\x2b\x20\x69\x32\x2e\x67\x72\x69\x64\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x72\x69\x67\x68\x74\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x65\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x72\x32\x2c\x20\x76\x6f\x69\x64\x20\x28\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x6f\x32\x20\x2b\x20\x28\x65\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x65\x32\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x65\x32\x2e\x67\x6f\x6c\x64\x65\x6e\x50\x61\x64\x64\x69\x6e\x67\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x65\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x72\x32\x20\x2d\x20\x31\x30\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x6f\x32\x20\x2b\x20\x28\x65\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x20\x2f\x20\x32\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x74\x6f\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x65\x32\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x65\x32\x2e\x67\x6f\x6c\x64\x65\x6e\x50\x61\x64\x64\x69\x6e\x67\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x65\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x72\x32\x20\x2b\x20\x31\x30\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x6f\x32\x20\x2b\x20\x28\x65\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x20\x2f\x20\x32\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x6c\x65\x66\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x65\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x61\x32\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x2e\x68\x65\x69\x67\x68\x74\x20\x21\x3d\x3d\x20\x22\x61\x75\x74\x6f\x22\x20\x3f\x20\x65\x32\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x72\x32\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x6f\x32\x20\x2b\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x61\x32\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x72\x69\x67\x68\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x65\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x74\x68\x69\x73\x2e\x6c\x67\x52\x65\x63\x74\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x61\x32\x20\x2d\x20\x35\x2c\x20\x65\x32\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x2e\x68\x65\x69\x67\x68\x74\x20\x21\x3d\x3d\x20\x22\x61\x75\x74\x6f\x22\x20\x3f\x20\x65\x32\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x65\x32\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3d\x20\x72\x32\x2c\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3d\x20\x6f\x32\x20\x2b\x20\x31\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x4c\x65\x67\x65\x6e\x64\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6f\x6e\x64\x69\x74\x69\x6f\x6e\x61\x6c\x43\x68\x65\x63\x6b\x73\x46\x6f\x72\x41\x78\x69\x73\x43\x6f\x6f\x72\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x68\x61\x73\x47\x72\x6f\x75\x70\x73\x20\x3f\x20\x32\x20\x3a\x20\x31\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x65\x32\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x4d\x75\x6c\x74\x69\x4c\x69\x6e\x65\x58\x20\x3f\x20\x31\x2e\x32\x20\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x4c\x49\x4e\x45\x5f\x48\x45\x49\x47\x48\x54\x5f\x52\x41\x54\x49\x4f\x2c\x20\x6e\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x3f\x20\x32\x32\x20\x3a\x20\x31\x30\x2c\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x6f\x74\x61\x74\x65\x58\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x3f\x20\x31\x30\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x72\x32\x20\x2a\x20\x6f\x32\x20\x2b\x20\x73\x32\x20\x2a\x20\x6e\x32\x20\x2b\x20\x6c\x32\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x65\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3e\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x61\x78\x48\x65\x69\x67\x68\x74\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x61\x78\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x69\x6e\x48\x65\x69\x67\x68\x74\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x3c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x69\x6e\x48\x65\x69\x67\x68\x74\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x69\x6e\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x2b\x3d\x20\x74\x34\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x69\x6e\x57\x69\x64\x74\x68\x2c\x20\x63\x32\x20\x2b\x3d\x20\x74\x34\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6d\x61\x78\x57\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x3c\x20\x68\x33\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x68\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x3e\x20\x63\x32\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x79\x41\x78\x69\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x68\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x6c\x67\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x53\x74\x79\x6c\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\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\x74\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x79\x70\x65\x22\x2c\x20\x22\x74\x65\x78\x74\x2f\x63\x73\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x22\x09\x5c\x6e\x20\x20\x20\x20\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x66\x6c\x65\x78\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x20\x61\x75\x74\x6f\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x20\x31\x30\x70\x78\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x74\x6f\x70\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6c\x65\x78\x2d\x77\x72\x61\x70\x3a\x20\x77\x72\x61\x70\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x72\x69\x67\x68\x74\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x6c\x65\x66\x74\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6c\x65\x78\x2d\x64\x69\x72\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6f\x6c\x75\x6d\x6e\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x30\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x6c\x65\x66\x74\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x74\x6f\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x6c\x65\x66\x74\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x72\x69\x67\x68\x74\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x6c\x65\x66\x74\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x6a\x75\x73\x74\x69\x66\x79\x2d\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x66\x6c\x65\x78\x2d\x73\x74\x61\x72\x74\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x63\x65\x6e\x74\x65\x72\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x74\x6f\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x63\x65\x6e\x74\x65\x72\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x6a\x75\x73\x74\x69\x66\x79\x2d\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x20\x20\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x72\x69\x67\x68\x74\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x74\x6f\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x72\x69\x67\x68\x74\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x6a\x75\x73\x74\x69\x66\x79\x2d\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x66\x6c\x65\x78\x2d\x65\x6e\x64\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x73\x65\x72\x69\x65\x73\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x70\x6f\x69\x6e\x74\x65\x72\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x73\x65\x72\x69\x65\x73\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x74\x6f\x70\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x73\x65\x72\x69\x65\x73\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x66\x6c\x65\x78\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6c\x69\x67\x6e\x2d\x69\x74\x65\x6d\x73\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x74\x65\x78\x74\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x34\x70\x78\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x74\x65\x78\x74\x20\x2a\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x61\x72\x6b\x65\x72\x20\x2a\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x61\x72\x6b\x65\x72\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x69\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\x6f\x63\x6b\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x70\x6f\x69\x6e\x74\x65\x72\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x72\x69\x67\x68\x74\x3a\x20\x33\x70\x78\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\x3a\x20\x73\x6f\x6c\x69\x64\x3b\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x72\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x73\x65\x72\x69\x65\x73\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x6c\x65\x66\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x73\x65\x72\x69\x65\x73\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x69\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\x6f\x63\x6b\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x73\x65\x72\x69\x65\x73\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6e\x6f\x2d\x63\x6c\x69\x63\x6b\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x61\x75\x74\x6f\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x69\x64\x64\x65\x6e\x2d\x7a\x65\x72\x6f\x2d\x73\x65\x72\x69\x65\x73\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x69\x64\x64\x65\x6e\x2d\x6e\x75\x6c\x6c\x2d\x73\x65\x72\x69\x65\x73\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x6e\x6f\x6e\x65\x20\x21\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x69\x6e\x61\x63\x74\x69\x76\x65\x2d\x6c\x65\x67\x65\x6e\x64\x20\x7b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x34\x35\x3b\x09\x5c\x6e\x20\x20\x20\x20\x20\x20\x7d\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x42\x42\x6f\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x22\x29\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x6c\x77\x68\x3a\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x63\x6c\x77\x77\x3a\x20\x65\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x70\x70\x65\x6e\x64\x54\x6f\x46\x6f\x72\x65\x69\x67\x6e\x4f\x62\x6a\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x46\x6f\x72\x65\x69\x67\x6e\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x4e\x53\x28\x74\x33\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x66\x6f\x72\x65\x69\x67\x6e\x4f\x62\x6a\x65\x63\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x46\x6f\x72\x65\x69\x67\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x22\x2c\x20\x30\x29\x2c\x20\x65\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x22\x2c\x20\x30\x29\x2c\x20\x65\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x29\x2c\x20\x65\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x68\x65\x69\x67\x68\x74\x22\x2c\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x6d\x6c\x6e\x73\x22\x2c\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x68\x74\x6d\x6c\x22\x29\x2c\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x29\x2c\x20\x65\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x53\x74\x79\x6c\x65\x73\x28\x29\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x65\x32\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x69\x73\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x28\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x22\x29\x29\x2c\x20\x72\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x29\x20\x3a\x20\x28\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x20\x2b\x20\x31\x2c\x20\x22\x27\x5d\x22\x29\x29\x2c\x20\x72\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x29\x2c\x20\x65\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5b\x7b\x20\x63\x73\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2c\x20\x63\x73\x69\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x20\x7d\x2c\x20\x7b\x20\x63\x73\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2c\x20\x63\x73\x69\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x20\x7d\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x72\x69\x73\x65\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x28\x74\x34\x2e\x63\x73\x2c\x20\x74\x34\x2e\x63\x73\x69\x2c\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x45\x6c\x3a\x20\x73\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x65\x6c\x65\x63\x74\x28\x22\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x20\x2b\x20\x31\x2c\x20\x22\x27\x5d\x20\x70\x61\x74\x68\x22\x29\x29\x2c\x20\x6e\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x70\x69\x65\x22\x20\x7c\x7c\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x7c\x7c\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x64\x6f\x6e\x75\x74\x2e\x6c\x61\x62\x65\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x6c\x67\x43\x74\x78\x2e\x63\x74\x78\x29\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x44\x6f\x77\x6e\x28\x6f\x32\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x30\x5d\x2c\x20\x6e\x75\x6c\x6c\x29\x2c\x20\x74\x68\x69\x73\x2e\x6c\x67\x43\x74\x78\x2e\x63\x74\x78\x2e\x70\x69\x65\x2e\x70\x72\x69\x6e\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x28\x6f\x32\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x30\x5d\x2e\x6e\x6f\x64\x65\x2c\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x66\x69\x72\x65\x28\x22\x63\x6c\x69\x63\x6b\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x45\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x69\x32\x5d\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x69\x32\x5d\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x69\x32\x5d\x2e\x73\x68\x6f\x77\x41\x6c\x77\x61\x79\x73\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x69\x32\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x64\x61\x74\x61\x3a\x20\x73\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x74\x79\x70\x65\x3a\x20\x65\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2e\x62\x61\x73\x65\x56\x61\x6c\x2e\x73\x70\x6c\x69\x74\x28\x22\x2d\x22\x29\x5b\x31\x5d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x32\x29\x29\x29\x2c\x20\x21\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x64\x61\x74\x61\x3a\x20\x73\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x74\x79\x70\x65\x3a\x20\x65\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2e\x62\x61\x73\x65\x56\x61\x6c\x2e\x73\x70\x6c\x69\x74\x28\x22\x2d\x22\x29\x5b\x31\x5d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x69\x73\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x69\x73\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x6f\x32\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x64\x61\x74\x61\x3a\x20\x73\x32\x5b\x69\x32\x5d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2c\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x6e\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x5b\x6c\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x2d\x77\x72\x61\x70\x22\x29\x20\x26\x26\x20\x28\x6e\x32\x5b\x6c\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x69\x64\x65\x22\x29\x20\x3f\x20\x6e\x32\x5b\x6c\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x69\x64\x65\x22\x29\x20\x3a\x20\x6e\x32\x5b\x6c\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x69\x64\x65\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x53\x65\x72\x69\x65\x73\x42\x61\x73\x65\x64\x4f\x6e\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x74\x61\x74\x65\x28\x73\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x6c\x67\x43\x74\x78\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x73\x32\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x69\x73\x65\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x72\x32\x5d\x2e\x69\x6e\x64\x65\x78\x20\x3d\x3d\x3d\x20\x69\x32\x20\x26\x26\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x28\x73\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x20\x3d\x20\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x74\x33\x2e\x73\x70\x6c\x69\x63\x65\x28\x72\x32\x2c\x20\x31\x29\x2c\x20\x65\x32\x2e\x73\x70\x6c\x69\x63\x65\x28\x72\x32\x2c\x20\x31\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x69\x73\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x32\x29\x29\x20\x3a\x20\x28\x73\x32\x5b\x69\x32\x5d\x20\x3d\x20\x74\x33\x5b\x72\x32\x5d\x2e\x64\x61\x74\x61\x2c\x20\x74\x33\x2e\x73\x70\x6c\x69\x63\x65\x28\x72\x32\x2c\x20\x31\x29\x2c\x20\x65\x32\x2e\x73\x70\x6c\x69\x63\x65\x28\x72\x32\x2c\x20\x31\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x69\x73\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x32\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x53\x65\x72\x69\x65\x73\x42\x61\x73\x65\x64\x4f\x6e\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x74\x61\x74\x65\x28\x73\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x6c\x67\x43\x74\x78\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x73\x32\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x67\x65\x74\x53\x65\x72\x69\x65\x73\x42\x61\x73\x65\x64\x4f\x6e\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x74\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x61\x32\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x74\x33\x5b\x61\x32\x5d\x2e\x64\x61\x74\x61\x20\x3d\x20\x5b\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x61\x32\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x74\x33\x5b\x61\x32\x5d\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x63\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x43\x6c\x69\x63\x6b\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x43\x6c\x69\x63\x6b\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x48\x6f\x76\x65\x72\x65\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x48\x6f\x76\x65\x72\x65\x64\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x73\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x2c\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x68\x74\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x46\x6f\x72\x53\x69\x6e\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x20\x26\x26\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x73\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x7c\x7c\x20\x65\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x7c\x7c\x20\x21\x65\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x20\x26\x26\x20\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x3b\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x4c\x65\x67\x65\x6e\x64\x73\x28\x29\x2c\x20\x78\x2e\x69\x73\x49\x45\x31\x31\x28\x29\x20\x3f\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x68\x65\x61\x64\x22\x29\x5b\x30\x5d\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x53\x74\x79\x6c\x65\x73\x28\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x61\x70\x70\x65\x6e\x64\x54\x6f\x46\x6f\x72\x65\x69\x67\x6e\x4f\x62\x6a\x65\x63\x74\x28\x29\x2c\x20\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x7c\x7c\x20\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x41\x6c\x69\x67\x6e\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x28\x29\x20\x3a\x20\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x69\x32\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x41\x6c\x69\x67\x6e\x56\x65\x72\x74\x69\x63\x61\x6c\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x4c\x65\x67\x65\x6e\x64\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x65\x61\x74\x6d\x61\x70\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x72\x61\x6e\x67\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x72\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x6e\x61\x6d\x65\x20\x3f\x20\x74\x34\x2e\x6e\x61\x6d\x65\x20\x3a\x20\x74\x34\x2e\x66\x72\x6f\x6d\x20\x2b\x20\x22\x20\x2d\x20\x22\x20\x2b\x20\x74\x34\x2e\x74\x6f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x73\x32\x20\x3d\x20\x72\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x63\x6f\x6c\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x73\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x63\x75\x73\x74\x6f\x6d\x4c\x65\x67\x65\x6e\x64\x49\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x63\x75\x73\x74\x6f\x6d\x4c\x65\x67\x65\x6e\x64\x49\x74\x65\x6d\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x65\x67\x65\x6e\x64\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x69\x6e\x76\x65\x72\x73\x65\x4f\x72\x64\x65\x72\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x20\x3f\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x3a\x20\x30\x3b\x20\x6e\x32\x20\x3f\x20\x6c\x32\x20\x3e\x3d\x20\x30\x20\x3a\x20\x6c\x32\x20\x3c\x3d\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x6e\x32\x20\x3f\x20\x6c\x32\x2d\x2d\x20\x3a\x20\x6c\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x6f\x32\x28\x61\x32\x5b\x6c\x32\x5d\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x6c\x32\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x63\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x5b\x67\x32\x5d\x2e\x69\x6e\x64\x65\x78\x20\x3d\x3d\x3d\x20\x6c\x32\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x30\x3b\x20\x75\x32\x20\x3c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x75\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x5b\x75\x32\x5d\x20\x3d\x3d\x3d\x20\x6c\x32\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\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\x70\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x62\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x76\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x77\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x77\x69\x64\x74\x68\x2c\x20\x6b\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x41\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x53\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x72\x61\x64\x69\x75\x73\x2c\x20\x43\x32\x20\x3d\x20\x70\x33\x2e\x73\x74\x79\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x43\x32\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3d\x20\x73\x32\x5b\x6c\x32\x5d\x2c\x20\x43\x32\x2e\x63\x6f\x6c\x6f\x72\x20\x3d\x20\x73\x32\x5b\x6c\x32\x5d\x2c\x20\x43\x32\x2e\x73\x65\x74\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x22\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x22\x2c\x20\x73\x32\x5b\x6c\x32\x5d\x2c\x20\x22\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x22\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x5b\x6c\x32\x5d\x20\x26\x26\x20\x28\x43\x32\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x5b\x6c\x32\x5d\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x5b\x6c\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x43\x32\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x5b\x6c\x32\x5d\x2c\x20\x43\x32\x2e\x63\x6f\x6c\x6f\x72\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x5b\x6c\x32\x5d\x29\x2c\x20\x43\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x76\x32\x29\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x76\x32\x5b\x6c\x32\x5d\x29\x20\x2b\x20\x22\x70\x78\x22\x20\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x76\x32\x29\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x43\x32\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x77\x32\x29\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x77\x32\x5b\x6c\x32\x5d\x29\x20\x2b\x20\x22\x70\x78\x22\x20\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x77\x32\x29\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x43\x32\x2e\x6c\x65\x66\x74\x20\x3d\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x66\x32\x29\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x66\x32\x5b\x6c\x32\x5d\x29\x20\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x66\x32\x29\x29\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x43\x32\x2e\x74\x6f\x70\x20\x3d\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x62\x32\x29\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x62\x32\x5b\x6c\x32\x5d\x29\x20\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x62\x32\x29\x29\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x43\x32\x2e\x62\x6f\x72\x64\x65\x72\x57\x69\x64\x74\x68\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6b\x32\x29\x20\x3f\x20\x6b\x32\x5b\x6c\x32\x5d\x20\x3a\x20\x6b\x32\x2c\x20\x43\x32\x2e\x62\x6f\x72\x64\x65\x72\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x41\x32\x29\x20\x3f\x20\x41\x32\x5b\x6c\x32\x5d\x20\x3a\x20\x41\x32\x2c\x20\x43\x32\x2e\x62\x6f\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x53\x32\x29\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x53\x32\x5b\x6c\x32\x5d\x29\x20\x2b\x20\x22\x70\x78\x22\x20\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x53\x32\x29\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x75\x73\x74\x6f\x6d\x48\x54\x4d\x4c\x20\x26\x26\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x75\x73\x74\x6f\x6d\x48\x54\x4d\x4c\x29\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x75\x73\x74\x6f\x6d\x48\x54\x4d\x4c\x5b\x6c\x32\x5d\x20\x26\x26\x20\x28\x70\x33\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x75\x73\x74\x6f\x6d\x48\x54\x4d\x4c\x5b\x6c\x32\x5d\x28\x29\x29\x20\x3a\x20\x70\x33\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x63\x75\x73\x74\x6f\x6d\x48\x54\x4d\x4c\x28\x29\x29\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x70\x33\x2c\x20\x7b\x20\x72\x65\x6c\x3a\x20\x6c\x32\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x22\x3a\x20\x63\x32\x20\x7c\x7c\x20\x64\x32\x20\x7d\x29\x2c\x20\x28\x63\x32\x20\x7c\x7c\x20\x64\x32\x29\x20\x26\x26\x20\x70\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x69\x6e\x61\x63\x74\x69\x76\x65\x2d\x6c\x65\x67\x65\x6e\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4c\x32\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\x2c\x20\x50\x32\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\x50\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x74\x65\x78\x74\x22\x29\x2c\x20\x50\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x68\x33\x29\x20\x3f\x20\x68\x33\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x54\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x75\x73\x65\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x73\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6c\x32\x5d\x20\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x54\x32\x20\x7c\x7c\x20\x28\x54\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x29\x2c\x20\x50\x32\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x20\x3d\x20\x54\x32\x2c\x20\x50\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x50\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x50\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x3d\x20\x69\x32\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x50\x32\x2c\x20\x7b\x20\x72\x65\x6c\x3a\x20\x6c\x32\x20\x2b\x20\x31\x2c\x20\x69\x3a\x20\x6c\x32\x2c\x20\x22\x64\x61\x74\x61\x3a\x64\x65\x66\x61\x75\x6c\x74\x2d\x74\x65\x78\x74\x22\x3a\x20\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x68\x33\x29\x2c\x20\x22\x64\x61\x74\x61\x3a\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x22\x3a\x20\x63\x32\x20\x7c\x7c\x20\x64\x32\x20\x7d\x29\x2c\x20\x4c\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x70\x33\x29\x2c\x20\x4c\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x50\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4d\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x46\x6f\x72\x5a\x65\x72\x6f\x53\x65\x72\x69\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4d\x32\x2e\x67\x65\x74\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x42\x79\x49\x6e\x64\x65\x78\x28\x6c\x32\x29\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x4d\x32\x2e\x73\x65\x72\x69\x65\x73\x48\x61\x76\x65\x53\x61\x6d\x65\x56\x61\x6c\x75\x65\x73\x28\x6c\x32\x29\x20\x26\x26\x20\x21\x4d\x32\x2e\x69\x73\x53\x65\x72\x69\x65\x73\x4e\x75\x6c\x6c\x28\x6c\x32\x29\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x6c\x32\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x6c\x32\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x4c\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x69\x64\x64\x65\x6e\x2d\x7a\x65\x72\x6f\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x46\x6f\x72\x4e\x75\x6c\x6c\x53\x65\x72\x69\x65\x73\x20\x7c\x7c\x20\x4d\x32\x2e\x69\x73\x53\x65\x72\x69\x65\x73\x4e\x75\x6c\x6c\x28\x6c\x32\x29\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x6c\x32\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x6c\x32\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x4c\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x69\x64\x64\x65\x6e\x2d\x6e\x75\x6c\x6c\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x4c\x32\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6c\x69\x67\x6e\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x41\x6c\x69\x67\x6e\x29\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x78\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2d\x22\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x29\x2c\x20\x4c\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x2c\x20\x4c\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6d\x61\x72\x67\x69\x6e\x20\x3d\x20\x22\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x69\x74\x65\x6d\x4d\x61\x72\x67\x69\x6e\x2e\x76\x65\x72\x74\x69\x63\x61\x6c\x2c\x20\x22\x70\x78\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x69\x74\x65\x6d\x4d\x61\x72\x67\x69\x6e\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x22\x70\x78\x22\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x73\x74\x79\x6c\x65\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x22\x70\x78\x22\x20\x3a\x20\x22\x22\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x73\x74\x79\x6c\x65\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x68\x65\x69\x67\x68\x74\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x22\x70\x78\x22\x20\x3a\x20\x22\x22\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x4c\x32\x2c\x20\x7b\x20\x72\x65\x6c\x3a\x20\x6c\x32\x20\x2b\x20\x31\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x61\x32\x5b\x6c\x32\x5d\x29\x2c\x20\x22\x64\x61\x74\x61\x3a\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x22\x3a\x20\x63\x32\x20\x7c\x7c\x20\x64\x32\x20\x7d\x29\x2c\x20\x28\x63\x32\x20\x7c\x7c\x20\x64\x32\x29\x20\x26\x26\x20\x4c\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x69\x6e\x61\x63\x74\x69\x76\x65\x2d\x6c\x65\x67\x65\x6e\x64\x22\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6f\x6e\x49\x74\x65\x6d\x43\x6c\x69\x63\x6b\x2e\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x20\x7c\x7c\x20\x4c\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6e\x6f\x2d\x63\x6c\x69\x63\x6b\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x33\x2e\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x43\x6c\x69\x63\x6b\x2c\x20\x74\x72\x75\x65\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6f\x6e\x49\x74\x65\x6d\x48\x6f\x76\x65\x72\x2e\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x63\x75\x73\x74\x6f\x6d\x4c\x65\x67\x65\x6e\x64\x49\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x2c\x20\x74\x33\x2e\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x48\x6f\x76\x65\x72\x65\x64\x2c\x20\x74\x72\x75\x65\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x2c\x20\x74\x33\x2e\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x48\x6f\x76\x65\x72\x65\x64\x2c\x20\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x58\x59\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x22\x29\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x2b\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x73\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x6c\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x28\x22\x74\x69\x74\x6c\x65\x22\x29\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x68\x33\x20\x3d\x20\x6e\x32\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x28\x22\x73\x75\x62\x74\x69\x74\x6c\x65\x22\x29\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x6f\x32\x20\x2b\x20\x28\x6c\x32\x20\x3e\x20\x30\x20\x3f\x20\x6c\x32\x20\x2d\x20\x31\x30\x20\x3a\x20\x30\x29\x20\x2b\x20\x28\x68\x33\x20\x3e\x20\x30\x20\x3f\x20\x68\x33\x20\x2d\x20\x31\x30\x20\x3a\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x22\x61\x62\x73\x6f\x6c\x75\x74\x65\x22\x2c\x20\x72\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x74\x33\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x6f\x32\x20\x3d\x20\x6f\x32\x20\x2b\x20\x65\x32\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x72\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x6f\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x3f\x20\x28\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x22\x61\x75\x74\x6f\x22\x2c\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x62\x6f\x74\x74\x6f\x6d\x20\x3d\x20\x35\x20\x2d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x22\x70\x78\x22\x29\x20\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x22\x61\x75\x74\x6f\x22\x2c\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x72\x69\x67\x68\x74\x20\x3d\x20\x32\x35\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x22\x70\x78\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x5b\x74\x34\x5d\x20\x26\x26\x20\x28\x61\x32\x2e\x73\x74\x79\x6c\x65\x5b\x74\x34\x5d\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x5b\x74\x34\x5d\x2c\x20\x31\x30\x29\x20\x2b\x20\x22\x70\x78\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6c\x65\x67\x65\x6e\x64\x41\x6c\x69\x67\x6e\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x22\x29\x2e\x73\x74\x79\x6c\x65\x2e\x72\x69\x67\x68\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x42\x42\x6f\x78\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6c\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x28\x22\x74\x69\x74\x6c\x65\x22\x29\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x64\x69\x6d\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x54\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x43\x6f\x6f\x72\x64\x73\x28\x22\x73\x75\x62\x74\x69\x74\x6c\x65\x22\x29\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x3f\x20\x72\x32\x20\x3d\x20\x2d\x65\x32\x2e\x63\x6c\x77\x68\x20\x2f\x20\x31\x2e\x38\x20\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x61\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x73\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x69\x74\x6c\x65\x2e\x6d\x61\x72\x67\x69\x6e\x20\x2b\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x75\x62\x74\x69\x74\x6c\x65\x2e\x6d\x61\x72\x67\x69\x6e\x20\x2d\x20\x31\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x58\x59\x28\x32\x30\x2c\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6c\x65\x67\x65\x6e\x64\x41\x6c\x69\x67\x6e\x56\x65\x72\x74\x69\x63\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x42\x42\x6f\x78\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x32\x30\x29\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x65\x32\x2e\x63\x6c\x77\x77\x20\x2d\x20\x31\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x58\x59\x28\x69\x32\x2c\x20\x32\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x48\x6f\x76\x65\x72\x65\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x74\x65\x78\x74\x22\x29\x20\x7c\x7c\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x73\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x6c\x65\x67\x65\x6e\x64\x48\x6f\x76\x65\x72\x22\x2c\x20\x5b\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x61\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x5d\x29\x2c\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x52\x61\x6e\x67\x65\x49\x6e\x53\x65\x72\x69\x65\x73\x28\x74\x33\x2c\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x21\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x69\x6e\x61\x63\x74\x69\x76\x65\x2d\x6c\x65\x67\x65\x6e\x64\x22\x29\x20\x26\x26\x20\x69\x32\x20\x26\x26\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x4f\x6e\x48\x6f\x76\x65\x72\x28\x74\x33\x2c\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6f\x6e\x4c\x65\x67\x65\x6e\x64\x43\x6c\x69\x63\x6b\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x63\x75\x73\x74\x6f\x6d\x4c\x65\x67\x65\x6e\x64\x49\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x74\x65\x78\x74\x22\x29\x20\x7c\x7c\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x22\x29\x20\x3d\x3d\x3d\x20\x22\x74\x72\x75\x65\x22\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6c\x65\x67\x65\x6e\x64\x43\x6c\x69\x63\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x73\x32\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x6c\x65\x67\x65\x6e\x64\x43\x6c\x69\x63\x6b\x22\x2c\x20\x5b\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x6e\x43\x6c\x69\x63\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x72\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x20\x26\x26\x20\x28\x72\x32\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x6c\x65\x67\x65\x6e\x64\x4d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x22\x2c\x20\x5b\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x5d\x29\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x73\x44\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x6f\x6e\x49\x74\x65\x6d\x43\x6c\x69\x63\x6b\x2e\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x28\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x64\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x76\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x20\x3d\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x65\x64\x22\x2c\x20\x74\x68\x69\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2c\x20\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x2c\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x58\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x72\x65\x61\x74\x65\x54\x6f\x6f\x6c\x62\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\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\x7d\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x62\x61\x72\x22\x29\x2c\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x72\x69\x67\x68\x74\x20\x3d\x20\x33\x20\x2d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x61\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x20\x3d\x20\x69\x32\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x49\x6e\x20\x3d\x20\x69\x32\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x4f\x75\x74\x20\x3d\x20\x69\x32\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x20\x3d\x20\x69\x32\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x69\x32\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x52\x65\x73\x65\x74\x20\x3d\x20\x69\x32\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x63\x6f\x6e\x20\x3d\x20\x69\x32\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x20\x3d\x20\x69\x32\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x43\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x74\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x74\x6f\x6f\x6c\x73\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x74\x2e\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x74\x2e\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x43\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x2e\x70\x75\x73\x68\x28\x69\x32\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x33\x20\x3d\x20\x69\x33\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x74\x5b\x6f\x33\x5d\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x65\x6c\x3a\x20\x61\x33\x2c\x20\x69\x63\x6f\x6e\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x74\x5b\x6f\x33\x5d\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x33\x2e\x74\x5b\x6f\x33\x5d\x20\x3a\x20\x73\x33\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x74\x33\x2e\x6c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x5b\x69\x33\x5d\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x33\x2c\x20\x22\x2d\x69\x63\x6f\x6e\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x28\x22\x7a\x6f\x6f\x6d\x49\x6e\x22\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x49\x6e\x2c\x20\x27\x3c\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x34\x20\x32\x34\x22\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x20\x30\x68\x32\x34\x76\x32\x34\x48\x30\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\x65\x22\x2f\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x33\x20\x37\x68\x2d\x32\x76\x34\x48\x37\x76\x32\x68\x34\x76\x34\x68\x32\x76\x2d\x34\x68\x34\x76\x2d\x32\x68\x2d\x34\x56\x37\x7a\x6d\x2d\x31\x2d\x35\x43\x36\x2e\x34\x38\x20\x32\x20\x32\x20\x36\x2e\x34\x38\x20\x32\x20\x31\x32\x73\x34\x2e\x34\x38\x20\x31\x30\x20\x31\x30\x20\x31\x30\x20\x31\x30\x2d\x34\x2e\x34\x38\x20\x31\x30\x2d\x31\x30\x53\x31\x37\x2e\x35\x32\x20\x32\x20\x31\x32\x20\x32\x7a\x6d\x30\x20\x31\x38\x63\x2d\x34\x2e\x34\x31\x20\x30\x2d\x38\x2d\x33\x2e\x35\x39\x2d\x38\x2d\x38\x73\x33\x2e\x35\x39\x2d\x38\x20\x38\x2d\x38\x20\x38\x20\x33\x2e\x35\x39\x20\x38\x20\x38\x2d\x33\x2e\x35\x39\x20\x38\x2d\x38\x20\x38\x7a\x22\x2f\x3e\x5c\x6e\x3c\x2f\x73\x76\x67\x3e\x5c\x6e\x27\x29\x2c\x20\x6f\x32\x28\x22\x7a\x6f\x6f\x6d\x4f\x75\x74\x22\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x4f\x75\x74\x2c\x20\x27\x3c\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x34\x20\x32\x34\x22\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x20\x30\x68\x32\x34\x76\x32\x34\x48\x30\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\x65\x22\x2f\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\x20\x31\x31\x76\x32\x68\x31\x30\x76\x2d\x32\x48\x37\x7a\x6d\x35\x2d\x39\x43\x36\x2e\x34\x38\x20\x32\x20\x32\x20\x36\x2e\x34\x38\x20\x32\x20\x31\x32\x73\x34\x2e\x34\x38\x20\x31\x30\x20\x31\x30\x20\x31\x30\x20\x31\x30\x2d\x34\x2e\x34\x38\x20\x31\x30\x2d\x31\x30\x53\x31\x37\x2e\x35\x32\x20\x32\x20\x31\x32\x20\x32\x7a\x6d\x30\x20\x31\x38\x63\x2d\x34\x2e\x34\x31\x20\x30\x2d\x38\x2d\x33\x2e\x35\x39\x2d\x38\x2d\x38\x73\x33\x2e\x35\x39\x2d\x38\x20\x38\x2d\x38\x20\x38\x20\x33\x2e\x35\x39\x20\x38\x20\x38\x2d\x33\x2e\x35\x39\x20\x38\x2d\x38\x20\x38\x7a\x22\x2f\x3e\x5c\x6e\x3c\x2f\x73\x76\x67\x3e\x5c\x6e\x27\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x74\x5b\x69\x33\x5d\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x5b\x69\x33\x5d\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x65\x6c\x3a\x20\x69\x33\x20\x3d\x3d\x3d\x20\x22\x7a\x6f\x6f\x6d\x22\x20\x3f\x20\x74\x33\x2e\x65\x6c\x5a\x6f\x6f\x6d\x20\x3a\x20\x74\x33\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2c\x20\x69\x63\x6f\x6e\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x74\x5b\x69\x33\x5d\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x33\x2e\x74\x5b\x69\x33\x5d\x20\x3a\x20\x69\x33\x20\x3d\x3d\x3d\x20\x22\x7a\x6f\x6f\x6d\x22\x20\x3f\x20\x27\x3c\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x30\x30\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x34\x20\x32\x34\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\x22\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x35\x2e\x35\x20\x31\x34\x68\x2d\x2e\x37\x39\x6c\x2d\x2e\x32\x38\x2d\x2e\x32\x37\x43\x31\x35\x2e\x34\x31\x20\x31\x32\x2e\x35\x39\x20\x31\x36\x20\x31\x31\x2e\x31\x31\x20\x31\x36\x20\x39\x2e\x35\x20\x31\x36\x20\x35\x2e\x39\x31\x20\x31\x33\x2e\x30\x39\x20\x33\x20\x39\x2e\x35\x20\x33\x53\x33\x20\x35\x2e\x39\x31\x20\x33\x20\x39\x2e\x35\x20\x35\x2e\x39\x31\x20\x31\x36\x20\x39\x2e\x35\x20\x31\x36\x63\x31\x2e\x36\x31\x20\x30\x20\x33\x2e\x30\x39\x2d\x2e\x35\x39\x20\x34\x2e\x32\x33\x2d\x31\x2e\x35\x37\x6c\x2e\x32\x37\x2e\x32\x38\x76\x2e\x37\x39\x6c\x35\x20\x34\x2e\x39\x39\x4c\x32\x30\x2e\x34\x39\x20\x31\x39\x6c\x2d\x34\x2e\x39\x39\x2d\x35\x7a\x6d\x2d\x36\x20\x30\x43\x37\x2e\x30\x31\x20\x31\x34\x20\x35\x20\x31\x31\x2e\x39\x39\x20\x35\x20\x39\x2e\x35\x53\x37\x2e\x30\x31\x20\x35\x20\x39\x2e\x35\x20\x35\x20\x31\x34\x20\x37\x2e\x30\x31\x20\x31\x34\x20\x39\x2e\x35\x20\x31\x31\x2e\x39\x39\x20\x31\x34\x20\x39\x2e\x35\x20\x31\x34\x7a\x22\x2f\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x20\x30\x68\x32\x34\x76\x32\x34\x48\x30\x56\x30\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\x65\x22\x2f\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x32\x20\x31\x30\x68\x2d\x32\x76\x32\x48\x39\x76\x2d\x32\x48\x37\x56\x39\x68\x32\x56\x37\x68\x31\x76\x32\x68\x32\x76\x31\x7a\x22\x2f\x3e\x5c\x6e\x3c\x2f\x73\x76\x67\x3e\x27\x20\x3a\x20\x27\x3c\x73\x76\x67\x20\x66\x69\x6c\x6c\x3d\x22\x23\x36\x45\x38\x31\x39\x32\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x34\x20\x32\x34\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x20\x30\x68\x32\x34\x76\x32\x34\x48\x30\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\x65\x22\x2f\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x20\x35\x68\x32\x56\x33\x63\x2d\x31\x2e\x31\x20\x30\x2d\x32\x20\x2e\x39\x2d\x32\x20\x32\x7a\x6d\x30\x20\x38\x68\x32\x76\x2d\x32\x48\x33\x76\x32\x7a\x6d\x34\x20\x38\x68\x32\x76\x2d\x32\x48\x37\x76\x32\x7a\x4d\x33\x20\x39\x68\x32\x56\x37\x48\x33\x76\x32\x7a\x6d\x31\x30\x2d\x36\x68\x2d\x32\x76\x32\x68\x32\x56\x33\x7a\x6d\x36\x20\x30\x76\x32\x68\x32\x63\x30\x2d\x31\x2e\x31\x2d\x2e\x39\x2d\x32\x2d\x32\x2d\x32\x7a\x4d\x35\x20\x32\x31\x76\x2d\x32\x48\x33\x63\x30\x20\x31\x2e\x31\x2e\x39\x20\x32\x20\x32\x20\x32\x7a\x6d\x2d\x32\x2d\x34\x68\x32\x76\x2d\x32\x48\x33\x76\x32\x7a\x4d\x39\x20\x33\x48\x37\x76\x32\x68\x32\x56\x33\x7a\x6d\x32\x20\x31\x38\x68\x32\x76\x2d\x32\x68\x2d\x32\x76\x32\x7a\x6d\x38\x2d\x38\x68\x32\x76\x2d\x32\x68\x2d\x32\x76\x32\x7a\x6d\x30\x20\x38\x63\x31\x2e\x31\x20\x30\x20\x32\x2d\x2e\x39\x20\x32\x2d\x32\x68\x2d\x32\x76\x32\x7a\x6d\x30\x2d\x31\x32\x68\x32\x56\x37\x68\x2d\x32\x76\x32\x7a\x6d\x30\x20\x38\x68\x32\x76\x2d\x32\x68\x2d\x32\x76\x32\x7a\x6d\x2d\x34\x20\x34\x68\x32\x76\x2d\x32\x68\x2d\x32\x76\x32\x7a\x6d\x30\x2d\x31\x36\x68\x32\x56\x33\x68\x2d\x32\x76\x32\x7a\x22\x2f\x3e\x5c\x6e\x3c\x2f\x73\x76\x67\x3e\x27\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x74\x33\x2e\x6c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x5b\x69\x33\x20\x3d\x3d\x3d\x20\x22\x7a\x6f\x6f\x6d\x22\x20\x3f\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x5a\x6f\x6f\x6d\x22\x20\x3a\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x5d\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x54\x6f\x75\x63\x68\x44\x65\x76\x69\x63\x65\x20\x3f\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x65\x6c\x65\x6d\x65\x6e\x74\x2d\x68\x69\x64\x64\x65\x6e\x22\x20\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x33\x2c\x20\x22\x2d\x69\x63\x6f\x6e\x22\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x28\x22\x7a\x6f\x6f\x6d\x22\x29\x2c\x20\x6e\x32\x28\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x2e\x70\x61\x6e\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x65\x6c\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x2c\x20\x69\x63\x6f\x6e\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x68\x69\x73\x2e\x74\x2e\x70\x61\x6e\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x74\x2e\x70\x61\x6e\x20\x3a\x20\x27\x3c\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x30\x30\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x34\x20\x32\x34\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\x22\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x64\x65\x66\x73\x3e\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x20\x30\x68\x32\x34\x76\x32\x34\x48\x30\x7a\x22\x20\x69\x64\x3d\x22\x61\x22\x2f\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x2f\x64\x65\x66\x73\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x63\x6c\x69\x70\x50\x61\x74\x68\x20\x69\x64\x3d\x22\x62\x22\x3e\x5c\x6e\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x75\x73\x65\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3d\x22\x76\x69\x73\x69\x62\x6c\x65\x22\x20\x78\x6c\x69\x6e\x6b\x3a\x68\x72\x65\x66\x3d\x22\x23\x61\x22\x2f\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x2f\x63\x6c\x69\x70\x50\x61\x74\x68\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x3d\x22\x75\x72\x6c\x28\x23\x62\x29\x22\x20\x64\x3d\x22\x4d\x32\x33\x20\x35\x2e\x35\x56\x32\x30\x63\x30\x20\x32\x2e\x32\x2d\x31\x2e\x38\x20\x34\x2d\x34\x20\x34\x68\x2d\x37\x2e\x33\x63\x2d\x31\x2e\x30\x38\x20\x30\x2d\x32\x2e\x31\x2d\x2e\x34\x33\x2d\x32\x2e\x38\x35\x2d\x31\x2e\x31\x39\x4c\x31\x20\x31\x34\x2e\x38\x33\x73\x31\x2e\x32\x36\x2d\x31\x2e\x32\x33\x20\x31\x2e\x33\x2d\x31\x2e\x32\x35\x63\x2e\x32\x32\x2d\x2e\x31\x39\x2e\x34\x39\x2d\x2e\x32\x39\x2e\x37\x39\x2d\x2e\x32\x39\x2e\x32\x32\x20\x30\x20\x2e\x34\x32\x2e\x30\x36\x2e\x36\x2e\x31\x36\x2e\x30\x34\x2e\x30\x31\x20\x34\x2e\x33\x31\x20\x32\x2e\x34\x36\x20\x34\x2e\x33\x31\x20\x32\x2e\x34\x36\x56\x34\x63\x30\x2d\x2e\x38\x33\x2e\x36\x37\x2d\x31\x2e\x35\x20\x31\x2e\x35\x2d\x31\x2e\x35\x53\x31\x31\x20\x33\x2e\x31\x37\x20\x31\x31\x20\x34\x76\x37\x68\x31\x56\x31\x2e\x35\x63\x30\x2d\x2e\x38\x33\x2e\x36\x37\x2d\x31\x2e\x35\x20\x31\x2e\x35\x2d\x31\x2e\x35\x53\x31\x35\x20\x2e\x36\x37\x20\x31\x35\x20\x31\x2e\x35\x56\x31\x31\x68\x31\x56\x32\x2e\x35\x63\x30\x2d\x2e\x38\x33\x2e\x36\x37\x2d\x31\x2e\x35\x20\x31\x2e\x35\x2d\x31\x2e\x35\x73\x31\x2e\x35\x2e\x36\x37\x20\x31\x2e\x35\x20\x31\x2e\x35\x56\x31\x31\x68\x31\x56\x35\x2e\x35\x63\x30\x2d\x2e\x38\x33\x2e\x36\x37\x2d\x31\x2e\x35\x20\x31\x2e\x35\x2d\x31\x2e\x35\x73\x31\x2e\x35\x2e\x36\x37\x20\x31\x2e\x35\x20\x31\x2e\x35\x7a\x22\x2f\x3e\x5c\x6e\x3c\x2f\x73\x76\x67\x3e\x27\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x74\x68\x69\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x2e\x70\x61\x6e\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x54\x6f\x75\x63\x68\x44\x65\x76\x69\x63\x65\x20\x3f\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x65\x6c\x65\x6d\x65\x6e\x74\x2d\x68\x69\x64\x64\x65\x6e\x22\x20\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x61\x6e\x2d\x69\x63\x6f\x6e\x22\x20\x7d\x29\x2c\x20\x6f\x32\x28\x22\x72\x65\x73\x65\x74\x22\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x52\x65\x73\x65\x74\x2c\x20\x27\x3c\x73\x76\x67\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x30\x30\x30\x30\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x34\x20\x32\x34\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x30\x20\x32\x30\x76\x2d\x36\x68\x34\x76\x36\x68\x35\x76\x2d\x38\x68\x33\x4c\x31\x32\x20\x33\x20\x32\x20\x31\x32\x68\x33\x76\x38\x7a\x22\x2f\x3e\x5c\x6e\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x20\x30\x68\x32\x34\x76\x32\x34\x48\x30\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\x65\x22\x2f\x3e\x5c\x6e\x3c\x2f\x73\x76\x67\x3e\x27\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x2e\x64\x6f\x77\x6e\x6c\x6f\x61\x64\x20\x26\x26\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x65\x6c\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x63\x6f\x6e\x2c\x20\x69\x63\x6f\x6e\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x68\x69\x73\x2e\x74\x2e\x64\x6f\x77\x6e\x6c\x6f\x61\x64\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x74\x2e\x64\x6f\x77\x6e\x6c\x6f\x61\x64\x20\x3a\x20\x27\x3c\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x32\x34\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x34\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x32\x34\x20\x32\x34\x22\x3e\x3c\x70\x61\x74\x68\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x64\x3d\x22\x4d\x30\x20\x30\x68\x32\x34\x76\x32\x34\x48\x30\x56\x30\x7a\x22\x2f\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x20\x31\x38\x68\x31\x38\x76\x2d\x32\x48\x33\x76\x32\x7a\x6d\x30\x2d\x35\x68\x31\x38\x76\x2d\x32\x48\x33\x76\x32\x7a\x6d\x30\x2d\x37\x76\x32\x68\x31\x38\x56\x36\x48\x33\x7a\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\x27\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x74\x68\x69\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x2e\x6d\x65\x6e\x75\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x63\x6f\x6e\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x65\x6c\x43\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x7b\x20\x65\x6c\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x43\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x5b\x6c\x32\x5d\x2c\x20\x69\x63\x6f\x6e\x3a\x20\x74\x68\x69\x73\x2e\x74\x2e\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x5b\x6c\x32\x5d\x2e\x69\x63\x6f\x6e\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x74\x68\x69\x73\x2e\x74\x2e\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x5b\x6c\x32\x5d\x2e\x74\x69\x74\x6c\x65\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x74\x68\x69\x73\x2e\x74\x2e\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x5b\x6c\x32\x5d\x2e\x69\x6e\x64\x65\x78\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x62\x61\x72\x2d\x63\x75\x73\x74\x6f\x6d\x2d\x69\x63\x6f\x6e\x20\x22\x20\x2b\x20\x74\x68\x69\x73\x2e\x74\x2e\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x5b\x6c\x32\x5d\x2e\x63\x6c\x61\x73\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x69\x6e\x64\x65\x78\x20\x26\x26\x20\x78\x2e\x6d\x6f\x76\x65\x49\x6e\x64\x65\x78\x49\x6e\x41\x72\x72\x61\x79\x28\x72\x32\x2c\x20\x65\x33\x2c\x20\x74\x34\x2e\x69\x6e\x64\x65\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x30\x3b\x20\x68\x33\x20\x3c\x20\x72\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x68\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x72\x32\x5b\x68\x33\x5d\x2e\x65\x6c\x2c\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x72\x32\x5b\x68\x33\x5d\x2e\x63\x6c\x61\x73\x73\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x72\x32\x5b\x68\x33\x5d\x2e\x74\x69\x74\x6c\x65\x20\x7d\x29\x2c\x20\x72\x32\x5b\x68\x33\x5d\x2e\x65\x6c\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x72\x32\x5b\x68\x33\x5d\x2e\x69\x63\x6f\x6e\x2c\x20\x61\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x72\x32\x5b\x68\x33\x5d\x2e\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x63\x72\x65\x61\x74\x65\x48\x61\x6d\x62\x75\x72\x67\x65\x72\x4d\x65\x6e\x75\x28\x61\x32\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x54\x6f\x6f\x6c\x62\x61\x72\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x63\x72\x65\x61\x74\x65\x48\x61\x6d\x62\x75\x72\x67\x65\x72\x4d\x65\x6e\x75\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x74\x65\x6d\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x29\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x2c\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x5b\x7b\x20\x6e\x61\x6d\x65\x3a\x20\x22\x65\x78\x70\x6f\x72\x74\x53\x56\x47\x22\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x74\x68\x69\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x2e\x65\x78\x70\x6f\x72\x74\x54\x6f\x53\x56\x47\x20\x7d\x2c\x20\x7b\x20\x6e\x61\x6d\x65\x3a\x20\x22\x65\x78\x70\x6f\x72\x74\x50\x4e\x47\x22\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x74\x68\x69\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x2e\x65\x78\x70\x6f\x72\x74\x54\x6f\x50\x4e\x47\x20\x7d\x2c\x20\x7b\x20\x6e\x61\x6d\x65\x3a\x20\x22\x65\x78\x70\x6f\x72\x74\x43\x53\x56\x22\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x74\x68\x69\x73\x2e\x6c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x2e\x65\x78\x70\x6f\x72\x74\x54\x6f\x43\x53\x56\x20\x7d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x48\x61\x73\x45\x71\x75\x61\x6c\x58\x20\x7c\x7c\x20\x65\x32\x2e\x73\x70\x6c\x69\x63\x65\x28\x32\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x74\x65\x6d\x73\x5b\x69\x32\x5d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x65\x32\x5b\x69\x32\x5d\x2e\x74\x69\x74\x6c\x65\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x74\x65\x6d\x73\x5b\x69\x32\x5d\x2c\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x74\x65\x6d\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x5b\x69\x32\x5d\x2e\x6e\x61\x6d\x65\x29\x2c\x20\x74\x69\x74\x6c\x65\x3a\x20\x65\x32\x5b\x69\x32\x5d\x2e\x74\x69\x74\x6c\x65\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x74\x65\x6d\x73\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x54\x6f\x6f\x6c\x62\x61\x72\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x52\x65\x73\x65\x74\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x5a\x6f\x6f\x6d\x52\x65\x73\x65\x74\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x67\x67\x6c\x65\x5a\x6f\x6f\x6d\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x67\x67\x6c\x65\x5a\x6f\x6f\x6d\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x7a\x6f\x6f\x6d\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x49\x6e\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x5a\x6f\x6f\x6d\x49\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x4f\x75\x74\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x5a\x6f\x6f\x6d\x4f\x75\x74\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x67\x67\x6c\x65\x50\x61\x6e\x6e\x69\x6e\x67\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x63\x6f\x6e\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x67\x67\x6c\x65\x4d\x65\x6e\x75\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x74\x65\x6d\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x65\x78\x70\x6f\x72\x74\x53\x56\x47\x22\x29\x20\x3f\x20\x65\x33\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x33\x2e\x68\x61\x6e\x64\x6c\x65\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x2e\x62\x69\x6e\x64\x28\x74\x33\x2c\x20\x22\x73\x76\x67\x22\x29\x29\x20\x3a\x20\x65\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x65\x78\x70\x6f\x72\x74\x50\x4e\x47\x22\x29\x20\x3f\x20\x65\x33\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x33\x2e\x68\x61\x6e\x64\x6c\x65\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x2e\x62\x69\x6e\x64\x28\x74\x33\x2c\x20\x22\x70\x6e\x67\x22\x29\x29\x20\x3a\x20\x65\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x65\x78\x70\x6f\x72\x74\x43\x53\x56\x22\x29\x20\x26\x26\x20\x65\x33\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x33\x2e\x68\x61\x6e\x64\x6c\x65\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x2e\x62\x69\x6e\x64\x28\x74\x33\x2c\x20\x22\x63\x73\x76\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x30\x3b\x20\x65\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x74\x2e\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x43\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x5b\x65\x32\x5d\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x74\x68\x69\x73\x2e\x74\x2e\x63\x75\x73\x74\x6f\x6d\x49\x63\x6f\x6e\x73\x5b\x65\x32\x5d\x2e\x63\x6c\x69\x63\x6b\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x77\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x5a\x6f\x6f\x6d\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x67\x65\x74\x53\x79\x6e\x63\x65\x64\x43\x68\x61\x72\x74\x73\x28\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x74\x6f\x67\x67\x6c\x65\x4f\x74\x68\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x65\x32\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3a\x20\x65\x32\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x6c\x5a\x6f\x6f\x6d\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x22\x20\x3a\x20\x22\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x5b\x61\x32\x5d\x20\x3d\x20\x21\x65\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x5b\x61\x32\x5d\x2c\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x65\x32\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x20\x3f\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x65\x32\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x20\x3a\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x65\x32\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x54\x6f\x6f\x6c\x62\x61\x72\x49\x63\x6f\x6e\x73\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x69\x63\x6f\x6e\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x61\x6e\x2d\x69\x63\x6f\x6e\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x69\x63\x6f\x6e\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x6e\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x50\x61\x6e\x46\x72\x6f\x6d\x54\x6f\x6f\x6c\x62\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x6f\x67\x67\x6c\x65\x4f\x74\x68\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x73\x28\x29\x2c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x70\x61\x6e\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x20\x3a\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x70\x61\x6e\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x20\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x70\x61\x6e\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x20\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x26\x26\x20\x65\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x2c\x20\x69\x32\x20\x26\x26\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x50\x61\x6e\x6e\x69\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x67\x65\x74\x53\x79\x6e\x63\x65\x64\x43\x68\x61\x72\x74\x73\x28\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x74\x6f\x67\x67\x6c\x65\x4f\x74\x68\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x73\x28\x29\x2c\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x21\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x2c\x20\x74\x33\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x6c\x50\x61\x6e\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x74\x33\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x20\x3f\x20\x74\x33\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x6c\x50\x61\x6e\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x33\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x20\x3a\x20\x74\x33\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x6c\x50\x61\x6e\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x74\x33\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x4f\x74\x68\x65\x72\x43\x6f\x6e\x74\x72\x6f\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x54\x6f\x6f\x6c\x62\x61\x72\x49\x63\x6f\x6e\x73\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x28\x29\x2c\x20\x5b\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x20\x26\x26\x20\x65\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x33\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x5a\x6f\x6f\x6d\x49\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x58\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x28\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x20\x2b\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x58\x29\x20\x2f\x20\x32\x2c\x20\x69\x32\x20\x3d\x20\x28\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x20\x2b\x20\x65\x32\x29\x20\x2f\x20\x32\x2c\x20\x61\x32\x20\x3d\x20\x28\x74\x68\x69\x73\x2e\x6d\x61\x78\x58\x20\x2b\x20\x65\x32\x29\x20\x2f\x20\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x4e\x65\x77\x4d\x69\x6e\x58\x4d\x61\x78\x58\x28\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x49\x6e\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x7a\x6f\x6f\x6d\x55\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x73\x32\x2e\x6d\x69\x6e\x58\x2c\x20\x73\x32\x2e\x6d\x61\x78\x58\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x5a\x6f\x6f\x6d\x4f\x75\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x58\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x29\x2c\x20\x21\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x29\x2e\x67\x65\x74\x55\x54\x43\x46\x75\x6c\x6c\x59\x65\x61\x72\x28\x29\x20\x3c\x20\x31\x65\x33\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x28\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x20\x2b\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x58\x29\x20\x2f\x20\x32\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x20\x2d\x20\x28\x65\x32\x20\x2d\x20\x74\x68\x69\x73\x2e\x6d\x69\x6e\x58\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x58\x20\x2d\x20\x28\x65\x32\x20\x2d\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x58\x29\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x4e\x65\x77\x4d\x69\x6e\x58\x4d\x61\x78\x58\x28\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x4f\x75\x74\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x7a\x6f\x6f\x6d\x55\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x73\x32\x2e\x6d\x69\x6e\x58\x2c\x20\x73\x32\x2e\x6d\x61\x78\x58\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x67\x65\x74\x4e\x65\x77\x4d\x69\x6e\x58\x4d\x61\x78\x58\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6d\x69\x6e\x58\x3a\x20\x69\x32\x20\x3f\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x74\x33\x29\x20\x3a\x20\x74\x33\x2c\x20\x6d\x61\x78\x58\x3a\x20\x69\x32\x20\x3f\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x65\x32\x29\x20\x3a\x20\x65\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x7a\x6f\x6f\x6d\x55\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x65\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x74\x33\x20\x3c\x20\x31\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x31\x2c\x20\x65\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x29\x2c\x20\x65\x32\x20\x2d\x20\x74\x33\x20\x3c\x20\x32\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x74\x33\x2c\x20\x6d\x61\x78\x3a\x20\x65\x32\x20\x7d\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x42\x65\x66\x6f\x72\x65\x5a\x6f\x6f\x6d\x52\x61\x6e\x67\x65\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x73\x32\x2e\x78\x61\x78\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x61\x32\x20\x7d\x2c\x20\x6f\x32\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x61\x78\x69\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x71\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x6f\x32\x2c\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x61\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x67\x72\x6f\x75\x70\x20\x7c\x7c\x20\x28\x72\x32\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x6f\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x72\x32\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x2c\x20\x74\x68\x69\x73\x2e\x7a\x6f\x6f\x6d\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x61\x32\x2c\x20\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x5a\x6f\x6f\x6d\x52\x65\x73\x65\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x7a\x6f\x6f\x6d\x43\x61\x6c\x6c\x62\x61\x63\x6b\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x68\x69\x73\x2e\x65\x76\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x76\x2e\x7a\x6f\x6f\x6d\x65\x64\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x74\x33\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x65\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x42\x65\x66\x6f\x72\x65\x5a\x6f\x6f\x6d\x52\x61\x6e\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x68\x69\x73\x2e\x65\x76\x2e\x62\x65\x66\x6f\x72\x65\x5a\x6f\x6f\x6d\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x76\x2e\x62\x65\x66\x6f\x72\x65\x5a\x6f\x6f\x6d\x28\x74\x68\x69\x73\x2c\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x74\x33\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x65\x32\x20\x7d\x29\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x4d\x65\x6e\x75\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x69\x6e\x64\x6f\x77\x2e\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x65\x6c\x4d\x65\x6e\x75\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x6f\x70\x65\x6e\x22\x29\x20\x3f\x20\x74\x33\x2e\x65\x6c\x4d\x65\x6e\x75\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x6f\x70\x65\x6e\x22\x29\x20\x3a\x20\x74\x33\x2e\x65\x6c\x4d\x65\x6e\x75\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x6f\x70\x65\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x44\x6f\x77\x6e\x6c\x6f\x61\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x76\x67\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x65\x78\x70\x6f\x72\x74\x54\x6f\x53\x56\x47\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x70\x6e\x67\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x65\x78\x70\x6f\x72\x74\x54\x6f\x50\x6e\x67\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x63\x73\x76\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x65\x78\x70\x6f\x72\x74\x54\x6f\x43\x53\x56\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x63\x6f\x6c\x75\x6d\x6e\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x65\x78\x70\x6f\x72\x74\x2e\x63\x73\x76\x2e\x63\x6f\x6c\x75\x6d\x6e\x44\x65\x6c\x69\x6d\x69\x74\x65\x72\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x5a\x6f\x6f\x6d\x52\x65\x73\x65\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x67\x65\x74\x53\x79\x6e\x63\x65\x64\x43\x68\x61\x72\x74\x73\x28\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x34\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x58\x41\x78\x69\x73\x2e\x6d\x69\x6e\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x58\x41\x78\x69\x73\x2e\x6d\x61\x78\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x34\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x72\x65\x76\x65\x72\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x78\x69\x73\x4d\x69\x6e\x4d\x61\x78\x28\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x62\x65\x66\x6f\x72\x65\x52\x65\x73\x65\x74\x5a\x6f\x6f\x6d\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x62\x65\x66\x6f\x72\x65\x52\x65\x73\x65\x74\x5a\x6f\x6f\x6d\x28\x74\x34\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x26\x26\x20\x74\x34\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x72\x65\x76\x65\x72\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x78\x69\x73\x4d\x69\x6e\x4d\x61\x78\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x34\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x7a\x6f\x6f\x6d\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x7b\x20\x6d\x69\x6e\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x2c\x20\x6d\x61\x78\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x7d\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x34\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x65\x6d\x70\x74\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x28\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x61\x32\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x73\x74\x72\x6f\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x49\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x4f\x75\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x61\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x5a\x6f\x6f\x6d\x52\x65\x73\x65\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x4d\x65\x6e\x75\x49\x63\x6f\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x67\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x28\x69\x32\x2c\x20\x64\x74\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x64\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x69\x32\x29\x2c\x20\x28\x73\x32\x20\x3d\x20\x65\x32\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x2e\x63\x74\x78\x20\x3d\x20\x74\x33\x2c\x20\x73\x32\x2e\x77\x20\x3d\x20\x74\x33\x2e\x77\x2c\x20\x73\x32\x2e\x64\x72\x61\x67\x67\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x73\x32\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x2e\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x20\x3d\x20\x5b\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x5d\x2c\x20\x73\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3d\x20\x30\x2c\x20\x73\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3d\x20\x30\x2c\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x58\x20\x3d\x20\x30\x2c\x20\x73\x32\x2e\x65\x6e\x64\x58\x20\x3d\x20\x30\x2c\x20\x73\x32\x2e\x64\x72\x61\x67\x58\x20\x3d\x20\x30\x2c\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x59\x20\x3d\x20\x30\x2c\x20\x73\x32\x2e\x65\x6e\x64\x59\x20\x3d\x20\x30\x2c\x20\x73\x32\x2e\x64\x72\x61\x67\x59\x20\x3d\x20\x30\x2c\x20\x73\x32\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x69\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x20\x3d\x20\x69\x33\x2c\x20\x74\x68\x69\x73\x2e\x7a\x6f\x6f\x6d\x52\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x52\x65\x63\x74\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x7a\x6f\x6f\x6d\x52\x65\x63\x74\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x72\x65\x63\x74\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x22\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x7a\x6f\x6f\x6d\x52\x65\x63\x74\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x78\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x6c\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x52\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x2e\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x28\x7b\x20\x6d\x69\x6e\x58\x3a\x20\x30\x2c\x20\x6d\x69\x6e\x59\x3a\x20\x30\x2c\x20\x6d\x61\x78\x58\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x6d\x61\x78\x59\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x7d\x29\x2e\x6f\x6e\x28\x22\x64\x72\x61\x67\x6d\x6f\x76\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x67\x67\x69\x6e\x67\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x64\x72\x61\x67\x67\x69\x6e\x67\x22\x29\x29\x20\x3a\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x79\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x6c\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x52\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x2e\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x28\x7b\x20\x6d\x69\x6e\x58\x3a\x20\x30\x2c\x20\x6d\x61\x78\x58\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x7d\x29\x2e\x6f\x6e\x28\x22\x64\x72\x61\x67\x6d\x6f\x76\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x67\x67\x69\x6e\x67\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x64\x72\x61\x67\x67\x69\x6e\x67\x22\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x6c\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x52\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x2e\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x28\x29\x2e\x6f\x6e\x28\x22\x64\x72\x61\x67\x6d\x6f\x76\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x67\x67\x69\x6e\x67\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x64\x72\x61\x67\x67\x69\x6e\x67\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x73\x65\x6c\x65\x63\x74\x65\x64\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x68\x61\x72\x74\x43\x6c\x61\x73\x73\x2c\x20\x22\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x76\x67\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x61\x62\x6c\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x74\x34\x2c\x20\x73\x32\x2e\x73\x76\x67\x4d\x6f\x75\x73\x65\x45\x76\x65\x6e\x74\x73\x2e\x62\x69\x6e\x64\x28\x73\x32\x2c\x20\x69\x33\x29\x2c\x20\x7b\x20\x63\x61\x70\x74\x75\x72\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x61\x73\x73\x69\x76\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x73\x74\x72\x6f\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x6c\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x52\x65\x63\x74\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x6c\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x52\x65\x63\x74\x2e\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x28\x66\x61\x6c\x73\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x6c\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x52\x65\x63\x74\x2e\x6f\x66\x66\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x2e\x6f\x66\x66\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x7a\x6f\x6f\x6d\x52\x65\x63\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x52\x65\x63\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x76\x67\x4d\x6f\x75\x73\x65\x45\x76\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2c\x20\x72\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x69\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x74\x79\x70\x65\x20\x3a\x20\x69\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x74\x79\x70\x65\x2c\x20\x6f\x32\x20\x3d\x20\x69\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x61\x75\x74\x6f\x53\x65\x6c\x65\x63\x74\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x73\x68\x69\x66\x74\x4b\x65\x79\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x73\x68\x69\x66\x74\x57\x61\x73\x50\x72\x65\x73\x73\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x73\x32\x2e\x65\x6e\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x50\x61\x6e\x46\x72\x6f\x6d\x54\x6f\x6f\x6c\x62\x61\x72\x28\x6f\x32\x20\x3d\x3d\x3d\x20\x22\x70\x61\x6e\x22\x20\x3f\x20\x22\x7a\x6f\x6f\x6d\x22\x20\x3a\x20\x22\x70\x61\x6e\x22\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x68\x69\x66\x74\x57\x61\x73\x50\x72\x65\x73\x73\x65\x64\x20\x26\x26\x20\x28\x73\x32\x2e\x65\x6e\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x50\x61\x6e\x46\x72\x6f\x6d\x54\x6f\x6f\x6c\x62\x61\x72\x28\x6f\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x69\x66\x74\x57\x61\x73\x50\x72\x65\x73\x73\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x65\x33\x2e\x74\x61\x72\x67\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x2c\x20\x6c\x32\x20\x3d\x20\x65\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x26\x26\x20\x65\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x65\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x29\x2c\x20\x21\x28\x6c\x32\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x22\x29\x20\x7c\x7c\x20\x6c\x32\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x20\x7c\x7c\x20\x6c\x32\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x74\x65\x78\x74\x22\x29\x20\x7c\x7c\x20\x6e\x32\x20\x26\x26\x20\x6e\x32\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x62\x61\x72\x22\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3d\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x7c\x7c\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x20\x3f\x20\x65\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3a\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x20\x3f\x20\x65\x33\x2e\x63\x68\x61\x6e\x67\x65\x64\x54\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3a\x20\x65\x33\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2c\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3d\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x7c\x7c\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x20\x3f\x20\x65\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3a\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x20\x3f\x20\x65\x33\x2e\x63\x68\x61\x6e\x67\x65\x64\x54\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3a\x20\x65\x33\x2e\x63\x6c\x69\x65\x6e\x74\x59\x2c\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x20\x26\x26\x20\x65\x33\x2e\x77\x68\x69\x63\x68\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x61\x32\x2e\x67\x72\x69\x64\x52\x65\x63\x74\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x73\x74\x61\x72\x74\x58\x20\x3d\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x68\x33\x2e\x6c\x65\x66\x74\x2c\x20\x61\x32\x2e\x73\x74\x61\x72\x74\x59\x20\x3d\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x68\x33\x2e\x74\x6f\x70\x2c\x20\x61\x32\x2e\x64\x72\x61\x67\x67\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x20\x26\x26\x20\x65\x33\x2e\x77\x68\x69\x63\x68\x20\x3d\x3d\x3d\x20\x31\x20\x7c\x7c\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x29\x20\x26\x26\x20\x28\x61\x32\x2e\x64\x72\x61\x67\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x28\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x61\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x20\x26\x26\x20\x61\x32\x2e\x70\x61\x6e\x44\x72\x61\x67\x67\x69\x6e\x67\x28\x7b\x20\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x61\x32\x2c\x20\x7a\x6f\x6f\x6d\x74\x79\x70\x65\x3a\x20\x72\x32\x2c\x20\x78\x79\x52\x61\x74\x69\x6f\x73\x3a\x20\x74\x33\x20\x7d\x29\x29\x20\x3a\x20\x28\x61\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x20\x26\x26\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x61\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x20\x26\x26\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x29\x20\x26\x26\x20\x28\x61\x32\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x61\x32\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x77\x69\x6e\x67\x28\x7b\x20\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x61\x32\x2c\x20\x7a\x6f\x6f\x6d\x74\x79\x70\x65\x3a\x20\x72\x32\x20\x7d\x29\x29\x29\x2c\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x20\x7c\x7c\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x20\x7c\x7c\x20\x65\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x69\x64\x52\x65\x63\x74\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x20\x26\x26\x20\x28\x61\x32\x2e\x65\x6e\x64\x58\x20\x3d\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x63\x32\x2e\x6c\x65\x66\x74\x2c\x20\x61\x32\x2e\x65\x6e\x64\x59\x20\x3d\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x63\x32\x2e\x74\x6f\x70\x2c\x20\x61\x32\x2e\x64\x72\x61\x67\x58\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x61\x32\x2e\x65\x6e\x64\x58\x20\x2d\x20\x61\x32\x2e\x73\x74\x61\x72\x74\x58\x29\x2c\x20\x61\x32\x2e\x64\x72\x61\x67\x59\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x61\x32\x2e\x65\x6e\x64\x59\x20\x2d\x20\x61\x32\x2e\x73\x74\x61\x72\x74\x59\x29\x2c\x20\x28\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x29\x20\x26\x26\x20\x61\x32\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x77\x6e\x28\x7b\x20\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x61\x32\x2c\x20\x7a\x6f\x6f\x6d\x74\x79\x70\x65\x3a\x20\x72\x32\x20\x7d\x29\x2c\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x69\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x61\x32\x2e\x64\x65\x6c\x61\x79\x65\x64\x50\x61\x6e\x53\x63\x72\x6f\x6c\x6c\x65\x64\x28\x29\x29\x2c\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x61\x32\x2e\x68\x69\x64\x65\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x29\x2c\x20\x61\x32\x2e\x64\x72\x61\x67\x67\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x61\x6b\x65\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x61\x6b\x65\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x77\x69\x64\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x65\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x6c\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x52\x65\x63\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x7a\x65\x28\x7b\x20\x70\x6f\x69\x6e\x74\x73\x3a\x20\x22\x6c\x2c\x20\x72\x22\x2c\x20\x70\x6f\x69\x6e\x74\x53\x69\x7a\x65\x3a\x20\x38\x2c\x20\x70\x6f\x69\x6e\x74\x54\x79\x70\x65\x3a\x20\x22\x72\x65\x63\x74\x22\x20\x7d\x29\x2e\x72\x65\x73\x69\x7a\x65\x28\x7b\x20\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x3a\x20\x7b\x20\x6d\x69\x6e\x58\x3a\x20\x30\x2c\x20\x6d\x69\x6e\x59\x3a\x20\x30\x2c\x20\x6d\x61\x78\x58\x3a\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x6d\x61\x78\x59\x3a\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x7d\x20\x7d\x29\x2e\x6f\x6e\x28\x22\x72\x65\x73\x69\x7a\x69\x6e\x67\x22\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x67\x67\x69\x6e\x67\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x72\x65\x73\x69\x7a\x69\x6e\x67\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x72\x65\x73\x65\x6c\x65\x63\x74\x65\x64\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x2d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x65\x33\x2e\x78\x52\x61\x74\x69\x6f\x2c\x20\x61\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x69\x33\x2c\x20\x79\x3a\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2d\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x2d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x29\x20\x2f\x20\x65\x33\x2e\x78\x52\x61\x74\x69\x6f\x20\x2d\x20\x69\x33\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x3a\x20\x30\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x3a\x20\x30\x2c\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x28\x61\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x61\x6b\x65\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x44\x72\x61\x67\x67\x61\x62\x6c\x65\x28\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x2c\x20\x6d\x61\x78\x3a\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x7d\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x7b\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x2c\x20\x6f\x32\x20\x3d\x20\x72\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x72\x32\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x6e\x32\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x7a\x6f\x6f\x6d\x52\x65\x63\x74\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x72\x61\x67\x67\x65\x64\x20\x7c\x7c\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x7b\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x20\x2b\x20\x6f\x32\x20\x2b\x20\x22\x2c\x20\x22\x20\x2b\x20\x6c\x32\x20\x2b\x20\x22\x29\x22\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x67\x67\x65\x64\x20\x26\x26\x20\x28\x61\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x31\x29\x2c\x20\x63\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x65\x33\x2c\x20\x79\x3a\x20\x69\x33\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x61\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x73\x32\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x7a\x6f\x6f\x6d\x65\x64\x41\x72\x65\x61\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x7a\x6f\x6f\x6d\x65\x64\x41\x72\x65\x61\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x7a\x6f\x6f\x6d\x65\x64\x41\x72\x65\x61\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x7a\x6f\x6f\x6d\x65\x64\x41\x72\x65\x61\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x7a\x6f\x6f\x6d\x65\x64\x41\x72\x65\x61\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x7d\x29\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x63\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x67\x32\x29\x29\x2c\x20\x68\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x28\x64\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x65\x33\x2c\x20\x79\x3a\x20\x69\x33\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x61\x32\x20\x3e\x20\x30\x20\x3f\x20\x61\x32\x20\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x73\x32\x20\x3e\x20\x30\x20\x3f\x20\x73\x32\x20\x3a\x20\x30\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x68\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x7d\x29\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x64\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x67\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x69\x64\x65\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x26\x26\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x77\x69\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x74\x65\x78\x74\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x7a\x6f\x6f\x6d\x74\x79\x70\x65\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x65\x33\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x52\x65\x63\x74\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x58\x20\x2d\x20\x31\x2c\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x59\x2c\x20\x6c\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x68\x33\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x32\x20\x3d\x20\x73\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x72\x32\x2e\x6c\x65\x66\x74\x20\x2d\x20\x6f\x32\x2c\x20\x64\x32\x20\x3d\x20\x73\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x72\x32\x2e\x74\x6f\x70\x20\x2d\x20\x6e\x32\x2c\x20\x67\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x63\x32\x20\x2b\x20\x6f\x32\x29\x20\x3e\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3f\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2d\x20\x6f\x32\x20\x3a\x20\x73\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x72\x32\x2e\x6c\x65\x66\x74\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x6f\x32\x29\x2c\x20\x6f\x32\x20\x3e\x20\x73\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x72\x32\x2e\x6c\x65\x66\x74\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x63\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x63\x32\x29\x29\x2c\x20\x6e\x32\x20\x3e\x20\x73\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x72\x32\x2e\x74\x6f\x70\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x64\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x64\x32\x29\x29\x2c\x20\x67\x32\x20\x3d\x20\x69\x33\x20\x3d\x3d\x3d\x20\x22\x78\x22\x20\x3f\x20\x7b\x20\x78\x3a\x20\x6c\x32\x20\x3f\x20\x6f\x32\x20\x2d\x20\x63\x32\x20\x3a\x20\x6f\x32\x2c\x20\x79\x3a\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x63\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x7d\x20\x3a\x20\x69\x33\x20\x3d\x3d\x3d\x20\x22\x79\x22\x20\x3f\x20\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x68\x33\x20\x3f\x20\x6e\x32\x20\x2d\x20\x64\x32\x20\x3a\x20\x6e\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x64\x32\x20\x7d\x20\x3a\x20\x7b\x20\x78\x3a\x20\x6c\x32\x20\x3f\x20\x6f\x32\x20\x2d\x20\x63\x32\x20\x3a\x20\x6f\x32\x2c\x20\x79\x3a\x20\x68\x33\x20\x3f\x20\x6e\x32\x20\x2d\x20\x64\x32\x20\x3a\x20\x6e\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x63\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x64\x32\x20\x7d\x2c\x20\x73\x32\x2e\x64\x72\x61\x77\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x28\x67\x32\x29\x2c\x20\x73\x32\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x67\x67\x69\x6e\x67\x28\x22\x72\x65\x73\x69\x7a\x69\x6e\x67\x22\x29\x2c\x20\x67\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x67\x67\x69\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x63\x74\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x72\x65\x73\x69\x7a\x69\x6e\x67\x22\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x33\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x72\x32\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x74\x34\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6c\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x6e\x32\x28\x22\x78\x22\x29\x2c\x20\x79\x3a\x20\x6e\x32\x28\x22\x79\x22\x29\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x6e\x32\x28\x22\x77\x69\x64\x74\x68\x22\x29\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x6e\x32\x28\x22\x68\x65\x69\x67\x68\x74\x22\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x6c\x32\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x28\x63\x6c\x65\x61\x72\x54\x69\x6d\x65\x6f\x75\x74\x28\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x73\x69\x7a\x65\x54\x69\x6d\x65\x72\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x52\x65\x73\x69\x7a\x65\x54\x69\x6d\x65\x72\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x34\x20\x3d\x20\x69\x33\x2e\x67\x72\x69\x64\x52\x65\x63\x74\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x65\x34\x20\x3d\x20\x72\x32\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x6f\x33\x20\x3d\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x2b\x20\x28\x65\x34\x2e\x6c\x65\x66\x74\x20\x2d\x20\x74\x34\x2e\x6c\x65\x66\x74\x29\x20\x2a\x20\x73\x32\x2e\x78\x52\x61\x74\x69\x6f\x2c\x20\x6d\x61\x78\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x2b\x20\x28\x65\x34\x2e\x72\x69\x67\x68\x74\x20\x2d\x20\x74\x34\x2e\x6c\x65\x66\x74\x29\x20\x2a\x20\x73\x32\x2e\x78\x52\x61\x74\x69\x6f\x20\x7d\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x2b\x20\x28\x74\x34\x2e\x62\x6f\x74\x74\x6f\x6d\x20\x2d\x20\x65\x34\x2e\x62\x6f\x74\x74\x6f\x6d\x29\x20\x2a\x20\x73\x32\x2e\x79\x52\x61\x74\x69\x6f\x5b\x30\x5d\x2c\x20\x6d\x61\x78\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x61\x78\x20\x2d\x20\x28\x65\x34\x2e\x74\x6f\x70\x20\x2d\x20\x74\x34\x2e\x74\x6f\x70\x29\x20\x2a\x20\x73\x32\x2e\x79\x52\x61\x74\x69\x6f\x5b\x30\x5d\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x69\x33\x2e\x63\x74\x78\x2c\x20\x6f\x33\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x72\x75\x73\x68\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x62\x72\x75\x73\x68\x53\x63\x72\x6f\x6c\x6c\x65\x64\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x62\x72\x75\x73\x68\x53\x63\x72\x6f\x6c\x6c\x65\x64\x28\x69\x33\x2e\x63\x74\x78\x2c\x20\x6f\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6f\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x44\x72\x61\x77\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x74\x65\x78\x74\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x7a\x6f\x6f\x6d\x74\x79\x70\x65\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x65\x33\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x73\x74\x61\x72\x74\x58\x20\x3e\x20\x73\x32\x2e\x65\x6e\x64\x58\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x58\x20\x3d\x20\x73\x32\x2e\x65\x6e\x64\x58\x2c\x20\x73\x32\x2e\x65\x6e\x64\x58\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x73\x74\x61\x72\x74\x59\x20\x3e\x20\x73\x32\x2e\x65\x6e\x64\x59\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x59\x20\x3d\x20\x73\x32\x2e\x65\x6e\x64\x59\x2c\x20\x73\x32\x2e\x65\x6e\x64\x59\x20\x3d\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3f\x20\x28\x68\x33\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x2b\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x58\x20\x2a\x20\x72\x32\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x2c\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x2b\x20\x73\x32\x2e\x65\x6e\x64\x58\x20\x2a\x20\x72\x32\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x29\x20\x3a\x20\x28\x68\x33\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x2b\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x58\x20\x2a\x20\x72\x32\x2e\x78\x52\x61\x74\x69\x6f\x2c\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x2e\x6e\x69\x63\x65\x4d\x69\x6e\x20\x2b\x20\x73\x32\x2e\x65\x6e\x64\x58\x20\x2a\x20\x72\x32\x2e\x78\x52\x61\x74\x69\x6f\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x67\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x65\x34\x5d\x2e\x6e\x69\x63\x65\x4d\x61\x78\x20\x2d\x20\x72\x32\x2e\x79\x52\x61\x74\x69\x6f\x5b\x65\x34\x5d\x20\x2a\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x59\x29\x2c\x20\x67\x32\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x65\x34\x5d\x2e\x6e\x69\x63\x65\x4d\x61\x78\x20\x2d\x20\x72\x32\x2e\x79\x52\x61\x74\x69\x6f\x5b\x65\x34\x5d\x20\x2a\x20\x73\x32\x2e\x65\x6e\x64\x59\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x73\x32\x2e\x64\x72\x61\x67\x67\x65\x64\x20\x26\x26\x20\x28\x73\x32\x2e\x64\x72\x61\x67\x58\x20\x3e\x20\x31\x30\x20\x7c\x7c\x20\x73\x32\x2e\x64\x72\x61\x67\x59\x20\x3e\x20\x31\x30\x29\x20\x26\x26\x20\x68\x33\x20\x21\x3d\x3d\x20\x63\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x29\x2c\x20\x70\x33\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x68\x33\x29\x2c\x20\x63\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x63\x32\x29\x2c\x20\x68\x33\x20\x3c\x20\x31\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x31\x2c\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x29\x2c\x20\x63\x32\x20\x2d\x20\x68\x33\x20\x3c\x20\x32\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x68\x33\x20\x2b\x20\x31\x29\x29\x2c\x20\x69\x33\x20\x21\x3d\x3d\x20\x22\x78\x79\x22\x20\x26\x26\x20\x69\x33\x20\x21\x3d\x3d\x20\x22\x78\x22\x20\x7c\x7c\x20\x28\x70\x33\x20\x3d\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x68\x33\x2c\x20\x6d\x61\x78\x3a\x20\x63\x32\x20\x7d\x29\x2c\x20\x69\x33\x20\x21\x3d\x3d\x20\x22\x78\x79\x22\x20\x26\x26\x20\x69\x33\x20\x21\x3d\x3d\x20\x22\x79\x22\x20\x7c\x7c\x20\x75\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x5b\x65\x34\x5d\x2e\x6d\x69\x6e\x20\x3d\x20\x67\x32\x5b\x65\x34\x5d\x2c\x20\x75\x32\x5b\x65\x34\x5d\x2e\x6d\x61\x78\x20\x3d\x20\x64\x32\x5b\x65\x34\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x61\x78\x69\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x6e\x65\x77\x20\x71\x28\x73\x32\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x20\x3d\x20\x66\x32\x2e\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x28\x73\x32\x2e\x63\x74\x78\x2c\x20\x75\x32\x2c\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x70\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x6f\x32\x2e\x67\x65\x74\x42\x65\x66\x6f\x72\x65\x5a\x6f\x6f\x6d\x52\x61\x6e\x67\x65\x28\x70\x33\x2c\x20\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x62\x32\x2e\x78\x61\x78\x69\x73\x20\x3f\x20\x62\x32\x2e\x78\x61\x78\x69\x73\x20\x3a\x20\x70\x33\x2c\x20\x75\x32\x20\x3d\x20\x62\x32\x2e\x79\x61\x78\x69\x73\x20\x3f\x20\x62\x32\x2e\x79\x61\x78\x69\x73\x20\x3a\x20\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x70\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x67\x72\x6f\x75\x70\x20\x7c\x7c\x20\x28\x76\x32\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x75\x32\x29\x2c\x20\x73\x32\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x76\x32\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x6f\x32\x2e\x7a\x6f\x6f\x6d\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x70\x33\x2c\x20\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x45\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x32\x2c\x20\x79\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x32\x20\x3d\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x68\x33\x2c\x20\x6d\x61\x78\x3a\x20\x63\x32\x20\x7d\x2c\x20\x69\x33\x20\x21\x3d\x3d\x20\x22\x78\x79\x22\x20\x26\x26\x20\x69\x33\x20\x21\x3d\x3d\x20\x22\x79\x22\x20\x7c\x7c\x20\x28\x79\x32\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x29\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x32\x5b\x65\x34\x5d\x2e\x6d\x69\x6e\x20\x3d\x20\x67\x32\x5b\x65\x34\x5d\x2c\x20\x79\x32\x5b\x65\x34\x5d\x2e\x6d\x61\x78\x20\x3d\x20\x64\x32\x5b\x65\x34\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x73\x32\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x73\x32\x2e\x63\x74\x78\x2c\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x6d\x32\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x79\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x6e\x44\x72\x61\x67\x67\x69\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x74\x65\x78\x74\x2c\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x43\x6c\x69\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x78\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x43\x6c\x69\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x78\x20\x2d\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2c\x20\x72\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x43\x6c\x69\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x79\x20\x2d\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x29\x20\x3e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x72\x32\x29\x20\x26\x26\x20\x73\x32\x20\x3e\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x3a\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x29\x20\x3e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x72\x32\x29\x20\x26\x26\x20\x73\x32\x20\x3c\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x3a\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x72\x32\x29\x20\x3e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x29\x20\x26\x26\x20\x72\x32\x20\x3e\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x22\x75\x70\x22\x20\x3a\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x72\x32\x29\x20\x3e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x29\x20\x26\x26\x20\x72\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x22\x64\x6f\x77\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x43\x6c\x69\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x7b\x20\x78\x3a\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2c\x20\x79\x3a\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3f\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x20\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x2c\x20\x6e\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x3f\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x20\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x61\x32\x2e\x70\x61\x6e\x53\x63\x72\x6f\x6c\x6c\x65\x64\x28\x6f\x32\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x6c\x61\x79\x65\x64\x50\x61\x6e\x53\x63\x72\x6f\x6c\x6c\x65\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x2c\x20\x61\x32\x20\x3d\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x2d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x3f\x20\x28\x65\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x2b\x20\x61\x32\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x2b\x20\x61\x32\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x65\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x2d\x20\x61\x32\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x2d\x20\x61\x32\x29\x2c\x20\x65\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x65\x33\x29\x2c\x20\x69\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x69\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x53\x63\x72\x6f\x6c\x6c\x65\x64\x43\x68\x61\x72\x74\x28\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x65\x33\x2c\x20\x6d\x61\x78\x3a\x20\x69\x33\x20\x7d\x20\x7d\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x6e\x53\x63\x72\x6f\x6c\x6c\x65\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2c\x20\x73\x32\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x29\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x78\x52\x61\x74\x69\x6f\x2c\x20\x6f\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x2c\x20\x6e\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x2c\x20\x6f\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x6e\x32\x20\x3d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x6c\x65\x66\x74\x22\x20\x3f\x20\x28\x74\x33\x20\x3d\x20\x6f\x32\x20\x2b\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x35\x20\x2a\x20\x72\x32\x2c\x20\x65\x33\x20\x3d\x20\x6e\x32\x20\x2b\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x35\x20\x2a\x20\x72\x32\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x69\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x72\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x6f\x32\x20\x2d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x35\x20\x2a\x20\x72\x32\x2c\x20\x65\x33\x20\x3d\x20\x6e\x32\x20\x2d\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x35\x20\x2a\x20\x72\x32\x29\x2c\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x20\x7c\x7c\x20\x28\x74\x33\x20\x3c\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x69\x6e\x58\x20\x7c\x7c\x20\x65\x33\x20\x3e\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x4d\x61\x78\x58\x29\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x6f\x32\x2c\x20\x65\x33\x20\x3d\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x74\x33\x2c\x20\x6d\x61\x78\x3a\x20\x65\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x61\x78\x69\x73\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x71\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x73\x32\x2c\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x6c\x32\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x74\x33\x2c\x20\x6d\x61\x78\x3a\x20\x65\x33\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x67\x72\x6f\x75\x70\x20\x7c\x7c\x20\x28\x68\x33\x2e\x79\x61\x78\x69\x73\x20\x3d\x20\x73\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x53\x63\x72\x6f\x6c\x6c\x65\x64\x43\x68\x61\x72\x74\x28\x68\x33\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x75\x70\x64\x61\x74\x65\x53\x63\x72\x6f\x6c\x6c\x65\x64\x43\x68\x61\x72\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x33\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x63\x72\x6f\x6c\x6c\x65\x64\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x63\x72\x6f\x6c\x6c\x65\x64\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x65\x33\x2c\x20\x6d\x61\x78\x3a\x20\x69\x33\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x75\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2e\x63\x74\x78\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4e\x65\x61\x72\x65\x73\x74\x56\x61\x6c\x75\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x47\x72\x69\x64\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x59\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x6c\x32\x20\x3d\x20\x6f\x32\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x68\x33\x20\x3d\x20\x6e\x32\x20\x2f\x20\x28\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2d\x20\x31\x29\x2c\x20\x63\x32\x20\x3d\x20\x6c\x32\x20\x2f\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x21\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x21\x64\x32\x20\x7c\x7c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x68\x33\x20\x3d\x20\x6e\x32\x20\x2f\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x61\x32\x20\x2d\x20\x6f\x32\x2e\x6c\x65\x66\x74\x20\x2d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x62\x61\x72\x50\x61\x64\x46\x6f\x72\x4e\x75\x6d\x65\x72\x69\x63\x41\x78\x69\x73\x2c\x20\x75\x32\x20\x3d\x20\x73\x32\x20\x2d\x20\x6f\x32\x2e\x74\x6f\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x67\x32\x20\x3c\x20\x30\x20\x7c\x7c\x20\x75\x32\x20\x3c\x20\x30\x20\x7c\x7c\x20\x67\x32\x20\x3e\x20\x6e\x32\x20\x7c\x7c\x20\x75\x32\x20\x3e\x20\x6c\x32\x20\x3f\x20\x28\x65\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x68\x6f\x76\x65\x72\x69\x6e\x67\x2d\x7a\x6f\x6f\x6d\x22\x29\x2c\x20\x65\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x68\x6f\x76\x65\x72\x69\x6e\x67\x2d\x70\x61\x6e\x22\x29\x29\x20\x3a\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x45\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x28\x65\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x68\x6f\x76\x65\x72\x69\x6e\x67\x2d\x70\x61\x6e\x22\x29\x2c\x20\x65\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x68\x6f\x76\x65\x72\x69\x6e\x67\x2d\x7a\x6f\x6f\x6d\x22\x29\x29\x20\x3a\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x6e\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x28\x65\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x68\x6f\x76\x65\x72\x69\x6e\x67\x2d\x7a\x6f\x6f\x6d\x22\x29\x2c\x20\x65\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x68\x6f\x76\x65\x72\x69\x6e\x67\x2d\x70\x61\x6e\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x67\x32\x20\x2f\x20\x68\x33\x29\x2c\x20\x66\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x75\x32\x20\x2f\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x32\x20\x26\x26\x20\x21\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x67\x32\x20\x2f\x20\x68\x33\x29\x2c\x20\x70\x33\x20\x2d\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x76\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x6d\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x79\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x32\x2e\x70\x75\x73\x68\x28\x5b\x74\x34\x5b\x30\x5d\x20\x2b\x20\x31\x65\x2d\x36\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x34\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x59\x76\x61\x6c\x75\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x32\x2e\x70\x75\x73\x68\x28\x5b\x74\x34\x5b\x30\x5d\x20\x2b\x20\x31\x65\x2d\x36\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x34\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6d\x32\x20\x3d\x20\x6d\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x79\x32\x20\x3d\x20\x79\x32\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x74\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2e\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x28\x29\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x6b\x32\x20\x3d\x20\x67\x32\x20\x2a\x20\x28\x77\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x6e\x32\x29\x2c\x20\x41\x32\x20\x3d\x20\x75\x32\x20\x2a\x20\x28\x77\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x20\x28\x76\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6c\x6f\x73\x65\x73\x74\x49\x6e\x4d\x75\x6c\x74\x69\x41\x72\x72\x61\x79\x28\x6b\x32\x2c\x20\x41\x32\x2c\x20\x6d\x32\x2c\x20\x79\x32\x29\x29\x2e\x69\x6e\x64\x65\x78\x2c\x20\x70\x33\x20\x3d\x20\x76\x32\x2e\x6a\x2c\x20\x62\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x6d\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x5b\x62\x32\x5d\x2c\x20\x70\x33\x20\x3d\x20\x28\x76\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6c\x6f\x73\x65\x73\x74\x49\x6e\x41\x72\x72\x61\x79\x28\x6b\x32\x2c\x20\x6d\x32\x29\x29\x2e\x69\x6e\x64\x65\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x62\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x2d\x31\x20\x3a\x20\x62\x32\x2c\x20\x28\x21\x70\x33\x20\x7c\x7c\x20\x70\x33\x20\x3c\x20\x31\x29\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x30\x29\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x66\x32\x20\x3a\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x70\x33\x2c\x20\x7b\x20\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x3a\x20\x62\x32\x2c\x20\x6a\x3a\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x66\x32\x20\x3a\x20\x70\x33\x2c\x20\x68\x6f\x76\x65\x72\x58\x3a\x20\x67\x32\x2c\x20\x68\x6f\x76\x65\x72\x59\x3a\x20\x75\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x6f\x73\x65\x73\x74\x49\x6e\x4d\x75\x6c\x74\x69\x41\x72\x72\x61\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x32\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x3f\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x46\x69\x72\x73\x74\x41\x63\x74\x69\x76\x65\x58\x41\x72\x72\x61\x79\x28\x69\x32\x29\x20\x3a\x20\x6f\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x69\x32\x5b\x72\x32\x5d\x5b\x30\x5d\x2c\x20\x68\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x33\x20\x2d\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x33\x20\x2d\x20\x65\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x20\x3c\x20\x68\x33\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x61\x33\x2c\x20\x6e\x32\x20\x3d\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6e\x32\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x61\x32\x5b\x72\x32\x5d\x5b\x6e\x32\x5d\x2c\x20\x64\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x20\x2d\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x72\x32\x2c\x20\x61\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x32\x20\x2d\x20\x74\x34\x5b\x6e\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x20\x3c\x20\x64\x32\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x61\x33\x2c\x20\x6f\x32\x20\x3d\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x6f\x32\x2c\x20\x6a\x3a\x20\x6e\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x46\x69\x72\x73\x74\x41\x63\x74\x69\x76\x65\x58\x41\x72\x72\x61\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x3f\x20\x65\x33\x20\x3a\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x73\x32\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x73\x32\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x61\x32\x5b\x73\x32\x5d\x3b\x0a\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\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x6f\x73\x65\x73\x74\x49\x6e\x41\x72\x72\x61\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x5b\x30\x5d\x2c\x20\x61\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x33\x20\x2d\x20\x69\x32\x29\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x33\x20\x2d\x20\x65\x32\x5b\x72\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3c\x20\x73\x32\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x6f\x32\x2c\x20\x61\x32\x20\x3d\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x61\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x58\x6f\x76\x65\x72\x6c\x61\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x5b\x61\x32\x5d\x5b\x74\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x69\x32\x5b\x61\x32\x20\x2b\x20\x31\x5d\x5b\x74\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x69\x32\x5b\x61\x32\x5d\x5b\x74\x33\x5d\x20\x21\x3d\x3d\x20\x69\x32\x5b\x61\x32\x20\x2b\x20\x31\x5d\x5b\x74\x33\x5d\x20\x26\x26\x20\x65\x32\x2e\x70\x75\x73\x68\x28\x22\x75\x6e\x45\x71\x75\x61\x6c\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x49\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x53\x61\x6d\x65\x4c\x65\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x69\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x5b\x69\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x65\x32\x5b\x69\x32\x20\x2b\x20\x31\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\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\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x42\x61\x72\x73\x48\x65\x69\x67\x68\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x75\x28\x74\x33\x29\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x2b\x20\x65\x32\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x45\x6c\x4d\x61\x72\x6b\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x41\x6c\x6c\x4d\x61\x72\x6b\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x2d\x77\x72\x61\x70\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x74\x33\x20\x3d\x20\x75\x28\x74\x33\x29\x29\x2e\x73\x6f\x72\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x75\x6d\x62\x65\x72\x28\x65\x33\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x29\x20\x3c\x20\x4e\x75\x6d\x62\x65\x72\x28\x74\x34\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x29\x20\x3f\x20\x30\x20\x3a\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x70\x75\x73\x68\x28\x74\x34\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x73\x4d\x61\x72\x6b\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x4d\x61\x72\x6b\x65\x72\x73\x28\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x45\x6c\x42\x61\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x2c\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2d\x73\x65\x72\x69\x65\x73\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x6f\x78\x50\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x73\x42\x61\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x42\x61\x72\x73\x28\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x48\x6f\x76\x65\x72\x4d\x61\x72\x6b\x65\x72\x53\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x6f\x76\x65\x72\x2e\x73\x69\x7a\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x74\x33\x5d\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x6f\x76\x65\x72\x2e\x73\x69\x7a\x65\x4f\x66\x66\x73\x65\x74\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x41\x6c\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x53\x65\x72\x69\x65\x73\x47\x72\x6f\x75\x70\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x61\x6c\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x53\x65\x72\x69\x65\x73\x47\x72\x6f\x75\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x69\x32\x2e\x61\x6c\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x53\x65\x72\x69\x65\x73\x47\x72\x6f\x75\x70\x73\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x61\x6c\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x53\x65\x72\x69\x65\x73\x47\x72\x6f\x75\x70\x73\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x65\x6e\x61\x62\x6c\x65\x22\x20\x3f\x20\x28\x61\x32\x5b\x73\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x61\x32\x5b\x73\x32\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x74\x65\x6d\x73\x2e\x64\x69\x73\x70\x6c\x61\x79\x29\x20\x3a\x20\x28\x61\x32\x5b\x73\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x61\x32\x5b\x73\x32\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x70\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2e\x63\x74\x78\x2c\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x20\x3d\x20\x6e\x65\x77\x20\x75\x74\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x53\x65\x72\x69\x65\x73\x54\x65\x78\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x73\x68\x61\x72\x65\x64\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x65\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x74\x74\x49\x74\x65\x6d\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x73\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x6f\x32\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x63\x75\x73\x74\x6f\x6d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x43\x75\x73\x74\x6f\x6d\x54\x6f\x6f\x6c\x74\x69\x70\x28\x7b\x20\x69\x3a\x20\x72\x32\x2c\x20\x6a\x3a\x20\x6e\x32\x2c\x20\x79\x31\x3a\x20\x6c\x32\x2c\x20\x79\x32\x3a\x20\x68\x33\x2c\x20\x77\x3a\x20\x64\x32\x20\x7d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x74\x6f\x67\x67\x6c\x65\x41\x63\x74\x69\x76\x65\x49\x6e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x56\x61\x6c\x75\x65\x73\x54\x6f\x50\x72\x69\x6e\x74\x28\x7b\x20\x69\x3a\x20\x72\x32\x2c\x20\x6a\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x72\x69\x6e\x74\x4c\x61\x62\x65\x6c\x73\x28\x7b\x20\x69\x3a\x20\x72\x32\x2c\x20\x6a\x3a\x20\x6e\x32\x2c\x20\x76\x61\x6c\x75\x65\x73\x3a\x20\x67\x32\x2c\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x61\x32\x2c\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x69\x32\x2c\x20\x65\x3a\x20\x63\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x3d\x20\x75\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x75\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x72\x69\x6e\x74\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x73\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x74\x74\x49\x74\x65\x6d\x73\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x73\x68\x61\x72\x65\x64\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x64\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x67\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x74\x34\x5d\x20\x26\x26\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x74\x34\x5d\x5b\x72\x32\x5d\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x74\x34\x5d\x5b\x72\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x75\x32\x20\x3d\x20\x6f\x32\x2e\x78\x56\x61\x6c\x2c\x20\x70\x33\x20\x3d\x20\x6f\x32\x2e\x7a\x56\x61\x6c\x2c\x20\x66\x32\x20\x3d\x20\x6f\x32\x2e\x78\x41\x78\x69\x73\x54\x54\x56\x61\x6c\x2c\x20\x78\x32\x20\x3d\x20\x22\x22\x2c\x20\x62\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x73\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x26\x26\x20\x28\x62\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x72\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x6f\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x33\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x53\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x28\x7b\x20\x66\x6e\x3a\x20\x76\x33\x2e\x79\x4c\x62\x54\x69\x74\x6c\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x6a\x3a\x20\x72\x32\x20\x7d\x29\x2c\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x26\x26\x20\x28\x78\x32\x20\x3d\x20\x76\x33\x2e\x79\x4c\x62\x54\x69\x74\x6c\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x53\x74\x72\x69\x6e\x67\x28\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x73\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x2e\x78\x29\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x63\x32\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x33\x20\x3d\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x6e\x76\x65\x72\x73\x65\x4f\x72\x64\x65\x72\x20\x3f\x20\x6f\x33\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x33\x2e\x79\x4c\x62\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x74\x35\x5d\x5b\x72\x32\x5d\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x74\x35\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x63\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x33\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x28\x6d\x33\x29\x2c\x20\x78\x32\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x53\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x28\x7b\x20\x66\x6e\x3a\x20\x76\x33\x2e\x79\x4c\x62\x54\x69\x74\x6c\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x6d\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x6a\x3a\x20\x72\x32\x20\x7d\x29\x2c\x20\x62\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6d\x33\x5d\x2c\x20\x69\x32\x20\x3d\x20\x79\x33\x28\x6d\x33\x29\x2c\x20\x67\x32\x28\x6d\x33\x29\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x6d\x33\x5d\x5b\x72\x32\x5d\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x61\x74\x74\x72\x73\x3a\x20\x74\x35\x2c\x20\x76\x61\x6c\x3a\x20\x76\x33\x2e\x79\x4c\x62\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x74\x35\x2e\x76\x61\x6c\x75\x65\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x6d\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x63\x32\x20\x7d\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\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\x76\x61\x72\x20\x77\x32\x2c\x20\x6b\x32\x20\x3d\x20\x68\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x28\x77\x32\x20\x3d\x20\x68\x33\x2e\x74\x61\x72\x67\x65\x74\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x77\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x77\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x6c\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x32\x20\x26\x26\x20\x28\x62\x32\x20\x3d\x20\x6b\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x75\x72\x6c\x22\x29\x20\x21\x3d\x3d\x20\x2d\x31\x20\x3f\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x6b\x32\x2e\x73\x75\x62\x73\x74\x72\x28\x34\x29\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x2d\x31\x29\x29\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x5b\x30\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x72\x6f\x6b\x65\x22\x29\x20\x3a\x20\x6b\x32\x29\x2c\x20\x69\x32\x20\x3d\x20\x79\x33\x28\x73\x32\x29\x2c\x20\x67\x32\x28\x73\x32\x29\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x73\x32\x5d\x5b\x72\x32\x5d\x29\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x73\x32\x5d\x5b\x72\x32\x5d\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x61\x74\x74\x72\x73\x3a\x20\x74\x35\x2c\x20\x76\x61\x6c\x3a\x20\x76\x33\x2e\x79\x4c\x62\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x74\x35\x2e\x76\x61\x6c\x75\x65\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x2c\x20\x77\x3a\x20\x63\x32\x20\x7d\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\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\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x76\x33\x2e\x79\x4c\x62\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x73\x32\x5d\x2c\x20\x65\x28\x65\x28\x7b\x7d\x2c\x20\x63\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x20\x7d\x29\x29\x29\x2c\x20\x61\x32\x2e\x44\x4f\x4d\x48\x61\x6e\x64\x6c\x69\x6e\x67\x28\x7b\x20\x69\x3a\x20\x73\x32\x2c\x20\x74\x3a\x20\x6d\x33\x2c\x20\x6a\x3a\x20\x72\x32\x2c\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x6e\x32\x2c\x20\x76\x61\x6c\x75\x65\x73\x3a\x20\x7b\x20\x76\x61\x6c\x3a\x20\x69\x32\x2c\x20\x67\x6f\x61\x6c\x56\x61\x6c\x73\x3a\x20\x64\x32\x2c\x20\x78\x56\x61\x6c\x3a\x20\x75\x32\x2c\x20\x78\x41\x78\x69\x73\x54\x54\x56\x61\x6c\x3a\x20\x66\x32\x2c\x20\x7a\x56\x61\x6c\x3a\x20\x70\x33\x20\x7d\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x32\x2c\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x6c\x32\x2c\x20\x70\x43\x6f\x6c\x6f\x72\x3a\x20\x62\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6d\x32\x20\x3d\x20\x30\x2c\x20\x79\x32\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x6d\x32\x20\x3c\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6d\x32\x2b\x2b\x2c\x20\x79\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x32\x28\x6d\x32\x2c\x20\x79\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x74\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x29\x20\x3f\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x5b\x74\x33\x5d\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x5b\x74\x33\x5d\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x65\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x5b\x74\x33\x5d\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x5b\x74\x33\x5d\x2e\x74\x69\x74\x6c\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x20\x3a\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x2e\x74\x69\x74\x6c\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x56\x61\x6c\x2e\x74\x69\x74\x6c\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x29\x20\x3a\x20\x65\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x79\x2e\x74\x69\x74\x6c\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x30\x5d\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x30\x5d\x20\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x7b\x20\x79\x4c\x62\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x61\x32\x2c\x20\x79\x4c\x62\x54\x69\x74\x6c\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x65\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x66\x6e\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x28\x53\x74\x72\x69\x6e\x67\x28\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x69\x32\x5d\x29\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x61\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x77\x3a\x20\x72\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x44\x4f\x4d\x48\x61\x6e\x64\x6c\x69\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x74\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x74\x74\x49\x74\x65\x6d\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x73\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x73\x68\x61\x72\x65\x64\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x70\x43\x6f\x6c\x6f\x72\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x63\x32\x20\x3d\x20\x73\x32\x2e\x76\x61\x6c\x2c\x20\x64\x32\x20\x3d\x20\x73\x32\x2e\x67\x6f\x61\x6c\x56\x61\x6c\x73\x2c\x20\x67\x32\x20\x3d\x20\x73\x32\x2e\x78\x56\x61\x6c\x2c\x20\x75\x32\x20\x3d\x20\x73\x32\x2e\x78\x41\x78\x69\x73\x54\x54\x56\x61\x6c\x2c\x20\x70\x33\x20\x3d\x20\x73\x32\x2e\x7a\x56\x61\x6c\x2c\x20\x66\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x32\x20\x3d\x20\x61\x32\x5b\x65\x32\x5d\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x2c\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x69\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6f\x72\x20\x26\x26\x20\x28\x61\x32\x5b\x65\x32\x5d\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\x6e\x32\x2c\x20\x66\x32\x5b\x30\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x29\x2c\x20\x68\x33\x2e\x73\x68\x6f\x77\x54\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x20\x26\x26\x20\x28\x68\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x68\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x69\x74\x6c\x65\x22\x29\x29\x2c\x20\x68\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x67\x32\x29\x2c\x20\x68\x33\x2e\x69\x73\x58\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x28\x68\x33\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x75\x32\x20\x21\x3d\x3d\x20\x22\x22\x20\x3f\x20\x75\x32\x20\x3a\x20\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x61\x32\x5b\x65\x32\x5d\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x79\x2d\x6c\x61\x62\x65\x6c\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x78\x32\x20\x26\x26\x20\x28\x78\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x72\x32\x20\x7c\x7c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x61\x32\x5b\x65\x32\x5d\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x79\x2d\x76\x61\x6c\x75\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x32\x20\x26\x26\x20\x28\x62\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x63\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x63\x32\x20\x3a\x20\x22\x22\x29\x2c\x20\x66\x32\x5b\x30\x5d\x20\x26\x26\x20\x66\x32\x5b\x30\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x20\x26\x26\x20\x28\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x29\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x5b\x65\x32\x5d\x29\x2c\x20\x66\x32\x5b\x30\x5d\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\x6e\x32\x29\x2c\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x28\x66\x32\x5b\x30\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x61\x32\x5b\x65\x32\x5d\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x6c\x61\x62\x65\x6c\x22\x29\x2c\x20\x6d\x32\x20\x3d\x20\x61\x32\x5b\x65\x32\x5d\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x76\x61\x6c\x75\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x34\x20\x3d\x20\x22\x3c\x64\x69\x76\x20\x3e\x22\x2c\x20\x65\x33\x20\x3d\x20\x22\x3c\x64\x69\x76\x3e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x20\x2b\x3d\x20\x27\x20\x3c\x64\x69\x76\x20\x73\x74\x79\x6c\x65\x3d\x22\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x66\x6c\x65\x78\x22\x3e\x3c\x73\x70\x61\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6d\x61\x72\x6b\x65\x72\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x27\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x33\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x27\x3b\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x33\x70\x78\x3b\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x30\x3b\x20\x74\x6f\x70\x3a\x20\x35\x70\x78\x3b\x22\x3e\x3c\x2f\x73\x70\x61\x6e\x3e\x20\x27\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x33\x2e\x61\x74\x74\x72\x73\x2e\x6e\x61\x6d\x65\x2c\x20\x22\x3c\x2f\x64\x69\x76\x3e\x22\x29\x2c\x20\x65\x33\x20\x2b\x3d\x20\x22\x3c\x64\x69\x76\x3e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x33\x2e\x76\x61\x6c\x2c\x20\x22\x3c\x2f\x64\x69\x76\x3e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x76\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x74\x34\x20\x2b\x20\x22\x3c\x2f\x64\x69\x76\x3e\x22\x2c\x20\x6d\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x65\x33\x20\x2b\x20\x22\x3c\x2f\x64\x69\x76\x3e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x47\x6f\x61\x6c\x73\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x29\x20\x3f\x20\x79\x32\x28\x29\x20\x3a\x20\x28\x76\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x22\x22\x2c\x20\x6d\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x22\x22\x29\x20\x3a\x20\x79\x32\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x22\x22\x2c\x20\x6d\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x33\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x32\x5b\x65\x32\x5d\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x7a\x2d\x6c\x61\x62\x65\x6c\x22\x29\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x7a\x2e\x74\x69\x74\x6c\x65\x2c\x20\x61\x32\x5b\x65\x32\x5d\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x7a\x2d\x76\x61\x6c\x75\x65\x22\x29\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x70\x33\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x70\x33\x20\x3a\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x26\x26\x20\x66\x32\x5b\x30\x5d\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x32\x29\x20\x3e\x20\x2d\x31\x20\x7c\x7c\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x32\x29\x20\x3e\x20\x2d\x31\x20\x3f\x20\x66\x32\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x3a\x20\x66\x32\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x74\x65\x6d\x73\x2e\x64\x69\x73\x70\x6c\x61\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x41\x63\x74\x69\x76\x65\x49\x6e\x61\x63\x74\x69\x76\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x74\x6f\x67\x67\x6c\x65\x41\x6c\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x53\x65\x72\x69\x65\x73\x47\x72\x6f\x75\x70\x73\x28\x22\x65\x6e\x61\x62\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x74\x6f\x67\x67\x6c\x65\x41\x6c\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x53\x65\x72\x69\x65\x73\x47\x72\x6f\x75\x70\x73\x28\x22\x64\x69\x73\x61\x62\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x26\x26\x20\x28\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x69\x32\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x74\x65\x6d\x73\x2e\x64\x69\x73\x70\x6c\x61\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x56\x61\x6c\x75\x65\x73\x54\x6f\x50\x72\x69\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x64\x53\x65\x72\x69\x65\x73\x58\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x22\x22\x2c\x20\x6f\x32\x20\x3d\x20\x22\x22\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x68\x33\x20\x3d\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x77\x3a\x20\x61\x32\x20\x7d\x2c\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x5a\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x20\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x3f\x20\x28\x72\x32\x20\x3d\x20\x73\x32\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x2c\x20\x73\x32\x5b\x65\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x73\x32\x5b\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x67\x65\x74\x46\x69\x72\x73\x74\x41\x63\x74\x69\x76\x65\x58\x41\x72\x72\x61\x79\x28\x73\x32\x29\x5d\x5b\x69\x32\x5d\x29\x29\x20\x3a\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x69\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x69\x32\x5d\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x3f\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x56\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x4b\x65\x79\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x64\x32\x2c\x20\x64\x32\x2c\x20\x7b\x20\x69\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x61\x74\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x2c\x20\x77\x3a\x20\x74\x68\x69\x73\x2e\x77\x20\x7d\x29\x20\x3a\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x30\x5d\x28\x64\x32\x2c\x20\x68\x33\x29\x20\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x64\x32\x2c\x20\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x74\x4b\x65\x79\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x64\x32\x2c\x20\x68\x33\x29\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5a\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x63\x32\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5a\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x2c\x20\x61\x32\x29\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x64\x32\x2c\x20\x68\x33\x29\x20\x3a\x20\x72\x32\x2c\x20\x7b\x20\x76\x61\x6c\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6c\x32\x29\x20\x3f\x20\x6c\x32\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x6c\x32\x2c\x20\x78\x56\x61\x6c\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x32\x29\x20\x3f\x20\x72\x32\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x72\x32\x2c\x20\x78\x41\x78\x69\x73\x54\x54\x56\x61\x6c\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x32\x29\x20\x3f\x20\x6f\x32\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x6f\x32\x2c\x20\x7a\x56\x61\x6c\x3a\x20\x6e\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x43\x75\x73\x74\x6f\x6d\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x31\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x63\x75\x73\x74\x6f\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6e\x32\x29\x20\x26\x26\x20\x6e\x32\x5b\x65\x32\x5d\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x6e\x32\x5b\x65\x32\x5d\x29\x2c\x20\x6f\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x6e\x32\x28\x7b\x20\x63\x74\x78\x3a\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x79\x31\x3a\x20\x61\x32\x2c\x20\x79\x32\x3a\x20\x73\x32\x2c\x20\x77\x3a\x20\x72\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x66\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2e\x63\x74\x78\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x45\x6c\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x20\x2d\x20\x69\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6f\x32\x20\x2a\x20\x65\x32\x29\x2c\x20\x73\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x7c\x7c\x20\x28\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x22\x2c\x20\x72\x32\x29\x2c\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x31\x22\x2c\x20\x72\x32\x29\x2c\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x78\x32\x22\x2c\x20\x72\x32\x29\x2c\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x32\x22\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x73\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x29\x2c\x20\x72\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x30\x29\x2c\x20\x72\x32\x20\x3e\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x29\x2c\x20\x69\x32\x2e\x69\x73\x58\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x45\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x21\x3d\x3d\x20\x22\x74\x69\x63\x6b\x57\x69\x64\x74\x68\x22\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x21\x3d\x3d\x20\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x20\x7c\x7c\x20\x28\x6e\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x69\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x58\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x28\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x59\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x65\x32\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2c\x20\x7b\x20\x79\x31\x3a\x20\x74\x33\x2c\x20\x79\x32\x3a\x20\x74\x33\x20\x7d\x29\x2c\x20\x65\x32\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x48\x69\x64\x64\x65\x6e\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x65\x32\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x48\x69\x64\x64\x65\x6e\x2c\x20\x7b\x20\x79\x31\x3a\x20\x74\x33\x2c\x20\x79\x32\x3a\x20\x74\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x58\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x69\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x4f\x66\x66\x59\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x2b\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2b\x20\x31\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x2d\x3d\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x21\x69\x73\x4e\x61\x4e\x28\x74\x33\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x2b\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x69\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x29\x2c\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x2e\x73\x74\x79\x6c\x65\x2e\x6d\x69\x6e\x57\x69\x64\x74\x68\x20\x3d\x20\x73\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x74\x33\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x69\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x61\x32\x20\x2b\x20\x22\x70\x78\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x59\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x69\x32\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x48\x69\x64\x64\x65\x6e\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x79\x31\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2b\x20\x61\x32\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x5b\x74\x33\x5d\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x41\x78\x69\x73\x58\x5b\x74\x33\x5d\x20\x2d\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x26\x26\x20\x28\x6f\x32\x20\x2d\x3d\x20\x32\x36\x29\x2c\x20\x73\x32\x20\x2d\x3d\x20\x72\x32\x20\x2f\x20\x32\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x67\x6e\x6f\x72\x65\x59\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x3f\x20\x28\x69\x32\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x5b\x74\x33\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x69\x32\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x5b\x74\x33\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x73\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x69\x32\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x5b\x74\x33\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x6f\x32\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x33\x5d\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x6f\x66\x66\x73\x65\x74\x58\x20\x2b\x20\x22\x70\x78\x22\x29\x20\x3a\x20\x69\x32\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x5b\x74\x33\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2c\x20\x6e\x32\x20\x3d\x20\x69\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x69\x32\x29\x20\x3a\x20\x31\x2c\x20\x6c\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x29\x20\x2b\x20\x6e\x32\x20\x2b\x20\x35\x2c\x20\x68\x33\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x32\x29\x20\x2b\x20\x6e\x32\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x20\x3e\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x6c\x32\x20\x2d\x20\x6f\x32\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x2d\x20\x6e\x32\x20\x2d\x20\x31\x30\x29\x2c\x20\x6c\x32\x20\x3e\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2d\x20\x6f\x32\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x2d\x20\x31\x30\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2d\x20\x6f\x32\x2e\x74\x74\x57\x69\x64\x74\x68\x29\x2c\x20\x6c\x32\x20\x3c\x20\x2d\x32\x30\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x2d\x32\x30\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x73\x32\x2e\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x28\x29\x2c\x20\x64\x32\x20\x3d\x20\x63\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x65\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2b\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2d\x20\x64\x32\x2e\x74\x6f\x70\x20\x2d\x20\x6f\x32\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x7c\x7c\x20\x28\x6f\x32\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2b\x20\x68\x33\x20\x3e\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x6f\x32\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x29\x2c\x20\x68\x33\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x73\x4e\x61\x4e\x28\x6c\x32\x29\x20\x7c\x7c\x20\x28\x6c\x32\x20\x2b\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x2c\x20\x72\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x6c\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x72\x32\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x68\x33\x20\x2b\x20\x22\x70\x78\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x4d\x61\x72\x6b\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x74\x33\x5d\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x29\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x73\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x5b\x72\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x3d\x3d\x3d\x20\x65\x32\x20\x26\x26\x20\x28\x61\x32\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x72\x65\x73\x65\x74\x50\x6f\x69\x6e\x74\x73\x53\x69\x7a\x65\x28\x29\x2c\x20\x61\x32\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x65\x6e\x6c\x61\x72\x67\x65\x43\x75\x72\x72\x65\x6e\x74\x50\x6f\x69\x6e\x74\x28\x65\x32\x2c\x20\x73\x32\x5b\x72\x32\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x72\x65\x73\x65\x74\x50\x6f\x69\x6e\x74\x73\x53\x69\x7a\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x44\x79\x6e\x61\x6d\x69\x63\x50\x6f\x69\x6e\x74\x4f\x6e\x48\x6f\x76\x65\x72\x28\x65\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x44\x79\x6e\x61\x6d\x69\x63\x50\x6f\x69\x6e\x74\x4f\x6e\x48\x6f\x76\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x6f\x69\x6e\x74\x73\x41\x72\x72\x61\x79\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x67\x65\x74\x48\x6f\x76\x65\x72\x4d\x61\x72\x6b\x65\x72\x53\x69\x7a\x65\x28\x65\x32\x29\x2c\x20\x6c\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6c\x32\x20\x7c\x7c\x20\x6c\x32\x20\x21\x3d\x3d\x20\x22\x63\x6f\x6c\x75\x6d\x6e\x22\x20\x26\x26\x20\x6c\x32\x20\x21\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x6c\x32\x20\x21\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x6f\x32\x5b\x65\x32\x5d\x5b\x74\x33\x5d\x5b\x30\x5d\x2c\x20\x61\x32\x20\x3d\x20\x6f\x32\x5b\x65\x32\x5d\x5b\x74\x33\x5d\x5b\x31\x5d\x20\x3f\x20\x6f\x32\x5b\x65\x32\x5d\x5b\x74\x33\x5d\x5b\x31\x5d\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2c\x20\x22\x27\x5d\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x20\x63\x69\x72\x63\x6c\x65\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x26\x26\x20\x61\x32\x20\x3c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x26\x26\x20\x61\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x68\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x22\x2c\x20\x6e\x32\x29\x2c\x20\x68\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x2c\x20\x69\x32\x29\x2c\x20\x68\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x2c\x20\x61\x32\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x69\x32\x29\x2c\x20\x72\x32\x2e\x66\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x54\x6f\x6f\x6c\x74\x69\x70\x28\x69\x32\x2c\x20\x61\x32\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x44\x79\x6e\x61\x6d\x69\x63\x50\x6f\x69\x6e\x74\x73\x4f\x6e\x48\x6f\x76\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x6f\x69\x6e\x74\x73\x41\x72\x72\x61\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x41\x63\x74\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x67\x65\x74\x48\x6f\x76\x65\x72\x4d\x61\x72\x6b\x65\x72\x53\x69\x7a\x65\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x5b\x65\x32\x5d\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x6f\x32\x5b\x65\x32\x5d\x5b\x74\x33\x5d\x5b\x30\x5d\x2c\x20\x72\x32\x20\x3d\x20\x6f\x32\x5b\x65\x32\x5d\x5b\x74\x33\x5d\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x67\x65\x74\x41\x6c\x6c\x4d\x61\x72\x6b\x65\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x30\x3b\x20\x68\x33\x20\x3c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x68\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x6f\x32\x5b\x68\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x63\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x6c\x32\x2e\x73\x70\x6c\x69\x63\x65\x28\x68\x33\x2c\x20\x30\x2c\x20\x6e\x75\x6c\x6c\x29\x2c\x20\x63\x32\x20\x26\x26\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x6f\x32\x5b\x68\x33\x5d\x5b\x74\x33\x5d\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x5b\x68\x33\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x2c\x20\x73\x32\x29\x2c\x20\x64\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x21\x69\x73\x4e\x61\x4e\x28\x64\x32\x29\x20\x26\x26\x20\x64\x32\x20\x3c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x6e\x32\x20\x26\x26\x20\x64\x32\x20\x2b\x20\x6e\x32\x20\x3e\x20\x30\x20\x3f\x20\x28\x6c\x32\x5b\x68\x33\x5d\x20\x26\x26\x20\x6c\x32\x5b\x68\x33\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x22\x2c\x20\x6e\x32\x29\x2c\x20\x6c\x32\x5b\x68\x33\x5d\x20\x26\x26\x20\x6c\x32\x5b\x68\x33\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x2c\x20\x64\x32\x29\x29\x20\x3a\x20\x6c\x32\x5b\x68\x33\x5d\x20\x26\x26\x20\x6c\x32\x5b\x68\x33\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x22\x2c\x20\x30\x29\x3b\x0a\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\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x73\x32\x29\x2c\x20\x21\x69\x32\x2e\x66\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x72\x32\x20\x7c\x7c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x54\x6f\x6f\x6c\x74\x69\x70\x28\x73\x32\x2c\x20\x67\x32\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x76\x65\x53\x74\x69\x63\x6b\x79\x54\x6f\x6f\x6c\x74\x69\x70\x4f\x76\x65\x72\x42\x61\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x75\x6d\x6e\x53\x65\x72\x69\x65\x73\x20\x3f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x75\x6d\x6e\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x20\x3e\x3d\x20\x32\x20\x26\x26\x20\x61\x32\x20\x25\x20\x32\x20\x3d\x3d\x20\x30\x20\x3f\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x61\x32\x20\x2f\x20\x32\x29\x20\x3a\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x61\x32\x20\x2f\x20\x32\x29\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x41\x63\x74\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x28\x66\x61\x6c\x73\x65\x2c\x20\x22\x64\x65\x73\x63\x22\x29\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x72\x65\x6c\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x27\x5d\x20\x70\x61\x74\x68\x5b\x6a\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x72\x65\x6c\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x27\x5d\x20\x70\x61\x74\x68\x5b\x6a\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x6f\x78\x50\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x72\x65\x6c\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x27\x5d\x20\x70\x61\x74\x68\x5b\x6a\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x72\x65\x6c\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x27\x5d\x20\x70\x61\x74\x68\x5b\x6a\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x22\x29\x29\x2c\x20\x6f\x32\x20\x3d\x20\x72\x32\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x72\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x29\x29\x20\x3a\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x72\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x29\x29\x20\x3a\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x72\x32\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x72\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x29\x29\x20\x3a\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x72\x32\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x72\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x62\x61\x72\x48\x65\x69\x67\x68\x74\x22\x29\x29\x20\x3a\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x28\x29\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x64\x32\x20\x3d\x20\x72\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2d\x61\x72\x65\x61\x22\x29\x20\x7c\x7c\x20\x72\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x6f\x78\x50\x6c\x6f\x74\x2d\x61\x72\x65\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x28\x72\x32\x20\x26\x26\x20\x21\x64\x32\x20\x26\x26\x20\x28\x6f\x32\x20\x2d\x3d\x20\x61\x32\x20\x25\x20\x32\x20\x21\x3d\x20\x30\x20\x3f\x20\x6c\x32\x20\x2f\x20\x32\x20\x3a\x20\x30\x29\x2c\x20\x72\x32\x20\x26\x26\x20\x64\x32\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x28\x6f\x32\x20\x2d\x3d\x20\x6c\x32\x20\x2f\x20\x32\x29\x29\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x69\x32\x2e\x78\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x5b\x74\x33\x20\x2d\x20\x31\x5d\x20\x2b\x20\x69\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x44\x69\x76\x69\x64\x65\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x69\x73\x4e\x61\x4e\x28\x6f\x32\x29\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x69\x32\x2e\x78\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x5b\x74\x33\x5d\x20\x2d\x20\x69\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x44\x69\x76\x69\x64\x65\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x28\x6e\x32\x20\x3e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x26\x26\x20\x28\x6e\x32\x20\x2d\x3d\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x28\x6e\x32\x20\x3d\x20\x6e\x32\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x74\x6f\x70\x20\x2b\x20\x68\x33\x20\x2f\x20\x33\x29\x20\x2b\x20\x68\x33\x20\x3e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x68\x33\x29\x29\x20\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x20\x3f\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x65\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x63\x32\x2e\x74\x6f\x70\x20\x2d\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x3a\x20\x6e\x32\x20\x2b\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x31\x35\x20\x3e\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x6e\x32\x20\x3c\x20\x2d\x31\x30\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x2d\x31\x30\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x6f\x32\x29\x2c\x20\x21\x69\x32\x2e\x66\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x6e\x32\x20\x7c\x7c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x54\x6f\x6f\x6c\x74\x69\x70\x28\x6f\x32\x2c\x20\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x78\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2e\x63\x74\x78\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x66\x74\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x44\x79\x6e\x61\x6d\x69\x63\x50\x6f\x69\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x4d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x75\x28\x61\x32\x29\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x61\x32\x2e\x73\x6f\x72\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x34\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x29\x20\x2d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x33\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x61\x32\x5b\x73\x32\x5d\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x2d\x77\x72\x61\x70\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x20\x77\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x28\x4d\x61\x74\x68\x2e\x72\x61\x6e\x64\x6f\x6d\x28\x29\x20\x2b\x20\x31\x29\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x33\x36\x29\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x34\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x61\x72\x65\x61\x22\x20\x7c\x7c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x7c\x7c\x20\x28\x6e\x32\x20\x2b\x3d\x20\x22\x20\x6e\x6f\x2d\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x4d\x61\x72\x6b\x65\x72\x43\x6f\x6e\x66\x69\x67\x28\x7b\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x6e\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x4e\x75\x6d\x62\x65\x72\x28\x72\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6f\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x4d\x61\x72\x6b\x65\x72\x28\x30\x2c\x20\x30\x2c\x20\x6c\x32\x29\x29\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x65\x66\x61\x75\x6c\x74\x2d\x6d\x61\x72\x6b\x65\x72\x2d\x73\x69\x7a\x65\x22\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\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\x4e\x53\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x53\x56\x47\x4e\x53\x2c\x20\x22\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x22\x29\x2c\x20\x68\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x6f\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x72\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x6e\x6c\x61\x72\x67\x65\x43\x75\x72\x72\x65\x6e\x74\x50\x6f\x69\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6e\x65\x77\x50\x6f\x69\x6e\x74\x53\x69\x7a\x65\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x29\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x61\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x69\x32\x2c\x20\x6f\x32\x20\x3d\x20\x61\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x72\x32\x29\x2c\x20\x21\x74\x68\x69\x73\x2e\x66\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x61\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2e\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x28\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2e\x65\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x6c\x32\x2e\x6c\x65\x66\x74\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\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x54\x6f\x6f\x6c\x74\x69\x70\x28\x72\x32\x2c\x20\x6f\x32\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x6f\x76\x65\x72\x2e\x73\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x6e\x6c\x61\x72\x67\x65\x50\x6f\x69\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x3a\x6e\x6f\x74\x28\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x29\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x6f\x76\x65\x72\x2e\x73\x69\x7a\x65\x2c\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x72\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x72\x32\x5b\x6e\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x68\x33\x20\x3d\x20\x72\x32\x5b\x6e\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x6e\x64\x65\x78\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x68\x33\x5d\x20\x2b\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x6f\x76\x65\x72\x2e\x73\x69\x7a\x65\x4f\x66\x66\x73\x65\x74\x29\x2c\x20\x73\x32\x20\x3d\x3d\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6c\x32\x2c\x20\x31\x30\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x6e\x65\x77\x50\x6f\x69\x6e\x74\x53\x69\x7a\x65\x28\x73\x32\x2c\x20\x72\x32\x5b\x6e\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x72\x32\x5b\x6e\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x29\x2c\x20\x64\x32\x20\x3d\x20\x72\x32\x5b\x6e\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x63\x32\x29\x2c\x20\x61\x32\x2e\x66\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x20\x7c\x7c\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x54\x6f\x6f\x6c\x74\x69\x70\x28\x63\x32\x2c\x20\x64\x32\x2c\x20\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x6f\x6c\x64\x50\x6f\x69\x6e\x74\x53\x69\x7a\x65\x28\x72\x32\x5b\x6e\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6e\x65\x77\x50\x6f\x69\x6e\x74\x53\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x6f\x76\x65\x72\x2e\x73\x69\x7a\x65\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x65\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x20\x3a\x20\x65\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x65\x66\x61\x75\x6c\x74\x2d\x6d\x61\x72\x6b\x65\x72\x2d\x73\x69\x7a\x65\x22\x29\x20\x21\x3d\x3d\x20\x22\x30\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x5b\x72\x32\x5d\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x68\x6f\x76\x65\x72\x2e\x73\x69\x7a\x65\x4f\x66\x66\x73\x65\x74\x29\x2c\x20\x61\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x30\x29\x2c\x20\x73\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x22\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6f\x6c\x64\x50\x6f\x69\x6e\x74\x53\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x65\x66\x61\x75\x6c\x74\x2d\x6d\x61\x72\x6b\x65\x72\x2d\x73\x69\x7a\x65\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x22\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x73\x65\x74\x50\x6f\x69\x6e\x74\x73\x53\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x3a\x6e\x6f\x74\x28\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x29\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x2c\x20\x65\x32\x20\x3d\x20\x30\x3b\x20\x65\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x5b\x65\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x65\x66\x61\x75\x6c\x74\x2d\x6d\x61\x72\x6b\x65\x72\x2d\x73\x69\x7a\x65\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x69\x32\x29\x20\x26\x26\x20\x69\x32\x20\x3e\x3d\x20\x30\x20\x3f\x20\x74\x33\x5b\x65\x32\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x22\x2c\x20\x69\x32\x29\x20\x3a\x20\x74\x33\x5b\x65\x32\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x22\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x62\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x41\x74\x74\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x74\x61\x72\x67\x65\x74\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x65\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x48\x65\x61\x74\x54\x72\x65\x65\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x74\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x74\x79\x70\x65\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x72\x32\x2c\x20\x22\x2d\x72\x65\x63\x74\x22\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x28\x65\x32\x2c\x20\x22\x69\x22\x29\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x28\x65\x32\x2c\x20\x22\x6a\x22\x29\x2c\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x28\x65\x32\x2c\x20\x22\x63\x78\x22\x29\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x28\x65\x32\x2c\x20\x22\x63\x79\x22\x29\x2c\x20\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x28\x65\x32\x2c\x20\x22\x77\x69\x64\x74\x68\x22\x29\x2c\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x28\x65\x32\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x4c\x61\x62\x65\x6c\x73\x2e\x64\x72\x61\x77\x53\x65\x72\x69\x65\x73\x54\x65\x78\x74\x73\x28\x7b\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x69\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x2c\x20\x69\x3a\x20\x6c\x32\x2c\x20\x6a\x3a\x20\x68\x33\x2c\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x6c\x32\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x68\x33\x2c\x20\x61\x32\x20\x3d\x20\x63\x32\x20\x2b\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2b\x20\x67\x32\x2c\x20\x73\x32\x20\x3d\x20\x64\x32\x20\x2b\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2d\x20\x75\x32\x20\x2f\x20\x32\x2c\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x63\x32\x20\x2b\x20\x67\x32\x20\x2f\x20\x32\x29\x2c\x20\x61\x32\x20\x3e\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x63\x32\x20\x2d\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2b\x20\x67\x32\x29\x2c\x20\x6f\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x70\x33\x2e\x6c\x65\x66\x74\x20\x2d\x20\x28\x61\x32\x20\x3e\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x3f\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x3a\x20\x30\x29\x2c\x20\x73\x32\x20\x3d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x70\x33\x2e\x74\x6f\x70\x20\x2d\x20\x28\x73\x32\x20\x3e\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x3f\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x61\x32\x2c\x20\x79\x3a\x20\x73\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x4d\x61\x72\x6b\x65\x72\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x74\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x70\x61\x74\x68\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x63\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x70\x61\x74\x68\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x64\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x32\x2e\x70\x61\x74\x68\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x76\x61\x6c\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x70\x61\x74\x68\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x65\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x70\x61\x74\x68\x73\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x2c\x20\x6c\x32\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x78\x2e\x66\x69\x6e\x64\x41\x6e\x63\x65\x73\x74\x6f\x72\x28\x73\x32\x2e\x70\x61\x74\x68\x73\x2c\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x67\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\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\x6c\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x4c\x61\x62\x65\x6c\x73\x2e\x64\x72\x61\x77\x53\x65\x72\x69\x65\x73\x54\x65\x78\x74\x73\x28\x7b\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x73\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x2c\x20\x69\x3a\x20\x65\x32\x2c\x20\x6a\x3a\x20\x69\x32\x2c\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x21\x6c\x32\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x26\x26\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x2c\x20\x65\x3a\x20\x61\x32\x20\x7d\x29\x2c\x20\x61\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x20\x26\x26\x20\x6c\x32\x2e\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x28\x61\x32\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x65\x32\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x69\x32\x2c\x20\x72\x32\x20\x3d\x20\x68\x33\x2c\x20\x6f\x32\x20\x3d\x20\x63\x32\x20\x2b\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2d\x20\x31\x2e\x34\x20\x2a\x20\x6c\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x2c\x20\x6c\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x6c\x32\x2e\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x28\x29\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x6c\x32\x2e\x65\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2b\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2d\x20\x75\x32\x2e\x74\x6f\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x63\x32\x29\x2c\x20\x6c\x32\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x65\x6e\x6c\x61\x72\x67\x65\x43\x75\x72\x72\x65\x6e\x74\x50\x6f\x69\x6e\x74\x28\x69\x32\x2c\x20\x73\x32\x2e\x70\x61\x74\x68\x73\x2c\x20\x72\x32\x2c\x20\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x72\x32\x2c\x20\x79\x3a\x20\x6f\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x42\x61\x72\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x74\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x30\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x42\x61\x72\x54\x6f\x6f\x6c\x74\x69\x70\x58\x59\x28\x7b\x20\x65\x3a\x20\x61\x32\x2c\x20\x6f\x70\x74\x3a\x20\x73\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x64\x32\x2e\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x64\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x75\x32\x20\x3d\x20\x64\x32\x2e\x6a\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x65\x32\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x75\x32\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x7c\x7c\x20\x21\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x20\x3f\x20\x28\x68\x33\x20\x3d\x20\x64\x32\x2e\x78\x2c\x20\x63\x32\x20\x3d\x20\x64\x32\x2e\x79\x2c\x20\x69\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x29\x20\x3f\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x5b\x65\x32\x5d\x20\x3a\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x2c\x20\x6c\x32\x20\x3d\x20\x68\x33\x29\x20\x3a\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x20\x7c\x7c\x20\x28\x6c\x32\x20\x2f\x3d\x20\x32\x29\x2c\x20\x69\x73\x4e\x61\x4e\x28\x63\x32\x29\x20\x3f\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x63\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x70\x61\x74\x68\x73\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x66\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x20\x3f\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x70\x33\x5d\x20\x26\x26\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x70\x33\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x3a\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x33\x20\x2b\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x3e\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x26\x26\x20\x21\x66\x32\x20\x3f\x20\x68\x33\x20\x2d\x3d\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x3a\x20\x68\x33\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x30\x29\x2c\x20\x6f\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x6f\x32\x2e\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x28\x29\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x6f\x32\x2e\x65\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x78\x32\x2e\x74\x6f\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x22\x29\x29\x2c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x20\x7c\x7c\x20\x28\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x42\x61\x72\x43\x6f\x75\x6e\x74\x20\x3e\x20\x30\x20\x3f\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x6c\x32\x20\x2b\x20\x69\x32\x20\x2f\x20\x32\x29\x20\x3a\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x6c\x32\x29\x29\x2c\x20\x21\x6f\x32\x2e\x66\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x20\x26\x26\x20\x28\x21\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x20\x7c\x7c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x29\x20\x26\x26\x20\x28\x66\x32\x20\x26\x26\x20\x28\x68\x33\x20\x2d\x3d\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x57\x69\x64\x74\x68\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x30\x29\x2c\x20\x21\x66\x32\x20\x7c\x7c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x7c\x7c\x20\x28\x63\x32\x20\x3d\x20\x63\x32\x20\x2b\x20\x67\x32\x20\x2d\x20\x32\x20\x2a\x20\x28\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x5b\x75\x32\x5d\x20\x3c\x20\x30\x20\x3f\x20\x67\x32\x20\x3a\x20\x30\x29\x29\x2c\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x63\x32\x20\x3e\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3f\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3a\x20\x28\x63\x32\x20\x3d\x20\x63\x32\x20\x2b\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2d\x20\x6f\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x30\x29\x2c\x20\x6e\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x68\x33\x20\x2b\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x6e\x32\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x63\x32\x20\x2b\x20\x22\x70\x78\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x42\x61\x72\x54\x6f\x6f\x6c\x74\x69\x70\x58\x59\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x74\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x30\x2c\x20\x64\x32\x20\x3d\x20\x65\x32\x2e\x74\x61\x72\x67\x65\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x32\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x61\x72\x65\x61\x22\x29\x20\x7c\x7c\x20\x64\x32\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2d\x61\x72\x65\x61\x22\x29\x20\x7c\x7c\x20\x64\x32\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x6f\x78\x50\x6c\x6f\x74\x2d\x61\x72\x65\x61\x22\x29\x20\x7c\x7c\x20\x64\x32\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x2d\x61\x72\x65\x61\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x65\x32\x2e\x74\x61\x72\x67\x65\x74\x2c\x20\x75\x32\x20\x3d\x20\x67\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x70\x33\x20\x3d\x20\x69\x32\x2e\x65\x6c\x47\x72\x69\x64\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x66\x32\x20\x3d\x20\x75\x32\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x75\x32\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x75\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x62\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x67\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x76\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x67\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x67\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x32\x20\x3d\x20\x65\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x3f\x20\x65\x32\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3a\x20\x65\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x67\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x6a\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x6f\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x67\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x67\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x2d\x72\x61\x6e\x67\x65\x2d\x79\x31\x22\x29\x2c\x20\x77\x32\x20\x3d\x20\x67\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x2d\x72\x61\x6e\x67\x65\x2d\x79\x32\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x67\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x29\x2c\x20\x72\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x4c\x61\x62\x65\x6c\x73\x2e\x64\x72\x61\x77\x53\x65\x72\x69\x65\x73\x54\x65\x78\x74\x73\x28\x7b\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x69\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x2c\x20\x69\x3a\x20\x6f\x32\x2c\x20\x6a\x3a\x20\x73\x32\x2c\x20\x79\x31\x3a\x20\x79\x32\x20\x3f\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x79\x32\x2c\x20\x31\x30\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x79\x32\x3a\x20\x77\x32\x20\x3f\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x77\x32\x2c\x20\x31\x30\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x21\x72\x32\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x2c\x20\x65\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x66\x6f\x6c\x6c\x6f\x77\x43\x75\x72\x73\x6f\x72\x20\x3f\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x28\x6e\x32\x20\x3d\x20\x6d\x32\x20\x2d\x20\x70\x33\x2e\x6c\x65\x66\x74\x20\x2b\x20\x31\x35\x2c\x20\x6c\x32\x20\x3d\x20\x76\x32\x20\x2d\x20\x72\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x44\x69\x76\x69\x64\x65\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x66\x32\x20\x2f\x20\x32\x20\x2d\x20\x72\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x29\x20\x3a\x20\x28\x6e\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x62\x32\x20\x2d\x20\x78\x32\x20\x2f\x20\x32\x20\x3a\x20\x62\x32\x20\x2d\x20\x72\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x44\x69\x76\x69\x64\x65\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x78\x32\x20\x2f\x20\x32\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x70\x33\x2e\x74\x6f\x70\x20\x2d\x20\x72\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2d\x20\x31\x35\x29\x20\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x28\x28\x6e\x32\x20\x3d\x20\x62\x32\x29\x20\x3c\x20\x72\x32\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x49\x6e\x76\x65\x72\x74\x65\x64\x59\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x62\x32\x20\x2d\x20\x72\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x57\x69\x64\x74\x68\x29\x2c\x20\x6c\x32\x20\x3d\x20\x76\x32\x20\x2d\x20\x72\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x44\x69\x76\x69\x64\x65\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x66\x32\x20\x2f\x20\x32\x20\x2d\x20\x72\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x29\x20\x3a\x20\x28\x6e\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x62\x32\x20\x2d\x20\x78\x32\x20\x2f\x20\x32\x20\x3a\x20\x62\x32\x20\x2d\x20\x72\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x44\x69\x76\x69\x64\x65\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x78\x32\x20\x2f\x20\x32\x2c\x20\x6c\x32\x20\x3d\x20\x76\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x6e\x32\x2c\x20\x79\x3a\x20\x6c\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x63\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x68\x33\x2c\x20\x69\x3a\x20\x6f\x32\x2c\x20\x6a\x3a\x20\x73\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x76\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x58\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x4f\x66\x66\x59\x20\x3d\x20\x69\x32\x20\x3f\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x31\x20\x3a\x20\x2d\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x61\x78\x69\x73\x54\x69\x63\x6b\x73\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x20\x3f\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x74\x74\x6f\x6d\x22\x20\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x6f\x70\x22\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x69\x73\x58\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x22\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x61\x32\x20\x2b\x20\x22\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x22\x20\x2b\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x74\x68\x65\x6d\x65\x29\x2c\x20\x73\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x22\x29\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x7c\x7c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x59\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x69\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x69\x33\x5d\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x20\x7c\x7c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x69\x33\x5d\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x4f\x66\x66\x58\x20\x3d\x20\x61\x33\x20\x3f\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2b\x20\x31\x20\x3a\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x33\x2c\x20\x61\x33\x20\x3f\x20\x22\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x69\x67\x68\x74\x22\x20\x3a\x20\x22\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6c\x65\x66\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x61\x6d\x65\x53\x63\x61\x6c\x65\x49\x6e\x64\x69\x63\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x61\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x2c\x20\x61\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x35\x20\x3d\x3d\x3d\x20\x69\x33\x20\x26\x26\x20\x28\x73\x32\x20\x2b\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x61\x35\x5d\x2e\x73\x68\x6f\x77\x20\x3f\x20\x22\x20\x22\x20\x3a\x20\x22\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x68\x69\x64\x64\x65\x6e\x22\x29\x3b\x0a\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\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x33\x29\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x65\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x73\x32\x20\x2b\x20\x22\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x22\x20\x2b\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x74\x68\x65\x6d\x65\x29\x2c\x20\x72\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x29\x2c\x20\x69\x33\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x65\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x5b\x69\x33\x5d\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\x2c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x5b\x69\x33\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x22\x29\x2c\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x5b\x69\x33\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x57\x69\x64\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x45\x6c\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x2c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x61\x72\x65\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x61\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x22\x74\x69\x63\x6b\x57\x69\x64\x74\x68\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x22\x74\x69\x63\x6b\x57\x69\x64\x74\x68\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x61\x72\x65\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x6e\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x62\x61\x72\x57\x69\x64\x74\x68\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x3d\x20\x30\x29\x2c\x20\x69\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x65\x32\x2e\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x59\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x29\x2c\x20\x65\x32\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x48\x69\x64\x64\x65\x6e\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2d\x68\x69\x64\x64\x65\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x59\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x74\x43\x74\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x74\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x5b\x74\x33\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x28\x29\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x28\x65\x32\x20\x2d\x20\x6f\x32\x2e\x74\x6f\x70\x29\x20\x2a\x20\x69\x32\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x33\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x41\x72\x72\x5b\x74\x33\x5d\x20\x2d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x74\x33\x5d\x2c\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x74\x33\x5d\x20\x2b\x20\x28\x6c\x32\x20\x2d\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x59\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x65\x32\x20\x2d\x20\x6f\x32\x2e\x74\x6f\x70\x29\x2c\x20\x61\x32\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x5b\x74\x33\x5d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x72\x32\x28\x68\x33\x29\x2c\x20\x61\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x59\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x6d\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x20\x3d\x20\x6e\x65\x77\x20\x75\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x6e\x65\x77\x20\x70\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x66\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x6b\x65\x72\x20\x3d\x20\x6e\x65\x77\x20\x78\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x3d\x20\x6e\x65\x77\x20\x62\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x54\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x6e\x65\x77\x20\x76\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x54\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x78\x2e\x73\x68\x6f\x77\x2c\x20\x74\x68\x69\x73\x2e\x66\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x66\x69\x78\x65\x64\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x61\x72\x53\x68\x61\x72\x65\x64\x20\x3d\x20\x21\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x48\x6f\x76\x65\x72\x54\x69\x6d\x65\x20\x3d\x20\x44\x61\x74\x65\x2e\x6e\x6f\x77\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x7c\x7c\x20\x28\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x29\x2c\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x20\x3f\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x22\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x45\x6c\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x58\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x45\x6e\x61\x62\x6c\x65\x64\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x2c\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x28\x74\x34\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x74\x34\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6c\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x53\x65\x72\x69\x65\x73\x47\x72\x6f\x75\x70\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x54\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\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\x69\x66\x20\x28\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x22\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x20\x26\x26\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x63\x73\x73\x43\x6c\x61\x73\x73\x29\x2c\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x29\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x69\x32\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x64\x72\x61\x77\x58\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x64\x72\x61\x77\x59\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x65\x74\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x57\x69\x64\x74\x68\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x68\x61\x6e\x64\x6c\x65\x59\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x5f\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x58\x41\x78\x69\x73\x54\x69\x63\x6b\x73\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x69\x7a\x65\x20\x21\x3d\x3d\x20\x30\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6c\x61\x72\x67\x65\x73\x74\x53\x69\x7a\x65\x20\x21\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x64\x72\x61\x77\x44\x79\x6e\x61\x6d\x69\x63\x50\x6f\x69\x6e\x74\x73\x28\x74\x68\x69\x73\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x44\x69\x76\x69\x64\x65\x64\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x44\x69\x76\x69\x64\x65\x64\x57\x69\x64\x74\x68\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x54\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x69\x74\x6c\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x7c\x7c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x69\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x54\x69\x74\x6c\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x79\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x3f\x20\x31\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x2d\x74\x65\x78\x74\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x74\x49\x74\x65\x6d\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x54\x54\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x73\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x53\x56\x47\x45\x76\x65\x6e\x74\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x72\x65\x61\x74\x65\x54\x54\x45\x6c\x65\x6d\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x33\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\x6f\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x22\x29\x2c\x20\x6f\x33\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x72\x64\x65\x72\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x69\x6e\x76\x65\x72\x73\x65\x4f\x72\x64\x65\x72\x20\x3f\x20\x74\x33\x20\x2d\x20\x72\x33\x20\x3a\x20\x72\x33\x20\x2b\x20\x31\x2c\x20\x65\x32\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x20\x26\x26\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x29\x20\x26\x26\x20\x65\x32\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x72\x33\x29\x20\x3c\x20\x30\x20\x26\x26\x20\x6f\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x2d\x68\x69\x64\x64\x65\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\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\x6e\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x2c\x20\x6e\x32\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\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x72\x33\x5d\x2c\x20\x6f\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\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\x6c\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x22\x29\x2c\x20\x6c\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x3d\x20\x65\x32\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x6c\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x65\x32\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x5b\x22\x79\x22\x2c\x20\x22\x67\x6f\x61\x6c\x73\x22\x2c\x20\x22\x7a\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\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\x65\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x34\x2c\x20\x22\x2d\x67\x72\x6f\x75\x70\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\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\x69\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x34\x2c\x20\x22\x2d\x6c\x61\x62\x65\x6c\x22\x29\x29\x2c\x20\x65\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\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\x61\x33\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x34\x2c\x20\x22\x2d\x76\x61\x6c\x75\x65\x22\x29\x29\x2c\x20\x65\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x61\x33\x29\x2c\x20\x6c\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6f\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x6c\x32\x29\x2c\x20\x73\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x6f\x33\x29\x2c\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x6f\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x74\x33\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x53\x56\x47\x45\x76\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x61\x32\x20\x3d\x20\x21\x28\x65\x32\x20\x21\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x65\x32\x20\x21\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x26\x26\x20\x65\x32\x20\x21\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x26\x26\x20\x65\x32\x20\x21\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x29\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x61\x72\x65\x61\x22\x20\x7c\x7c\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x7c\x7c\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x20\x7c\x7c\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x7c\x7c\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x61\x72\x22\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x47\x72\x69\x64\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x42\x6f\x75\x6e\x64\x20\x3d\x20\x6f\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x2c\x20\x6c\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x68\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x63\x32\x20\x3d\x20\x7b\x20\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x3a\x20\x72\x32\x2c\x20\x65\x6c\x47\x72\x69\x64\x3a\x20\x6f\x32\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x45\x6c\x3a\x20\x69\x32\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x59\x3a\x20\x6c\x32\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x58\x3a\x20\x68\x33\x2c\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x74\x68\x69\x73\x2e\x74\x74\x49\x74\x65\x6d\x73\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x28\x73\x32\x20\x3f\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x6c\x6f\x6e\x67\x65\x73\x74\x53\x65\x72\x69\x65\x73\x3d\x27\x74\x72\x75\x65\x27\x5d\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x20\x3a\x20\x61\x32\x20\x3f\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x61\x72\x65\x61\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2d\x61\x72\x65\x61\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x6f\x78\x50\x6c\x6f\x74\x2d\x61\x72\x65\x61\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x2d\x61\x72\x65\x61\x22\x29\x20\x3a\x20\x65\x32\x20\x21\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x26\x26\x20\x65\x32\x20\x21\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x7c\x7c\x20\x28\x6e\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x65\x61\x74\x6d\x61\x70\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x72\x65\x65\x6d\x61\x70\x22\x29\x29\x2c\x20\x6e\x32\x20\x26\x26\x20\x6e\x32\x2e\x6c\x65\x6e\x67\x74\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x30\x3b\x20\x64\x32\x20\x3c\x20\x6e\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x64\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x5b\x64\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x79\x22\x29\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x6e\x32\x5b\x64\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x78\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x79\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x7c\x7c\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x7c\x7c\x20\x61\x32\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x50\x61\x74\x68\x73\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x5b\x72\x32\x5d\x2c\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x32\x20\x26\x26\x20\x21\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x73\x32\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x44\x61\x74\x61\x70\x6f\x69\x6e\x74\x45\x76\x65\x6e\x74\x73\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x7c\x7c\x20\x65\x32\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x50\x61\x74\x68\x73\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x67\x32\x2c\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x69\x6e\x65\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x72\x65\x61\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x50\x61\x74\x68\x73\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x75\x32\x2c\x20\x63\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x44\x61\x74\x61\x70\x6f\x69\x6e\x74\x45\x76\x65\x6e\x74\x73\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x46\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x31\x30\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x31\x30\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x66\x69\x78\x65\x64\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x66\x69\x78\x65\x64\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x66\x69\x78\x65\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x72\x69\x67\x68\x74\x22\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2d\x20\x61\x32\x20\x2b\x20\x31\x30\x29\x2c\x20\x6e\x32\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x62\x6f\x74\x74\x6f\x6d\x22\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x6f\x32\x20\x2b\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x73\x32\x20\x2d\x20\x31\x30\x29\x2c\x20\x65\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x72\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x65\x32\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x6f\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x7b\x20\x78\x3a\x20\x72\x32\x2c\x20\x79\x3a\x20\x6f\x32\x2c\x20\x74\x74\x57\x69\x64\x74\x68\x3a\x20\x61\x32\x2c\x20\x74\x74\x48\x65\x69\x67\x68\x74\x3a\x20\x73\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x44\x61\x74\x61\x70\x6f\x69\x6e\x74\x45\x76\x65\x6e\x74\x73\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x61\x72\x65\x61\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2d\x61\x72\x65\x61\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x6f\x78\x50\x6c\x6f\x74\x2d\x61\x72\x65\x61\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x2d\x61\x72\x65\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x50\x61\x74\x68\x73\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x65\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x50\x61\x74\x68\x73\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x7b\x20\x70\x61\x74\x68\x73\x3a\x20\x74\x33\x5b\x61\x33\x5d\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x45\x6c\x3a\x20\x65\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x45\x6c\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x59\x3a\x20\x65\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x59\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x58\x3a\x20\x65\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x58\x2c\x20\x65\x6c\x47\x72\x69\x64\x3a\x20\x65\x32\x2e\x65\x6c\x47\x72\x69\x64\x2c\x20\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x3a\x20\x65\x32\x2e\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x2c\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x65\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5b\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x5d\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x5b\x61\x33\x5d\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x65\x33\x2c\x20\x69\x32\x2e\x6f\x6e\x53\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x2e\x62\x69\x6e\x64\x28\x69\x32\x2c\x20\x73\x33\x29\x2c\x20\x7b\x20\x63\x61\x70\x74\x75\x72\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x61\x73\x73\x69\x76\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6f\x6e\x53\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x44\x61\x74\x65\x2e\x6e\x6f\x77\x28\x29\x20\x2d\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x48\x6f\x76\x65\x72\x54\x69\x6d\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3e\x3d\x20\x31\x30\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x3a\x20\x28\x63\x6c\x65\x61\x72\x54\x69\x6d\x65\x6f\x75\x74\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x54\x69\x6d\x65\x6f\x75\x74\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x54\x69\x6d\x65\x6f\x75\x74\x20\x3d\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x31\x30\x30\x20\x2d\x20\x61\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x48\x6f\x76\x65\x72\x54\x69\x6d\x65\x20\x3d\x20\x44\x61\x74\x65\x2e\x6e\x6f\x77\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x67\x72\x6f\x75\x70\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x67\x65\x74\x47\x72\x6f\x75\x70\x65\x64\x43\x68\x61\x72\x74\x73\x28\x29\x29\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x2f\x20\x30\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x3d\x3d\x3d\x20\x31\x20\x2f\x20\x30\x20\x7c\x7c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7c\x7c\x20\x28\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x61\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x61\x33\x29\x2c\x20\x72\x32\x20\x3d\x20\x7b\x20\x70\x61\x74\x68\x73\x3a\x20\x74\x33\x2e\x70\x61\x74\x68\x73\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x45\x6c\x3a\x20\x73\x33\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x59\x3a\x20\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x59\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x58\x3a\x20\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x58\x2c\x20\x65\x6c\x47\x72\x69\x64\x3a\x20\x74\x33\x2e\x65\x6c\x47\x72\x69\x64\x2c\x20\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x3a\x20\x74\x33\x2e\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x2c\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x61\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x74\x74\x49\x74\x65\x6d\x73\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x3d\x3d\x3d\x20\x69\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x26\x26\x20\x61\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x3d\x3d\x3d\x20\x69\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x26\x26\x20\x61\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x42\x79\x43\x6f\x6e\x74\x65\x78\x74\x28\x7b\x20\x63\x68\x61\x72\x74\x43\x74\x78\x3a\x20\x61\x33\x2c\x20\x74\x74\x43\x74\x78\x3a\x20\x61\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2c\x20\x6f\x70\x74\x3a\x20\x72\x32\x2c\x20\x65\x3a\x20\x65\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x42\x79\x43\x6f\x6e\x74\x65\x78\x74\x28\x7b\x20\x63\x68\x61\x72\x74\x43\x74\x78\x3a\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x74\x74\x43\x74\x78\x3a\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2c\x20\x6f\x70\x74\x3a\x20\x74\x33\x2c\x20\x65\x3a\x20\x65\x32\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x72\x69\x65\x73\x48\x6f\x76\x65\x72\x42\x79\x43\x6f\x6e\x74\x65\x78\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x43\x74\x78\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x74\x74\x43\x74\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x74\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x20\x3d\x20\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x74\x74\x57\x69\x64\x74\x68\x3a\x20\x6f\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x74\x48\x65\x69\x67\x68\x74\x3a\x20\x6f\x32\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x2c\x20\x69\x32\x2e\x65\x20\x3d\x20\x73\x32\x2c\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x26\x26\x20\x21\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x21\x69\x32\x2e\x69\x73\x42\x61\x72\x53\x68\x61\x72\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x6f\x6e\x44\x61\x74\x61\x73\x65\x74\x48\x6f\x76\x65\x72\x2e\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x45\x28\x65\x32\x29\x2e\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x4f\x6e\x48\x6f\x76\x65\x72\x28\x73\x32\x2c\x20\x73\x32\x2e\x74\x61\x72\x67\x65\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x66\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x20\x26\x26\x20\x69\x32\x2e\x64\x72\x61\x77\x46\x69\x78\x65\x64\x54\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x28\x29\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x69\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x28\x7b\x20\x65\x3a\x20\x73\x32\x2c\x20\x6f\x70\x74\x3a\x20\x61\x32\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x3a\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x20\x7d\x29\x20\x3a\x20\x69\x32\x2e\x6e\x6f\x6e\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x28\x7b\x20\x65\x3a\x20\x73\x32\x2c\x20\x6f\x70\x74\x3a\x20\x61\x32\x2c\x20\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x3a\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x74\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x65\x6c\x47\x72\x69\x64\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x61\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x3f\x20\x61\x32\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3a\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2c\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x3f\x20\x61\x32\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3a\x20\x61\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3d\x20\x6c\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3d\x20\x6e\x32\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x2d\x31\x2c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x2d\x31\x2c\x20\x6c\x32\x20\x3c\x20\x6f\x32\x2e\x74\x6f\x70\x20\x7c\x7c\x20\x6c\x32\x20\x3e\x20\x6f\x32\x2e\x74\x6f\x70\x20\x2b\x20\x6f\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x4d\x6f\x75\x73\x65\x4f\x75\x74\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x29\x20\x26\x26\x20\x21\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x73\x68\x61\x72\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x70\x61\x74\x68\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x6e\x64\x65\x78\x22\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x65\x6e\x61\x62\x6c\x65\x64\x4f\x6e\x53\x65\x72\x69\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x68\x33\x29\x20\x3c\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6f\x69\x64\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x4d\x6f\x75\x73\x65\x4f\x75\x74\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x29\x2c\x20\x67\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x79\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x26\x26\x20\x21\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x20\x7c\x7c\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x20\x7c\x7c\x20\x61\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x20\x7c\x7c\x20\x61\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\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\x20\x20\x64\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x64\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x75\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x67\x32\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x79\x54\x6f\x6f\x6c\x74\x69\x70\x28\x61\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x7c\x7c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x2e\x68\x61\x6e\x64\x6c\x65\x48\x65\x61\x74\x54\x72\x65\x65\x54\x6f\x6f\x6c\x74\x69\x70\x28\x7b\x20\x65\x3a\x20\x61\x32\x2c\x20\x6f\x70\x74\x3a\x20\x73\x32\x2c\x20\x78\x3a\x20\x65\x32\x2c\x20\x79\x3a\x20\x69\x32\x2c\x20\x74\x79\x70\x65\x3a\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x70\x33\x2e\x78\x2c\x20\x69\x32\x20\x3d\x20\x70\x33\x2e\x79\x2c\x20\x63\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x65\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x63\x32\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x69\x32\x20\x2b\x20\x22\x70\x78\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x2e\x68\x61\x6e\x64\x6c\x65\x42\x61\x72\x54\x6f\x6f\x6c\x74\x69\x70\x28\x7b\x20\x65\x3a\x20\x61\x32\x2c\x20\x6f\x70\x74\x3a\x20\x73\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x4d\x61\x72\x6b\x65\x72\x73\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x69\x6e\x74\x65\x72\x73\x65\x63\x74\x2e\x68\x61\x6e\x64\x6c\x65\x4d\x61\x72\x6b\x65\x72\x54\x6f\x6f\x6c\x74\x69\x70\x28\x7b\x20\x65\x3a\x20\x61\x32\x2c\x20\x6f\x70\x74\x3a\x20\x73\x32\x2c\x20\x78\x3a\x20\x65\x32\x2c\x20\x79\x3a\x20\x69\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x30\x3b\x20\x66\x32\x20\x3c\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x66\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x78\x65\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x64\x72\x61\x77\x59\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x54\x65\x78\x74\x28\x66\x32\x2c\x20\x6c\x32\x2c\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x45\x6c\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x20\x26\x26\x20\x61\x32\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x4d\x6f\x75\x73\x65\x4f\x75\x74\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6e\x6f\x6e\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x65\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6f\x70\x74\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x52\x65\x63\x74\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x70\x61\x74\x68\x73\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x54\x6f\x6f\x6c\x74\x69\x70\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x20\x7c\x7c\x20\x65\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x4c\x61\x62\x65\x6c\x73\x2e\x64\x72\x61\x77\x53\x65\x72\x69\x65\x73\x54\x65\x78\x74\x73\x28\x7b\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x69\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x2c\x20\x69\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x72\x32\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x2c\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x6e\x32\x2e\x6c\x65\x66\x74\x20\x2d\x20\x61\x32\x2e\x74\x74\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x2d\x20\x6e\x32\x2e\x74\x6f\x70\x20\x2d\x20\x61\x32\x2e\x74\x74\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x31\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x20\x3d\x20\x6c\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x6f\x32\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x20\x3d\x20\x68\x33\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x48\x6f\x76\x65\x72\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x31\x2c\x20\x64\x32\x20\x3d\x20\x28\x30\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x48\x6f\x76\x65\x72\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x28\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x4c\x61\x62\x65\x6c\x73\x5b\x63\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x64\x65\x66\x61\x75\x6c\x74\x2d\x74\x65\x78\x74\x22\x29\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x63\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x63\x32\x2c\x20\x77\x3a\x20\x73\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x4c\x61\x62\x65\x6c\x73\x5b\x63\x32\x5d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x20\x26\x26\x20\x65\x32\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x20\x7c\x7c\x20\x28\x6f\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x48\x6f\x76\x65\x72\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x34\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x64\x65\x66\x61\x75\x6c\x74\x2d\x74\x65\x78\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x64\x65\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x79\x54\x6f\x6f\x6c\x74\x69\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x67\x65\x74\x4e\x65\x61\x72\x65\x73\x74\x56\x61\x6c\x75\x65\x73\x28\x7b\x20\x63\x6f\x6e\x74\x65\x78\x74\x3a\x20\x74\x68\x69\x73\x2c\x20\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x3a\x20\x61\x32\x2e\x68\x6f\x76\x65\x72\x41\x72\x65\x61\x2c\x20\x65\x6c\x47\x72\x69\x64\x3a\x20\x61\x32\x2e\x65\x6c\x47\x72\x69\x64\x2c\x20\x63\x6c\x69\x65\x6e\x74\x58\x3a\x20\x65\x32\x2c\x20\x63\x6c\x69\x65\x6e\x74\x59\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x6f\x32\x20\x3d\x20\x72\x32\x2e\x6a\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x63\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x2c\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x65\x6c\x47\x72\x69\x64\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x68\x6f\x76\x65\x72\x58\x20\x3c\x20\x30\x20\x7c\x7c\x20\x72\x32\x2e\x68\x6f\x76\x65\x72\x58\x20\x3e\x20\x6c\x32\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x4d\x6f\x75\x73\x65\x4f\x75\x74\x28\x61\x32\x29\x20\x3a\x20\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x79\x43\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x28\x74\x33\x2c\x20\x6e\x32\x2c\x20\x61\x32\x2c\x20\x6f\x32\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x69\x73\x58\x6f\x76\x65\x72\x6c\x61\x70\x28\x6f\x32\x29\x20\x7c\x7c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x28\x74\x33\x2c\x20\x74\x68\x69\x73\x2c\x20\x30\x2c\x20\x6f\x32\x2c\x20\x61\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x53\x74\x69\x63\x6b\x79\x43\x61\x70\x74\x75\x72\x65\x64\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x5b\x61\x32\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6f\x69\x64\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x4d\x6f\x75\x73\x65\x4f\x75\x74\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x5b\x61\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x69\x73\x58\x6f\x76\x65\x72\x6c\x61\x70\x28\x61\x32\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x69\x73\x49\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x53\x61\x6d\x65\x4c\x65\x6e\x28\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x28\x74\x33\x2c\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x2c\x20\x61\x32\x2c\x20\x69\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x28\x74\x33\x2c\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x2c\x20\x61\x32\x2c\x20\x69\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x2c\x20\x66\x61\x6c\x73\x65\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x69\x73\x58\x6f\x76\x65\x72\x6c\x61\x70\x28\x61\x32\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x28\x74\x33\x2c\x20\x74\x68\x69\x73\x2c\x20\x30\x2c\x20\x61\x32\x2c\x20\x69\x32\x2e\x74\x74\x49\x74\x65\x6d\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x48\x6f\x76\x65\x72\x46\x69\x6c\x74\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x65\x6c\x65\x63\x74\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x61\x72\x65\x61\x22\x29\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x28\x69\x32\x5b\x61\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x4d\x6f\x75\x73\x65\x4f\x75\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x45\x6c\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x45\x6c\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x48\x6f\x76\x65\x72\x46\x69\x6c\x74\x65\x72\x28\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x72\x65\x73\x65\x74\x50\x6f\x69\x6e\x74\x73\x53\x69\x7a\x65\x28\x29\x2c\x20\x69\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x69\x32\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x58\x41\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x45\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x78\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x6f\x6f\x6c\x74\x69\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x54\x54\x45\x6c\x73\x5b\x61\x32\x5d\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x48\x6f\x76\x65\x72\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x34\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x64\x65\x66\x61\x75\x6c\x74\x2d\x74\x65\x78\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x64\x65\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x28\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x77\x3a\x20\x61\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x22\x2c\x20\x5b\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x77\x3a\x20\x61\x32\x20\x7d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x72\x65\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x35\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x35\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6e\x32\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x28\x74\x33\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x2c\x20\x72\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x4d\x61\x72\x6b\x65\x72\x73\x28\x29\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x67\x65\x74\x45\x6c\x42\x61\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x48\x6f\x76\x65\x72\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x48\x6f\x76\x65\x72\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x64\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x4c\x61\x62\x65\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x34\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x64\x65\x66\x61\x75\x6c\x74\x2d\x74\x65\x78\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x64\x65\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x64\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x64\x32\x5b\x67\x32\x5d\x2c\x20\x70\x33\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x75\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x66\x32\x20\x3d\x20\x64\x65\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x75\x32\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x64\x65\x66\x61\x75\x6c\x74\x2d\x74\x65\x78\x74\x22\x29\x29\x2c\x20\x78\x32\x20\x3d\x20\x63\x32\x28\x66\x32\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x72\x32\x20\x3f\x20\x70\x33\x20\x3a\x20\x69\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x61\x32\x2c\x20\x77\x3a\x20\x6f\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x70\x33\x29\x20\x3c\x20\x30\x20\x3f\x20\x78\x32\x20\x3a\x20\x66\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x75\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x70\x33\x20\x3d\x3d\x3d\x20\x69\x32\x20\x3f\x20\x78\x32\x20\x3a\x20\x66\x32\x2c\x20\x69\x32\x20\x3d\x3d\x3d\x20\x70\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x4c\x61\x62\x65\x6c\x73\x2e\x64\x72\x61\x77\x53\x65\x72\x69\x65\x73\x54\x65\x78\x74\x73\x28\x7b\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x73\x32\x2c\x20\x69\x3a\x20\x69\x32\x2c\x20\x6a\x3a\x20\x61\x32\x2c\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x21\x74\x68\x69\x73\x2e\x73\x68\x6f\x77\x4f\x6e\x49\x6e\x74\x65\x72\x73\x65\x63\x74\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x43\x6f\x6e\x66\x69\x67\x2e\x73\x68\x61\x72\x65\x64\x20\x7d\x29\x2c\x20\x6c\x32\x20\x26\x26\x20\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6c\x61\x72\x67\x65\x73\x74\x53\x69\x7a\x65\x20\x3e\x20\x30\x20\x3f\x20\x6e\x32\x2e\x6d\x61\x72\x6b\x65\x72\x2e\x65\x6e\x6c\x61\x72\x67\x65\x50\x6f\x69\x6e\x74\x73\x28\x61\x32\x29\x20\x3a\x20\x6e\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x44\x79\x6e\x61\x6d\x69\x63\x50\x6f\x69\x6e\x74\x73\x4f\x6e\x48\x6f\x76\x65\x72\x28\x61\x32\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x53\x65\x72\x69\x65\x73\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x67\x65\x74\x42\x61\x72\x73\x48\x65\x69\x67\x68\x74\x28\x68\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x53\x65\x72\x69\x65\x73\x48\x65\x69\x67\x68\x74\x20\x3e\x20\x30\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x76\x32\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x65\x6c\x65\x63\x74\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x61\x72\x65\x61\x5b\x6a\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2c\x20\x22\x27\x5d\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x48\x6f\x76\x65\x72\x46\x69\x6c\x74\x65\x72\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x53\x74\x69\x63\x6b\x79\x54\x6f\x6f\x6c\x74\x69\x70\x4f\x76\x65\x72\x42\x61\x72\x73\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x30\x3b\x20\x79\x32\x20\x3c\x20\x76\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x79\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x28\x76\x32\x5b\x79\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x4c\x61\x62\x65\x6c\x73\x2e\x64\x72\x61\x77\x53\x65\x72\x69\x65\x73\x54\x65\x78\x74\x73\x28\x7b\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x74\x49\x74\x65\x6d\x73\x3a\x20\x73\x32\x2c\x20\x69\x3a\x20\x69\x32\x2c\x20\x6a\x3a\x20\x61\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x55\x74\x69\x6c\x2e\x68\x61\x73\x42\x61\x72\x73\x28\x29\x20\x26\x26\x20\x6e\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x53\x74\x69\x63\x6b\x79\x54\x6f\x6f\x6c\x74\x69\x70\x4f\x76\x65\x72\x42\x61\x72\x73\x28\x61\x32\x29\x2c\x20\x6c\x32\x20\x26\x26\x20\x6e\x32\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2e\x6d\x6f\x76\x65\x4d\x61\x72\x6b\x65\x72\x73\x28\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x79\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x28\x73\x32\x2c\x20\x46\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x64\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x32\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x73\x32\x29\x2c\x20\x69\x32\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x73\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x20\x3d\x20\x6e\x65\x77\x20\x46\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x73\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x72\x32\x2e\x67\x65\x74\x4c\x6f\x67\x53\x65\x72\x69\x65\x73\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x20\x3d\x20\x72\x32\x2e\x67\x65\x74\x4c\x6f\x67\x59\x52\x61\x74\x69\x6f\x73\x28\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x69\x6e\x69\x74\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x28\x74\x33\x29\x2c\x20\x73\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x31\x30\x30\x25\x22\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x50\x65\x72\x63\x65\x6e\x74\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x46\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x46\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x56\x61\x6c\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x56\x61\x6c\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x72\x72\x6a\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x72\x72\x6a\x46\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x78\x41\x72\x72\x6a\x56\x61\x6c\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x72\x72\x6a\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x72\x72\x6a\x46\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x79\x41\x72\x72\x6a\x56\x61\x6c\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x30\x3b\x20\x6f\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x6f\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x20\x2b\x3d\x20\x74\x33\x5b\x6f\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x62\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x22\x20\x7d\x29\x2c\x20\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x30\x2c\x20\x63\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x33\x2c\x20\x6f\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x33\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x64\x33\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x67\x33\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x75\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x70\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x66\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x62\x32\x20\x3d\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x69\x33\x5b\x72\x33\x5d\x20\x3a\x20\x72\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x79\x52\x61\x74\x69\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x61\x32\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x62\x32\x29\x2c\x20\x61\x32\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3d\x20\x73\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x61\x32\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x26\x26\x20\x73\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x61\x32\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x62\x32\x5d\x29\x2c\x20\x72\x65\x6c\x3a\x20\x72\x33\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x62\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x43\x6c\x61\x73\x73\x54\x6f\x53\x65\x72\x69\x65\x73\x28\x76\x32\x2c\x20\x62\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x62\x32\x20\x7d\x29\x2c\x20\x79\x32\x20\x3d\x20\x30\x2c\x20\x77\x32\x20\x3d\x20\x30\x2c\x20\x6b\x32\x20\x3d\x20\x61\x32\x2e\x69\x6e\x69\x74\x69\x61\x6c\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x28\x6c\x32\x2c\x20\x68\x33\x2c\x20\x63\x33\x2c\x20\x64\x33\x2c\x20\x67\x33\x2c\x20\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x6b\x32\x2e\x79\x2c\x20\x79\x32\x20\x3d\x20\x6b\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x64\x33\x20\x3d\x20\x6b\x32\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x75\x32\x20\x3d\x20\x6b\x32\x2e\x7a\x65\x72\x6f\x57\x2c\x20\x6c\x32\x20\x3d\x20\x6b\x32\x2e\x78\x2c\x20\x77\x32\x20\x3d\x20\x6b\x32\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x63\x33\x20\x3d\x20\x6b\x32\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x67\x33\x20\x3d\x20\x6b\x32\x2e\x7a\x65\x72\x6f\x48\x2c\x20\x61\x32\x2e\x79\x41\x72\x72\x6a\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x79\x41\x72\x72\x6a\x46\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x79\x41\x72\x72\x6a\x56\x61\x6c\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x78\x41\x72\x72\x6a\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x78\x41\x72\x72\x6a\x46\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x78\x41\x72\x72\x6a\x56\x61\x6c\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x70\x72\x65\x76\x59\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x61\x32\x2e\x70\x72\x65\x76\x59\x5b\x30\x5d\x2e\x65\x76\x65\x72\x79\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x4e\x61\x4e\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x26\x26\x20\x28\x61\x32\x2e\x70\x72\x65\x76\x59\x5b\x30\x5d\x20\x3d\x20\x61\x32\x2e\x70\x72\x65\x76\x59\x5b\x30\x5d\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x70\x72\x65\x76\x59\x46\x5b\x30\x5d\x20\x3d\x20\x61\x32\x2e\x70\x72\x65\x76\x59\x46\x5b\x30\x5d\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x30\x3b\x20\x41\x32\x20\x3c\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x20\x41\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x53\x32\x20\x3d\x20\x61\x32\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x28\x72\x33\x2c\x20\x41\x32\x2c\x20\x62\x32\x29\x2c\x20\x43\x32\x20\x3d\x20\x7b\x20\x69\x6e\x64\x65\x78\x65\x73\x3a\x20\x7b\x20\x69\x3a\x20\x72\x33\x2c\x20\x6a\x3a\x20\x41\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x62\x32\x2c\x20\x62\x63\x3a\x20\x6f\x33\x20\x7d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x53\x32\x2c\x20\x78\x3a\x20\x6c\x32\x2c\x20\x79\x3a\x20\x68\x33\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x76\x32\x20\x7d\x2c\x20\x4c\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x28\x4c\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x53\x74\x61\x63\x6b\x65\x64\x42\x61\x72\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x43\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x7a\x65\x72\x6f\x57\x3a\x20\x75\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x79\x32\x2c\x20\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x64\x33\x20\x7d\x29\x29\x2c\x20\x77\x32\x20\x3d\x20\x61\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x72\x33\x5d\x5b\x41\x32\x5d\x20\x2f\x20\x61\x32\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x29\x20\x3a\x20\x28\x4c\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x53\x74\x61\x63\x6b\x65\x64\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x43\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x63\x33\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x77\x32\x2c\x20\x7a\x65\x72\x6f\x48\x3a\x20\x67\x33\x20\x7d\x29\x29\x2c\x20\x79\x32\x20\x3d\x20\x61\x32\x2e\x73\x65\x72\x69\x65\x73\x5b\x72\x33\x5d\x5b\x41\x32\x5d\x20\x2f\x20\x61\x32\x2e\x79\x52\x61\x74\x69\x6f\x5b\x61\x32\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x29\x2c\x20\x68\x33\x20\x3d\x20\x4c\x32\x2e\x79\x2c\x20\x6c\x32\x20\x3d\x20\x4c\x32\x2e\x78\x2c\x20\x70\x33\x2e\x70\x75\x73\x68\x28\x6c\x32\x29\x2c\x20\x66\x32\x2e\x70\x75\x73\x68\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x50\x32\x20\x3d\x20\x61\x32\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x50\x61\x74\x68\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x28\x74\x33\x2c\x20\x72\x33\x2c\x20\x41\x32\x2c\x20\x62\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x32\x20\x3d\x20\x61\x32\x2e\x72\x65\x6e\x64\x65\x72\x53\x65\x72\x69\x65\x73\x28\x7b\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x62\x32\x2c\x20\x70\x61\x74\x68\x46\x69\x6c\x6c\x3a\x20\x50\x32\x2c\x20\x6a\x3a\x20\x41\x32\x2c\x20\x69\x3a\x20\x72\x33\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x4c\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x4c\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x53\x32\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x76\x32\x2c\x20\x78\x3a\x20\x6c\x32\x2c\x20\x79\x3a\x20\x68\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x79\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x77\x32\x2c\x20\x65\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x57\x72\x61\x70\x3a\x20\x6d\x32\x2c\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x61\x72\x22\x2c\x20\x76\x69\x73\x69\x62\x6c\x65\x53\x65\x72\x69\x65\x73\x3a\x20\x30\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x5b\x62\x32\x5d\x20\x3d\x20\x70\x33\x2c\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x59\x76\x61\x6c\x75\x65\x73\x5b\x62\x32\x5d\x20\x3d\x20\x66\x32\x2c\x20\x61\x32\x2e\x70\x72\x65\x76\x59\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x79\x41\x72\x72\x6a\x29\x2c\x20\x61\x32\x2e\x70\x72\x65\x76\x59\x46\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x79\x41\x72\x72\x6a\x46\x29\x2c\x20\x61\x32\x2e\x70\x72\x65\x76\x59\x56\x61\x6c\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x79\x41\x72\x72\x6a\x56\x61\x6c\x29\x2c\x20\x61\x32\x2e\x70\x72\x65\x76\x58\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x78\x41\x72\x72\x6a\x29\x2c\x20\x61\x32\x2e\x70\x72\x65\x76\x58\x46\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x78\x41\x72\x72\x6a\x46\x29\x2c\x20\x61\x32\x2e\x70\x72\x65\x76\x58\x56\x61\x6c\x2e\x70\x75\x73\x68\x28\x61\x32\x2e\x78\x41\x72\x72\x6a\x56\x61\x6c\x29\x2c\x20\x6e\x32\x2e\x61\x64\x64\x28\x76\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x64\x32\x20\x3d\x20\x30\x2c\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x64\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x64\x32\x2b\x2b\x2c\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x28\x64\x32\x2c\x20\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x69\x61\x6c\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x33\x2c\x20\x61\x32\x2c\x20\x73\x33\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x28\x6f\x32\x20\x3d\x20\x28\x6f\x32\x20\x3d\x20\x61\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x29\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x49\x6e\x76\x65\x72\x74\x65\x64\x59\x20\x2b\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x3a\x20\x30\x29\x20\x2d\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x49\x6e\x76\x65\x72\x74\x65\x64\x59\x20\x3a\x20\x30\x29\x2c\x20\x65\x32\x20\x3d\x20\x28\x61\x32\x20\x2d\x20\x6f\x32\x29\x20\x2f\x20\x32\x29\x20\x3a\x20\x28\x6e\x32\x20\x3d\x20\x69\x33\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x6e\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3e\x20\x31\x20\x3f\x20\x28\x69\x33\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x44\x69\x66\x66\x20\x2f\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x29\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x68\x69\x73\x2e\x62\x61\x72\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x75\x6d\x6e\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x20\x3a\x20\x6e\x32\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x63\x6f\x6c\x75\x6d\x6e\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x2c\x20\x73\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x30\x29\x20\x2d\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x30\x29\x2c\x20\x74\x33\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x28\x69\x33\x20\x2d\x20\x6e\x32\x29\x20\x2f\x20\x32\x29\x2c\x20\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x32\x2c\x20\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x61\x32\x2c\x20\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x69\x33\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x6f\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x6e\x32\x2c\x20\x7a\x65\x72\x6f\x48\x3a\x20\x73\x33\x2c\x20\x7a\x65\x72\x6f\x57\x3a\x20\x72\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x53\x74\x61\x63\x6b\x65\x64\x42\x61\x72\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x65\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x7a\x65\x72\x6f\x57\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x64\x32\x20\x3d\x20\x6e\x32\x2c\x20\x67\x32\x20\x3d\x20\x69\x33\x2e\x69\x2c\x20\x75\x32\x20\x3d\x20\x69\x33\x2e\x6a\x2c\x20\x70\x33\x20\x3d\x20\x30\x2c\x20\x66\x32\x20\x3d\x20\x30\x3b\x20\x66\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x46\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x66\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x2b\x3d\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x46\x5b\x66\x32\x5d\x5b\x75\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x67\x32\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x56\x61\x6c\x5b\x67\x32\x20\x2d\x20\x31\x5d\x5b\x75\x32\x5d\x20\x3c\x20\x30\x20\x3f\x20\x78\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x67\x32\x5d\x5b\x75\x32\x5d\x20\x3e\x3d\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x5b\x67\x32\x20\x2d\x20\x31\x5d\x5b\x75\x32\x5d\x20\x2b\x20\x70\x33\x20\x2d\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x70\x33\x20\x3a\x20\x30\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x5b\x67\x32\x20\x2d\x20\x31\x5d\x5b\x75\x32\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x56\x61\x6c\x5b\x67\x32\x20\x2d\x20\x31\x5d\x5b\x75\x32\x5d\x20\x3e\x3d\x20\x30\x20\x26\x26\x20\x28\x78\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x67\x32\x5d\x5b\x75\x32\x5d\x20\x3e\x3d\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x5b\x67\x32\x20\x2d\x20\x31\x5d\x5b\x75\x32\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x58\x5b\x67\x32\x20\x2d\x20\x31\x5d\x5b\x75\x32\x5d\x20\x2d\x20\x70\x33\x20\x2b\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x70\x33\x20\x3a\x20\x30\x29\x29\x2c\x20\x65\x32\x20\x3d\x20\x78\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x67\x32\x5d\x5b\x75\x32\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x65\x32\x20\x3a\x20\x65\x32\x20\x2b\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x67\x32\x5d\x5b\x75\x32\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x20\x2d\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x67\x32\x5d\x5b\x75\x32\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x20\x3a\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x42\x61\x72\x70\x61\x74\x68\x73\x28\x7b\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x64\x32\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x61\x32\x2c\x20\x78\x31\x3a\x20\x65\x32\x2c\x20\x78\x32\x3a\x20\x6f\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x73\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x69\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x69\x3a\x20\x67\x32\x2c\x20\x6a\x3a\x20\x75\x32\x2c\x20\x77\x3a\x20\x63\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x62\x61\x72\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x28\x7b\x20\x6a\x3a\x20\x75\x32\x2c\x20\x69\x3a\x20\x67\x32\x2c\x20\x79\x31\x3a\x20\x64\x32\x2c\x20\x79\x32\x3a\x20\x61\x32\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x68\x33\x20\x7d\x29\x2c\x20\x6e\x32\x20\x2b\x3d\x20\x6c\x32\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x62\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x62\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x78\x3a\x20\x6f\x32\x2c\x20\x79\x3a\x20\x6e\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x53\x74\x61\x63\x6b\x65\x64\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x65\x73\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x7a\x65\x72\x6f\x48\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x69\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x6a\x2c\x20\x64\x32\x20\x3d\x20\x65\x32\x2e\x62\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x7c\x7c\x20\x28\x67\x32\x20\x3d\x20\x30\x29\x2c\x20\x69\x33\x20\x3d\x20\x28\x67\x32\x20\x2d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x20\x2d\x20\x72\x32\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x75\x32\x2c\x20\x70\x33\x20\x3d\x20\x69\x33\x2c\x20\x66\x32\x20\x3d\x20\x30\x2c\x20\x78\x32\x20\x3d\x20\x30\x3b\x20\x78\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x46\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x78\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x32\x20\x2b\x3d\x20\x69\x73\x4e\x61\x4e\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x46\x5b\x78\x32\x5d\x5b\x63\x32\x5d\x29\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x46\x5b\x78\x32\x5d\x5b\x63\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x33\x20\x3e\x20\x30\x20\x26\x26\x20\x21\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x68\x33\x20\x3e\x20\x30\x20\x26\x26\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x68\x33\x20\x2d\x20\x31\x5d\x5b\x63\x32\x5d\x20\x3d\x3d\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x2c\x20\x76\x32\x2c\x20\x6d\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x2c\x20\x68\x33\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x5b\x68\x33\x20\x2d\x20\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x31\x3b\x20\x79\x32\x20\x3c\x20\x6d\x32\x3b\x20\x79\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4e\x61\x4e\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x5b\x68\x33\x20\x2d\x20\x79\x32\x5d\x5b\x63\x32\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x5b\x68\x33\x20\x2d\x20\x79\x32\x5d\x5b\x63\x32\x5d\x3b\x0a\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\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x31\x3b\x20\x77\x32\x20\x3c\x20\x6d\x32\x3b\x20\x77\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x56\x61\x6c\x5b\x68\x33\x20\x2d\x20\x77\x32\x5d\x5b\x63\x32\x5d\x20\x3c\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x20\x3e\x3d\x20\x30\x20\x3f\x20\x76\x32\x20\x2d\x20\x66\x32\x20\x2b\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x66\x32\x20\x3a\x20\x30\x29\x20\x3a\x20\x76\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x56\x61\x6c\x5b\x68\x33\x20\x2d\x20\x77\x32\x5d\x5b\x63\x32\x5d\x20\x3e\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x20\x3e\x3d\x20\x30\x20\x3f\x20\x76\x32\x20\x3a\x20\x76\x32\x20\x2b\x20\x66\x32\x20\x2d\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x66\x32\x20\x3a\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x62\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x46\x5b\x30\x5d\x2e\x65\x76\x65\x72\x79\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3d\x3d\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x59\x46\x2e\x73\x6c\x69\x63\x65\x28\x31\x2c\x20\x68\x33\x29\x2e\x65\x76\x65\x72\x79\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x65\x76\x65\x72\x79\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x4e\x61\x4e\x28\x74\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3f\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x6f\x32\x20\x3a\x20\x62\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x20\x3d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x75\x32\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2b\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x43\x6f\x6c\x75\x6d\x6e\x50\x61\x74\x68\x73\x28\x7b\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x70\x33\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x72\x32\x2c\x20\x79\x31\x3a\x20\x75\x32\x2c\x20\x79\x32\x3a\x20\x61\x32\x2c\x20\x79\x52\x61\x74\x69\x6f\x3a\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x69\x3a\x20\x68\x33\x2c\x20\x6a\x3a\x20\x63\x32\x2c\x20\x77\x3a\x20\x6c\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x62\x61\x72\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x28\x7b\x20\x62\x63\x3a\x20\x64\x32\x2c\x20\x6a\x3a\x20\x63\x32\x2c\x20\x69\x3a\x20\x68\x33\x2c\x20\x78\x31\x3a\x20\x70\x33\x2c\x20\x78\x32\x3a\x20\x72\x32\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x6e\x32\x20\x7d\x29\x2c\x20\x69\x33\x20\x2b\x3d\x20\x73\x33\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x6b\x32\x2e\x70\x61\x74\x68\x54\x6f\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x6b\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x78\x3a\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x69\x33\x20\x2d\x20\x73\x33\x20\x3a\x20\x69\x33\x2c\x20\x79\x3a\x20\x61\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x73\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x77\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x28\x73\x32\x2c\x20\x46\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x64\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x32\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x73\x32\x29\x2c\x20\x69\x32\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x73\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2c\x20\x74\x68\x69\x73\x2e\x62\x6f\x78\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x6f\x78\x50\x6c\x6f\x74\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3d\x20\x73\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x73\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x4c\x6f\x67\x53\x65\x72\x69\x65\x73\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x4c\x6f\x67\x59\x52\x61\x74\x69\x6f\x73\x28\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x69\x6e\x69\x74\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x72\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x22\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x20\x7d\x29\x2c\x20\x68\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6e\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x3d\x20\x73\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x7c\x7c\x20\x73\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x34\x2c\x20\x63\x33\x2c\x20\x64\x32\x2c\x20\x67\x32\x2c\x20\x75\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x70\x33\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x66\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x62\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x76\x32\x20\x3d\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x69\x33\x5b\x6e\x33\x5d\x20\x3a\x20\x6e\x33\x2c\x20\x6d\x32\x20\x3d\x20\x72\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x76\x32\x5d\x29\x2c\x20\x72\x65\x6c\x3a\x20\x6e\x33\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x76\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x43\x6c\x61\x73\x73\x54\x6f\x53\x65\x72\x69\x65\x73\x28\x6d\x32\x2c\x20\x76\x32\x29\x2c\x20\x74\x33\x5b\x6e\x33\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x61\x32\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x3d\x20\x61\x32\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x2c\x20\x77\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x79\x52\x61\x74\x69\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x61\x32\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x76\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x61\x32\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x50\x6f\x73\x69\x74\x69\x6f\x6e\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x6b\x32\x2e\x79\x2c\x20\x79\x32\x20\x3d\x20\x6b\x32\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x63\x33\x20\x3d\x20\x6b\x32\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x67\x32\x20\x3d\x20\x6b\x32\x2e\x7a\x65\x72\x6f\x57\x2c\x20\x75\x32\x20\x3d\x20\x6b\x32\x2e\x78\x2c\x20\x77\x32\x20\x3d\x20\x6b\x32\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x68\x34\x20\x3d\x20\x6b\x32\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x64\x32\x20\x3d\x20\x6b\x32\x2e\x7a\x65\x72\x6f\x48\x2c\x20\x62\x32\x2e\x70\x75\x73\x68\x28\x75\x32\x20\x2b\x20\x77\x32\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x72\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x76\x32\x20\x7d\x29\x2c\x20\x53\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x61\x32\x2e\x62\x61\x72\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x28\x6e\x33\x2c\x20\x69\x34\x2c\x20\x76\x32\x29\x2c\x20\x6c\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x78\x32\x20\x3d\x20\x7b\x20\x69\x6e\x64\x65\x78\x65\x73\x3a\x20\x7b\x20\x69\x3a\x20\x6e\x33\x2c\x20\x6a\x3a\x20\x69\x34\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x76\x32\x20\x7d\x2c\x20\x78\x3a\x20\x75\x32\x2c\x20\x79\x3a\x20\x70\x33\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x72\x33\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x6d\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x33\x20\x3d\x20\x61\x32\x2e\x69\x73\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x61\x32\x2e\x64\x72\x61\x77\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x42\x6f\x78\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x78\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x63\x33\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x79\x32\x2c\x20\x7a\x65\x72\x6f\x57\x3a\x20\x67\x32\x20\x7d\x29\x29\x20\x3a\x20\x61\x32\x2e\x64\x72\x61\x77\x56\x65\x72\x74\x69\x63\x61\x6c\x42\x6f\x78\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x78\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x3a\x20\x68\x34\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x77\x32\x2c\x20\x7a\x65\x72\x6f\x48\x3a\x20\x64\x32\x20\x7d\x29\x29\x2c\x20\x70\x33\x20\x3d\x20\x6c\x33\x2e\x79\x2c\x20\x75\x32\x20\x3d\x20\x6c\x33\x2e\x78\x2c\x20\x69\x34\x20\x3e\x20\x30\x20\x26\x26\x20\x62\x32\x2e\x70\x75\x73\x68\x28\x75\x32\x20\x2b\x20\x77\x32\x20\x2f\x20\x32\x29\x2c\x20\x66\x32\x2e\x70\x75\x73\x68\x28\x70\x33\x29\x2c\x20\x6c\x33\x2e\x70\x61\x74\x68\x54\x6f\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x68\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x34\x20\x3d\x20\x21\x61\x32\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x26\x26\x20\x61\x32\x2e\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x77\x69\x63\x6b\x2e\x75\x73\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x20\x3f\x20\x6c\x33\x2e\x63\x6f\x6c\x6f\x72\x5b\x68\x35\x5d\x20\x3a\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6e\x33\x5d\x2c\x20\x64\x33\x20\x3d\x20\x6f\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x76\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x69\x34\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x6c\x33\x2e\x63\x6f\x6c\x6f\x72\x5b\x68\x35\x5d\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x33\x5b\x6e\x33\x5d\x5b\x69\x34\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x72\x65\x6e\x64\x65\x72\x53\x65\x72\x69\x65\x73\x28\x7b\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x76\x32\x2c\x20\x70\x61\x74\x68\x46\x69\x6c\x6c\x3a\x20\x64\x33\x2c\x20\x6c\x69\x6e\x65\x46\x69\x6c\x6c\x3a\x20\x63\x34\x2c\x20\x6a\x3a\x20\x69\x34\x2c\x20\x69\x3a\x20\x6e\x33\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x6c\x33\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x65\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x72\x33\x2c\x20\x65\x6c\x53\x65\x72\x69\x65\x73\x3a\x20\x6d\x32\x2c\x20\x78\x3a\x20\x75\x32\x2c\x20\x79\x3a\x20\x70\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x2c\x20\x62\x61\x72\x48\x65\x69\x67\x68\x74\x3a\x20\x79\x32\x2c\x20\x62\x61\x72\x57\x69\x64\x74\x68\x3a\x20\x77\x32\x2c\x20\x65\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x57\x72\x61\x70\x3a\x20\x41\x32\x2c\x20\x76\x69\x73\x69\x62\x6c\x65\x53\x65\x72\x69\x65\x73\x3a\x20\x61\x32\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x2c\x20\x74\x79\x70\x65\x3a\x20\x73\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x43\x32\x20\x3d\x20\x30\x3b\x20\x43\x32\x20\x3c\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x20\x43\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x32\x28\x43\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x5b\x76\x32\x5d\x20\x3d\x20\x62\x32\x2c\x20\x73\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x59\x76\x61\x6c\x75\x65\x73\x5b\x76\x32\x5d\x20\x3d\x20\x66\x32\x2c\x20\x6c\x32\x2e\x61\x64\x64\x28\x6d\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x63\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x56\x65\x72\x74\x69\x63\x61\x6c\x42\x6f\x78\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x65\x73\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x57\x69\x64\x74\x68\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x7a\x65\x72\x6f\x48\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x69\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x6a\x2c\x20\x64\x32\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x67\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x75\x70\x77\x61\x72\x64\x2c\x20\x75\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x64\x6f\x77\x6e\x77\x61\x72\x64\x2c\x20\x70\x33\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x5b\x74\x68\x69\x73\x2e\x62\x6f\x78\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x6c\x6f\x77\x65\x72\x2c\x20\x74\x68\x69\x73\x2e\x62\x6f\x78\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x75\x70\x70\x65\x72\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2c\x20\x78\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4f\x48\x4c\x43\x56\x61\x6c\x75\x65\x28\x78\x32\x2c\x20\x63\x32\x29\x2c\x20\x76\x32\x20\x3d\x20\x72\x32\x2c\x20\x79\x32\x20\x3d\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x32\x2e\x6f\x20\x3e\x20\x62\x32\x2e\x63\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x62\x32\x2e\x6f\x2c\x20\x62\x32\x2e\x63\x29\x2c\x20\x6b\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x62\x32\x2e\x6f\x2c\x20\x62\x32\x2e\x63\x29\x2c\x20\x41\x32\x20\x3d\x20\x62\x32\x2e\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x69\x33\x20\x3d\x20\x28\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x78\x32\x5d\x5b\x63\x32\x5d\x20\x2d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x20\x2d\x20\x73\x33\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x53\x32\x20\x3d\x20\x69\x33\x20\x2b\x20\x73\x33\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x28\x77\x32\x20\x3d\x20\x72\x32\x2c\x20\x6b\x32\x20\x3d\x20\x72\x32\x29\x20\x3a\x20\x28\x77\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x77\x32\x20\x2f\x20\x66\x32\x2c\x20\x6b\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x6b\x32\x20\x2f\x20\x66\x32\x2c\x20\x76\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x62\x32\x2e\x68\x20\x2f\x20\x66\x32\x2c\x20\x79\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x62\x32\x2e\x6c\x20\x2f\x20\x66\x32\x2c\x20\x41\x32\x20\x3d\x20\x72\x32\x20\x2d\x20\x62\x32\x2e\x6d\x20\x2f\x20\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x43\x32\x20\x3d\x20\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x53\x32\x2c\x20\x72\x32\x29\x2c\x20\x4c\x32\x20\x3d\x20\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x77\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x4c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x28\x78\x32\x2c\x20\x63\x32\x2c\x20\x74\x72\x75\x65\x29\x29\x2c\x20\x43\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x3f\x20\x5b\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x53\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x76\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x34\x2c\x20\x76\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2d\x20\x73\x33\x20\x2f\x20\x34\x2c\x20\x76\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x76\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x2c\x20\x41\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x2c\x20\x41\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x2c\x20\x77\x32\x20\x2b\x20\x6f\x32\x20\x2f\x20\x32\x29\x2c\x20\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x53\x32\x2c\x20\x41\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x2c\x20\x41\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x2c\x20\x6b\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x6b\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x79\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2d\x20\x73\x33\x20\x2f\x20\x34\x2c\x20\x79\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x34\x2c\x20\x79\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x79\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x6b\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x2c\x20\x6b\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x2c\x20\x41\x32\x29\x20\x2b\x20\x22\x7a\x22\x5d\x20\x3a\x20\x5b\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x53\x32\x2c\x20\x6b\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x6b\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x76\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x6b\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x2c\x20\x6b\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x79\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x53\x32\x2c\x20\x6b\x32\x20\x2d\x20\x6f\x32\x20\x2f\x20\x32\x29\x5d\x2c\x20\x4c\x32\x20\x2b\x3d\x20\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x53\x32\x2c\x20\x77\x32\x29\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x69\x33\x20\x2b\x3d\x20\x61\x32\x29\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x43\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x4c\x32\x2c\x20\x78\x3a\x20\x69\x33\x2c\x20\x79\x3a\x20\x6b\x32\x2c\x20\x62\x61\x72\x58\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x53\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x3f\x20\x70\x33\x20\x3a\x20\x64\x32\x20\x3f\x20\x5b\x67\x32\x5d\x20\x3a\x20\x5b\x75\x32\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x42\x6f\x78\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x6e\x64\x65\x78\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x44\x69\x76\x69\x73\x69\x6f\x6e\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x62\x61\x72\x48\x65\x69\x67\x68\x74\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x7a\x65\x72\x6f\x57\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x69\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x6a\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x6f\x78\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x6c\x6f\x77\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x5b\x74\x68\x69\x73\x2e\x62\x6f\x78\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x6c\x6f\x77\x65\x72\x2c\x20\x74\x68\x69\x73\x2e\x62\x6f\x78\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2e\x75\x70\x70\x65\x72\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x59\x52\x61\x74\x69\x6f\x2c\x20\x75\x32\x20\x3d\x20\x65\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x70\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4f\x48\x4c\x43\x56\x61\x6c\x75\x65\x28\x75\x32\x2c\x20\x63\x32\x29\x2c\x20\x66\x32\x20\x3d\x20\x72\x32\x2c\x20\x78\x32\x20\x3d\x20\x72\x32\x2c\x20\x62\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x70\x33\x2e\x6f\x2c\x20\x70\x33\x2e\x63\x29\x2c\x20\x76\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x70\x33\x2e\x6f\x2c\x20\x70\x33\x2e\x63\x29\x2c\x20\x79\x32\x20\x3d\x20\x70\x33\x2e\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x69\x33\x20\x3d\x20\x28\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x75\x32\x5d\x5b\x63\x32\x5d\x20\x2d\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x74\x65\x64\x58\x52\x61\x74\x69\x6f\x20\x2d\x20\x73\x33\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x69\x33\x20\x2b\x20\x73\x33\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x49\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x63\x32\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x28\x62\x32\x20\x3d\x20\x72\x32\x2c\x20\x76\x32\x20\x3d\x20\x72\x32\x29\x20\x3a\x20\x28\x62\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x62\x32\x20\x2f\x20\x67\x32\x2c\x20\x76\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x76\x32\x20\x2f\x20\x67\x32\x2c\x20\x66\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x70\x33\x2e\x68\x20\x2f\x20\x67\x32\x2c\x20\x78\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x70\x33\x2e\x6c\x20\x2f\x20\x67\x32\x2c\x20\x79\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x70\x33\x2e\x6d\x20\x2f\x20\x67\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x72\x32\x2c\x20\x77\x32\x29\x2c\x20\x41\x32\x20\x3d\x20\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x62\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x41\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x28\x75\x32\x2c\x20\x63\x32\x2c\x20\x74\x72\x75\x65\x29\x29\x2c\x20\x6b\x32\x20\x3d\x20\x5b\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x62\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x62\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x66\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x66\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x20\x2d\x20\x73\x33\x20\x2f\x20\x34\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x66\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x34\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x66\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x62\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x62\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x79\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x79\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x62\x32\x20\x2b\x20\x6f\x32\x20\x2f\x20\x32\x2c\x20\x77\x32\x29\x2c\x20\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x79\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x79\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x76\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x76\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x78\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x78\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2d\x20\x73\x33\x20\x2f\x20\x34\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x78\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x34\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x78\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x76\x32\x2c\x20\x77\x32\x20\x2b\x20\x73\x33\x20\x2f\x20\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x76\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x28\x79\x32\x2c\x20\x77\x32\x29\x20\x2b\x20\x22\x7a\x22\x5d\x2c\x20\x41\x32\x20\x2b\x3d\x20\x6c\x32\x2e\x6d\x6f\x76\x65\x28\x62\x32\x2c\x20\x77\x32\x29\x2c\x20\x6e\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x28\x69\x33\x20\x2b\x3d\x20\x61\x32\x29\x2c\x20\x7b\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x6b\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x41\x32\x2c\x20\x78\x3a\x20\x76\x32\x2c\x20\x79\x3a\x20\x69\x33\x2c\x20\x62\x61\x72\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x77\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x64\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4f\x48\x4c\x43\x56\x61\x6c\x75\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6f\x3a\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x3f\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x20\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x2c\x20\x68\x3a\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x3f\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4f\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x20\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x48\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x2c\x20\x6d\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4d\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x2c\x20\x6c\x3a\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x3f\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x20\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x2c\x20\x63\x3a\x20\x74\x68\x69\x73\x2e\x69\x73\x42\x6f\x78\x50\x6c\x6f\x74\x20\x3f\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x4c\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x20\x3a\x20\x69\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x43\x61\x6e\x64\x6c\x65\x43\x5b\x74\x33\x5d\x5b\x65\x32\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x73\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x6b\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x43\x6f\x6c\x6f\x72\x52\x61\x6e\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x72\x61\x6e\x67\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x72\x61\x6e\x67\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x66\x72\x6f\x6d\x20\x3c\x3d\x20\x30\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x31\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x74\x33\x5d\x2e\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x68\x61\x73\x4e\x65\x67\x73\x20\x7c\x7c\x20\x61\x32\x20\x3f\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x74\x33\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x4e\x65\x67\x61\x74\x69\x76\x65\x53\x68\x61\x64\x65\x20\x3f\x20\x6e\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x3c\x20\x30\x20\x3f\x20\x6e\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x20\x2a\x20\x28\x31\x2e\x32\x35\x20\x2a\x20\x6f\x32\x29\x20\x3a\x20\x28\x31\x20\x2d\x20\x6e\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x29\x20\x2a\x20\x28\x31\x2e\x32\x35\x20\x2a\x20\x6f\x32\x29\x20\x3a\x20\x6e\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x3c\x3d\x20\x30\x20\x3f\x20\x31\x20\x2d\x20\x28\x31\x20\x2b\x20\x6e\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x29\x20\x2a\x20\x6f\x32\x20\x3a\x20\x28\x31\x20\x2d\x20\x6e\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x29\x20\x2a\x20\x6f\x32\x20\x3a\x20\x28\x72\x32\x20\x3d\x20\x31\x20\x2d\x20\x6e\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x2c\x20\x74\x33\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x28\x31\x20\x2d\x20\x6e\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x29\x20\x2a\x20\x28\x31\x2e\x32\x35\x20\x2a\x20\x6f\x32\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x6e\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x74\x33\x5d\x2e\x65\x6e\x61\x62\x6c\x65\x53\x68\x61\x64\x65\x73\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x68\x65\x6d\x65\x2e\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x72\x6b\x22\x20\x3f\x20\x78\x2e\x68\x65\x78\x54\x6f\x52\x67\x62\x61\x28\x68\x33\x2e\x73\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x28\x2d\x31\x20\x2a\x20\x72\x32\x2c\x20\x6e\x32\x2e\x63\x6f\x6c\x6f\x72\x29\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x20\x3a\x20\x78\x2e\x68\x65\x78\x54\x6f\x52\x67\x62\x61\x28\x68\x33\x2e\x73\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x28\x72\x32\x2c\x20\x6e\x32\x2e\x63\x6f\x6c\x6f\x72\x29\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x29\x2c\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x6c\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x50\x72\x6f\x70\x73\x3a\x20\x6e\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x5b\x69\x32\x5d\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x5b\x74\x33\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x69\x6e\x76\x65\x72\x73\x65\x20\x3f\x20\x69\x32\x20\x3a\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6f\x32\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x68\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x2e\x61\x70\x70\x6c\x79\x28\x4d\x61\x74\x68\x2c\x20\x75\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x29\x29\x2c\x20\x63\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x2e\x61\x70\x70\x6c\x79\x28\x4d\x61\x74\x68\x2c\x20\x75\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x65\x32\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x7c\x7c\x20\x74\x33\x20\x21\x3d\x3d\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x7c\x7c\x20\x28\x68\x33\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x29\x2c\x20\x72\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x6d\x69\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x68\x33\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x6d\x69\x6e\x20\x3c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x20\x3f\x20\x72\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x6d\x69\x6e\x20\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x6d\x61\x78\x20\x3e\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x20\x3f\x20\x72\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x6d\x61\x78\x20\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x63\x32\x29\x20\x2b\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x68\x33\x29\x2c\x20\x67\x32\x20\x3d\x20\x31\x30\x30\x20\x2a\x20\x73\x32\x20\x2f\x20\x28\x64\x32\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x64\x32\x20\x2d\x20\x31\x65\x2d\x36\x20\x3a\x20\x64\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x72\x61\x6e\x67\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x72\x32\x2e\x63\x6f\x6c\x6f\x72\x53\x63\x61\x6c\x65\x2e\x72\x61\x6e\x67\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x20\x3e\x3d\x20\x74\x34\x2e\x66\x72\x6f\x6d\x20\x26\x26\x20\x73\x32\x20\x3c\x3d\x20\x74\x34\x2e\x74\x6f\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x74\x34\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x6c\x32\x20\x3d\x20\x74\x34\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x20\x3f\x20\x74\x34\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x68\x33\x20\x3d\x20\x74\x34\x2e\x66\x72\x6f\x6d\x2c\x20\x63\x32\x20\x3d\x20\x74\x34\x2e\x74\x6f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x63\x32\x29\x20\x2b\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x3d\x20\x31\x30\x30\x20\x2a\x20\x73\x32\x20\x2f\x20\x28\x69\x33\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x69\x33\x20\x2d\x20\x31\x65\x2d\x36\x20\x3a\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x6e\x32\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x6c\x32\x2c\x20\x70\x65\x72\x63\x65\x6e\x74\x3a\x20\x67\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x74\x65\x78\x74\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x50\x72\x6f\x70\x73\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2c\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x7a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x64\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x3d\x20\x68\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x2d\x6c\x61\x62\x65\x6c\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x6c\x32\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x75\x32\x20\x3d\x20\x6c\x32\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x70\x33\x20\x3d\x20\x69\x32\x20\x2b\x20\x67\x32\x2c\x20\x66\x32\x20\x3d\x20\x61\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x6c\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x29\x20\x2f\x20\x33\x20\x2b\x20\x75\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x70\x6c\x6f\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x70\x33\x2c\x20\x79\x3a\x20\x66\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x65\x32\x2c\x20\x69\x3a\x20\x73\x32\x2c\x20\x6a\x3a\x20\x72\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x6f\x32\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x64\x32\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x6e\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x3a\x20\x6c\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x2c\x20\x65\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x65\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x65\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x44\x6f\x77\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x41\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x20\x3d\x20\x69\x32\x2e\x78\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x20\x3d\x20\x69\x32\x2e\x79\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x6b\x74\x28\x65\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x52\x61\x64\x69\x75\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x65\x61\x74\x6d\x61\x70\x2e\x72\x61\x64\x69\x75\x73\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x73\x68\x6f\x77\x20\x3f\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x65\x61\x74\x6d\x61\x70\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x67\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x65\x67\x52\x61\x6e\x67\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x63\x68\x65\x63\x6b\x43\x6f\x6c\x6f\x72\x52\x61\x6e\x67\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x6c\x32\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x6e\x32\x20\x3f\x20\x30\x20\x3a\x20\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x6e\x32\x20\x3f\x20\x68\x33\x20\x3c\x20\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x68\x33\x20\x3e\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3f\x20\x68\x33\x2b\x2b\x20\x3a\x20\x68\x33\x2d\x2d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x65\x61\x74\x6d\x61\x70\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x68\x33\x5d\x29\x2c\x20\x72\x65\x6c\x3a\x20\x68\x33\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x68\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x43\x6c\x61\x73\x73\x54\x6f\x53\x65\x72\x69\x65\x73\x28\x63\x32\x2c\x20\x68\x33\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x63\x32\x2c\x20\x64\x32\x2c\x20\x68\x33\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\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x2c\x20\x75\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x65\x61\x74\x6d\x61\x70\x2e\x73\x68\x61\x64\x65\x49\x6e\x74\x65\x6e\x73\x69\x74\x79\x2c\x20\x70\x33\x20\x3d\x20\x30\x3b\x20\x70\x33\x20\x3c\x20\x6c\x32\x5b\x68\x33\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x70\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x53\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x68\x33\x2c\x20\x70\x33\x2c\x20\x74\x68\x69\x73\x2e\x6e\x65\x67\x52\x61\x6e\x67\x65\x29\x2c\x20\x62\x32\x20\x3d\x20\x66\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x79\x32\x20\x3d\x20\x66\x32\x2e\x63\x6f\x6c\x6f\x72\x50\x72\x6f\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x69\x6d\x61\x67\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x68\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x70\x33\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x68\x61\x73\x4e\x65\x67\x73\x20\x3f\x20\x79\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x3c\x20\x30\x20\x3f\x20\x31\x20\x2d\x20\x28\x31\x20\x2b\x20\x79\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x29\x20\x3a\x20\x75\x32\x20\x2b\x20\x79\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x20\x3a\x20\x79\x32\x2e\x70\x65\x72\x63\x65\x6e\x74\x20\x2f\x20\x31\x30\x30\x2c\x20\x70\x61\x74\x74\x65\x72\x6e\x49\x44\x3a\x20\x78\x2e\x72\x61\x6e\x64\x6f\x6d\x49\x64\x28\x29\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x77\x69\x64\x74\x68\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x73\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x68\x65\x69\x67\x68\x74\x20\x3f\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x69\x6d\x61\x67\x65\x2e\x68\x65\x69\x67\x68\x74\x20\x3a\x20\x72\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x52\x61\x64\x69\x75\x73\x2c\x20\x6b\x32\x20\x3d\x20\x69\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x67\x32\x2c\x20\x6f\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x77\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x78\x3a\x20\x67\x32\x2c\x20\x63\x79\x3a\x20\x6f\x32\x20\x7d\x29\x2c\x20\x6b\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x65\x61\x74\x6d\x61\x70\x2d\x72\x65\x63\x74\x22\x29\x2c\x20\x63\x32\x2e\x61\x64\x64\x28\x6b\x32\x29\x2c\x20\x6b\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x62\x32\x2c\x20\x69\x3a\x20\x68\x33\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x68\x33\x2c\x20\x6a\x3a\x20\x70\x33\x2c\x20\x76\x61\x6c\x3a\x20\x6c\x32\x5b\x68\x33\x5d\x5b\x70\x33\x5d\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x65\x61\x74\x6d\x61\x70\x2e\x75\x73\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x41\x73\x53\x74\x72\x6f\x6b\x65\x20\x3f\x20\x62\x32\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x30\x5d\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x62\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x61\x64\x64\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x6b\x32\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x21\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x7c\x7c\x20\x28\x41\x32\x20\x3d\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x48\x65\x61\x74\x4d\x61\x70\x28\x6b\x32\x2c\x20\x67\x32\x2c\x20\x6f\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x41\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x53\x32\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x2e\x73\x70\x65\x65\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x43\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x68\x33\x5d\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x68\x33\x5d\x5b\x70\x33\x5d\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x68\x33\x5d\x5b\x70\x33\x5d\x2e\x63\x6f\x6c\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x43\x32\x20\x7c\x7c\x20\x28\x43\x32\x20\x3d\x20\x22\x72\x67\x62\x61\x28\x32\x35\x35\x2c\x20\x32\x35\x35\x2c\x20\x32\x35\x35\x2c\x20\x30\x29\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x48\x65\x61\x74\x43\x6f\x6c\x6f\x72\x28\x6b\x32\x2c\x20\x78\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x48\x65\x78\x28\x43\x32\x29\x20\x3f\x20\x43\x32\x20\x3a\x20\x78\x2e\x72\x67\x62\x32\x68\x65\x78\x28\x43\x32\x29\x2c\x20\x78\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x48\x65\x78\x28\x62\x32\x29\x20\x3f\x20\x62\x32\x20\x3a\x20\x78\x2e\x72\x67\x62\x32\x68\x65\x78\x28\x62\x32\x29\x2c\x20\x53\x32\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4c\x32\x20\x3d\x20\x28\x30\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x70\x33\x5d\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x68\x33\x5d\x5b\x70\x33\x5d\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x68\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x70\x33\x2c\x20\x77\x3a\x20\x65\x32\x20\x7d\x29\x2c\x20\x50\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x28\x7b\x20\x74\x65\x78\x74\x3a\x20\x4c\x32\x2c\x20\x78\x3a\x20\x67\x32\x20\x2b\x20\x73\x32\x20\x2f\x20\x32\x2c\x20\x79\x3a\x20\x6f\x32\x20\x2b\x20\x72\x32\x20\x2f\x20\x32\x2c\x20\x69\x3a\x20\x68\x33\x2c\x20\x6a\x3a\x20\x70\x33\x2c\x20\x63\x6f\x6c\x6f\x72\x50\x72\x6f\x70\x73\x3a\x20\x79\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x6c\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x63\x32\x2e\x61\x64\x64\x28\x50\x32\x29\x2c\x20\x67\x32\x20\x2b\x3d\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x2b\x3d\x20\x72\x32\x2c\x20\x61\x32\x2e\x61\x64\x64\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4d\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x4d\x32\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x22\x22\x29\x20\x3a\x20\x4d\x32\x2e\x70\x75\x73\x68\x28\x22\x22\x29\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x72\x65\x73\x75\x6c\x74\x20\x3d\x20\x4d\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x49\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x3d\x20\x2d\x49\x32\x20\x2f\x20\x32\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x48\x65\x61\x74\x4d\x61\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x62\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x61\x6e\x69\x6d\x61\x74\x65\x52\x65\x63\x74\x28\x74\x33\x2c\x20\x7b\x20\x78\x3a\x20\x65\x32\x20\x2b\x20\x61\x32\x20\x2f\x20\x32\x2c\x20\x79\x3a\x20\x69\x32\x20\x2b\x20\x73\x32\x20\x2f\x20\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x2c\x20\x7b\x20\x78\x3a\x20\x65\x32\x2c\x20\x79\x3a\x20\x69\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x61\x32\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x73\x32\x20\x7d\x2c\x20\x72\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x48\x65\x61\x74\x43\x6f\x6c\x6f\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x65\x32\x20\x7d\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x61\x32\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x69\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x53\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x59\x41\x78\x69\x73\x54\x65\x78\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x74\x33\x20\x2b\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x79\x3a\x20\x65\x32\x20\x2b\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x65\x78\x74\x3a\x20\x6f\x32\x28\x61\x32\x2c\x20\x69\x32\x29\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x69\x32\x5d\x20\x3a\x20\x72\x32\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x43\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x20\x3d\x20\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x44\x75\x72\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x64\x6f\x6e\x75\x74\x2e\x6c\x61\x62\x65\x6c\x73\x2c\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x41\x72\x72\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x53\x69\x7a\x65\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x59\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x53\x69\x7a\x65\x20\x2f\x20\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x58\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x3d\x20\x33\x36\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x67\x6c\x65\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x25\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x53\x69\x7a\x65\x20\x2f\x20\x32\x2e\x30\x35\x20\x2d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x30\x20\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x62\x6c\x75\x72\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x64\x6f\x6e\x75\x74\x2e\x73\x69\x7a\x65\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x2c\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x59\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x53\x69\x7a\x65\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x53\x65\x63\x74\x6f\x72\x41\x6e\x67\x6c\x65\x41\x72\x72\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x74\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x22\x20\x7d\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6e\x6f\x44\x61\x74\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x72\x65\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x30\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x2b\x3d\x20\x78\x2e\x6e\x65\x67\x54\x6f\x5a\x65\x72\x6f\x28\x74\x33\x5b\x72\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6e\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x31\x65\x2d\x35\x29\x2c\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6d\x61\x78\x59\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x65\x32\x2e\x6d\x61\x78\x59\x2c\x20\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6d\x61\x78\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6d\x61\x78\x59\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6d\x61\x78\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x61\x63\x6b\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x50\x6f\x6c\x61\x72\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x74\x68\x69\x73\x2e\x72\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x30\x3b\x20\x6c\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2a\x20\x78\x2e\x6e\x65\x67\x54\x6f\x5a\x65\x72\x6f\x28\x74\x33\x5b\x6c\x32\x5d\x29\x20\x2f\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x70\x75\x73\x68\x28\x68\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x3f\x20\x28\x6f\x32\x5b\x6c\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2f\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x53\x69\x7a\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x20\x2a\x20\x74\x33\x5b\x6c\x32\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x59\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x53\x69\x7a\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x63\x32\x2c\x20\x64\x32\x20\x3d\x20\x30\x2c\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x2b\x3d\x20\x78\x2e\x6e\x65\x67\x54\x6f\x5a\x65\x72\x6f\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x67\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x30\x3b\x20\x75\x32\x20\x3c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x75\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2a\x20\x78\x2e\x6e\x65\x67\x54\x6f\x5a\x65\x72\x6f\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x75\x32\x5d\x29\x20\x2f\x20\x64\x32\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x53\x65\x63\x74\x6f\x72\x41\x6e\x67\x6c\x65\x41\x72\x72\x2e\x70\x75\x73\x68\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x63\x75\x73\x74\x6f\x6d\x53\x63\x61\x6c\x65\x2c\x20\x66\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x62\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x2c\x20\x76\x32\x20\x3d\x20\x66\x32\x20\x2d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2a\x20\x70\x33\x2c\x20\x79\x32\x20\x3d\x20\x62\x32\x20\x2d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2a\x20\x70\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x43\x69\x72\x63\x6c\x65\x28\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x78\x3a\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x63\x79\x3a\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x64\x6f\x6e\x75\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3f\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x64\x6f\x6e\x75\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3a\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x20\x7d\x29\x2c\x20\x6e\x32\x2e\x61\x64\x64\x28\x77\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x41\x72\x63\x73\x28\x6f\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x32\x2e\x61\x64\x64\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6e\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x76\x32\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x79\x32\x2c\x20\x22\x29\x20\x73\x63\x61\x6c\x65\x28\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x70\x33\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x2c\x20\x6e\x32\x2e\x61\x64\x64\x28\x6b\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x74\x2e\x61\x64\x64\x28\x6e\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x6e\x64\x65\x72\x49\x6e\x6e\x65\x72\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x28\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2c\x20\x7b\x20\x68\x6f\x6c\x6c\x6f\x77\x53\x69\x7a\x65\x3a\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x2c\x20\x63\x65\x6e\x74\x65\x72\x58\x3a\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x63\x65\x6e\x74\x65\x72\x59\x3a\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x3a\x20\x76\x32\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x3a\x20\x79\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x74\x2e\x61\x64\x64\x28\x41\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x66\x72\x6f\x6e\x74\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x50\x6f\x6c\x61\x72\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x74\x68\x69\x73\x2e\x72\x65\x74\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x41\x72\x63\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x6c\x69\x63\x65\x73\x22\x20\x7d\x29\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x67\x6c\x65\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x67\x6c\x65\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x67\x6c\x65\x2c\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x67\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x73\x68\x6f\x77\x20\x3f\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x30\x3b\x20\x64\x32\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x64\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x64\x32\x5d\x29\x2c\x20\x72\x65\x6c\x3a\x20\x64\x32\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x64\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x61\x64\x64\x28\x67\x32\x29\x2c\x20\x6c\x32\x20\x3d\x20\x63\x32\x2c\x20\x68\x33\x20\x3d\x20\x28\x6e\x32\x20\x3d\x20\x68\x33\x29\x20\x2b\x20\x74\x33\x5b\x64\x32\x5d\x2c\x20\x63\x32\x20\x3d\x20\x6c\x32\x20\x2b\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x53\x65\x63\x74\x6f\x72\x41\x6e\x67\x6c\x65\x41\x72\x72\x5b\x64\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x68\x33\x20\x3c\x20\x6e\x32\x20\x3f\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2b\x20\x68\x33\x20\x2d\x20\x6e\x32\x20\x3a\x20\x68\x33\x20\x2d\x20\x6e\x32\x2c\x20\x70\x33\x20\x3d\x20\x72\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x64\x32\x2c\x20\x73\x69\x7a\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x53\x69\x7a\x65\x73\x5b\x64\x32\x5d\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x65\x32\x5b\x64\x32\x5d\x20\x7d\x29\x2c\x20\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x43\x68\x61\x6e\x67\x65\x64\x50\x61\x74\x68\x28\x6c\x32\x2c\x20\x63\x32\x29\x2c\x20\x62\x32\x20\x3d\x20\x73\x32\x2e\x64\x72\x61\x77\x50\x61\x74\x68\x28\x7b\x20\x64\x3a\x20\x66\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x41\x72\x72\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x41\x72\x72\x5b\x64\x32\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x41\x72\x72\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x70\x33\x2c\x20\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x63\x6c\x61\x73\x73\x65\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x2d\x61\x72\x65\x61\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x20\x22\x2d\x73\x6c\x69\x63\x65\x2d\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x64\x32\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x30\x2c\x20\x6a\x3a\x20\x64\x32\x20\x7d\x29\x2c\x20\x61\x32\x2e\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x46\x69\x6c\x74\x65\x72\x28\x62\x32\x2c\x20\x30\x2c\x20\x64\x32\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x62\x32\x2c\x20\x79\x32\x2c\x20\x64\x32\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\x64\x64\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x62\x32\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x29\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x62\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x7b\x20\x22\x64\x61\x74\x61\x3a\x61\x6e\x67\x6c\x65\x22\x3a\x20\x75\x32\x2c\x20\x22\x64\x61\x74\x61\x3a\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x22\x3a\x20\x6e\x32\x2c\x20\x22\x64\x61\x74\x61\x3a\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x22\x3a\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x22\x64\x61\x74\x61\x3a\x76\x61\x6c\x75\x65\x22\x3a\x20\x65\x32\x5b\x64\x32\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x69\x65\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x3f\x20\x77\x32\x20\x3d\x20\x78\x2e\x70\x6f\x6c\x61\x72\x54\x6f\x43\x61\x72\x74\x65\x73\x69\x61\x6e\x28\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x20\x2f\x20\x31\x2e\x32\x35\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x28\x6e\x32\x20\x2b\x20\x75\x32\x20\x2f\x20\x32\x29\x20\x25\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x20\x26\x26\x20\x28\x77\x32\x20\x3d\x20\x78\x2e\x70\x6f\x6c\x61\x72\x54\x6f\x43\x61\x72\x74\x65\x73\x69\x61\x6e\x28\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x20\x2b\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x29\x20\x2f\x20\x32\x20\x2b\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x28\x6e\x32\x20\x2b\x20\x75\x32\x20\x2f\x20\x32\x29\x20\x25\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x29\x29\x2c\x20\x67\x32\x2e\x61\x64\x64\x28\x62\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x7c\x7c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x7c\x7c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x2e\x70\x75\x73\x68\x28\x30\x29\x20\x3a\x20\x28\x28\x6b\x32\x20\x3d\x20\x75\x32\x20\x2f\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x29\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x6b\x32\x20\x3d\x20\x31\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x44\x75\x72\x20\x3d\x20\x6b\x32\x20\x2b\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x44\x75\x72\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x44\x75\x72\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x50\x61\x74\x68\x73\x28\x62\x32\x2c\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x53\x69\x7a\x65\x73\x5b\x64\x32\x5d\x2c\x20\x65\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x68\x33\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x6e\x32\x2c\x20\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x6c\x32\x2c\x20\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x63\x32\x2c\x20\x61\x6e\x69\x6d\x61\x74\x65\x53\x74\x61\x72\x74\x69\x6e\x67\x50\x6f\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x69\x3a\x20\x64\x32\x2c\x20\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x3a\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x2c\x20\x73\x68\x6f\x75\x6c\x64\x53\x65\x74\x50\x72\x65\x76\x50\x61\x74\x68\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x64\x75\x72\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x73\x70\x65\x65\x64\x20\x7d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x50\x61\x74\x68\x73\x28\x62\x32\x2c\x20\x7b\x20\x73\x69\x7a\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x53\x69\x7a\x65\x73\x5b\x64\x32\x5d\x2c\x20\x65\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x68\x33\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x6e\x32\x2c\x20\x69\x3a\x20\x64\x32\x2c\x20\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x3a\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x2c\x20\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x3a\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x2c\x20\x64\x75\x72\x3a\x20\x6b\x32\x20\x7d\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x65\x78\x70\x61\x6e\x64\x4f\x6e\x43\x6c\x69\x63\x6b\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x26\x26\x20\x62\x32\x2e\x63\x6c\x69\x63\x6b\x28\x74\x68\x69\x73\x2e\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x64\x32\x29\x29\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x30\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x64\x32\x29\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x28\x64\x32\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x77\x32\x2e\x78\x2c\x20\x53\x32\x20\x3d\x20\x77\x32\x2e\x79\x2c\x20\x43\x32\x20\x3d\x20\x31\x30\x30\x20\x2a\x20\x75\x32\x20\x2f\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2b\x20\x22\x25\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x75\x32\x20\x21\x3d\x3d\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x6d\x69\x6e\x41\x6e\x67\x6c\x65\x54\x6f\x53\x68\x6f\x77\x4c\x61\x62\x65\x6c\x20\x3c\x20\x74\x33\x5b\x64\x32\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4c\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x43\x32\x20\x3d\x20\x4c\x32\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x50\x65\x72\x63\x65\x6e\x74\x5b\x64\x32\x5d\x5b\x30\x5d\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x64\x32\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x50\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x64\x32\x5d\x2c\x20\x4d\x32\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x20\x7d\x29\x2c\x20\x49\x32\x20\x3d\x20\x73\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x41\x32\x2c\x20\x79\x3a\x20\x53\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x43\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x50\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4d\x32\x2e\x61\x64\x64\x28\x49\x32\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x7a\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x49\x32\x2c\x20\x7a\x32\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\x49\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x2d\x6c\x61\x62\x65\x6c\x22\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x28\x49\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x2d\x6c\x61\x62\x65\x6c\x2d\x64\x65\x6c\x61\x79\x22\x29\x2c\x20\x49\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x20\x2f\x20\x39\x34\x30\x20\x2b\x20\x22\x73\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x6c\x69\x63\x65\x4c\x61\x62\x65\x6c\x73\x2e\x70\x75\x73\x68\x28\x4d\x32\x29\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x2c\x20\x69\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x69\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x76\x65\x72\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2c\x20\x65\x32\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x69\x32\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x44\x6f\x77\x6e\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x74\x6f\x74\x61\x6c\x2e\x73\x68\x6f\x77\x41\x6c\x77\x61\x79\x73\x20\x7c\x7c\x20\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x69\x6e\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2c\x20\x65\x32\x29\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x69\x6e\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2c\x20\x65\x32\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3c\x20\x65\x32\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3f\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2b\x20\x65\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x65\x32\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3a\x20\x65\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x65\x32\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x65\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x65\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x2c\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3c\x20\x65\x32\x2e\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3f\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2b\x20\x65\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x65\x32\x2e\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3a\x20\x65\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x65\x32\x2e\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x29\x2c\x20\x65\x32\x2e\x69\x20\x3d\x3d\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x26\x26\x20\x28\x61\x32\x20\x2b\x20\x6f\x32\x20\x3e\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x3f\x20\x65\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3d\x20\x65\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x28\x61\x32\x20\x2b\x20\x6f\x32\x29\x20\x3a\x20\x61\x32\x20\x2b\x20\x6f\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x26\x26\x20\x28\x65\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3d\x20\x65\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2d\x20\x28\x61\x32\x20\x2b\x20\x6f\x32\x29\x29\x29\x29\x2c\x20\x61\x32\x20\x3d\x3d\x3d\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2d\x20\x30\x2e\x30\x31\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x41\x72\x63\x28\x74\x33\x2c\x20\x72\x32\x2c\x20\x6f\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x41\x72\x63\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x62\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x73\x69\x7a\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x69\x73\x4e\x61\x4e\x28\x65\x32\x29\x20\x7c\x7c\x20\x69\x73\x4e\x61\x4e\x28\x73\x32\x29\x29\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x69\x32\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2c\x20\x72\x32\x2e\x64\x75\x72\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x61\x32\x2c\x20\x67\x32\x20\x3d\x20\x69\x32\x2c\x20\x75\x32\x20\x3d\x20\x65\x32\x20\x3c\x20\x69\x32\x20\x3f\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2b\x20\x65\x32\x20\x2d\x20\x69\x32\x20\x3a\x20\x65\x32\x20\x2d\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x26\x26\x20\x72\x32\x2e\x73\x68\x6f\x75\x6c\x64\x53\x65\x74\x50\x72\x65\x76\x50\x61\x74\x68\x73\x20\x26\x26\x20\x72\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x50\x69\x65\x50\x61\x74\x68\x28\x7b\x20\x6d\x65\x3a\x20\x6e\x32\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x72\x32\x2e\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x61\x6e\x67\x6c\x65\x3a\x20\x72\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3c\x20\x72\x32\x2e\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3f\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2b\x20\x72\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x72\x32\x2e\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3a\x20\x72\x32\x2e\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x72\x32\x2e\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x73\x69\x7a\x65\x3a\x20\x63\x32\x20\x7d\x29\x2c\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x64\x3a\x20\x6f\x32\x20\x7d\x29\x29\x2c\x20\x72\x32\x2e\x64\x75\x72\x20\x21\x3d\x3d\x20\x30\x20\x3f\x20\x74\x33\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x72\x32\x2e\x64\x75\x72\x2c\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x2c\x20\x72\x32\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x5b\x72\x32\x2e\x69\x5d\x29\x2e\x61\x66\x74\x65\x72\x41\x6c\x6c\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x70\x69\x65\x22\x20\x26\x26\x20\x6e\x32\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x20\x26\x26\x20\x6e\x32\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x73\x70\x65\x65\x64\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x6e\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x7d\x29\x2c\x20\x72\x32\x2e\x69\x20\x3d\x3d\x3d\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x26\x26\x20\x68\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x64\x75\x72\x69\x6e\x67\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6c\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x3d\x20\x75\x32\x20\x2b\x20\x28\x61\x32\x20\x2d\x20\x75\x32\x29\x20\x2a\x20\x6c\x33\x2c\x20\x72\x32\x2e\x61\x6e\x69\x6d\x61\x74\x65\x53\x74\x61\x72\x74\x69\x6e\x67\x50\x6f\x73\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x73\x32\x20\x2b\x20\x28\x61\x32\x20\x2d\x20\x73\x32\x29\x20\x2a\x20\x6c\x33\x2c\x20\x67\x32\x20\x3d\x20\x65\x32\x20\x2d\x20\x73\x32\x20\x2b\x20\x28\x69\x32\x20\x2d\x20\x28\x65\x32\x20\x2d\x20\x73\x32\x29\x29\x20\x2a\x20\x6c\x33\x29\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x50\x69\x65\x50\x61\x74\x68\x28\x7b\x20\x6d\x65\x3a\x20\x6e\x32\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x67\x32\x2c\x20\x61\x6e\x67\x6c\x65\x3a\x20\x64\x32\x2c\x20\x73\x69\x7a\x65\x3a\x20\x63\x32\x20\x7d\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x70\x61\x74\x68\x4f\x72\x69\x67\x22\x2c\x20\x6f\x32\x29\x2c\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x64\x3a\x20\x6f\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x28\x6f\x32\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x50\x69\x65\x50\x61\x74\x68\x28\x7b\x20\x6d\x65\x3a\x20\x6e\x32\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x67\x32\x2c\x20\x61\x6e\x67\x6c\x65\x3a\x20\x61\x32\x2c\x20\x73\x69\x7a\x65\x3a\x20\x63\x32\x20\x7d\x29\x2c\x20\x72\x32\x2e\x69\x73\x54\x72\x61\x63\x6b\x20\x7c\x7c\x20\x28\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x70\x61\x74\x68\x4f\x72\x69\x67\x22\x2c\x20\x6f\x32\x29\x2c\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x64\x3a\x20\x6f\x32\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x6e\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x73\x6c\x69\x63\x65\x53\x69\x7a\x65\x73\x5b\x74\x33\x5d\x20\x2b\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x65\x78\x70\x61\x6e\x64\x4f\x6e\x43\x6c\x69\x63\x6b\x20\x3f\x20\x34\x20\x3a\x20\x30\x29\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x65\x6c\x65\x63\x74\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x20\x22\x2d\x73\x6c\x69\x63\x65\x2d\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x29\x29\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x2e\x61\x74\x74\x72\x28\x22\x64\x61\x74\x61\x3a\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x22\x29\x20\x21\x3d\x3d\x20\x22\x74\x72\x75\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x2d\x61\x72\x65\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x2e\x63\x61\x6c\x6c\x28\x6f\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x22\x2c\x20\x22\x66\x61\x6c\x73\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x34\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x70\x61\x74\x68\x4f\x72\x69\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x22\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x72\x32\x2e\x61\x74\x74\x72\x28\x22\x64\x61\x74\x61\x3a\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x22\x2c\x20\x22\x74\x72\x75\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x72\x32\x2e\x61\x74\x74\x72\x28\x22\x64\x61\x74\x61\x3a\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x22\x29\x2c\x20\x31\x30\x29\x2c\x20\x6c\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x72\x32\x2e\x61\x74\x74\x72\x28\x22\x64\x61\x74\x61\x3a\x61\x6e\x67\x6c\x65\x22\x29\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x50\x69\x65\x50\x61\x74\x68\x28\x7b\x20\x6d\x65\x3a\x20\x61\x32\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x6e\x32\x2c\x20\x61\x6e\x67\x6c\x65\x3a\x20\x6c\x32\x2c\x20\x73\x69\x7a\x65\x3a\x20\x73\x32\x20\x7d\x29\x2c\x20\x6c\x32\x20\x21\x3d\x3d\x20\x33\x36\x30\x20\x26\x26\x20\x72\x32\x2e\x70\x6c\x6f\x74\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x22\x64\x61\x74\x61\x3a\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x22\x3a\x20\x22\x66\x61\x6c\x73\x65\x22\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x76\x65\x72\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x28\x72\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x72\x32\x2e\x61\x74\x74\x72\x28\x22\x64\x61\x74\x61\x3a\x70\x61\x74\x68\x4f\x72\x69\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x64\x3a\x20\x68\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x43\x68\x61\x6e\x67\x65\x64\x50\x61\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x50\x69\x65\x50\x61\x74\x68\x28\x7b\x20\x6d\x65\x3a\x20\x74\x68\x69\x73\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x74\x33\x2c\x20\x61\x6e\x67\x6c\x65\x3a\x20\x65\x32\x20\x2d\x20\x74\x33\x2c\x20\x73\x69\x7a\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x20\x7d\x29\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x50\x69\x65\x50\x61\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x6d\x65\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x61\x6e\x67\x6c\x65\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x73\x69\x7a\x65\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2c\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2a\x20\x28\x72\x32\x20\x2d\x20\x39\x30\x29\x20\x2f\x20\x31\x38\x30\x2c\x20\x6e\x32\x20\x3d\x20\x61\x32\x20\x2b\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x6e\x32\x29\x20\x3e\x3d\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2b\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x25\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2b\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x25\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x2d\x20\x30\x2e\x30\x31\x29\x2c\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x6e\x32\x29\x20\x3e\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x20\x26\x26\x20\x28\x6e\x32\x20\x2d\x3d\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x41\x6e\x67\x6c\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2a\x20\x28\x6e\x32\x20\x2d\x20\x39\x30\x29\x20\x2f\x20\x31\x38\x30\x2c\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x58\x20\x2b\x20\x73\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x6f\x32\x29\x2c\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x59\x20\x2b\x20\x73\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x6f\x32\x29\x2c\x20\x64\x32\x20\x3d\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x58\x20\x2b\x20\x73\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x6c\x32\x29\x2c\x20\x67\x32\x20\x3d\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x59\x20\x2b\x20\x73\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x6c\x32\x29\x2c\x20\x75\x32\x20\x3d\x20\x78\x2e\x70\x6f\x6c\x61\x72\x54\x6f\x43\x61\x72\x74\x65\x73\x69\x61\x6e\x28\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x65\x32\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x2c\x20\x6e\x32\x29\x2c\x20\x70\x33\x20\x3d\x20\x78\x2e\x70\x6f\x6c\x61\x72\x54\x6f\x43\x61\x72\x74\x65\x73\x69\x61\x6e\x28\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x65\x32\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x2c\x20\x72\x32\x29\x2c\x20\x66\x32\x20\x3d\x20\x61\x32\x20\x3e\x20\x31\x38\x30\x20\x3f\x20\x31\x20\x3a\x20\x30\x2c\x20\x62\x32\x20\x3d\x20\x5b\x22\x4d\x22\x2c\x20\x68\x33\x2c\x20\x63\x32\x2c\x20\x22\x41\x22\x2c\x20\x73\x32\x2c\x20\x73\x32\x2c\x20\x30\x2c\x20\x66\x32\x2c\x20\x31\x2c\x20\x64\x32\x2c\x20\x67\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x20\x3f\x20\x5b\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x62\x32\x2c\x20\x5b\x22\x4c\x22\x2c\x20\x75\x32\x2e\x78\x2c\x20\x75\x32\x2e\x79\x2c\x20\x22\x41\x22\x2c\x20\x65\x32\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x2c\x20\x65\x32\x2e\x64\x6f\x6e\x75\x74\x53\x69\x7a\x65\x2c\x20\x30\x2c\x20\x66\x32\x2c\x20\x30\x2c\x20\x70\x33\x2e\x78\x2c\x20\x70\x33\x2e\x79\x2c\x20\x22\x4c\x22\x2c\x20\x68\x33\x2c\x20\x63\x32\x2c\x20\x22\x7a\x22\x5d\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x69\x65\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x3f\x20\x5b\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x62\x32\x2c\x20\x5b\x22\x4c\x22\x2c\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x22\x4c\x22\x2c\x20\x68\x33\x2c\x20\x63\x32\x5d\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x20\x3a\x20\x5b\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x62\x32\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x50\x6f\x6c\x61\x72\x45\x6c\x65\x6d\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x71\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x53\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x29\x2c\x20\x6f\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x6e\x69\x63\x65\x53\x63\x61\x6c\x65\x28\x30\x2c\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x74\x68\x69\x73\x2e\x6d\x61\x78\x59\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x2c\x20\x30\x2c\x20\x74\x72\x75\x65\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x2e\x72\x65\x73\x75\x6c\x74\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x2c\x20\x68\x33\x20\x3d\x20\x6e\x32\x2e\x72\x65\x73\x75\x6c\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x59\x20\x3d\x20\x6e\x32\x2e\x6e\x69\x63\x65\x4d\x61\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x2c\x20\x64\x32\x20\x3d\x20\x63\x32\x20\x2f\x20\x28\x68\x33\x20\x2d\x20\x31\x29\x2c\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x68\x33\x20\x2d\x20\x31\x3b\x20\x67\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x43\x69\x72\x63\x6c\x65\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x75\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x78\x3a\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x63\x79\x3a\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x2e\x72\x69\x6e\x67\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x2e\x72\x69\x6e\x67\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x20\x7d\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x73\x32\x2e\x64\x72\x61\x77\x59\x41\x78\x69\x73\x54\x65\x78\x74\x73\x28\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x59\x20\x2d\x20\x63\x32\x20\x2b\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x20\x2f\x20\x32\x2c\x20\x67\x32\x2c\x20\x6c\x32\x5b\x67\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x61\x64\x64\x28\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x61\x64\x64\x28\x75\x32\x29\x2c\x20\x63\x32\x20\x2d\x3d\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x53\x70\x6f\x6b\x65\x73\x28\x74\x33\x29\x2c\x20\x74\x33\x2e\x61\x64\x64\x28\x72\x32\x29\x2c\x20\x74\x33\x2e\x61\x64\x64\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6e\x64\x65\x72\x49\x6e\x6e\x65\x72\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x2d\x67\x72\x6f\x75\x70\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3f\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x3a\x20\x30\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3f\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x3a\x20\x30\x2c\x20\x22\x29\x20\x73\x63\x61\x6c\x65\x28\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x63\x75\x73\x74\x6f\x6d\x53\x63\x61\x6c\x65\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x73\x68\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x65\x32\x2e\x6f\x70\x61\x63\x69\x74\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x63\x6f\x6c\x6f\x72\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x30\x5d\x20\x3a\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x63\x6f\x6c\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x63\x6f\x6c\x6f\x72\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x20\x3a\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x63\x6f\x6c\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x70\x33\x20\x3d\x20\x22\x22\x2c\x20\x66\x32\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x20\x3f\x20\x28\x6f\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x6c\x61\x62\x65\x6c\x2c\x20\x70\x33\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x69\x32\x29\x29\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x75\x32\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x30\x5d\x2c\x20\x69\x32\x29\x2c\x20\x66\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x30\x5d\x29\x2c\x20\x66\x32\x20\x26\x26\x20\x28\x66\x32\x20\x3d\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x66\x32\x2c\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x73\x68\x6f\x77\x2c\x20\x69\x32\x29\x29\x2c\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x6c\x32\x2c\x20\x79\x3a\x20\x68\x33\x20\x2b\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x29\x2c\x20\x74\x65\x78\x74\x3a\x20\x66\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x6f\x32\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x63\x32\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x67\x32\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x64\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x2d\x6c\x61\x62\x65\x6c\x22\x29\x2c\x20\x73\x32\x2e\x61\x64\x64\x28\x78\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x73\x68\x6f\x77\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x29\x20\x2b\x20\x31\x36\x20\x3a\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x76\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x6c\x32\x2c\x20\x79\x3a\x20\x68\x33\x20\x2b\x20\x62\x32\x2c\x20\x74\x65\x78\x74\x3a\x20\x70\x33\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x66\x6f\x72\x65\x43\x6f\x6c\x6f\x72\x3a\x20\x6e\x32\x2c\x20\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x66\x6f\x6e\x74\x57\x65\x69\x67\x68\x74\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x3a\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x66\x6f\x6e\x74\x46\x61\x6d\x69\x6c\x79\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x2d\x76\x61\x6c\x75\x65\x22\x29\x2c\x20\x73\x32\x2e\x61\x64\x64\x28\x76\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x72\x69\x6e\x74\x49\x6e\x6e\x65\x72\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3f\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x63\x6f\x6c\x6f\x72\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x61\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x5d\x20\x3a\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x63\x6f\x6c\x6f\x72\x20\x3a\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x63\x6f\x6c\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x2d\x6c\x61\x62\x65\x6c\x22\x29\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x2d\x76\x61\x6c\x75\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x28\x30\x2c\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x29\x28\x69\x32\x2c\x20\x72\x32\x29\x2c\x20\x61\x32\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x7c\x7c\x20\x28\x69\x32\x20\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x72\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x65\x32\x20\x3d\x3d\x3d\x20\x74\x33\x2e\x74\x6f\x74\x61\x6c\x2e\x6c\x61\x62\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x6e\x61\x6d\x65\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x65\x32\x2c\x20\x6c\x32\x2c\x20\x72\x32\x29\x2c\x20\x6f\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x6f\x32\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x65\x32\x29\x2c\x20\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x6e\x32\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x69\x32\x29\x2c\x20\x6f\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x6f\x32\x2e\x73\x74\x79\x6c\x65\x2e\x66\x69\x6c\x6c\x20\x3d\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x72\x69\x6e\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x76\x61\x6c\x75\x65\x22\x29\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x72\x65\x6c\x22\x29\x2c\x20\x31\x30\x29\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x72\x69\x6e\x74\x49\x6e\x6e\x65\x72\x4c\x61\x62\x65\x6c\x73\x28\x65\x32\x2c\x20\x73\x32\x2c\x20\x61\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x2d\x67\x72\x6f\x75\x70\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x72\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x53\x70\x6f\x6b\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x2e\x73\x70\x6f\x6b\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x33\x36\x30\x20\x2f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x78\x2e\x70\x6f\x6c\x61\x72\x54\x6f\x43\x61\x72\x74\x65\x73\x69\x61\x6e\x28\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x69\x65\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x2b\x20\x6f\x32\x20\x2a\x20\x6e\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x2c\x20\x72\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x33\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x69\x33\x2e\x78\x2c\x20\x69\x33\x2e\x79\x2c\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x65\x32\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x32\x2e\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x43\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x73\x32\x2e\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x43\x6f\x6c\x6f\x72\x73\x5b\x72\x33\x5d\x20\x3a\x20\x73\x32\x2e\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x43\x6f\x6c\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x64\x64\x28\x6f\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x76\x65\x72\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x2d\x67\x72\x6f\x75\x70\x22\x29\x2c\x20\x6f\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x2d\x61\x72\x65\x61\x22\x29\x2c\x20\x6c\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x34\x2e\x6d\x61\x6b\x65\x53\x6c\x69\x63\x65\x4f\x75\x74\x2c\x20\x73\x33\x20\x3d\x20\x74\x34\x2e\x70\x72\x69\x6e\x74\x4c\x61\x62\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x66\x6f\x72\x45\x61\x63\x68\x2e\x63\x61\x6c\x6c\x28\x6e\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x3a\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x22\x29\x20\x3d\x3d\x3d\x20\x22\x74\x72\x75\x65\x22\x20\x26\x26\x20\x28\x69\x33\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x73\x33\x20\x26\x26\x20\x61\x32\x2e\x70\x72\x69\x6e\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x28\x74\x35\x2c\x20\x65\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x28\x7b\x20\x6d\x61\x6b\x65\x53\x6c\x69\x63\x65\x4f\x75\x74\x3a\x20\x74\x72\x75\x65\x2c\x20\x70\x72\x69\x6e\x74\x4c\x61\x62\x65\x6c\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x29\x2c\x20\x65\x32\x2e\x74\x6f\x74\x61\x6c\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x26\x26\x20\x21\x65\x32\x2e\x74\x6f\x74\x61\x6c\x2e\x73\x68\x6f\x77\x41\x6c\x77\x61\x79\x73\x20\x3f\x20\x6c\x32\x28\x7b\x20\x6d\x61\x6b\x65\x53\x6c\x69\x63\x65\x4f\x75\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x72\x69\x6e\x74\x4c\x61\x62\x65\x6c\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x72\x69\x6e\x74\x49\x6e\x6e\x65\x72\x4c\x61\x62\x65\x6c\x73\x28\x65\x32\x2c\x20\x65\x32\x2e\x74\x6f\x74\x61\x6c\x2e\x6c\x61\x62\x65\x6c\x2c\x20\x65\x32\x2e\x74\x6f\x74\x61\x6c\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x73\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6c\x32\x28\x7b\x20\x6d\x61\x6b\x65\x53\x6c\x69\x63\x65\x4f\x75\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x72\x69\x6e\x74\x4c\x61\x62\x65\x6c\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x2c\x20\x21\x6f\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x30\x5d\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\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x30\x5d\x2c\x20\x63\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x20\x22\x2d\x73\x6c\x69\x63\x65\x2d\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x68\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x72\x69\x6e\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x49\x6e\x6e\x65\x72\x28\x63\x32\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x5b\x30\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x72\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x72\x32\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x4c\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x54\x79\x70\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x44\x75\x72\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x6f\x6c\x6f\x72\x41\x72\x72\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6f\x72\x73\x2c\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x53\x69\x7a\x65\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x3f\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x31\x2e\x35\x20\x2a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x6f\x6c\x64\x65\x6e\x50\x61\x64\x64\x69\x6e\x67\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x4c\x6f\x67\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x6c\x6f\x67\x61\x72\x69\x74\x68\x6d\x69\x63\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x61\x78\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x73\x4c\x6f\x67\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x4c\x6f\x67\x56\x61\x6c\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x2c\x20\x30\x29\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x2c\x20\x74\x68\x69\x73\x2e\x6d\x69\x6e\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x73\x4c\x6f\x67\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x4c\x6f\x67\x56\x61\x6c\x28\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x30\x29\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x61\x72\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x73\x68\x6f\x77\x20\x3f\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x53\x69\x7a\x65\x20\x2f\x20\x32\x2e\x31\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x62\x6c\x75\x72\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x20\x2d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x2e\x37\x35\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x61\x72\x2e\x73\x69\x7a\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x61\x72\x2e\x73\x69\x7a\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x52\x61\x64\x69\x75\x73\x4f\x66\x50\x65\x72\x63\x65\x6e\x74\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x52\x61\x64\x69\x75\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x67\x6c\x65\x41\x72\x72\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x73\x50\x6f\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x7a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x4c\x65\x6e\x20\x3d\x20\x74\x33\x5b\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x56\x61\x6c\x73\x49\x6e\x41\x72\x72\x61\x79\x49\x6e\x64\x65\x78\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x69\x73\x41\x6e\x67\x6c\x65\x20\x3d\x20\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x4c\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x2c\x20\x68\x33\x20\x3d\x20\x6e\x32\x20\x2b\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x61\x72\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x63\x32\x20\x3d\x20\x6c\x32\x20\x2b\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x61\x72\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x68\x33\x20\x7c\x7c\x20\x30\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x63\x32\x20\x7c\x7c\x20\x30\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x2c\x20\x67\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x75\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x22\x20\x7d\x29\x2c\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x6e\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x33\x20\x3d\x20\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x68\x34\x20\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x22\x64\x61\x74\x61\x3a\x6c\x6f\x6e\x67\x65\x73\x74\x53\x65\x72\x69\x65\x73\x22\x3a\x20\x6c\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x6e\x33\x5d\x29\x2c\x20\x72\x65\x6c\x3a\x20\x6e\x33\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x6e\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x64\x61\x74\x61\x52\x61\x64\x69\x75\x73\x4f\x66\x50\x65\x72\x63\x65\x6e\x74\x5b\x6e\x33\x5d\x20\x3d\x20\x5b\x5d\x2c\x20\x69\x32\x2e\x64\x61\x74\x61\x52\x61\x64\x69\x75\x73\x5b\x6e\x33\x5d\x20\x3d\x20\x5b\x5d\x2c\x20\x69\x32\x2e\x61\x6e\x67\x6c\x65\x41\x72\x72\x5b\x6e\x33\x5d\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x34\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x69\x32\x2e\x6d\x61\x78\x56\x61\x6c\x75\x65\x20\x2d\x20\x69\x32\x2e\x6d\x69\x6e\x56\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x35\x20\x2b\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x69\x32\x2e\x6d\x69\x6e\x56\x61\x6c\x75\x65\x29\x2c\x20\x69\x32\x2e\x69\x73\x4c\x6f\x67\x20\x26\x26\x20\x28\x74\x35\x20\x3d\x20\x69\x32\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x4c\x6f\x67\x56\x61\x6c\x28\x74\x35\x2c\x20\x30\x29\x29\x2c\x20\x69\x32\x2e\x64\x61\x74\x61\x52\x61\x64\x69\x75\x73\x4f\x66\x50\x65\x72\x63\x65\x6e\x74\x5b\x6e\x33\x5d\x5b\x65\x32\x5d\x20\x3d\x20\x74\x35\x20\x2f\x20\x61\x33\x2c\x20\x69\x32\x2e\x64\x61\x74\x61\x52\x61\x64\x69\x75\x73\x5b\x6e\x33\x5d\x5b\x65\x32\x5d\x20\x3d\x20\x69\x32\x2e\x64\x61\x74\x61\x52\x61\x64\x69\x75\x73\x4f\x66\x50\x65\x72\x63\x65\x6e\x74\x5b\x6e\x33\x5d\x5b\x65\x32\x5d\x20\x2a\x20\x69\x32\x2e\x73\x69\x7a\x65\x2c\x20\x69\x32\x2e\x61\x6e\x67\x6c\x65\x41\x72\x72\x5b\x6e\x33\x5d\x5b\x65\x32\x5d\x20\x3d\x20\x65\x32\x20\x2a\x20\x69\x32\x2e\x64\x69\x73\x41\x6e\x67\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x67\x32\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x50\x6f\x73\x28\x69\x32\x2e\x64\x61\x74\x61\x52\x61\x64\x69\x75\x73\x5b\x6e\x33\x5d\x2c\x20\x69\x32\x2e\x61\x6e\x67\x6c\x65\x41\x72\x72\x5b\x6e\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x33\x20\x3d\x20\x69\x32\x2e\x63\x72\x65\x61\x74\x65\x50\x61\x74\x68\x73\x28\x67\x32\x2c\x20\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x2d\x77\x72\x61\x70\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x65\x6c\x65\x6d\x65\x6e\x74\x2d\x68\x69\x64\x64\x65\x6e\x22\x20\x7d\x29\x2c\x20\x70\x33\x20\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x6e\x33\x20\x7d\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x65\x6c\x3a\x20\x75\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x6e\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x33\x20\x3d\x20\x7b\x20\x69\x3a\x20\x6e\x33\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x6e\x33\x2c\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x3a\x20\x6e\x33\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x53\x70\x65\x65\x64\x3a\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x2c\x20\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x53\x70\x65\x65\x64\x3a\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x73\x70\x65\x65\x64\x2c\x20\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x61\x72\x22\x2c\x20\x73\x68\x6f\x75\x6c\x64\x43\x6c\x69\x70\x54\x6f\x47\x72\x69\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x62\x69\x6e\x64\x45\x76\x65\x6e\x74\x73\x4f\x6e\x50\x61\x74\x68\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6e\x33\x5d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x43\x61\x70\x3a\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x6c\x69\x6e\x65\x43\x61\x70\x20\x7d\x2c\x20\x66\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x66\x33\x20\x3d\x20\x69\x32\x2e\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x28\x6e\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x30\x3b\x20\x62\x32\x20\x3c\x20\x63\x33\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x54\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x62\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x72\x65\x6e\x64\x65\x72\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x64\x33\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x66\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x63\x33\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x46\x72\x6f\x6d\x5b\x62\x32\x5d\x20\x3a\x20\x66\x33\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x63\x33\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x54\x6f\x5b\x62\x32\x5d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x69\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x20\x3f\x20\x69\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x5b\x6e\x33\x5d\x20\x3a\x20\x69\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x64\x72\x61\x77\x53\x68\x61\x64\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x34\x2e\x61\x64\x64\x28\x6d\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x6e\x33\x20\x7d\x29\x2c\x20\x77\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x72\x65\x6e\x64\x65\x72\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x64\x33\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x66\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x63\x33\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x73\x46\x72\x6f\x6d\x5b\x62\x32\x5d\x20\x3a\x20\x66\x33\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x63\x33\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x73\x54\x6f\x5b\x62\x32\x5d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x79\x32\x2c\x20\x64\x72\x61\x77\x53\x68\x61\x64\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x69\x32\x2e\x63\x74\x78\x29\x2c\x20\x41\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x77\x32\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x41\x32\x2c\x20\x7b\x20\x6e\x6f\x55\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x2c\x20\x6e\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x34\x2e\x61\x64\x64\x28\x77\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x6e\x65\x77\x20\x4d\x28\x69\x32\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x4d\x61\x72\x6b\x65\x72\x43\x6f\x6e\x66\x69\x67\x28\x7b\x20\x63\x73\x73\x43\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x6e\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x73\x33\x20\x7d\x29\x2c\x20\x6c\x34\x20\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x4d\x61\x72\x6b\x65\x72\x28\x67\x32\x5b\x73\x33\x5d\x2e\x78\x2c\x20\x67\x32\x5b\x73\x33\x5d\x2e\x79\x2c\x20\x72\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x34\x2e\x61\x74\x74\x72\x28\x22\x72\x65\x6c\x22\x2c\x20\x73\x33\x29\x2c\x20\x6c\x34\x2e\x61\x74\x74\x72\x28\x22\x6a\x22\x2c\x20\x73\x33\x29\x2c\x20\x6c\x34\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x64\x65\x78\x22\x2c\x20\x6e\x33\x29\x2c\x20\x6c\x34\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x65\x66\x61\x75\x6c\x74\x2d\x6d\x61\x72\x6b\x65\x72\x2d\x73\x69\x7a\x65\x22\x2c\x20\x72\x33\x2e\x70\x53\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x34\x20\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x34\x20\x26\x26\x20\x63\x34\x2e\x61\x64\x64\x28\x6c\x34\x29\x2c\x20\x75\x32\x2e\x61\x64\x64\x28\x63\x34\x29\x2c\x20\x68\x34\x2e\x61\x64\x64\x28\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x34\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x34\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x34\x20\x3d\x20\x64\x34\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x33\x5d\x5b\x73\x33\x5d\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x6e\x33\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x73\x33\x2c\x20\x77\x3a\x20\x61\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x70\x6c\x6f\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x67\x32\x5b\x73\x33\x5d\x2e\x78\x2c\x20\x79\x3a\x20\x67\x32\x5b\x73\x33\x5d\x2e\x79\x2c\x20\x74\x65\x78\x74\x3a\x20\x66\x34\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x69\x3a\x20\x6e\x33\x2c\x20\x6a\x3a\x20\x6e\x33\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x70\x33\x2c\x20\x6f\x66\x66\x73\x65\x74\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x3a\x20\x65\x28\x7b\x7d\x2c\x20\x64\x34\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x34\x2e\x61\x64\x64\x28\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x68\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x50\x6f\x6c\x79\x67\x6f\x6e\x73\x28\x7b\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x64\x32\x20\x7d\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x58\x41\x78\x69\x73\x54\x65\x78\x74\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x61\x64\x64\x28\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x61\x64\x64\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x64\x32\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x29\x2c\x20\x64\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x50\x6f\x6c\x79\x67\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x72\x65\x6e\x74\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x53\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x79\x41\x78\x69\x73\x53\x63\x61\x6c\x65\x5b\x30\x5d\x2e\x72\x65\x73\x75\x6c\x74\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x2c\x20\x6f\x32\x20\x3d\x20\x72\x32\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x20\x2f\x20\x28\x6f\x32\x20\x2d\x20\x31\x29\x2c\x20\x68\x33\x20\x3d\x20\x30\x3b\x20\x68\x33\x20\x3c\x20\x6f\x32\x3b\x20\x68\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x5b\x68\x33\x5d\x20\x3d\x20\x6c\x32\x20\x2a\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x72\x65\x76\x65\x72\x73\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x64\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x78\x2e\x67\x65\x74\x50\x6f\x6c\x79\x67\x6f\x6e\x50\x6f\x73\x28\x74\x34\x2c\x20\x65\x32\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x4c\x65\x6e\x29\x2c\x20\x73\x33\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x2c\x20\x61\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x33\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x65\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x4c\x69\x6e\x65\x28\x74\x35\x2e\x78\x2c\x20\x74\x35\x2e\x79\x2c\x20\x30\x2c\x20\x30\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x43\x6f\x6c\x6f\x72\x73\x29\x20\x3f\x20\x65\x32\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x43\x6f\x6c\x6f\x72\x73\x5b\x61\x34\x5d\x20\x3a\x20\x65\x32\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x43\x6f\x6c\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2e\x70\x75\x73\x68\x28\x72\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x34\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x73\x50\x6f\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x78\x3a\x20\x74\x35\x2e\x78\x2c\x20\x79\x3a\x20\x74\x35\x2e\x79\x20\x7d\x29\x2c\x20\x73\x33\x20\x2b\x3d\x20\x74\x35\x2e\x78\x20\x2b\x20\x22\x2c\x22\x20\x2b\x20\x74\x35\x2e\x79\x20\x2b\x20\x22\x20\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x63\x32\x2e\x70\x75\x73\x68\x28\x73\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x63\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x65\x32\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x73\x74\x72\x6f\x6b\x65\x43\x6f\x6c\x6f\x72\x73\x2c\x20\x6f\x33\x20\x3d\x20\x65\x32\x2e\x70\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x6e\x33\x20\x3d\x20\x65\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x64\x72\x61\x77\x50\x6f\x6c\x79\x67\x6f\x6e\x28\x74\x34\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x33\x29\x20\x3f\x20\x72\x33\x5b\x73\x33\x5d\x20\x3a\x20\x72\x33\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x33\x29\x20\x3f\x20\x6f\x33\x5b\x73\x33\x5d\x20\x3a\x20\x6f\x33\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x61\x72\x50\x6f\x6c\x79\x67\x6f\x6e\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x73\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x64\x64\x28\x6e\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x64\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x64\x64\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x73\x50\x6f\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x73\x32\x2e\x64\x72\x61\x77\x59\x41\x78\x69\x73\x54\x65\x78\x74\x73\x28\x74\x34\x2e\x78\x2c\x20\x74\x34\x2e\x79\x2c\x20\x69\x33\x2c\x20\x72\x32\x5b\x69\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x79\x61\x78\x69\x73\x4c\x61\x62\x65\x6c\x73\x2e\x61\x64\x64\x28\x61\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x58\x41\x78\x69\x73\x54\x65\x78\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x22\x20\x7d\x29\x2c\x20\x72\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x50\x6f\x6c\x79\x67\x6f\x6e\x50\x6f\x73\x28\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x2c\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x4c\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x32\x2c\x20\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x2c\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x7a\x28\x74\x33\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x5b\x6e\x32\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x67\x65\x74\x54\x65\x78\x74\x50\x6f\x73\x28\x72\x32\x5b\x6e\x32\x5d\x2c\x20\x74\x33\x2e\x73\x69\x7a\x65\x29\x2c\x20\x64\x32\x20\x3d\x20\x6c\x32\x28\x6f\x32\x2c\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x2d\x31\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x6e\x32\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x70\x6c\x6f\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x54\x65\x78\x74\x28\x7b\x20\x78\x3a\x20\x63\x32\x2e\x6e\x65\x77\x58\x2c\x20\x79\x3a\x20\x63\x32\x2e\x6e\x65\x77\x59\x2c\x20\x74\x65\x78\x74\x3a\x20\x64\x32\x2c\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x63\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x69\x3a\x20\x6e\x32\x2c\x20\x6a\x3a\x20\x6e\x32\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x73\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x29\x20\x26\x26\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6e\x32\x5d\x20\x3f\x20\x61\x32\x2e\x73\x74\x79\x6c\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6e\x32\x5d\x20\x3a\x20\x22\x23\x61\x38\x61\x38\x61\x38\x22\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x43\x6f\x6e\x66\x69\x67\x3a\x20\x65\x28\x7b\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x63\x32\x2e\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x2c\x20\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x20\x7d\x2c\x20\x61\x32\x29\x2c\x20\x6f\x66\x66\x73\x65\x74\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x72\x65\x61\x74\x65\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x72\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x3d\x20\x5b\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x6d\x6f\x76\x65\x28\x65\x32\x2e\x78\x2c\x20\x65\x32\x2e\x79\x29\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x5b\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x6d\x6f\x76\x65\x28\x65\x32\x2e\x78\x2c\x20\x65\x32\x2e\x79\x29\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x6d\x6f\x76\x65\x28\x74\x33\x5b\x30\x5d\x2e\x78\x2c\x20\x74\x33\x5b\x30\x5d\x2e\x79\x29\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x6d\x6f\x76\x65\x28\x74\x33\x5b\x30\x5d\x2e\x78\x2c\x20\x74\x33\x5b\x30\x5d\x2e\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x2b\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x6c\x69\x6e\x65\x28\x65\x33\x2e\x78\x2c\x20\x65\x33\x2e\x79\x29\x2c\x20\x6c\x32\x20\x2b\x3d\x20\x69\x32\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x2e\x6c\x69\x6e\x65\x28\x65\x33\x2e\x78\x2c\x20\x65\x33\x2e\x79\x29\x2c\x20\x61\x33\x20\x3d\x3d\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x26\x26\x20\x28\x6e\x32\x20\x2b\x3d\x20\x22\x5a\x22\x2c\x20\x6c\x32\x20\x2b\x3d\x20\x22\x5a\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x6e\x32\x29\x2c\x20\x72\x32\x2e\x70\x75\x73\x68\x28\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x46\x72\x6f\x6d\x3a\x20\x73\x32\x2c\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x54\x6f\x3a\x20\x61\x32\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x73\x46\x72\x6f\x6d\x3a\x20\x6f\x32\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x73\x54\x6f\x3a\x20\x72\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x54\x65\x78\x74\x50\x6f\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x33\x2e\x78\x29\x20\x3e\x3d\x20\x31\x30\x20\x3f\x20\x74\x33\x2e\x78\x20\x3e\x20\x30\x20\x3f\x20\x28\x69\x32\x20\x3d\x20\x22\x73\x74\x61\x72\x74\x22\x2c\x20\x61\x32\x20\x2b\x3d\x20\x31\x30\x29\x20\x3a\x20\x74\x33\x2e\x78\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x22\x65\x6e\x64\x22\x2c\x20\x61\x32\x20\x2d\x3d\x20\x31\x30\x29\x20\x3a\x20\x69\x32\x20\x3d\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x2c\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x33\x2e\x79\x29\x20\x3e\x3d\x20\x65\x32\x20\x2d\x20\x31\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x79\x20\x3c\x20\x30\x20\x3f\x20\x73\x32\x20\x2d\x3d\x20\x31\x30\x20\x3a\x20\x74\x33\x2e\x79\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x73\x32\x20\x2b\x3d\x20\x31\x30\x29\x29\x2c\x20\x7b\x20\x74\x65\x78\x74\x41\x6e\x63\x68\x6f\x72\x3a\x20\x69\x32\x2c\x20\x6e\x65\x77\x58\x3a\x20\x61\x32\x2c\x20\x6e\x65\x77\x59\x3a\x20\x73\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x61\x32\x20\x3d\x20\x30\x3b\x20\x61\x32\x20\x3c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x61\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x70\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x31\x30\x29\x20\x3d\x3d\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x74\x33\x2c\x20\x31\x30\x29\x20\x26\x26\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x61\x32\x5d\x2e\x70\x61\x74\x68\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x61\x32\x5d\x2e\x70\x61\x74\x68\x73\x5b\x30\x5d\x2e\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x50\x6f\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x4c\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x74\x33\x20\x7c\x7c\x20\x5b\x5d\x2c\x20\x65\x32\x20\x3d\x20\x65\x32\x20\x7c\x7c\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x69\x32\x3b\x20\x73\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x78\x20\x3d\x20\x74\x33\x5b\x73\x32\x5d\x20\x2a\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x65\x32\x5b\x73\x32\x5d\x29\x2c\x20\x72\x32\x2e\x79\x20\x3d\x20\x2d\x74\x33\x5b\x73\x32\x5d\x20\x2a\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x65\x32\x5b\x73\x32\x5d\x29\x2c\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x50\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x28\x69\x32\x2c\x20\x43\x74\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x64\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x69\x32\x29\x2c\x20\x28\x73\x32\x20\x3d\x20\x65\x32\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x29\x2e\x63\x74\x78\x20\x3d\x20\x74\x33\x2c\x20\x73\x32\x2e\x77\x20\x3d\x20\x74\x33\x2e\x77\x2c\x20\x73\x32\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x20\x3d\x20\x5b\x30\x5d\x2c\x20\x73\x32\x2e\x61\x6e\x69\x6d\x44\x75\x72\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x73\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x73\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x2c\x20\x73\x32\x2e\x74\x6f\x74\x61\x6c\x41\x6e\x67\x6c\x65\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x2d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x29\x2c\x20\x73\x32\x2e\x74\x72\x61\x63\x6b\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x74\x72\x61\x63\x6b\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x73\x32\x2e\x74\x72\x61\x63\x6b\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x74\x72\x61\x63\x6b\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x2c\x20\x73\x32\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x73\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2c\x20\x73\x32\x2e\x72\x61\x64\x69\x61\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x73\x32\x2e\x64\x6f\x6e\x75\x74\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2c\x20\x73\x32\x2e\x74\x72\x61\x63\x6b\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x7c\x7c\x20\x28\x73\x32\x2e\x74\x72\x61\x63\x6b\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3d\x20\x73\x32\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x29\x2c\x20\x73\x32\x2e\x74\x72\x61\x63\x6b\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x7c\x7c\x20\x28\x73\x32\x2e\x74\x72\x61\x63\x6b\x45\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3d\x20\x73\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x29\x2c\x20\x73\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3d\x3d\x3d\x20\x33\x36\x30\x20\x26\x26\x20\x28\x73\x32\x2e\x65\x6e\x64\x41\x6e\x67\x6c\x65\x20\x3d\x20\x33\x35\x39\x2e\x39\x39\x29\x2c\x20\x73\x32\x2e\x6d\x61\x72\x67\x69\x6e\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x74\x72\x61\x63\x6b\x2e\x6d\x61\x72\x67\x69\x6e\x2c\x20\x31\x30\x29\x2c\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x69\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x62\x61\x72\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6e\x6f\x44\x61\x74\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x69\x33\x2e\x67\x72\x6f\x75\x70\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x53\x69\x7a\x65\x20\x2f\x20\x32\x2c\x20\x6f\x32\x20\x3d\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x53\x69\x7a\x65\x20\x2f\x20\x32\x2e\x30\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x28\x6e\x32\x20\x3d\x20\x6e\x32\x20\x2d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x62\x6c\x75\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x66\x69\x6c\x6c\x2e\x63\x6f\x6c\x6f\x72\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x74\x72\x61\x63\x6b\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x54\x72\x61\x63\x6b\x73\x28\x7b\x20\x73\x69\x7a\x65\x3a\x20\x6e\x32\x2c\x20\x63\x65\x6e\x74\x65\x72\x58\x3a\x20\x6f\x32\x2c\x20\x63\x65\x6e\x74\x65\x72\x59\x3a\x20\x72\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x41\x72\x72\x3a\x20\x6c\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x61\x64\x64\x28\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x41\x72\x63\x73\x28\x7b\x20\x73\x69\x7a\x65\x3a\x20\x6e\x32\x2c\x20\x63\x65\x6e\x74\x65\x72\x58\x3a\x20\x6f\x32\x2c\x20\x63\x65\x6e\x74\x65\x72\x59\x3a\x20\x72\x32\x2c\x20\x63\x6f\x6c\x6f\x72\x41\x72\x72\x3a\x20\x6c\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x20\x7d\x29\x2c\x20\x64\x32\x20\x3d\x20\x33\x36\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x6f\x74\x61\x6c\x41\x6e\x67\x6c\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x28\x33\x36\x30\x20\x2d\x20\x64\x32\x29\x20\x2f\x20\x33\x36\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x20\x3d\x20\x6e\x32\x20\x2d\x20\x6e\x32\x20\x2a\x20\x67\x32\x2c\x20\x74\x68\x69\x73\x2e\x72\x61\x64\x69\x61\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x76\x61\x6c\x75\x65\x2e\x73\x68\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x68\x69\x73\x2e\x72\x61\x64\x69\x61\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x76\x61\x6c\x75\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x74\x68\x69\x73\x2e\x72\x61\x64\x69\x61\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x6e\x61\x6d\x65\x2e\x6f\x66\x66\x73\x65\x74\x59\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x20\x2b\x3d\x20\x75\x32\x20\x2a\x20\x67\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x61\x64\x64\x28\x63\x32\x2e\x67\x29\x2c\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x66\x72\x6f\x6e\x74\x22\x20\x26\x26\x20\x28\x63\x32\x2e\x67\x2e\x61\x64\x64\x28\x63\x32\x2e\x65\x6c\x48\x6f\x6c\x6c\x6f\x77\x29\x2c\x20\x63\x32\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x20\x26\x26\x20\x63\x32\x2e\x67\x2e\x61\x64\x64\x28\x63\x32\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x29\x29\x2c\x20\x61\x32\x2e\x61\x64\x64\x28\x73\x32\x29\x2c\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x54\x72\x61\x63\x6b\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x72\x61\x63\x6b\x73\x22\x20\x7d\x29\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x3d\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x2d\x20\x6f\x32\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x30\x3b\x20\x6e\x32\x20\x3c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6e\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x69\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x62\x61\x72\x2d\x74\x72\x61\x63\x6b\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x72\x61\x63\x6b\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x61\x64\x64\x28\x6c\x32\x29\x2c\x20\x6c\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x65\x6c\x3a\x20\x6e\x32\x20\x2b\x20\x31\x20\x7d\x29\x2c\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x3d\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x2d\x20\x6f\x32\x20\x2d\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x67\x69\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x74\x72\x61\x63\x6b\x2c\x20\x63\x32\x20\x3d\x20\x72\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x30\x2c\x20\x73\x69\x7a\x65\x3a\x20\x74\x33\x2e\x73\x69\x7a\x65\x2c\x20\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x73\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x68\x33\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x29\x20\x3f\x20\x68\x33\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x5b\x6e\x32\x5d\x20\x3a\x20\x68\x33\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2c\x20\x73\x6f\x6c\x69\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x2c\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x63\x6b\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x63\x6b\x45\x6e\x64\x41\x6e\x67\x6c\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x67\x32\x29\x20\x2b\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x64\x32\x29\x20\x3e\x3d\x20\x33\x36\x30\x20\x26\x26\x20\x28\x67\x32\x20\x3d\x20\x33\x36\x30\x20\x2d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x29\x20\x2d\x20\x30\x2e\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x69\x33\x2e\x64\x72\x61\x77\x50\x61\x74\x68\x28\x7b\x20\x64\x3a\x20\x22\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x63\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x6f\x32\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x68\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x68\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x63\x6c\x61\x73\x73\x65\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x62\x61\x72\x2d\x61\x72\x65\x61\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x33\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x68\x33\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x75\x32\x2c\x20\x70\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x61\x64\x64\x28\x75\x32\x29\x2c\x20\x75\x32\x2e\x61\x74\x74\x72\x28\x22\x69\x64\x22\x2c\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x62\x61\x72\x54\x72\x61\x63\x6b\x2d\x22\x20\x2b\x20\x6e\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x50\x61\x74\x68\x73\x28\x75\x32\x2c\x20\x7b\x20\x63\x65\x6e\x74\x65\x72\x58\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x63\x65\x6e\x74\x65\x72\x59\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x65\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x67\x32\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x64\x32\x2c\x20\x73\x69\x7a\x65\x3a\x20\x74\x33\x2e\x73\x69\x7a\x65\x2c\x20\x69\x3a\x20\x6e\x32\x2c\x20\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x3a\x20\x32\x2c\x20\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x3a\x20\x30\x2c\x20\x64\x75\x72\x3a\x20\x30\x2c\x20\x69\x73\x54\x72\x61\x63\x6b\x3a\x20\x74\x72\x75\x65\x2c\x20\x65\x61\x73\x69\x6e\x67\x3a\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x41\x72\x63\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x69\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x76\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x69\x33\x2e\x67\x72\x6f\x75\x70\x28\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x3d\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x2d\x20\x6f\x32\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x2d\x20\x6f\x32\x20\x2a\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x67\x69\x6e\x20\x2a\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x6f\x32\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x74\x72\x61\x63\x6b\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x20\x2f\x20\x32\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x20\x2d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x6d\x61\x72\x67\x69\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x48\x6f\x6c\x6c\x6f\x77\x49\x6d\x61\x67\x65\x28\x74\x33\x2c\x20\x72\x32\x2c\x20\x6c\x32\x2c\x20\x6e\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x48\x6f\x6c\x6c\x6f\x77\x28\x7b\x20\x73\x69\x7a\x65\x3a\x20\x68\x33\x2c\x20\x63\x65\x6e\x74\x65\x72\x58\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x63\x65\x6e\x74\x65\x72\x59\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x6e\x32\x20\x7c\x7c\x20\x22\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x63\x32\x2c\x20\x64\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x21\x74\x68\x69\x73\x2e\x72\x61\x64\x69\x61\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x74\x6f\x74\x61\x6c\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x67\x32\x20\x3d\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x61\x64\x69\x61\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x6e\x64\x65\x72\x49\x6e\x6e\x65\x72\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x28\x74\x68\x69\x73\x2e\x72\x61\x64\x69\x61\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2c\x20\x7b\x20\x68\x6f\x6c\x6c\x6f\x77\x53\x69\x7a\x65\x3a\x20\x6c\x32\x2c\x20\x63\x65\x6e\x74\x65\x72\x58\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x63\x65\x6e\x74\x65\x72\x59\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x67\x32\x20\x7d\x29\x29\x2c\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x61\x63\x6b\x22\x20\x26\x26\x20\x28\x72\x32\x2e\x61\x64\x64\x28\x63\x32\x29\x2c\x20\x75\x32\x20\x26\x26\x20\x72\x32\x2e\x61\x64\x64\x28\x75\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x69\x6e\x76\x65\x72\x73\x65\x4f\x72\x64\x65\x72\x20\x26\x26\x20\x28\x70\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x70\x33\x20\x3f\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x3a\x20\x30\x3b\x20\x70\x33\x20\x3f\x20\x66\x32\x20\x3e\x3d\x20\x30\x20\x3a\x20\x66\x32\x20\x3c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x70\x33\x20\x3f\x20\x66\x32\x2d\x2d\x20\x3a\x20\x66\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x69\x33\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x66\x32\x5d\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x61\x64\x64\x28\x62\x32\x29\x2c\x20\x62\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x72\x65\x6c\x3a\x20\x66\x32\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x66\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x43\x6c\x61\x73\x73\x54\x6f\x53\x65\x72\x69\x65\x73\x28\x62\x32\x2c\x20\x66\x32\x29\x2c\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x3d\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x2d\x20\x6f\x32\x20\x2d\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x67\x69\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x61\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x66\x32\x2c\x20\x73\x69\x7a\x65\x3a\x20\x74\x33\x2e\x73\x69\x7a\x65\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x66\x32\x5d\x20\x7d\x29\x2c\x20\x77\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x6b\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x41\x32\x20\x3d\x20\x78\x2e\x6e\x65\x67\x54\x6f\x5a\x65\x72\x6f\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x66\x32\x5d\x20\x3e\x20\x31\x30\x30\x20\x3f\x20\x31\x30\x30\x20\x3a\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x66\x32\x5d\x29\x20\x2f\x20\x31\x30\x30\x2c\x20\x53\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x74\x68\x69\x73\x2e\x74\x6f\x74\x61\x6c\x41\x6e\x67\x6c\x65\x20\x2a\x20\x41\x32\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x43\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x26\x26\x20\x28\x6b\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x2c\x20\x43\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x72\x6f\x75\x6e\x64\x28\x74\x68\x69\x73\x2e\x74\x6f\x74\x61\x6c\x41\x6e\x67\x6c\x65\x20\x2a\x20\x78\x2e\x6e\x65\x67\x54\x6f\x5a\x65\x72\x6f\x28\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x66\x32\x5d\x29\x20\x2f\x20\x31\x30\x30\x29\x20\x2b\x20\x6b\x32\x29\x2c\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x53\x32\x29\x20\x2b\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x77\x32\x29\x20\x3e\x3d\x20\x33\x36\x30\x20\x26\x26\x20\x28\x53\x32\x20\x2d\x3d\x20\x30\x2e\x30\x31\x29\x2c\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x43\x32\x29\x20\x2b\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x6b\x32\x29\x20\x3e\x3d\x20\x33\x36\x30\x20\x26\x26\x20\x28\x43\x32\x20\x2d\x3d\x20\x30\x2e\x30\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4c\x32\x20\x3d\x20\x53\x32\x20\x2d\x20\x77\x32\x2c\x20\x50\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x29\x20\x3f\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x5b\x66\x32\x5d\x20\x3a\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x2c\x20\x4d\x32\x20\x3d\x20\x69\x33\x2e\x64\x72\x61\x77\x50\x61\x74\x68\x28\x7b\x20\x64\x3a\x20\x22\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x79\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x6f\x32\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x66\x69\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x3a\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x6f\x70\x61\x63\x69\x74\x79\x2c\x20\x63\x6c\x61\x73\x73\x65\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x62\x61\x72\x2d\x61\x72\x65\x61\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x62\x61\x72\x2d\x73\x6c\x69\x63\x65\x2d\x22\x20\x2b\x20\x66\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x44\x61\x73\x68\x41\x72\x72\x61\x79\x3a\x20\x50\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x4d\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x7b\x20\x22\x64\x61\x74\x61\x3a\x61\x6e\x67\x6c\x65\x22\x3a\x20\x4c\x32\x2c\x20\x22\x64\x61\x74\x61\x3a\x76\x61\x6c\x75\x65\x22\x3a\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x66\x32\x5d\x20\x7d\x29\x2c\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x49\x32\x20\x3d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x4d\x32\x2c\x20\x49\x32\x2c\x20\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x65\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x46\x69\x6c\x74\x65\x72\x28\x4d\x32\x2c\x20\x30\x2c\x20\x66\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x4d\x32\x2c\x20\x74\x68\x69\x73\x2e\x72\x61\x64\x69\x61\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x29\x2c\x20\x62\x32\x2e\x61\x64\x64\x28\x4d\x32\x29\x2c\x20\x4d\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x69\x6e\x64\x65\x78\x3a\x20\x30\x2c\x20\x6a\x3a\x20\x66\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x7a\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x21\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x41\x6e\x69\x6d\x20\x7c\x7c\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x7c\x7c\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x7c\x7c\x20\x28\x7a\x32\x20\x3d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x29\x2c\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x26\x26\x20\x28\x7a\x32\x20\x3d\x20\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x73\x70\x65\x65\x64\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x44\x75\x72\x20\x3d\x20\x7a\x32\x20\x2f\x20\x28\x31\x2e\x32\x20\x2a\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x44\x75\x72\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x44\x75\x72\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x50\x61\x74\x68\x73\x28\x4d\x32\x2c\x20\x7b\x20\x63\x65\x6e\x74\x65\x72\x58\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x63\x65\x6e\x74\x65\x72\x59\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x65\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x53\x32\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x77\x32\x2c\x20\x70\x72\x65\x76\x45\x6e\x64\x41\x6e\x67\x6c\x65\x3a\x20\x43\x32\x2c\x20\x70\x72\x65\x76\x53\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x3a\x20\x6b\x32\x2c\x20\x73\x69\x7a\x65\x3a\x20\x74\x33\x2e\x73\x69\x7a\x65\x2c\x20\x69\x3a\x20\x66\x32\x2c\x20\x74\x6f\x74\x61\x6c\x49\x74\x65\x6d\x73\x3a\x20\x32\x2c\x20\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x3a\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x42\x65\x67\x69\x6e\x41\x72\x72\x2c\x20\x64\x75\x72\x3a\x20\x7a\x32\x2c\x20\x73\x68\x6f\x75\x6c\x64\x53\x65\x74\x50\x72\x65\x76\x50\x61\x74\x68\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x65\x61\x73\x69\x6e\x67\x3a\x20\x65\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x65\x61\x73\x69\x6e\x67\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x67\x3a\x20\x72\x32\x2c\x20\x65\x6c\x48\x6f\x6c\x6c\x6f\x77\x3a\x20\x63\x32\x2c\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x75\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x48\x6f\x6c\x6c\x6f\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x43\x69\x72\x63\x6c\x65\x28\x32\x20\x2a\x20\x74\x33\x2e\x73\x69\x7a\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x62\x61\x72\x2d\x68\x6f\x6c\x6c\x6f\x77\x22\x2c\x20\x63\x78\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x58\x2c\x20\x63\x79\x3a\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x59\x2c\x20\x72\x3a\x20\x74\x33\x2e\x73\x69\x7a\x65\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x74\x33\x2e\x66\x69\x6c\x6c\x20\x7d\x29\x2c\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x48\x6f\x6c\x6c\x6f\x77\x49\x6d\x61\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x78\x2e\x72\x61\x6e\x64\x6f\x6d\x49\x64\x28\x29\x2c\x20\x6e\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x43\x6c\x69\x70\x70\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x63\x6c\x69\x70\x70\x65\x64\x49\x6d\x67\x41\x72\x65\x61\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x69\x33\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x69\x33\x2c\x20\x69\x6d\x61\x67\x65\x3a\x20\x6e\x32\x2c\x20\x70\x61\x74\x74\x65\x72\x6e\x49\x44\x3a\x20\x22\x70\x61\x74\x74\x65\x72\x6e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x29\x20\x7d\x29\x2c\x20\x61\x32\x20\x3d\x20\x22\x75\x72\x6c\x28\x23\x70\x61\x74\x74\x65\x72\x6e\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x2c\x20\x22\x29\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x57\x69\x64\x74\x68\x2c\x20\x68\x33\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x48\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x68\x33\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x69\x6d\x61\x67\x65\x28\x6e\x32\x29\x2e\x6c\x6f\x61\x64\x65\x64\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x28\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x58\x20\x2d\x20\x65\x34\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2b\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x4f\x66\x66\x73\x65\x74\x58\x2c\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x59\x20\x2d\x20\x65\x34\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x20\x2b\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x4f\x66\x66\x73\x65\x74\x59\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x61\x64\x64\x28\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x69\x6d\x61\x67\x65\x28\x6e\x32\x29\x2e\x6c\x6f\x61\x64\x65\x64\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x28\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x58\x20\x2d\x20\x6c\x32\x20\x2f\x20\x32\x20\x2b\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x4f\x66\x66\x73\x65\x74\x58\x2c\x20\x74\x33\x2e\x63\x65\x6e\x74\x65\x72\x59\x20\x2d\x20\x68\x33\x20\x2f\x20\x32\x20\x2b\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x69\x6d\x61\x67\x65\x4f\x66\x66\x73\x65\x74\x59\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x28\x6c\x32\x2c\x20\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x61\x64\x64\x28\x64\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x73\x69\x7a\x65\x20\x2a\x20\x28\x31\x30\x30\x20\x2d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x68\x6f\x6c\x6c\x6f\x77\x2e\x73\x69\x7a\x65\x2c\x20\x31\x30\x29\x29\x20\x2f\x20\x31\x30\x30\x20\x2f\x20\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x29\x20\x2d\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x67\x69\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x54\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x61\x6d\x65\x56\x61\x6c\x75\x65\x53\x65\x72\x69\x65\x73\x46\x69\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x26\x26\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x67\x72\x61\x64\x69\x65\x6e\x74\x22\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x69\x6c\x6c\x2e\x74\x79\x70\x65\x5b\x74\x33\x5d\x20\x3d\x3d\x3d\x20\x22\x67\x72\x61\x64\x69\x65\x6e\x74\x22\x29\x20\x26\x26\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x63\x74\x78\x2c\x20\x69\x32\x29\x2e\x73\x65\x72\x69\x65\x73\x48\x61\x76\x65\x53\x61\x6d\x65\x56\x61\x6c\x75\x65\x73\x28\x74\x33\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x65\x32\x5b\x74\x33\x5d\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x5b\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x20\x61\x32\x5b\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x2b\x20\x31\x65\x2d\x36\x2c\x20\x65\x32\x5b\x74\x33\x5d\x20\x3d\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x50\x6f\x69\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x70\x72\x65\x76\x59\x2c\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x68\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x63\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x41\x78\x69\x73\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x20\x2b\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x28\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x69\x32\x5d\x5b\x30\x5d\x20\x2d\x20\x6c\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x78\x52\x61\x74\x69\x6f\x20\x2b\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x64\x32\x29\x2c\x20\x63\x32\x2e\x70\x75\x73\x68\x28\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x65\x32\x5b\x72\x32\x5d\x5b\x30\x5d\x29\x20\x3f\x20\x6e\x32\x20\x2b\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x3a\x20\x6e\x75\x6c\x6c\x29\x2c\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x61\x32\x20\x2b\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x29\x2c\x20\x63\x32\x2e\x70\x75\x73\x68\x28\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x65\x32\x5b\x72\x32\x5d\x5b\x6f\x32\x20\x2b\x20\x31\x5d\x29\x20\x3f\x20\x73\x32\x20\x2b\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x3a\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x2e\x70\x75\x73\x68\x28\x61\x32\x20\x2b\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x58\x29\x2c\x20\x63\x32\x2e\x70\x75\x73\x68\x28\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x65\x32\x5b\x72\x32\x5d\x5b\x6f\x32\x20\x2b\x20\x31\x5d\x29\x20\x3f\x20\x73\x32\x20\x2b\x20\x6c\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x6f\x66\x66\x73\x65\x74\x59\x20\x3a\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x68\x33\x2c\x20\x79\x3a\x20\x63\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x68\x65\x63\x6b\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x4c\x69\x6e\x65\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x41\x72\x65\x61\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x72\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x6f\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x7c\x7c\x20\x6f\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x61\x72\x65\x61\x22\x29\x20\x26\x26\x20\x6f\x32\x2e\x70\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6f\x32\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x31\x30\x29\x20\x3d\x3d\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x61\x32\x2c\x20\x31\x30\x29\x20\x26\x26\x20\x28\x6f\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x61\x70\x70\x65\x6e\x64\x50\x61\x74\x68\x46\x72\x6f\x6d\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x72\x32\x5d\x2e\x70\x61\x74\x68\x73\x5b\x30\x5d\x2e\x64\x29\x20\x3a\x20\x6f\x32\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x61\x72\x65\x61\x22\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x61\x70\x70\x65\x6e\x64\x50\x61\x74\x68\x46\x72\x6f\x6d\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x72\x32\x5d\x2e\x70\x61\x74\x68\x73\x5b\x30\x5d\x2e\x64\x2c\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x72\x32\x5d\x2e\x70\x61\x74\x68\x73\x5b\x31\x5d\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x72\x32\x5d\x2e\x70\x61\x74\x68\x73\x5b\x31\x5d\x2e\x64\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x4c\x69\x6e\x65\x3a\x20\x65\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x41\x72\x65\x61\x3a\x20\x69\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x46\x69\x72\x73\x74\x50\x72\x65\x76\x59\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x70\x72\x65\x76\x59\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6c\x69\x6e\x65\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x5b\x65\x32\x5d\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x28\x73\x32\x20\x3d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x65\x32\x20\x3e\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x70\x72\x65\x76\x53\x65\x72\x69\x65\x73\x59\x5b\x65\x32\x20\x2d\x20\x31\x5d\x5b\x30\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x7a\x65\x72\x6f\x59\x29\x20\x2d\x20\x69\x32\x5b\x65\x32\x5d\x5b\x30\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2b\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x69\x32\x5b\x65\x32\x5d\x5b\x30\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x65\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x69\x32\x5b\x65\x32\x5d\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x65\x32\x20\x2d\x20\x31\x3b\x20\x6f\x32\x20\x3e\x3d\x20\x30\x3b\x20\x6f\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x5b\x6f\x32\x5d\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x69\x32\x5b\x6f\x32\x5d\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x43\x74\x78\x2e\x70\x72\x65\x76\x53\x65\x72\x69\x65\x73\x59\x5b\x6f\x32\x5d\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x70\x72\x65\x76\x59\x3a\x20\x61\x32\x2c\x20\x6c\x69\x6e\x65\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x73\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x4d\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x2c\x20\x69\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x20\x3d\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x43\x68\x61\x72\x74\x20\x3d\x20\x21\x28\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x29\x20\x7c\x7c\x20\x73\x32\x2c\x20\x74\x68\x69\x73\x2e\x73\x63\x61\x74\x74\x65\x72\x20\x3d\x20\x6e\x65\x77\x20\x49\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x4e\x65\x67\x61\x74\x69\x76\x65\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x20\x3d\x3d\x3d\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4d\x41\x58\x5f\x56\x41\x4c\x55\x45\x2c\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x48\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x54\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x4d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x53\x65\x72\x69\x65\x73\x59\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x41\x78\x69\x73\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x65\x32\x20\x3a\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x72\x32\x2c\x20\x22\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x6c\x6f\x74\x2d\x73\x65\x72\x69\x65\x73\x22\x29\x20\x7d\x29\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2e\x79\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x7a\x52\x61\x74\x69\x6f\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2e\x7a\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2e\x78\x52\x61\x74\x69\x6f\x2c\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x2c\x20\x74\x33\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x4c\x6f\x67\x53\x65\x72\x69\x65\x73\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x20\x3d\x20\x6e\x32\x2e\x67\x65\x74\x4c\x6f\x67\x59\x52\x61\x74\x69\x6f\x73\x28\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x68\x33\x20\x3d\x20\x30\x3b\x20\x68\x33\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x68\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x73\x61\x6d\x65\x56\x61\x6c\x75\x65\x53\x65\x72\x69\x65\x73\x46\x69\x78\x28\x68\x33\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x69\x32\x5b\x68\x33\x5d\x20\x3a\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x69\x6e\x69\x74\x53\x65\x72\x69\x65\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x28\x74\x33\x2c\x20\x68\x33\x2c\x20\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x67\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x75\x32\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x61\x64\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x2b\x20\x74\x68\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x41\x78\x69\x73\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x43\x6c\x61\x73\x73\x54\x6f\x53\x65\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x63\x32\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x28\x75\x32\x20\x3d\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x63\x32\x5d\x5b\x30\x5d\x20\x2d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x29\x2c\x20\x67\x32\x2e\x70\x75\x73\x68\x28\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x2c\x20\x66\x32\x20\x3d\x20\x75\x32\x2c\x20\x78\x32\x20\x3d\x20\x66\x32\x2c\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x46\x69\x72\x73\x74\x50\x72\x65\x76\x59\x28\x7b\x20\x69\x3a\x20\x68\x33\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x2c\x20\x70\x72\x65\x76\x59\x3a\x20\x62\x32\x2c\x20\x6c\x69\x6e\x65\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x20\x7d\x29\x2e\x70\x72\x65\x76\x59\x2c\x20\x64\x32\x2e\x70\x75\x73\x68\x28\x62\x32\x29\x2c\x20\x70\x33\x20\x3d\x20\x62\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x50\x61\x74\x68\x73\x46\x72\x6f\x6d\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x2c\x20\x69\x3a\x20\x68\x33\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x63\x32\x2c\x20\x70\x72\x65\x76\x58\x3a\x20\x78\x32\x2c\x20\x70\x72\x65\x76\x59\x3a\x20\x62\x32\x20\x7d\x29\x2c\x20\x77\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x69\x74\x65\x72\x61\x74\x65\x4f\x76\x65\x72\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x63\x32\x2c\x20\x69\x3a\x20\x68\x33\x2c\x20\x78\x3a\x20\x75\x32\x2c\x20\x79\x3a\x20\x31\x2c\x20\x70\x58\x3a\x20\x66\x32\x2c\x20\x70\x59\x3a\x20\x70\x33\x2c\x20\x70\x61\x74\x68\x73\x46\x72\x6f\x6d\x3a\x20\x76\x32\x2c\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x3a\x20\x5b\x5d\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x73\x3a\x20\x5b\x5d\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x6c\x69\x6e\x65\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2c\x20\x78\x41\x72\x72\x6a\x3a\x20\x67\x32\x2c\x20\x79\x41\x72\x72\x6a\x3a\x20\x64\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x68\x61\x6e\x64\x6c\x65\x50\x61\x74\x68\x73\x28\x7b\x20\x74\x79\x70\x65\x3a\x20\x72\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x63\x32\x2c\x20\x69\x3a\x20\x68\x33\x2c\x20\x70\x61\x74\x68\x73\x3a\x20\x77\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x65\x6c\x50\x6f\x69\x6e\x74\x73\x4d\x61\x69\x6e\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x65\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x57\x72\x61\x70\x29\x2c\x20\x6c\x32\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6b\x32\x20\x3e\x20\x30\x3b\x20\x6b\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x61\x64\x64\x28\x6c\x32\x5b\x6b\x32\x20\x2d\x20\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x41\x32\x20\x3d\x20\x30\x3b\x20\x41\x32\x20\x3c\x20\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x41\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x61\x64\x64\x28\x6c\x32\x5b\x41\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x69\x6e\x69\x74\x53\x65\x72\x69\x65\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2d\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x50\x6c\x61\x63\x65\x6d\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x6f\x6e\x22\x20\x3f\x20\x31\x20\x3a\x20\x30\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x29\x20\x3f\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x5b\x69\x32\x5d\x20\x3a\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x20\x3d\x20\x69\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x2d\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2d\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x3a\x20\x30\x29\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x62\x61\x73\x65\x4c\x69\x6e\x65\x59\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x72\x65\x61\x42\x6f\x74\x74\x6f\x6d\x59\x20\x3d\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x2c\x20\x28\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x20\x3e\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x7c\x7c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x61\x72\x65\x61\x2e\x66\x69\x6c\x6c\x54\x6f\x20\x3d\x3d\x3d\x20\x22\x65\x6e\x64\x22\x29\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x61\x72\x65\x61\x42\x6f\x74\x74\x6f\x6d\x59\x20\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x41\x78\x69\x73\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x20\x2f\x20\x32\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x69\x32\x5d\x29\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x6f\x69\x6e\x74\x73\x4d\x61\x69\x6e\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x2d\x77\x72\x61\x70\x22\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x57\x72\x61\x70\x20\x3d\x20\x73\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x22\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x69\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x33\x5b\x65\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x22\x64\x61\x74\x61\x3a\x6c\x6f\x6e\x67\x65\x73\x74\x53\x65\x72\x69\x65\x73\x22\x3a\x20\x72\x32\x2c\x20\x72\x65\x6c\x3a\x20\x65\x32\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x70\x70\x65\x6e\x64\x50\x61\x74\x68\x46\x72\x6f\x6d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x50\x61\x74\x68\x73\x46\x72\x6f\x6d\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x70\x72\x65\x76\x58\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x70\x72\x65\x76\x59\x2c\x20\x63\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x64\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x5b\x6f\x32\x5d\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x30\x3b\x20\x67\x32\x20\x3c\x20\x72\x32\x5b\x6f\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x67\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x5b\x6f\x32\x5d\x5b\x67\x32\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x20\x2a\x20\x67\x32\x2c\x20\x68\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x20\x2d\x20\x72\x32\x5b\x6f\x32\x5d\x5b\x67\x32\x5d\x20\x2f\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x2c\x20\x65\x32\x20\x3d\x20\x64\x32\x2e\x6d\x6f\x76\x65\x28\x6c\x32\x2c\x20\x68\x33\x29\x2c\x20\x69\x32\x20\x3d\x20\x64\x32\x2e\x6d\x6f\x76\x65\x28\x6c\x32\x2c\x20\x74\x68\x69\x73\x2e\x61\x72\x65\x61\x42\x6f\x74\x74\x6f\x6d\x59\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x64\x32\x2e\x6d\x6f\x76\x65\x28\x6c\x32\x2c\x20\x68\x33\x29\x2c\x20\x69\x32\x20\x3d\x20\x64\x32\x2e\x6d\x6f\x76\x65\x28\x6c\x32\x2c\x20\x74\x68\x69\x73\x2e\x61\x72\x65\x61\x42\x6f\x74\x74\x6f\x6d\x59\x29\x20\x2b\x20\x64\x32\x2e\x6c\x69\x6e\x65\x28\x6c\x32\x2c\x20\x68\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x20\x3d\x20\x64\x32\x2e\x6d\x6f\x76\x65\x28\x2d\x31\x2c\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x29\x20\x2b\x20\x64\x32\x2e\x6c\x69\x6e\x65\x28\x2d\x31\x2c\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x29\x2c\x20\x73\x32\x20\x3d\x20\x64\x32\x2e\x6d\x6f\x76\x65\x28\x2d\x31\x2c\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x29\x20\x2b\x20\x64\x32\x2e\x6c\x69\x6e\x65\x28\x2d\x31\x2c\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x29\x2c\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x63\x68\x65\x63\x6b\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x28\x7b\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x4c\x69\x6e\x65\x3a\x20\x61\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x41\x72\x65\x61\x3a\x20\x73\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x75\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x4c\x69\x6e\x65\x2c\x20\x73\x32\x20\x3d\x20\x75\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x41\x72\x65\x61\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x70\x72\x65\x76\x58\x3a\x20\x6c\x32\x2c\x20\x70\x72\x65\x76\x59\x3a\x20\x68\x33\x2c\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x3a\x20\x65\x32\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x3a\x20\x69\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x4c\x69\x6e\x65\x3a\x20\x61\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x41\x72\x65\x61\x3a\x20\x73\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x68\x61\x6e\x64\x6c\x65\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x74\x79\x70\x65\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x73\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x53\x65\x72\x69\x65\x73\x59\x2e\x70\x75\x73\x68\x28\x72\x32\x2e\x79\x41\x72\x72\x6a\x29\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x5b\x61\x32\x5d\x20\x3d\x20\x72\x32\x2e\x78\x41\x72\x72\x6a\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x59\x76\x61\x6c\x75\x65\x73\x5b\x61\x32\x5d\x20\x3d\x20\x72\x32\x2e\x79\x41\x72\x72\x6a\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x66\x6f\x72\x65\x63\x61\x73\x74\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x33\x2e\x63\x6f\x75\x6e\x74\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x5b\x61\x32\x5d\x5b\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x5b\x61\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x68\x33\x2e\x63\x6f\x75\x6e\x74\x20\x2d\x20\x31\x5d\x2c\x20\x64\x32\x20\x3d\x20\x6e\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x63\x32\x2c\x20\x30\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x64\x32\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x6e\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x30\x2c\x20\x30\x2c\x20\x63\x32\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x4e\x6f\x6e\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x67\x32\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x43\x68\x61\x72\x74\x20\x7c\x7c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x65\x6c\x61\x79\x65\x64\x45\x6c\x65\x6d\x65\x6e\x74\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x65\x6c\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x6f\x69\x6e\x74\x73\x4d\x61\x69\x6e\x2e\x6e\x6f\x64\x65\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x61\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x32\x20\x3d\x20\x7b\x20\x69\x3a\x20\x73\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x61\x32\x2c\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x44\x65\x6c\x61\x79\x3a\x20\x73\x32\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x53\x70\x65\x65\x64\x3a\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x2c\x20\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x53\x70\x65\x65\x64\x3a\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2e\x73\x70\x65\x65\x64\x2c\x20\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x69\x32\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x20\x3d\x3d\x3d\x20\x22\x61\x72\x65\x61\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x6c\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x61\x32\x20\x7d\x29\x2c\x20\x66\x32\x20\x3d\x20\x30\x3b\x20\x66\x32\x20\x3c\x20\x72\x32\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x66\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x6e\x32\x2e\x72\x65\x6e\x64\x65\x72\x50\x61\x74\x68\x73\x28\x65\x28\x65\x28\x7b\x7d\x2c\x20\x75\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x72\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x41\x72\x65\x61\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x72\x32\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x73\x5b\x66\x32\x5d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x43\x61\x70\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x70\x33\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x28\x78\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x43\x68\x61\x72\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x20\x69\x32\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x3f\x20\x6c\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x61\x32\x2c\x20\x69\x3a\x20\x73\x32\x20\x7d\x29\x20\x3a\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x61\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x30\x3b\x20\x76\x32\x20\x3c\x20\x72\x32\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x76\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x65\x28\x65\x28\x7b\x7d\x2c\x20\x75\x32\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x3a\x20\x72\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x4c\x69\x6e\x65\x2c\x20\x70\x61\x74\x68\x54\x6f\x3a\x20\x72\x32\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x5b\x76\x32\x5d\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x62\x32\x2c\x20\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x3a\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x73\x74\x72\x6f\x6b\x65\x4c\x69\x6e\x65\x43\x61\x70\x3a\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x6c\x69\x6e\x65\x43\x61\x70\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x22\x6e\x6f\x6e\x65\x22\x20\x7d\x29\x2c\x20\x77\x32\x20\x3d\x20\x6e\x32\x2e\x72\x65\x6e\x64\x65\x72\x50\x61\x74\x68\x73\x28\x79\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x28\x77\x32\x29\x2c\x20\x68\x33\x2e\x63\x6f\x75\x6e\x74\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6b\x32\x20\x3d\x20\x6e\x32\x2e\x72\x65\x6e\x64\x65\x72\x50\x61\x74\x68\x73\x28\x79\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x2c\x20\x68\x33\x2e\x64\x61\x73\x68\x41\x72\x72\x61\x79\x29\x2c\x20\x68\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x26\x26\x20\x6b\x32\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x2c\x20\x68\x33\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2e\x61\x64\x64\x28\x6b\x32\x29\x2c\x20\x6b\x32\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x66\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x2c\x20\x77\x32\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x69\x70\x2d\x70\x61\x74\x68\x22\x2c\x20\x22\x75\x72\x6c\x28\x23\x6e\x6f\x6e\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x69\x74\x65\x72\x61\x74\x65\x4f\x76\x65\x72\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x70\x58\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x70\x59\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x70\x61\x74\x68\x73\x46\x72\x6f\x6d\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x73\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x6c\x69\x6e\x65\x59\x50\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x78\x41\x72\x72\x6a\x2c\x20\x70\x33\x20\x3d\x20\x74\x33\x2e\x79\x41\x72\x72\x6a\x2c\x20\x66\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x62\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x76\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x79\x52\x61\x74\x69\x6f\x2c\x20\x79\x32\x20\x3d\x20\x6c\x32\x2e\x70\x72\x65\x76\x59\x2c\x20\x77\x32\x20\x3d\x20\x6c\x32\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x2c\x20\x6b\x32\x20\x3d\x20\x6c\x32\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x2c\x20\x41\x32\x20\x3d\x20\x6c\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x4c\x69\x6e\x65\x2c\x20\x53\x32\x20\x3d\x20\x6c\x32\x2e\x70\x61\x74\x68\x46\x72\x6f\x6d\x41\x72\x65\x61\x2c\x20\x43\x32\x20\x3d\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x32\x5d\x29\x20\x3f\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x41\x72\x72\x5b\x69\x32\x5d\x20\x3a\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x4c\x32\x20\x3d\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x3e\x20\x31\x20\x3f\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x2d\x20\x31\x20\x3a\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x2c\x20\x50\x32\x20\x3d\x20\x30\x3b\x20\x50\x32\x20\x3c\x20\x4c\x32\x3b\x20\x50\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x54\x32\x20\x3d\x20\x65\x32\x5b\x61\x32\x5d\x5b\x50\x32\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x65\x32\x5b\x61\x32\x5d\x5b\x50\x32\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x4d\x32\x20\x3d\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x69\x32\x5d\x5b\x50\x32\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x69\x32\x5d\x5b\x50\x32\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x4d\x32\x20\x3d\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x69\x32\x5d\x5b\x4c\x32\x20\x2d\x20\x31\x5d\x29\x2c\x20\x73\x32\x20\x3d\x20\x28\x4d\x32\x20\x2d\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x20\x2b\x3d\x20\x74\x68\x69\x73\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x66\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\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\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x53\x65\x72\x69\x65\x73\x59\x5b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x34\x2c\x20\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x34\x29\x20\x3e\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2d\x2d\x3b\x0a\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\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x3e\x3d\x20\x30\x20\x3f\x20\x65\x33\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x61\x32\x20\x2d\x20\x31\x29\x5d\x5b\x50\x32\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x54\x32\x20\x3f\x20\x67\x32\x20\x2d\x20\x43\x32\x20\x2f\x20\x76\x32\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2b\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x43\x32\x20\x2f\x20\x76\x32\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x30\x29\x20\x3a\x20\x67\x32\x20\x2d\x20\x65\x32\x5b\x61\x32\x5d\x5b\x50\x32\x20\x2b\x20\x31\x5d\x20\x2f\x20\x76\x32\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x2b\x20\x32\x20\x2a\x20\x28\x74\x68\x69\x73\x2e\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64\x20\x3f\x20\x65\x32\x5b\x61\x32\x5d\x5b\x50\x32\x20\x2b\x20\x31\x5d\x20\x2f\x20\x76\x32\x5b\x74\x68\x69\x73\x2e\x79\x61\x78\x69\x73\x49\x6e\x64\x65\x78\x5d\x20\x3a\x20\x30\x29\x2c\x20\x75\x32\x2e\x70\x75\x73\x68\x28\x73\x32\x29\x2c\x20\x70\x33\x2e\x70\x75\x73\x68\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x49\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x50\x6f\x69\x6e\x74\x73\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x65\x32\x2c\x20\x78\x3a\x20\x73\x32\x2c\x20\x79\x3a\x20\x72\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x69\x3a\x20\x61\x32\x2c\x20\x6a\x3a\x20\x50\x32\x2c\x20\x70\x72\x65\x76\x59\x3a\x20\x79\x32\x20\x7d\x29\x2c\x20\x7a\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x63\x72\x65\x61\x74\x65\x50\x61\x74\x68\x73\x28\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x65\x32\x2c\x20\x69\x3a\x20\x61\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x2c\x20\x6a\x3a\x20\x50\x32\x2c\x20\x78\x3a\x20\x73\x32\x2c\x20\x79\x3a\x20\x72\x32\x2c\x20\x70\x58\x3a\x20\x6f\x32\x2c\x20\x70\x59\x3a\x20\x6e\x32\x2c\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x3a\x20\x77\x32\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x3a\x20\x6b\x32\x2c\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x3a\x20\x68\x33\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x73\x3a\x20\x63\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x64\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x7a\x32\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x73\x2c\x20\x68\x33\x20\x3d\x20\x7a\x32\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x2c\x20\x6f\x32\x20\x3d\x20\x7a\x32\x2e\x70\x58\x2c\x20\x6e\x32\x20\x3d\x20\x7a\x32\x2e\x70\x59\x2c\x20\x6b\x32\x20\x3d\x20\x7a\x32\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x2c\x20\x77\x32\x20\x3d\x20\x7a\x32\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x61\x70\x70\x65\x6e\x64\x50\x61\x74\x68\x46\x72\x6f\x6d\x20\x26\x26\x20\x28\x41\x32\x20\x2b\x3d\x20\x62\x32\x2e\x6c\x69\x6e\x65\x28\x73\x32\x2c\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x29\x2c\x20\x53\x32\x20\x2b\x3d\x20\x62\x32\x2e\x6c\x69\x6e\x65\x28\x73\x32\x2c\x20\x74\x68\x69\x73\x2e\x7a\x65\x72\x6f\x59\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x68\x61\x6e\x64\x6c\x65\x4e\x75\x6c\x6c\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x28\x65\x32\x2c\x20\x49\x32\x2c\x20\x61\x32\x2c\x20\x50\x32\x2c\x20\x69\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x68\x61\x6e\x64\x6c\x65\x4d\x61\x72\x6b\x65\x72\x73\x41\x6e\x64\x4c\x61\x62\x65\x6c\x73\x28\x7b\x20\x70\x6f\x69\x6e\x74\x73\x50\x6f\x73\x3a\x20\x49\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x65\x32\x2c\x20\x78\x3a\x20\x73\x32\x2c\x20\x79\x3a\x20\x72\x32\x2c\x20\x70\x72\x65\x76\x59\x3a\x20\x79\x32\x2c\x20\x69\x3a\x20\x61\x32\x2c\x20\x6a\x3a\x20\x50\x32\x2c\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x69\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x79\x41\x72\x72\x6a\x3a\x20\x70\x33\x2c\x20\x78\x41\x72\x72\x6a\x3a\x20\x75\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x41\x72\x65\x61\x3a\x20\x53\x32\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x73\x3a\x20\x63\x32\x2c\x20\x70\x61\x74\x68\x46\x72\x6f\x6d\x4c\x69\x6e\x65\x3a\x20\x41\x32\x2c\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x3a\x20\x68\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x68\x61\x6e\x64\x6c\x65\x4d\x61\x72\x6b\x65\x72\x73\x41\x6e\x64\x4c\x61\x62\x65\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x70\x6f\x69\x6e\x74\x73\x50\x6f\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x74\x33\x2e\x78\x2c\x20\x74\x33\x2e\x79\x2c\x20\x74\x33\x2e\x70\x72\x65\x76\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x7a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x43\x68\x61\x72\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x63\x61\x74\x74\x65\x72\x2e\x64\x72\x61\x77\x28\x74\x68\x69\x73\x2e\x65\x6c\x53\x65\x72\x69\x65\x73\x2c\x20\x61\x32\x2c\x20\x7b\x20\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3a\x20\x73\x32\x2c\x20\x70\x6f\x69\x6e\x74\x73\x50\x6f\x73\x3a\x20\x65\x32\x2c\x20\x7a\x52\x61\x74\x69\x6f\x3a\x20\x74\x68\x69\x73\x2e\x7a\x52\x61\x74\x69\x6f\x2c\x20\x65\x6c\x50\x61\x72\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x6f\x69\x6e\x74\x73\x4d\x61\x69\x6e\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x69\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x6f\x69\x6e\x74\x73\x4d\x61\x69\x6e\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x65\x6c\x65\x6d\x65\x6e\x74\x2d\x68\x69\x64\x64\x65\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x70\x6c\x6f\x74\x43\x68\x61\x72\x74\x4d\x61\x72\x6b\x65\x72\x73\x28\x65\x32\x2c\x20\x73\x32\x2c\x20\x61\x32\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x6f\x69\x6e\x74\x73\x4d\x61\x69\x6e\x2e\x61\x64\x64\x28\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x6f\x32\x2e\x64\x72\x61\x77\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x28\x65\x32\x2c\x20\x73\x32\x2c\x20\x61\x32\x20\x2b\x20\x31\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x6c\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x57\x72\x61\x70\x2e\x61\x64\x64\x28\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x63\x72\x65\x61\x74\x65\x50\x61\x74\x68\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x69\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x6a\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x78\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x79\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x70\x58\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x70\x59\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x2c\x20\x64\x32\x20\x3d\x20\x74\x33\x2e\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x2c\x20\x67\x32\x20\x3d\x20\x74\x33\x2e\x61\x72\x65\x61\x50\x61\x74\x68\x73\x2c\x20\x75\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x70\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x66\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x78\x32\x20\x3d\x20\x70\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x75\x72\x76\x65\x2c\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x72\x65\x61\x42\x6f\x74\x74\x6f\x6d\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x70\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x75\x72\x76\x65\x29\x20\x26\x26\x20\x28\x78\x32\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x75\x32\x29\x20\x3f\x20\x70\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x75\x72\x76\x65\x5b\x75\x32\x5b\x69\x32\x5d\x5d\x20\x3a\x20\x70\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x75\x72\x76\x65\x5b\x69\x32\x5d\x29\x2c\x20\x78\x32\x20\x3d\x3d\x3d\x20\x22\x73\x6d\x6f\x6f\x74\x68\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x30\x2e\x33\x35\x20\x2a\x20\x28\x72\x32\x20\x2d\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x68\x61\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x20\x3f\x20\x28\x65\x32\x5b\x69\x32\x5d\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x65\x32\x5b\x69\x32\x5d\x5b\x73\x32\x20\x2b\x20\x31\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x28\x68\x33\x20\x3d\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x6e\x32\x2c\x20\x6c\x32\x29\x20\x2b\x20\x66\x32\x2e\x63\x75\x72\x76\x65\x28\x6e\x32\x20\x2b\x20\x76\x32\x2c\x20\x6c\x32\x2c\x20\x72\x32\x20\x2d\x20\x76\x32\x2c\x20\x6f\x32\x2c\x20\x72\x32\x20\x2b\x20\x31\x2c\x20\x6f\x32\x29\x2c\x20\x63\x32\x20\x3d\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x6e\x32\x20\x2b\x20\x31\x2c\x20\x6c\x32\x29\x20\x2b\x20\x66\x32\x2e\x63\x75\x72\x76\x65\x28\x6e\x32\x20\x2b\x20\x76\x32\x2c\x20\x6c\x32\x2c\x20\x72\x32\x20\x2d\x20\x76\x32\x2c\x20\x6f\x32\x2c\x20\x72\x32\x20\x2b\x20\x31\x2c\x20\x6f\x32\x29\x20\x2b\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x72\x32\x2c\x20\x62\x32\x29\x20\x2b\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x6e\x32\x2c\x20\x62\x32\x29\x20\x2b\x20\x22\x7a\x22\x29\x20\x3a\x20\x28\x68\x33\x20\x3d\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x6e\x32\x2c\x20\x6c\x32\x29\x2c\x20\x63\x32\x20\x3d\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x6e\x32\x2c\x20\x6c\x32\x29\x20\x2b\x20\x22\x7a\x22\x29\x29\x2c\x20\x64\x32\x2e\x70\x75\x73\x68\x28\x68\x33\x29\x2c\x20\x67\x32\x2e\x70\x75\x73\x68\x28\x63\x32\x29\x29\x20\x3a\x20\x28\x68\x33\x20\x2b\x3d\x20\x66\x32\x2e\x63\x75\x72\x76\x65\x28\x6e\x32\x20\x2b\x20\x76\x32\x2c\x20\x6c\x32\x2c\x20\x72\x32\x20\x2d\x20\x76\x32\x2c\x20\x6f\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x29\x2c\x20\x63\x32\x20\x2b\x3d\x20\x66\x32\x2e\x63\x75\x72\x76\x65\x28\x6e\x32\x20\x2b\x20\x76\x32\x2c\x20\x6c\x32\x2c\x20\x72\x32\x20\x2d\x20\x76\x32\x2c\x20\x6f\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x29\x29\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2c\x20\x6c\x32\x20\x3d\x20\x6f\x32\x2c\x20\x73\x32\x20\x3d\x3d\x3d\x20\x65\x32\x5b\x69\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x32\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x63\x32\x20\x2b\x20\x66\x32\x2e\x63\x75\x72\x76\x65\x28\x6e\x32\x2c\x20\x6c\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x2c\x20\x72\x32\x2c\x20\x62\x32\x29\x20\x2b\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x72\x32\x2c\x20\x6f\x32\x29\x20\x2b\x20\x22\x7a\x22\x2c\x20\x70\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x68\x61\x73\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x20\x7c\x7c\x20\x28\x64\x32\x2e\x70\x75\x73\x68\x28\x68\x33\x29\x2c\x20\x67\x32\x2e\x70\x75\x73\x68\x28\x63\x32\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x5b\x69\x32\x5d\x5b\x73\x32\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x2b\x3d\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x72\x32\x2c\x20\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x70\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x3f\x20\x28\x70\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x58\x5b\x61\x32\x5d\x5b\x73\x32\x5d\x20\x2d\x20\x70\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x78\x52\x61\x74\x69\x6f\x20\x3a\x20\x72\x32\x20\x2d\x20\x74\x68\x69\x73\x2e\x78\x44\x69\x76\x69\x73\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3d\x20\x63\x32\x20\x2b\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x79\x32\x2c\x20\x62\x32\x29\x20\x2b\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x72\x32\x2c\x20\x6f\x32\x29\x20\x2b\x20\x22\x7a\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x5b\x69\x32\x5d\x5b\x73\x32\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x68\x33\x20\x2b\x3d\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x72\x32\x2c\x20\x6f\x32\x29\x2c\x20\x63\x32\x20\x2b\x3d\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x72\x32\x2c\x20\x62\x32\x29\x29\x2c\x20\x78\x32\x20\x3d\x3d\x3d\x20\x22\x73\x74\x65\x70\x6c\x69\x6e\x65\x22\x20\x3f\x20\x28\x68\x33\x20\x3d\x20\x68\x33\x20\x2b\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x72\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x22\x48\x22\x29\x20\x2b\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x6e\x75\x6c\x6c\x2c\x20\x6f\x32\x2c\x20\x22\x56\x22\x29\x2c\x20\x63\x32\x20\x3d\x20\x63\x32\x20\x2b\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x72\x32\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x22\x48\x22\x29\x20\x2b\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x6e\x75\x6c\x6c\x2c\x20\x6f\x32\x2c\x20\x22\x56\x22\x29\x29\x20\x3a\x20\x78\x32\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x61\x69\x67\x68\x74\x22\x20\x26\x26\x20\x28\x68\x33\x20\x2b\x3d\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x72\x32\x2c\x20\x6f\x32\x29\x2c\x20\x63\x32\x20\x2b\x3d\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x72\x32\x2c\x20\x6f\x32\x29\x29\x2c\x20\x73\x32\x20\x3d\x3d\x3d\x20\x65\x32\x5b\x69\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x32\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x63\x32\x20\x2b\x20\x66\x32\x2e\x6c\x69\x6e\x65\x28\x72\x32\x2c\x20\x62\x32\x29\x20\x2b\x20\x66\x32\x2e\x6d\x6f\x76\x65\x28\x72\x32\x2c\x20\x6f\x32\x29\x20\x2b\x20\x22\x7a\x22\x2c\x20\x64\x32\x2e\x70\x75\x73\x68\x28\x68\x33\x29\x2c\x20\x67\x32\x2e\x70\x75\x73\x68\x28\x63\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x73\x3a\x20\x64\x32\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x73\x3a\x20\x67\x32\x2c\x20\x70\x58\x3a\x20\x6e\x32\x2c\x20\x70\x59\x3a\x20\x6c\x32\x2c\x20\x6c\x69\x6e\x65\x50\x61\x74\x68\x3a\x20\x68\x33\x2c\x20\x61\x72\x65\x61\x50\x61\x74\x68\x3a\x20\x63\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x61\x6e\x64\x6c\x65\x4e\x75\x6c\x6c\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x5b\x69\x32\x5d\x5b\x61\x32\x5d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x68\x6f\x77\x4e\x75\x6c\x6c\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x73\x20\x7c\x7c\x20\x74\x33\x5b\x69\x32\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x70\x6c\x6f\x74\x43\x68\x61\x72\x74\x4d\x61\x72\x6b\x65\x72\x73\x28\x65\x32\x2c\x20\x73\x32\x2c\x20\x61\x32\x20\x2b\x20\x31\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x72\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x61\x72\x6b\x65\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x6c\x50\x6f\x69\x6e\x74\x73\x4d\x61\x69\x6e\x2e\x61\x64\x64\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x77\x69\x6e\x64\x6f\x77\x2e\x54\x72\x65\x65\x6d\x61\x70\x53\x71\x75\x61\x72\x65\x64\x20\x3d\x20\x7b\x7d\x2c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x54\x72\x65\x65\x6d\x61\x70\x53\x71\x75\x61\x72\x65\x64\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x78\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x65\x33\x2c\x20\x74\x68\x69\x73\x2e\x79\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x69\x33\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x73\x33\x2c\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x61\x33\x2c\x20\x74\x68\x69\x73\x2e\x73\x68\x6f\x72\x74\x65\x73\x74\x45\x64\x67\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x43\x6f\x6f\x72\x64\x69\x6e\x61\x74\x65\x73\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x34\x2c\x20\x69\x34\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x34\x20\x3d\x20\x74\x68\x69\x73\x2e\x78\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x34\x20\x3d\x20\x74\x68\x69\x73\x2e\x79\x6f\x66\x66\x73\x65\x74\x2c\x20\x6f\x33\x20\x3d\x20\x72\x32\x28\x74\x33\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x28\x74\x33\x29\x20\x2f\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x20\x3e\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x65\x34\x20\x3d\x20\x30\x3b\x20\x65\x34\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x34\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x34\x2e\x70\x75\x73\x68\x28\x5b\x61\x34\x2c\x20\x73\x34\x2c\x20\x61\x34\x20\x2b\x20\x6f\x33\x2c\x20\x73\x34\x20\x2b\x20\x74\x33\x5b\x65\x34\x5d\x20\x2f\x20\x6f\x33\x5d\x29\x2c\x20\x73\x34\x20\x2b\x3d\x20\x74\x33\x5b\x65\x34\x5d\x20\x2f\x20\x6f\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x65\x34\x20\x3d\x20\x30\x3b\x20\x65\x34\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x34\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x34\x2e\x70\x75\x73\x68\x28\x5b\x61\x34\x2c\x20\x73\x34\x2c\x20\x61\x34\x20\x2b\x20\x74\x33\x5b\x65\x34\x5d\x20\x2f\x20\x6e\x32\x2c\x20\x73\x34\x20\x2b\x20\x6e\x32\x5d\x29\x2c\x20\x61\x34\x20\x2b\x3d\x20\x74\x33\x5b\x65\x34\x5d\x20\x2f\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x63\x75\x74\x41\x72\x65\x61\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x20\x3e\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x34\x20\x3d\x20\x65\x34\x20\x2f\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x73\x34\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x61\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x34\x20\x3d\x20\x6e\x65\x77\x20\x74\x32\x28\x74\x68\x69\x73\x2e\x78\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x61\x34\x2c\x20\x74\x68\x69\x73\x2e\x79\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x34\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x65\x34\x20\x2f\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x2c\x20\x6f\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x72\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x34\x20\x3d\x20\x6e\x65\x77\x20\x74\x32\x28\x74\x68\x69\x73\x2e\x78\x6f\x66\x66\x73\x65\x74\x2c\x20\x74\x68\x69\x73\x2e\x79\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x72\x33\x2c\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x2c\x20\x6f\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x32\x28\x65\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x2c\x20\x6f\x33\x2c\x20\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x33\x20\x3d\x20\x6f\x33\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x6f\x33\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x6e\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x34\x2c\x20\x69\x33\x2c\x20\x61\x34\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x65\x34\x20\x3d\x20\x30\x3b\x20\x65\x34\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x34\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x74\x33\x5b\x65\x34\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x34\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x65\x34\x5d\x5b\x69\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x69\x32\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x2c\x20\x61\x34\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x34\x20\x3d\x20\x65\x34\x20\x2f\x20\x72\x32\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x34\x5b\x69\x33\x5d\x20\x3d\x20\x74\x33\x5b\x69\x33\x5d\x20\x2a\x20\x73\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x65\x33\x2c\x20\x61\x33\x20\x2a\x20\x73\x33\x29\x2c\x20\x5b\x5d\x2c\x20\x6e\x65\x77\x20\x74\x32\x28\x6f\x33\x2c\x20\x6e\x32\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x2c\x20\x5b\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x32\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x73\x33\x2c\x20\x6f\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x32\x20\x3d\x20\x73\x33\x2e\x73\x68\x6f\x72\x74\x65\x73\x74\x45\x64\x67\x65\x28\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x34\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\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\x20\x20\x28\x73\x34\x20\x3d\x20\x74\x34\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x2e\x70\x75\x73\x68\x28\x65\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x61\x32\x28\x74\x34\x2c\x20\x69\x33\x29\x2c\x20\x6f\x34\x20\x3d\x20\x61\x32\x28\x73\x34\x2c\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x33\x20\x3e\x3d\x20\x6f\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x65\x33\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x5b\x30\x5d\x2c\x20\x6e\x32\x29\x20\x3f\x20\x28\x65\x33\x2e\x70\x75\x73\x68\x28\x6c\x32\x29\x2c\x20\x69\x32\x28\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x2c\x20\x65\x33\x2c\x20\x73\x33\x2c\x20\x6f\x33\x29\x29\x20\x3a\x20\x28\x68\x33\x20\x3d\x20\x73\x33\x2e\x63\x75\x74\x41\x72\x65\x61\x28\x72\x32\x28\x65\x33\x29\x2c\x20\x6f\x33\x29\x2c\x20\x6f\x33\x2e\x70\x75\x73\x68\x28\x73\x33\x2e\x67\x65\x74\x43\x6f\x6f\x72\x64\x69\x6e\x61\x74\x65\x73\x28\x65\x33\x29\x29\x2c\x20\x69\x32\x28\x74\x33\x2c\x20\x5b\x5d\x2c\x20\x68\x33\x2c\x20\x6f\x33\x29\x29\x2c\x20\x6f\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x33\x2e\x70\x75\x73\x68\x28\x73\x33\x2e\x67\x65\x74\x43\x6f\x6f\x72\x64\x69\x6e\x61\x74\x65\x73\x28\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x32\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x2e\x61\x70\x70\x6c\x79\x28\x4d\x61\x74\x68\x2c\x20\x74\x33\x29\x2c\x20\x61\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x2e\x61\x70\x70\x6c\x79\x28\x4d\x61\x74\x68\x2c\x20\x74\x33\x29\x2c\x20\x73\x33\x20\x3d\x20\x72\x32\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x65\x33\x2c\x20\x32\x29\x20\x2a\x20\x61\x33\x20\x2f\x20\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x73\x33\x2c\x20\x32\x29\x2c\x20\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x73\x33\x2c\x20\x32\x29\x20\x2f\x20\x28\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x65\x33\x2c\x20\x32\x29\x20\x2a\x20\x69\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x3d\x3d\x3d\x20\x41\x72\x72\x61\x79\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x2c\x20\x69\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x65\x33\x20\x3d\x20\x30\x3b\x20\x65\x33\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x33\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x2c\x20\x69\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x28\x74\x33\x5b\x30\x5d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x65\x33\x20\x3d\x20\x30\x3b\x20\x65\x33\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x2b\x3d\x20\x6f\x32\x28\x74\x33\x5b\x65\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x72\x32\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x33\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x33\x28\x69\x33\x2c\x20\x61\x33\x2c\x20\x72\x33\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x6e\x32\x2c\x20\x6c\x32\x20\x3d\x20\x6c\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x6c\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x2c\x20\x63\x32\x2c\x20\x64\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x67\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x28\x69\x33\x5b\x30\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x69\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x63\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x5b\x63\x32\x5d\x20\x3d\x20\x6f\x32\x28\x69\x33\x5b\x63\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x68\x33\x20\x3d\x20\x65\x32\x28\x64\x32\x2c\x20\x61\x33\x2c\x20\x72\x33\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x29\x2c\x20\x63\x32\x20\x3d\x20\x30\x3b\x20\x63\x32\x20\x3c\x20\x69\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x63\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x2e\x70\x75\x73\x68\x28\x74\x33\x28\x69\x33\x5b\x63\x32\x5d\x2c\x20\x68\x33\x5b\x63\x32\x5d\x5b\x32\x5d\x20\x2d\x20\x68\x33\x5b\x63\x32\x5d\x5b\x30\x5d\x2c\x20\x68\x33\x5b\x63\x32\x5d\x5b\x33\x5d\x20\x2d\x20\x68\x33\x5b\x63\x32\x5d\x5b\x31\x5d\x2c\x20\x68\x33\x5b\x63\x32\x5d\x5b\x30\x5d\x2c\x20\x68\x33\x5b\x63\x32\x5d\x5b\x31\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x67\x32\x20\x3d\x20\x65\x32\x28\x69\x33\x2c\x20\x61\x33\x2c\x20\x72\x33\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x32\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x76\x61\x72\x20\x49\x74\x2c\x20\x7a\x74\x2c\x20\x58\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x6b\x74\x28\x65\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2c\x20\x74\x68\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x72\x61\x77\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x54\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6e\x6f\x44\x61\x74\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x34\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x32\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x65\x67\x52\x61\x6e\x67\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x63\x68\x65\x63\x6b\x43\x6f\x6c\x6f\x72\x52\x61\x6e\x67\x65\x28\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x64\x61\x74\x61\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x69\x33\x5d\x29\x20\x7c\x7c\x20\x28\x65\x32\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x69\x33\x5d\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x65\x32\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x69\x33\x5d\x2e\x70\x75\x73\x68\x28\x74\x35\x2e\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x54\x72\x65\x65\x6d\x61\x70\x53\x71\x75\x61\x72\x65\x64\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x28\x6f\x32\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x33\x2c\x20\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x72\x65\x65\x6d\x61\x70\x2d\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x3a\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x5b\x6e\x32\x5d\x29\x2c\x20\x72\x65\x6c\x3a\x20\x6e\x32\x20\x2b\x20\x31\x2c\x20\x22\x64\x61\x74\x61\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x22\x3a\x20\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x76\x28\x65\x32\x2e\x63\x74\x78\x29\x2e\x64\x72\x6f\x70\x53\x68\x61\x64\x6f\x77\x28\x72\x32\x2c\x20\x68\x33\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x67\x72\x6f\x75\x70\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x2d\x6c\x61\x62\x65\x6c\x73\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x33\x2c\x20\x6f\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x34\x20\x3d\x20\x72\x33\x5b\x30\x5d\x2c\x20\x63\x33\x20\x3d\x20\x72\x33\x5b\x31\x5d\x2c\x20\x64\x32\x20\x3d\x20\x72\x33\x5b\x32\x5d\x2c\x20\x67\x32\x20\x3d\x20\x72\x33\x5b\x33\x5d\x2c\x20\x75\x32\x20\x3d\x20\x61\x32\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x68\x34\x2c\x20\x63\x33\x2c\x20\x64\x32\x20\x2d\x20\x68\x34\x2c\x20\x67\x32\x20\x2d\x20\x63\x33\x2c\x20\x30\x2c\x20\x22\x23\x66\x66\x66\x22\x2c\x20\x31\x2c\x20\x65\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x74\x72\x65\x65\x6d\x61\x70\x2e\x75\x73\x65\x46\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x41\x73\x53\x74\x72\x6f\x6b\x65\x20\x3f\x20\x66\x32\x20\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2e\x63\x6f\x6c\x6f\x72\x73\x5b\x6e\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x78\x3a\x20\x68\x34\x2c\x20\x63\x79\x3a\x20\x63\x33\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x6e\x32\x2c\x20\x69\x3a\x20\x6e\x32\x2c\x20\x6a\x3a\x20\x6f\x34\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x64\x32\x20\x2d\x20\x68\x34\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x67\x32\x20\x2d\x20\x63\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x65\x32\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x53\x68\x61\x64\x65\x43\x6f\x6c\x6f\x72\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x6e\x32\x2c\x20\x6f\x34\x2c\x20\x65\x32\x2e\x6e\x65\x67\x52\x61\x6e\x67\x65\x29\x2c\x20\x66\x32\x20\x3d\x20\x70\x33\x2e\x63\x6f\x6c\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x34\x5d\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x20\x26\x26\x20\x28\x66\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x2e\x64\x61\x74\x61\x5b\x6f\x34\x5d\x2e\x66\x69\x6c\x6c\x43\x6f\x6c\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x78\x32\x20\x3d\x20\x73\x32\x2e\x66\x69\x6c\x6c\x50\x61\x74\x68\x28\x7b\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x66\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x6e\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x6f\x34\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x72\x65\x65\x6d\x61\x70\x2d\x72\x65\x63\x74\x22\x29\x2c\x20\x75\x32\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x78\x32\x20\x7d\x29\x2c\x20\x65\x32\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x61\x64\x64\x4c\x69\x73\x74\x65\x6e\x65\x72\x73\x28\x75\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x68\x34\x20\x2b\x20\x28\x64\x32\x20\x2d\x20\x68\x34\x29\x20\x2f\x20\x32\x2c\x20\x79\x3a\x20\x63\x33\x20\x2b\x20\x28\x67\x32\x20\x2d\x20\x63\x33\x29\x20\x2f\x20\x32\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x20\x7d\x2c\x20\x76\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x68\x34\x2c\x20\x79\x3a\x20\x63\x33\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x64\x32\x20\x2d\x20\x68\x34\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x67\x32\x20\x2d\x20\x63\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x21\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x32\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x7c\x7c\x20\x28\x6d\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x2e\x73\x70\x65\x65\x64\x29\x2c\x20\x65\x32\x2e\x61\x6e\x69\x6d\x61\x74\x65\x54\x72\x65\x65\x6d\x61\x70\x28\x75\x32\x2c\x20\x62\x32\x2c\x20\x76\x32\x2c\x20\x6d\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x20\x26\x26\x20\x28\x79\x32\x20\x3d\x20\x65\x32\x2e\x64\x79\x6e\x61\x6d\x69\x63\x41\x6e\x69\x6d\x2e\x73\x70\x65\x65\x64\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x6e\x32\x5d\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x6e\x32\x5d\x5b\x6f\x34\x5d\x20\x26\x26\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x6e\x32\x5d\x5b\x6f\x34\x5d\x2e\x72\x65\x63\x74\x20\x26\x26\x20\x28\x62\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x5b\x6e\x32\x5d\x5b\x6f\x34\x5d\x2e\x72\x65\x63\x74\x29\x2c\x20\x65\x32\x2e\x61\x6e\x69\x6d\x61\x74\x65\x54\x72\x65\x65\x6d\x61\x70\x28\x75\x32\x2c\x20\x62\x32\x2c\x20\x76\x32\x2c\x20\x79\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x46\x6f\x6e\x74\x53\x69\x7a\x65\x28\x72\x33\x29\x2c\x20\x6b\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x28\x65\x32\x2e\x6c\x61\x62\x65\x6c\x73\x5b\x6e\x32\x5d\x5b\x6f\x34\x5d\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x5b\x6e\x32\x5d\x5b\x6f\x34\x5d\x2c\x20\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x3a\x20\x6e\x32\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x6f\x34\x2c\x20\x77\x3a\x20\x69\x32\x20\x7d\x29\x2c\x20\x41\x32\x20\x3d\x20\x65\x32\x2e\x68\x65\x6c\x70\x65\x72\x73\x2e\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x44\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x28\x7b\x20\x74\x65\x78\x74\x3a\x20\x6b\x32\x2c\x20\x78\x3a\x20\x28\x68\x34\x20\x2b\x20\x64\x32\x29\x20\x2f\x20\x32\x2c\x20\x79\x3a\x20\x28\x63\x33\x20\x2b\x20\x67\x32\x29\x20\x2f\x20\x32\x20\x2b\x20\x65\x32\x2e\x73\x74\x72\x6f\x6b\x65\x57\x69\x64\x74\x68\x20\x2f\x20\x32\x20\x2b\x20\x77\x32\x20\x2f\x20\x33\x2c\x20\x69\x3a\x20\x6e\x32\x2c\x20\x6a\x3a\x20\x6f\x34\x2c\x20\x63\x6f\x6c\x6f\x72\x50\x72\x6f\x70\x73\x3a\x20\x70\x33\x2c\x20\x66\x6f\x6e\x74\x53\x69\x7a\x65\x3a\x20\x77\x32\x2c\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x74\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x41\x32\x20\x26\x26\x20\x65\x32\x2e\x72\x6f\x74\x61\x74\x65\x54\x6f\x46\x69\x74\x4c\x61\x62\x65\x6c\x28\x41\x32\x2c\x20\x6b\x32\x2c\x20\x68\x34\x2c\x20\x63\x33\x2c\x20\x64\x32\x2c\x20\x67\x32\x29\x2c\x20\x6c\x32\x2e\x61\x64\x64\x28\x75\x32\x29\x2c\x20\x41\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6c\x32\x2e\x61\x64\x64\x28\x41\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6c\x32\x2e\x61\x64\x64\x28\x63\x32\x29\x2c\x20\x72\x32\x2e\x61\x64\x64\x28\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x46\x6f\x6e\x74\x53\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x34\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x2c\x20\x61\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x33\x5b\x30\x5d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x20\x2b\x3d\x20\x74\x34\x28\x65\x33\x5b\x69\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x20\x2b\x3d\x20\x65\x33\x5b\x69\x33\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x68\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x29\x20\x2f\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x34\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x2c\x20\x61\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x33\x5b\x30\x5d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x20\x2b\x3d\x20\x74\x34\x28\x65\x33\x5b\x69\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x68\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3d\x20\x74\x33\x5b\x32\x5d\x20\x2d\x20\x74\x33\x5b\x30\x5d\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x5b\x33\x5d\x20\x2d\x20\x74\x33\x5b\x31\x5d\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x20\x2a\x20\x61\x32\x2c\x20\x72\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x70\x6f\x77\x28\x73\x32\x2c\x20\x30\x2e\x35\x29\x2c\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x72\x32\x20\x2f\x20\x6f\x32\x2c\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x73\x74\x79\x6c\x65\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x2c\x20\x31\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x6f\x74\x61\x74\x65\x54\x6f\x46\x69\x74\x4c\x61\x62\x65\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x35\x20\x3e\x20\x73\x32\x20\x2d\x20\x69\x32\x20\x26\x26\x20\x6e\x32\x2e\x77\x69\x64\x74\x68\x20\x3c\x3d\x20\x72\x32\x20\x2d\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x6f\x32\x2e\x72\x6f\x74\x61\x74\x65\x41\x72\x6f\x75\x6e\x64\x43\x65\x6e\x74\x65\x72\x28\x74\x33\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x22\x72\x6f\x74\x61\x74\x65\x28\x2d\x39\x30\x20\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6c\x32\x2e\x78\x2c\x20\x22\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6c\x32\x2e\x79\x2c\x20\x22\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x54\x72\x65\x65\x6d\x61\x70\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x62\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x61\x6e\x69\x6d\x61\x74\x65\x52\x65\x63\x74\x28\x74\x33\x2c\x20\x7b\x20\x78\x3a\x20\x65\x32\x2e\x78\x2c\x20\x79\x3a\x20\x65\x32\x2e\x79\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x65\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x2c\x20\x7b\x20\x78\x3a\x20\x69\x32\x2e\x78\x2c\x20\x79\x3a\x20\x69\x32\x2e\x79\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x69\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x2c\x20\x61\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x43\x6f\x6d\x70\x6c\x65\x74\x65\x64\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x45\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x75\x74\x63\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x64\x61\x74\x65\x74\x69\x6d\x65\x55\x54\x43\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x54\x69\x6d\x65\x53\x63\x61\x6c\x65\x54\x69\x63\x6b\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6f\x32\x20\x3d\x20\x28\x69\x32\x20\x2d\x20\x74\x33\x29\x20\x2f\x20\x38\x36\x34\x65\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x49\x6e\x74\x65\x72\x76\x61\x6c\x28\x6f\x32\x29\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x49\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x4f\x75\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x32\x20\x3c\x20\x31\x31\x35\x37\x34\x30\x37\x34\x30\x37\x34\x30\x37\x34\x30\x37\x35\x65\x2d\x32\x30\x20\x3f\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x49\x6e\x20\x3d\x20\x74\x72\x75\x65\x20\x3a\x20\x6f\x32\x20\x3e\x20\x35\x65\x34\x20\x26\x26\x20\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x69\x73\x61\x62\x6c\x65\x5a\x6f\x6f\x6d\x4f\x75\x74\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x67\x65\x74\x54\x69\x6d\x65\x55\x6e\x69\x74\x73\x66\x72\x6f\x6d\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x28\x74\x33\x2c\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x75\x74\x63\x29\x2c\x20\x6c\x32\x20\x3d\x20\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x6f\x32\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x20\x2f\x20\x32\x34\x2c\x20\x63\x32\x20\x3d\x20\x68\x33\x20\x2f\x20\x36\x30\x2c\x20\x64\x32\x20\x3d\x20\x63\x32\x20\x2f\x20\x36\x30\x2c\x20\x67\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x32\x34\x20\x2a\x20\x6f\x32\x29\x2c\x20\x75\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x31\x34\x34\x30\x20\x2a\x20\x6f\x32\x29\x2c\x20\x70\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x38\x36\x34\x30\x30\x20\x2a\x20\x6f\x32\x29\x2c\x20\x66\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x6f\x32\x29\x2c\x20\x78\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x6f\x32\x20\x2f\x20\x33\x30\x29\x2c\x20\x62\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x6f\x32\x20\x2f\x20\x33\x36\x35\x29\x2c\x20\x76\x32\x20\x3d\x20\x7b\x20\x6d\x69\x6e\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x3a\x20\x6e\x32\x2e\x6d\x69\x6e\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x2c\x20\x6d\x69\x6e\x53\x65\x63\x6f\x6e\x64\x3a\x20\x6e\x32\x2e\x6d\x69\x6e\x53\x65\x63\x6f\x6e\x64\x2c\x20\x6d\x69\x6e\x4d\x69\x6e\x75\x74\x65\x3a\x20\x6e\x32\x2e\x6d\x69\x6e\x4d\x69\x6e\x75\x74\x65\x2c\x20\x6d\x69\x6e\x48\x6f\x75\x72\x3a\x20\x6e\x32\x2e\x6d\x69\x6e\x48\x6f\x75\x72\x2c\x20\x6d\x69\x6e\x44\x61\x74\x65\x3a\x20\x6e\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x2c\x20\x6d\x69\x6e\x4d\x6f\x6e\x74\x68\x3a\x20\x6e\x32\x2e\x6d\x69\x6e\x4d\x6f\x6e\x74\x68\x2c\x20\x6d\x69\x6e\x59\x65\x61\x72\x3a\x20\x6e\x32\x2e\x6d\x69\x6e\x59\x65\x61\x72\x20\x7d\x2c\x20\x6d\x32\x20\x3d\x20\x7b\x20\x66\x69\x72\x73\x74\x56\x61\x6c\x3a\x20\x76\x32\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x3a\x20\x76\x32\x2e\x6d\x69\x6e\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x65\x63\x6f\x6e\x64\x3a\x20\x76\x32\x2e\x6d\x69\x6e\x53\x65\x63\x6f\x6e\x64\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x4d\x69\x6e\x75\x74\x65\x3a\x20\x76\x32\x2e\x6d\x69\x6e\x4d\x69\x6e\x75\x74\x65\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x48\x6f\x75\x72\x3a\x20\x76\x32\x2e\x6d\x69\x6e\x48\x6f\x75\x72\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x44\x61\x74\x65\x3a\x20\x76\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x44\x61\x74\x65\x3a\x20\x76\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x3a\x20\x76\x32\x2e\x6d\x69\x6e\x4d\x6f\x6e\x74\x68\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x59\x65\x61\x72\x3a\x20\x76\x32\x2e\x6d\x69\x6e\x59\x65\x61\x72\x2c\x20\x64\x61\x79\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x3a\x20\x6c\x32\x2c\x20\x68\x6f\x75\x72\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x3a\x20\x68\x33\x2c\x20\x6d\x69\x6e\x75\x74\x65\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x3a\x20\x63\x32\x2c\x20\x73\x65\x63\x6f\x6e\x64\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x3a\x20\x64\x32\x2c\x20\x6e\x75\x6d\x62\x65\x72\x4f\x66\x53\x65\x63\x6f\x6e\x64\x73\x3a\x20\x70\x33\x2c\x20\x6e\x75\x6d\x62\x65\x72\x4f\x66\x4d\x69\x6e\x75\x74\x65\x73\x3a\x20\x75\x32\x2c\x20\x6e\x75\x6d\x62\x65\x72\x4f\x66\x48\x6f\x75\x72\x73\x3a\x20\x67\x32\x2c\x20\x6e\x75\x6d\x62\x65\x72\x4f\x66\x44\x61\x79\x73\x3a\x20\x66\x32\x2c\x20\x6e\x75\x6d\x62\x65\x72\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x3a\x20\x78\x32\x2c\x20\x6e\x75\x6d\x62\x65\x72\x4f\x66\x59\x65\x61\x72\x73\x3a\x20\x62\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x79\x65\x61\x72\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x59\x65\x61\x72\x53\x63\x61\x6c\x65\x28\x6d\x32\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x6d\x6f\x6e\x74\x68\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x68\x61\x6c\x66\x5f\x79\x65\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x4d\x6f\x6e\x74\x68\x53\x63\x61\x6c\x65\x28\x6d\x32\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x6d\x6f\x6e\x74\x68\x73\x5f\x64\x61\x79\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x6f\x6e\x74\x68\x73\x5f\x66\x6f\x72\x74\x6e\x69\x67\x68\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x61\x79\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x77\x65\x65\x6b\x5f\x64\x61\x79\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x44\x61\x79\x53\x63\x61\x6c\x65\x28\x6d\x32\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x68\x6f\x75\x72\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x48\x6f\x75\x72\x53\x63\x61\x6c\x65\x28\x6d\x32\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x6d\x69\x6e\x75\x74\x65\x73\x5f\x66\x69\x76\x65\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x69\x6e\x75\x74\x65\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x4d\x69\x6e\x75\x74\x65\x53\x63\x61\x6c\x65\x28\x6d\x32\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x5f\x74\x65\x6e\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x5f\x66\x69\x76\x65\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x53\x65\x63\x6f\x6e\x64\x53\x63\x61\x6c\x65\x28\x6d\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x74\x34\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x75\x6e\x69\x74\x3a\x20\x74\x34\x2e\x75\x6e\x69\x74\x2c\x20\x79\x65\x61\x72\x3a\x20\x74\x34\x2e\x79\x65\x61\x72\x2c\x20\x64\x61\x79\x3a\x20\x74\x34\x2e\x64\x61\x79\x20\x3f\x20\x74\x34\x2e\x64\x61\x79\x20\x3a\x20\x31\x2c\x20\x68\x6f\x75\x72\x3a\x20\x74\x34\x2e\x68\x6f\x75\x72\x20\x3f\x20\x74\x34\x2e\x68\x6f\x75\x72\x20\x3a\x20\x30\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x74\x34\x2e\x6d\x6f\x6e\x74\x68\x20\x2b\x20\x31\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x20\x3f\x20\x65\x28\x65\x28\x7b\x7d\x2c\x20\x69\x33\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x64\x61\x79\x3a\x20\x31\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x20\x2b\x20\x31\x20\x7d\x29\x20\x3a\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x64\x61\x79\x22\x20\x7c\x7c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x68\x6f\x75\x72\x22\x20\x3f\x20\x65\x28\x65\x28\x7b\x7d\x2c\x20\x69\x33\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x3a\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x69\x6e\x75\x74\x65\x22\x20\x3f\x20\x65\x28\x65\x28\x7b\x7d\x2c\x20\x69\x33\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x2c\x20\x6d\x69\x6e\x75\x74\x65\x3a\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x3a\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x73\x65\x63\x6f\x6e\x64\x22\x20\x3f\x20\x65\x28\x65\x28\x7b\x7d\x2c\x20\x69\x33\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x2c\x20\x6d\x69\x6e\x75\x74\x65\x3a\x20\x74\x34\x2e\x6d\x69\x6e\x75\x74\x65\x2c\x20\x73\x65\x63\x6f\x6e\x64\x3a\x20\x74\x34\x2e\x73\x65\x63\x6f\x6e\x64\x20\x7d\x29\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x32\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x31\x2c\x20\x69\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x73\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x32\x30\x29\x2c\x20\x72\x33\x20\x3d\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x69\x33\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x69\x63\x6b\x41\x6d\x6f\x75\x6e\x74\x29\x2c\x20\x79\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x69\x33\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x79\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2f\x20\x69\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x33\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x6e\x33\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x61\x32\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x79\x65\x61\x72\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x79\x65\x61\x72\x22\x20\x26\x26\x20\x28\x6f\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x68\x61\x6c\x66\x5f\x79\x65\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x37\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x79\x65\x61\x72\x22\x20\x26\x26\x20\x28\x6f\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x6f\x6e\x74\x68\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x31\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x79\x65\x61\x72\x22\x20\x26\x26\x20\x28\x6f\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x6f\x6e\x74\x68\x73\x5f\x66\x6f\x72\x74\x6e\x69\x67\x68\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x31\x35\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x21\x3d\x3d\x20\x22\x79\x65\x61\x72\x22\x20\x26\x26\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x21\x3d\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x20\x7c\x7c\x20\x28\x6f\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x72\x33\x20\x3d\x3d\x3d\x20\x33\x30\x20\x26\x26\x20\x28\x6e\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x6f\x6e\x74\x68\x73\x5f\x64\x61\x79\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x31\x30\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x20\x26\x26\x20\x28\x6f\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x72\x33\x20\x3d\x3d\x3d\x20\x33\x30\x20\x26\x26\x20\x28\x6e\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x77\x65\x65\x6b\x5f\x64\x61\x79\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x38\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x20\x26\x26\x20\x28\x6f\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x61\x79\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x20\x3d\x20\x31\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x20\x26\x26\x20\x28\x6f\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x68\x6f\x75\x72\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x64\x61\x79\x22\x20\x26\x26\x20\x28\x6f\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x69\x6e\x75\x74\x65\x73\x5f\x66\x69\x76\x65\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x33\x20\x25\x20\x35\x20\x21\x3d\x20\x30\x20\x26\x26\x20\x28\x6e\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x5f\x74\x65\x6e\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x33\x20\x25\x20\x31\x30\x20\x21\x3d\x20\x30\x20\x26\x26\x20\x28\x6e\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x5f\x66\x69\x76\x65\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x33\x20\x25\x20\x35\x20\x21\x3d\x20\x30\x20\x26\x26\x20\x28\x6e\x33\x20\x3d\x20\x74\x72\x75\x65\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\x61\x32\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x68\x6f\x75\x72\x73\x22\x20\x7c\x7c\x20\x61\x32\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x6d\x69\x6e\x75\x74\x65\x73\x5f\x66\x69\x76\x65\x73\x22\x20\x7c\x7c\x20\x61\x32\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x5f\x74\x65\x6e\x73\x22\x20\x7c\x7c\x20\x61\x32\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x5f\x66\x69\x76\x65\x73\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6e\x33\x29\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\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x28\x72\x33\x20\x25\x20\x65\x32\x20\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x6f\x33\x29\x20\x26\x26\x20\x21\x6e\x33\x29\x0a\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\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x63\x61\x6c\x63\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x42\x61\x73\x65\x64\x4f\x6e\x46\x6f\x72\x6d\x61\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x73\x28\x74\x33\x29\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x4f\x76\x65\x72\x6c\x61\x70\x70\x69\x6e\x67\x54\x53\x28\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x69\x6d\x65\x73\x63\x61\x6c\x65\x4c\x61\x62\x65\x6c\x73\x20\x3d\x20\x73\x32\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x6e\x65\x77\x20\x6c\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x70\x6c\x6f\x74\x43\x6f\x6f\x72\x64\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x49\x6e\x74\x65\x72\x76\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x32\x34\x20\x2a\x20\x74\x33\x2c\x20\x69\x32\x20\x3d\x20\x36\x30\x20\x2a\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x74\x33\x20\x2f\x20\x33\x36\x35\x20\x3e\x20\x35\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x79\x65\x61\x72\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x74\x33\x20\x3e\x20\x38\x30\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x68\x61\x6c\x66\x5f\x79\x65\x61\x72\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x74\x33\x20\x3e\x20\x31\x38\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x74\x33\x20\x3e\x20\x39\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x73\x5f\x66\x6f\x72\x74\x6e\x69\x67\x68\x74\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x74\x33\x20\x3e\x20\x36\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x73\x5f\x64\x61\x79\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x74\x33\x20\x3e\x20\x33\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x77\x65\x65\x6b\x5f\x64\x61\x79\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x74\x33\x20\x3e\x20\x32\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x64\x61\x79\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x65\x32\x20\x3e\x20\x32\x2e\x34\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x68\x6f\x75\x72\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x69\x32\x20\x3e\x20\x31\x35\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x6d\x69\x6e\x75\x74\x65\x73\x5f\x66\x69\x76\x65\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x69\x32\x20\x3e\x20\x35\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x6d\x69\x6e\x75\x74\x65\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x69\x32\x20\x3e\x20\x31\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x5f\x74\x65\x6e\x73\x22\x3b\x0a\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\x63\x61\x73\x65\x20\x36\x30\x20\x2a\x20\x69\x32\x20\x3e\x20\x32\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x5f\x66\x69\x76\x65\x73\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x63\x6b\x49\x6e\x74\x65\x72\x76\x61\x6c\x20\x3d\x20\x22\x73\x65\x63\x6f\x6e\x64\x73\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x6e\x65\x72\x61\x74\x65\x59\x65\x61\x72\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x72\x73\x74\x56\x61\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x59\x65\x61\x72\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x79\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x6e\x75\x6d\x62\x65\x72\x4f\x66\x59\x65\x61\x72\x73\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x6d\x69\x6e\x59\x65\x61\x72\x2c\x20\x6e\x32\x20\x3d\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x68\x33\x20\x3d\x20\x22\x79\x65\x61\x72\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x20\x3e\x20\x31\x20\x7c\x7c\x20\x65\x32\x2e\x6d\x69\x6e\x4d\x6f\x6e\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x6c\x32\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x52\x65\x6d\x61\x69\x6e\x69\x6e\x67\x44\x61\x79\x73\x4f\x66\x59\x65\x61\x72\x28\x65\x32\x2e\x6d\x69\x6e\x59\x65\x61\x72\x2c\x20\x65\x32\x2e\x6d\x69\x6e\x4d\x6f\x6e\x74\x68\x2c\x20\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x28\x6c\x32\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x59\x65\x61\x72\x28\x65\x32\x2e\x6d\x69\x6e\x59\x65\x61\x72\x29\x20\x2d\x20\x63\x32\x20\x2b\x20\x31\x29\x20\x2a\x20\x73\x32\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x6d\x69\x6e\x59\x65\x61\x72\x20\x2b\x20\x31\x2c\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x6e\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x6f\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x68\x33\x2c\x20\x79\x65\x61\x72\x3a\x20\x6f\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x69\x32\x20\x2b\x20\x31\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x65\x32\x2e\x6d\x69\x6e\x4d\x6f\x6e\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x6e\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x6f\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x68\x33\x2c\x20\x79\x65\x61\x72\x3a\x20\x61\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x69\x32\x20\x2b\x20\x31\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x64\x32\x20\x3d\x20\x6f\x32\x2c\x20\x67\x32\x20\x3d\x20\x6e\x32\x2c\x20\x75\x32\x20\x3d\x20\x30\x3b\x20\x75\x32\x20\x3c\x20\x72\x32\x3b\x20\x75\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x2b\x2b\x2c\x20\x67\x32\x20\x3d\x20\x6c\x32\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x59\x65\x61\x72\x28\x64\x32\x20\x2d\x20\x31\x29\x20\x2a\x20\x73\x32\x20\x2b\x20\x67\x32\x2c\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x67\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x64\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x68\x33\x2c\x20\x79\x65\x61\x72\x3a\x20\x64\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x31\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x6e\x65\x72\x61\x74\x65\x4d\x6f\x6e\x74\x68\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x72\x73\x74\x56\x61\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x44\x61\x74\x65\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x59\x65\x61\x72\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x64\x61\x79\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6e\x75\x6d\x62\x65\x72\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x2c\x20\x6e\x32\x20\x3d\x20\x61\x32\x2c\x20\x6c\x32\x20\x3d\x20\x30\x2c\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x63\x32\x20\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x2c\x20\x64\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x20\x3e\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x32\x20\x3d\x20\x28\x68\x33\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x28\x61\x32\x20\x2b\x20\x31\x2c\x20\x65\x32\x2e\x6d\x69\x6e\x59\x65\x61\x72\x29\x20\x2d\x20\x69\x32\x20\x2b\x20\x31\x29\x20\x2a\x20\x72\x32\x2c\x20\x6e\x32\x20\x3d\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x61\x32\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x73\x32\x20\x2b\x20\x64\x32\x2c\x20\x75\x32\x20\x3d\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x6e\x32\x29\x2c\x20\x70\x33\x20\x3d\x20\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x22\x79\x65\x61\x72\x22\x2c\x20\x70\x33\x20\x3d\x20\x67\x32\x2c\x20\x75\x32\x20\x3d\x20\x31\x2c\x20\x67\x32\x20\x2b\x3d\x20\x64\x32\x20\x2b\x3d\x20\x31\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x6c\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x70\x33\x2c\x20\x75\x6e\x69\x74\x3a\x20\x63\x32\x2c\x20\x79\x65\x61\x72\x3a\x20\x67\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x75\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x6c\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x6e\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x63\x32\x2c\x20\x79\x65\x61\x72\x3a\x20\x73\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x61\x32\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x6e\x32\x20\x2b\x20\x31\x2c\x20\x62\x32\x20\x3d\x20\x6c\x32\x2c\x20\x76\x32\x20\x3d\x20\x30\x2c\x20\x6d\x32\x20\x3d\x20\x31\x3b\x20\x76\x32\x20\x3c\x20\x6f\x32\x3b\x20\x76\x32\x2b\x2b\x2c\x20\x6d\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x66\x32\x20\x3d\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x66\x32\x29\x29\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x28\x63\x32\x20\x3d\x20\x22\x79\x65\x61\x72\x22\x2c\x20\x64\x32\x20\x2b\x3d\x20\x31\x29\x20\x3a\x20\x63\x32\x20\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x65\x61\x72\x28\x73\x32\x2c\x20\x66\x32\x2c\x20\x64\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x20\x3d\x20\x68\x33\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x28\x66\x32\x2c\x20\x79\x32\x29\x20\x2a\x20\x72\x32\x20\x2b\x20\x62\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x66\x32\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x79\x32\x20\x3a\x20\x66\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x62\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x77\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x63\x32\x2c\x20\x79\x65\x61\x72\x3a\x20\x79\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x66\x32\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x31\x20\x3a\x20\x66\x32\x20\x7d\x29\x2c\x20\x66\x32\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x6e\x65\x72\x61\x74\x65\x44\x61\x79\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x72\x73\x74\x56\x61\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x59\x65\x61\x72\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x68\x6f\x75\x72\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x6e\x75\x6d\x62\x65\x72\x4f\x66\x44\x61\x79\x73\x2c\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6e\x32\x20\x3d\x20\x22\x64\x61\x79\x22\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x20\x2b\x20\x31\x2c\x20\x68\x33\x20\x3d\x20\x6c\x32\x2c\x20\x63\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3e\x20\x6f\x32\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x28\x65\x33\x20\x2b\x20\x31\x2c\x20\x69\x33\x29\x20\x3f\x20\x28\x68\x33\x20\x3d\x20\x31\x2c\x20\x6e\x32\x20\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x2c\x20\x67\x32\x20\x3d\x20\x65\x33\x20\x2b\x3d\x20\x31\x2c\x20\x65\x33\x29\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x64\x32\x20\x3d\x20\x28\x32\x34\x20\x2d\x20\x65\x32\x2e\x6d\x69\x6e\x48\x6f\x75\x72\x29\x20\x2a\x20\x73\x32\x2c\x20\x67\x32\x20\x3d\x20\x6c\x32\x2c\x20\x75\x32\x20\x3d\x20\x63\x32\x28\x68\x33\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6d\x69\x6e\x48\x6f\x75\x72\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x20\x3d\x3d\x3d\x20\x31\x20\x3f\x20\x28\x64\x32\x20\x3d\x20\x30\x2c\x20\x67\x32\x20\x3d\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x65\x32\x2e\x6d\x69\x6e\x4d\x6f\x6e\x74\x68\x29\x2c\x20\x6e\x32\x20\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x2c\x20\x68\x33\x20\x3d\x20\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x2c\x20\x72\x32\x2b\x2b\x29\x20\x3a\x20\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x20\x21\x3d\x3d\x20\x31\x20\x26\x26\x20\x65\x32\x2e\x6d\x69\x6e\x48\x6f\x75\x72\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x65\x32\x2e\x6d\x69\x6e\x4d\x69\x6e\x75\x74\x65\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x65\x32\x2e\x6d\x69\x6e\x44\x61\x74\x65\x2c\x20\x67\x32\x20\x3d\x20\x6c\x32\x2c\x20\x75\x32\x20\x3d\x20\x63\x32\x28\x68\x33\x20\x3d\x20\x6c\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x64\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x67\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x6e\x32\x2c\x20\x79\x65\x61\x72\x3a\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x65\x61\x72\x28\x61\x32\x2c\x20\x75\x32\x2c\x20\x30\x29\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x75\x32\x29\x2c\x20\x64\x61\x79\x3a\x20\x68\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x64\x32\x2c\x20\x66\x32\x20\x3d\x20\x30\x3b\x20\x66\x32\x20\x3c\x20\x72\x32\x3b\x20\x66\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x22\x64\x61\x79\x22\x2c\x20\x75\x32\x20\x3d\x20\x63\x32\x28\x68\x33\x20\x2b\x3d\x20\x31\x2c\x20\x75\x32\x2c\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x65\x61\x72\x28\x61\x32\x2c\x20\x75\x32\x2c\x20\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x65\x61\x72\x28\x61\x32\x2c\x20\x75\x32\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x32\x34\x20\x2a\x20\x73\x32\x20\x2b\x20\x70\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x68\x33\x20\x3d\x3d\x3d\x20\x31\x20\x3f\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x75\x32\x29\x20\x3a\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x70\x33\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x76\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x6e\x32\x2c\x20\x79\x65\x61\x72\x3a\x20\x62\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x75\x32\x29\x2c\x20\x64\x61\x79\x3a\x20\x76\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x6e\x65\x72\x61\x74\x65\x48\x6f\x75\x72\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x66\x69\x72\x73\x74\x56\x61\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x44\x61\x74\x65\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x59\x65\x61\x72\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x6d\x69\x6e\x75\x74\x65\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6e\x75\x6d\x62\x65\x72\x4f\x66\x48\x6f\x75\x72\x73\x2c\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x6c\x32\x20\x3d\x20\x22\x68\x6f\x75\x72\x22\x2c\x20\x68\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3e\x20\x6e\x32\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x28\x65\x33\x20\x2b\x20\x31\x2c\x20\x73\x32\x29\x20\x26\x26\x20\x28\x66\x32\x20\x3d\x20\x31\x2c\x20\x65\x33\x20\x2b\x3d\x20\x31\x29\x2c\x20\x7b\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x65\x33\x2c\x20\x64\x61\x74\x65\x3a\x20\x66\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x63\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3e\x20\x6e\x32\x2e\x64\x65\x74\x65\x72\x6d\x69\x6e\x65\x44\x61\x79\x73\x4f\x66\x4d\x6f\x6e\x74\x68\x73\x28\x65\x33\x20\x2b\x20\x31\x2c\x20\x73\x32\x29\x20\x3f\x20\x65\x33\x20\x2b\x3d\x20\x31\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x64\x32\x20\x3d\x20\x36\x30\x20\x2d\x20\x28\x65\x32\x2e\x6d\x69\x6e\x4d\x69\x6e\x75\x74\x65\x20\x2b\x20\x65\x32\x2e\x6d\x69\x6e\x53\x65\x63\x6f\x6e\x64\x20\x2f\x20\x36\x30\x29\x2c\x20\x67\x32\x20\x3d\x20\x64\x32\x20\x2a\x20\x72\x32\x2c\x20\x75\x32\x20\x3d\x20\x65\x32\x2e\x6d\x69\x6e\x48\x6f\x75\x72\x20\x2b\x20\x31\x2c\x20\x70\x33\x20\x3d\x20\x75\x32\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x32\x20\x3d\x3d\x3d\x20\x36\x30\x20\x26\x26\x20\x28\x67\x32\x20\x3d\x20\x30\x2c\x20\x70\x33\x20\x3d\x20\x28\x75\x32\x20\x3d\x20\x65\x32\x2e\x6d\x69\x6e\x48\x6f\x75\x72\x29\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x69\x32\x2c\x20\x62\x32\x20\x3d\x20\x63\x32\x28\x66\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x67\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x75\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x6c\x32\x2c\x20\x64\x61\x79\x3a\x20\x66\x32\x2c\x20\x68\x6f\x75\x72\x3a\x20\x70\x33\x2c\x20\x79\x65\x61\x72\x3a\x20\x73\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x62\x32\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x67\x32\x2c\x20\x6d\x32\x20\x3d\x20\x30\x3b\x20\x6d\x32\x20\x3c\x20\x6f\x32\x3b\x20\x6d\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x32\x20\x3d\x20\x22\x68\x6f\x75\x72\x22\x2c\x20\x70\x33\x20\x3e\x3d\x20\x32\x34\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x33\x20\x3d\x20\x30\x2c\x20\x6c\x32\x20\x3d\x20\x22\x64\x61\x79\x22\x2c\x20\x62\x32\x20\x3d\x20\x68\x33\x28\x66\x32\x20\x2b\x3d\x20\x31\x2c\x20\x62\x32\x29\x2e\x6d\x6f\x6e\x74\x68\x2c\x20\x62\x32\x20\x3d\x20\x63\x32\x28\x66\x32\x2c\x20\x62\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x65\x61\x72\x28\x73\x32\x2c\x20\x62\x32\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x32\x20\x3d\x20\x70\x33\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x6d\x32\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x64\x32\x20\x2a\x20\x72\x32\x20\x3a\x20\x36\x30\x20\x2a\x20\x72\x32\x20\x2b\x20\x76\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x77\x32\x20\x3d\x20\x70\x33\x20\x3d\x3d\x3d\x20\x30\x20\x3f\x20\x66\x32\x20\x3a\x20\x70\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x76\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x77\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x6c\x32\x2c\x20\x68\x6f\x75\x72\x3a\x20\x70\x33\x2c\x20\x64\x61\x79\x3a\x20\x66\x32\x2c\x20\x79\x65\x61\x72\x3a\x20\x79\x32\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x62\x32\x29\x20\x7d\x29\x2c\x20\x70\x33\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x6e\x65\x72\x61\x74\x65\x4d\x69\x6e\x75\x74\x65\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x65\x63\x6f\x6e\x64\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x69\x6e\x75\x74\x65\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x48\x6f\x75\x72\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x44\x61\x74\x65\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x59\x65\x61\x72\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x6d\x69\x6e\x75\x74\x65\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x73\x65\x63\x6f\x6e\x64\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x2c\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x6e\x75\x6d\x62\x65\x72\x4f\x66\x4d\x69\x6e\x75\x74\x65\x73\x2c\x20\x64\x32\x20\x3d\x20\x61\x32\x20\x2b\x20\x31\x2c\x20\x67\x32\x20\x3d\x20\x72\x32\x2c\x20\x75\x32\x20\x3d\x20\x6f\x32\x2c\x20\x70\x33\x20\x3d\x20\x6e\x32\x2c\x20\x66\x32\x20\x3d\x20\x73\x32\x2c\x20\x62\x32\x20\x3d\x20\x28\x36\x30\x20\x2d\x20\x69\x32\x20\x2d\x20\x65\x32\x20\x2f\x20\x31\x65\x33\x29\x20\x2a\x20\x68\x33\x2c\x20\x76\x32\x20\x3d\x20\x30\x3b\x20\x76\x32\x20\x3c\x20\x63\x32\x3b\x20\x76\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x32\x20\x3e\x3d\x20\x36\x30\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x30\x2c\x20\x28\x66\x32\x20\x2b\x3d\x20\x31\x29\x20\x3d\x3d\x3d\x20\x32\x34\x20\x26\x26\x20\x28\x66\x32\x20\x3d\x20\x30\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x62\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x64\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x22\x6d\x69\x6e\x75\x74\x65\x22\x2c\x20\x68\x6f\x75\x72\x3a\x20\x66\x32\x2c\x20\x6d\x69\x6e\x75\x74\x65\x3a\x20\x64\x32\x2c\x20\x64\x61\x79\x3a\x20\x67\x32\x2c\x20\x79\x65\x61\x72\x3a\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x65\x61\x72\x28\x70\x33\x2c\x20\x75\x32\x2c\x20\x30\x29\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x75\x32\x29\x20\x7d\x29\x2c\x20\x62\x32\x20\x2b\x3d\x20\x6c\x32\x2c\x20\x64\x32\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x6e\x65\x72\x61\x74\x65\x53\x65\x63\x6f\x6e\x64\x53\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x69\x6c\x6c\x69\x73\x65\x63\x6f\x6e\x64\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x65\x63\x6f\x6e\x64\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x69\x6e\x75\x74\x65\x2c\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x48\x6f\x75\x72\x2c\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x44\x61\x74\x65\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x4d\x6f\x6e\x74\x68\x2c\x20\x6e\x32\x20\x3d\x20\x74\x33\x2e\x63\x75\x72\x72\x65\x6e\x74\x59\x65\x61\x72\x2c\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x73\x65\x63\x6f\x6e\x64\x73\x57\x69\x64\x74\x68\x4f\x6e\x58\x41\x78\x69\x73\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x2e\x6e\x75\x6d\x62\x65\x72\x4f\x66\x53\x65\x63\x6f\x6e\x64\x73\x2c\x20\x63\x32\x20\x3d\x20\x69\x32\x20\x2b\x20\x31\x2c\x20\x64\x32\x20\x3d\x20\x61\x32\x2c\x20\x67\x32\x20\x3d\x20\x72\x32\x2c\x20\x75\x32\x20\x3d\x20\x6f\x32\x2c\x20\x70\x33\x20\x3d\x20\x6e\x32\x2c\x20\x66\x32\x20\x3d\x20\x73\x32\x2c\x20\x62\x32\x20\x3d\x20\x28\x31\x65\x33\x20\x2d\x20\x65\x32\x29\x20\x2f\x20\x31\x65\x33\x20\x2a\x20\x6c\x32\x2c\x20\x76\x32\x20\x3d\x20\x30\x3b\x20\x76\x32\x20\x3c\x20\x68\x33\x3b\x20\x76\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x20\x3e\x3d\x20\x36\x30\x20\x26\x26\x20\x28\x63\x32\x20\x3d\x20\x30\x2c\x20\x2b\x2b\x64\x32\x20\x3e\x3d\x20\x36\x30\x20\x26\x26\x20\x28\x64\x32\x20\x3d\x20\x30\x2c\x20\x2b\x2b\x66\x32\x20\x3d\x3d\x3d\x20\x32\x34\x20\x26\x26\x20\x28\x66\x32\x20\x3d\x20\x30\x29\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x41\x72\x72\x61\x79\x2e\x70\x75\x73\x68\x28\x7b\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x62\x32\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x63\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x22\x73\x65\x63\x6f\x6e\x64\x22\x2c\x20\x68\x6f\x75\x72\x3a\x20\x66\x32\x2c\x20\x6d\x69\x6e\x75\x74\x65\x3a\x20\x64\x32\x2c\x20\x73\x65\x63\x6f\x6e\x64\x3a\x20\x63\x32\x2c\x20\x64\x61\x79\x3a\x20\x67\x32\x2c\x20\x79\x65\x61\x72\x3a\x20\x74\x68\x69\x73\x2e\x5f\x67\x65\x74\x59\x65\x61\x72\x28\x70\x33\x2c\x20\x75\x32\x2c\x20\x30\x29\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x78\x2e\x6d\x6f\x6e\x74\x68\x4d\x6f\x64\x28\x75\x32\x29\x20\x7d\x29\x2c\x20\x62\x32\x20\x2b\x3d\x20\x6c\x32\x2c\x20\x63\x32\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x72\x65\x61\x74\x65\x52\x61\x77\x44\x61\x74\x65\x53\x74\x72\x69\x6e\x67\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x79\x65\x61\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x6d\x6f\x6e\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x6d\x6f\x6e\x74\x68\x20\x3d\x20\x31\x29\x2c\x20\x69\x32\x20\x2b\x3d\x20\x22\x2d\x22\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x74\x33\x2e\x6d\x6f\x6e\x74\x68\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x2c\x20\x74\x33\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x64\x61\x79\x22\x20\x3f\x20\x69\x32\x20\x2b\x3d\x20\x74\x33\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x64\x61\x79\x22\x20\x3f\x20\x22\x2d\x22\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x65\x32\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x20\x3a\x20\x22\x2d\x30\x31\x22\x20\x3a\x20\x69\x32\x20\x2b\x3d\x20\x22\x2d\x22\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x28\x74\x33\x2e\x64\x61\x79\x20\x3f\x20\x74\x33\x2e\x64\x61\x79\x20\x3a\x20\x22\x31\x22\x29\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x2c\x20\x74\x33\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x68\x6f\x75\x72\x22\x20\x3f\x20\x69\x32\x20\x2b\x3d\x20\x74\x33\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x68\x6f\x75\x72\x22\x20\x3f\x20\x22\x54\x22\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x65\x32\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x20\x3a\x20\x22\x54\x30\x30\x22\x20\x3a\x20\x69\x32\x20\x2b\x3d\x20\x22\x54\x22\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x28\x74\x33\x2e\x68\x6f\x75\x72\x20\x3f\x20\x74\x33\x2e\x68\x6f\x75\x72\x20\x3a\x20\x22\x30\x22\x29\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x2c\x20\x74\x33\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x69\x6e\x75\x74\x65\x22\x20\x3f\x20\x69\x32\x20\x2b\x3d\x20\x22\x3a\x22\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x65\x32\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x20\x3a\x20\x69\x32\x20\x2b\x3d\x20\x22\x3a\x22\x20\x2b\x20\x28\x74\x33\x2e\x6d\x69\x6e\x75\x74\x65\x20\x3f\x20\x28\x22\x30\x22\x20\x2b\x20\x74\x33\x2e\x6d\x69\x6e\x75\x74\x65\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x20\x3a\x20\x22\x30\x30\x22\x29\x2c\x20\x74\x33\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x73\x65\x63\x6f\x6e\x64\x22\x20\x3f\x20\x69\x32\x20\x2b\x3d\x20\x22\x3a\x22\x20\x2b\x20\x28\x22\x30\x22\x20\x2b\x20\x65\x32\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x20\x3a\x20\x69\x32\x20\x2b\x3d\x20\x22\x3a\x30\x30\x22\x2c\x20\x74\x68\x69\x73\x2e\x75\x74\x63\x20\x26\x26\x20\x28\x69\x32\x20\x2b\x3d\x20\x22\x2e\x30\x30\x30\x5a\x22\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x34\x2e\x76\x61\x6c\x75\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2c\x20\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x52\x28\x65\x32\x2e\x63\x74\x78\x29\x2c\x20\x72\x32\x20\x3d\x20\x65\x32\x2e\x63\x72\x65\x61\x74\x65\x52\x61\x77\x44\x61\x74\x65\x53\x74\x72\x69\x6e\x67\x28\x74\x34\x2c\x20\x61\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x73\x32\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x65\x28\x72\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x75\x74\x63\x20\x7c\x7c\x20\x28\x6f\x32\x20\x3d\x20\x73\x32\x2e\x67\x65\x74\x44\x61\x74\x65\x28\x73\x32\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x65\x57\x69\x74\x68\x54\x69\x6d\x65\x7a\x6f\x6e\x65\x28\x72\x32\x29\x29\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x22\x64\x64\x20\x4d\x4d\x4d\x22\x2c\x20\x6c\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x64\x61\x74\x65\x74\x69\x6d\x65\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x79\x65\x61\x72\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x6c\x32\x2e\x79\x65\x61\x72\x29\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x6f\x6e\x74\x68\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x6c\x32\x2e\x6d\x6f\x6e\x74\x68\x29\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x64\x61\x79\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x6c\x32\x2e\x64\x61\x79\x29\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x68\x6f\x75\x72\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x6c\x32\x2e\x68\x6f\x75\x72\x29\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x6d\x69\x6e\x75\x74\x65\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x6c\x32\x2e\x6d\x69\x6e\x75\x74\x65\x29\x2c\x20\x74\x34\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x3d\x20\x22\x73\x65\x63\x6f\x6e\x64\x22\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x6c\x32\x2e\x73\x65\x63\x6f\x6e\x64\x29\x2c\x20\x61\x32\x20\x3d\x20\x73\x32\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x28\x6f\x32\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x73\x32\x2e\x66\x6f\x72\x6d\x61\x74\x44\x61\x74\x65\x28\x6f\x32\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x64\x61\x74\x65\x53\x74\x72\x69\x6e\x67\x3a\x20\x72\x32\x2c\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x74\x34\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x61\x32\x2c\x20\x75\x6e\x69\x74\x3a\x20\x74\x34\x2e\x75\x6e\x69\x74\x2c\x20\x79\x65\x61\x72\x3a\x20\x74\x34\x2e\x79\x65\x61\x72\x2c\x20\x6d\x6f\x6e\x74\x68\x3a\x20\x74\x34\x2e\x6d\x6f\x6e\x74\x68\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6d\x6f\x76\x65\x4f\x76\x65\x72\x6c\x61\x70\x70\x69\x6e\x67\x54\x53\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x73\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x33\x5b\x30\x5d\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x74\x33\x2e\x65\x76\x65\x72\x79\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x76\x61\x6c\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x74\x33\x5b\x30\x5d\x2e\x76\x61\x6c\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x65\x32\x20\x3d\x20\x61\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x74\x33\x5b\x30\x5d\x2e\x76\x61\x6c\x75\x65\x29\x2e\x77\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x33\x2c\x20\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x32\x20\x3e\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x68\x69\x64\x65\x4f\x76\x65\x72\x6c\x61\x70\x70\x69\x6e\x67\x4c\x61\x62\x65\x6c\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x73\x32\x20\x3f\x20\x65\x32\x20\x3a\x20\x61\x32\x2e\x67\x65\x74\x54\x65\x78\x74\x52\x65\x63\x74\x73\x28\x74\x33\x5b\x72\x32\x5d\x2e\x76\x61\x6c\x75\x65\x29\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x33\x20\x3d\x20\x74\x33\x5b\x72\x32\x5d\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x33\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3e\x20\x68\x33\x20\x2b\x20\x6c\x32\x20\x2b\x20\x31\x30\x20\x3f\x20\x28\x72\x32\x20\x3d\x20\x6e\x32\x2c\x20\x6f\x33\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x20\x3d\x20\x6f\x32\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x67\x65\x74\x59\x65\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x2b\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x65\x32\x20\x2f\x20\x31\x32\x29\x20\x2b\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x59\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x69\x32\x2e\x77\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x75\x70\x45\x6c\x65\x6d\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3d\x20\x5b\x22\x6c\x69\x6e\x65\x22\x2c\x20\x22\x61\x72\x65\x61\x22\x2c\x20\x22\x62\x61\x72\x22\x2c\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x2c\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x2c\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x2c\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x2c\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x2c\x20\x22\x72\x61\x64\x61\x72\x22\x2c\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x2c\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x69\x32\x29\x20\x3e\x20\x2d\x31\x2c\x20\x74\x33\x2e\x78\x79\x43\x68\x61\x72\x74\x73\x20\x3d\x20\x5b\x22\x6c\x69\x6e\x65\x22\x2c\x20\x22\x61\x72\x65\x61\x22\x2c\x20\x22\x62\x61\x72\x22\x2c\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x2c\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x2c\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x2c\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x2c\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x69\x32\x29\x20\x3e\x20\x2d\x31\x2c\x20\x74\x33\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3d\x20\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x20\x7c\x7c\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x29\x20\x26\x26\x20\x65\x32\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x2c\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x43\x6c\x61\x73\x73\x20\x3d\x20\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x22\x20\x2b\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x49\x44\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2c\x20\x7b\x20\x69\x64\x3a\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x43\x6c\x61\x73\x73\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x2c\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x20\x22\x20\x2b\x20\x74\x33\x2e\x63\x68\x61\x72\x74\x43\x6c\x61\x73\x73\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x20\x3d\x20\x6e\x65\x77\x20\x77\x69\x6e\x64\x6f\x77\x2e\x53\x56\x47\x2e\x44\x6f\x63\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x76\x67\x22\x2c\x20\x22\x78\x6d\x6c\x6e\x73\x3a\x64\x61\x74\x61\x22\x3a\x20\x22\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x4e\x53\x22\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x6f\x66\x66\x73\x65\x74\x58\x2c\x20\x22\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x6f\x66\x66\x73\x65\x74\x59\x2c\x20\x22\x29\x22\x29\x20\x7d\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x20\x3d\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x53\x56\x47\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x28\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x20\x3d\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x67\x72\x6f\x75\x70\x28\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x69\x6e\x6e\x65\x72\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x61\x70\x68\x69\x63\x61\x6c\x22\x20\x7d\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x67\x72\x6f\x75\x70\x28\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x20\x7d\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x44\x65\x66\x73\x20\x3d\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x64\x65\x66\x73\x28\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x2e\x63\x6c\x61\x73\x73\x4c\x69\x73\x74\x2e\x61\x64\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x65\x67\x65\x6e\x64\x22\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x61\x64\x64\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x29\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x44\x65\x66\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x6c\x6f\x74\x43\x68\x61\x72\x74\x54\x79\x70\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x72\x32\x20\x3d\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x69\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x6f\x32\x20\x3d\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x69\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x6e\x32\x20\x3d\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x69\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x6c\x32\x20\x3d\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x69\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x68\x33\x20\x3d\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x69\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x63\x32\x20\x3d\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x69\x3a\x20\x5b\x5d\x20\x7d\x2c\x20\x64\x32\x20\x3d\x20\x7b\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x5b\x5d\x2c\x20\x69\x3a\x20\x5b\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x67\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x28\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x6f\x6c\x75\x6d\x6e\x22\x20\x7c\x7c\x20\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x61\x72\x22\x20\x3f\x20\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x32\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x22\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x62\x61\x72\x73\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x69\x6e\x20\x61\x20\x6d\x69\x78\x65\x64\x2f\x63\x6f\x6d\x62\x6f\x20\x63\x68\x61\x72\x74\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x74\x75\x72\x6e\x20\x6f\x66\x66\x20\x60\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x62\x61\x72\x2e\x68\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x60\x22\x29\x2c\x20\x68\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x2c\x20\x68\x33\x2e\x69\x2e\x70\x75\x73\x68\x28\x67\x33\x29\x2c\x20\x75\x33\x2b\x2b\x2c\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x75\x6d\x6e\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x68\x33\x2e\x73\x65\x72\x69\x65\x73\x29\x20\x3a\x20\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x61\x72\x65\x61\x22\x20\x3f\x20\x28\x6f\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x2c\x20\x6f\x32\x2e\x69\x2e\x70\x75\x73\x68\x28\x67\x33\x29\x2c\x20\x75\x33\x2b\x2b\x29\x20\x3a\x20\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x22\x20\x3f\x20\x28\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x2c\x20\x72\x32\x2e\x69\x2e\x70\x75\x73\x68\x28\x67\x33\x29\x2c\x20\x75\x33\x2b\x2b\x29\x20\x3a\x20\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x20\x3f\x20\x28\x6e\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x2c\x20\x6e\x32\x2e\x69\x2e\x70\x75\x73\x68\x28\x67\x33\x29\x29\x20\x3a\x20\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x20\x3f\x20\x28\x6c\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x2c\x20\x6c\x32\x2e\x69\x2e\x70\x75\x73\x68\x28\x67\x33\x29\x2c\x20\x75\x33\x2b\x2b\x29\x20\x3a\x20\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x20\x3f\x20\x28\x63\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x2c\x20\x63\x32\x2e\x69\x2e\x70\x75\x73\x68\x28\x67\x33\x29\x2c\x20\x75\x33\x2b\x2b\x29\x20\x3a\x20\x74\x33\x5b\x67\x33\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x20\x3f\x20\x28\x64\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x2c\x20\x64\x32\x2e\x69\x2e\x70\x75\x73\x68\x28\x67\x33\x29\x2c\x20\x75\x33\x2b\x2b\x29\x20\x3a\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x22\x59\x6f\x75\x20\x68\x61\x76\x65\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x61\x6e\x20\x75\x6e\x72\x65\x63\x6f\x67\x6e\x69\x7a\x65\x64\x20\x63\x68\x61\x72\x74\x20\x74\x79\x70\x65\x2e\x20\x41\x76\x61\x69\x6c\x61\x62\x6c\x65\x20\x74\x79\x70\x65\x73\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x20\x61\x72\x65\x20\x6c\x69\x6e\x65\x2f\x61\x72\x65\x61\x2f\x63\x6f\x6c\x75\x6d\x6e\x2f\x62\x61\x72\x2f\x73\x63\x61\x74\x74\x65\x72\x2f\x62\x75\x62\x62\x6c\x65\x22\x29\x2c\x20\x75\x33\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x73\x32\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3d\x20\x74\x72\x75\x65\x29\x29\x20\x3a\x20\x28\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x2c\x20\x72\x32\x2e\x69\x2e\x70\x75\x73\x68\x28\x67\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x6e\x65\x77\x20\x4d\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x2c\x20\x75\x32\x20\x3d\x20\x6e\x65\x77\x20\x77\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x70\x69\x65\x20\x3d\x20\x6e\x65\x77\x20\x43\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x6e\x65\x77\x20\x50\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x72\x61\x6e\x67\x65\x42\x61\x72\x20\x3d\x20\x6e\x65\x77\x20\x48\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x66\x32\x20\x3d\x20\x6e\x65\x77\x20\x4c\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x78\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x78\x32\x2e\x70\x75\x73\x68\x28\x67\x32\x2e\x64\x72\x61\x77\x28\x6f\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x22\x61\x72\x65\x61\x22\x2c\x20\x6f\x32\x2e\x69\x29\x29\x2c\x20\x68\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x62\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x2e\x70\x75\x73\x68\x28\x62\x32\x2e\x64\x72\x61\x77\x28\x68\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x68\x33\x2e\x69\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x62\x61\x72\x20\x3d\x20\x6e\x65\x77\x20\x46\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x2c\x20\x78\x32\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x62\x61\x72\x2e\x64\x72\x61\x77\x28\x68\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x68\x33\x2e\x69\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x78\x32\x2e\x70\x75\x73\x68\x28\x67\x32\x2e\x64\x72\x61\x77\x28\x72\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x22\x6c\x69\x6e\x65\x22\x2c\x20\x72\x32\x2e\x69\x29\x29\x2c\x20\x63\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x78\x32\x2e\x70\x75\x73\x68\x28\x75\x32\x2e\x64\x72\x61\x77\x28\x63\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x63\x32\x2e\x69\x29\x29\x2c\x20\x64\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x78\x32\x2e\x70\x75\x73\x68\x28\x75\x32\x2e\x64\x72\x61\x77\x28\x64\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x64\x32\x2e\x69\x29\x29\x2c\x20\x6e\x32\x2e\x73\x65\x72\x69\x65\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\x76\x61\x72\x20\x76\x32\x20\x3d\x20\x6e\x65\x77\x20\x4d\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x2e\x70\x75\x73\x68\x28\x76\x32\x2e\x64\x72\x61\x77\x28\x6e\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x22\x73\x63\x61\x74\x74\x65\x72\x22\x2c\x20\x6e\x32\x2e\x69\x29\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\x6c\x32\x2e\x73\x65\x72\x69\x65\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\x76\x61\x72\x20\x6d\x32\x20\x3d\x20\x6e\x65\x77\x20\x4d\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x2e\x70\x75\x73\x68\x28\x6d\x32\x2e\x64\x72\x61\x77\x28\x6c\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x22\x62\x75\x62\x62\x6c\x65\x22\x2c\x20\x6c\x32\x2e\x69\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x67\x32\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x22\x6c\x69\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x72\x65\x61\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x67\x32\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x22\x61\x72\x65\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x6e\x65\x77\x20\x79\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x62\x61\x72\x20\x3d\x20\x6e\x65\x77\x20\x46\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x2c\x20\x78\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x62\x61\x72\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x61\x6e\x64\x6c\x65\x73\x74\x69\x63\x6b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x6e\x65\x77\x20\x77\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6f\x78\x50\x6c\x6f\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x6e\x65\x77\x20\x77\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x61\x6e\x67\x65\x42\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x72\x61\x6e\x67\x65\x42\x61\x72\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x68\x65\x61\x74\x6d\x61\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x6e\x65\x77\x20\x41\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x6e\x65\x77\x20\x58\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2c\x20\x65\x32\x29\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x70\x69\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x6e\x75\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x70\x69\x65\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x70\x33\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x61\x64\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x66\x32\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x20\x3d\x20\x67\x32\x2e\x64\x72\x61\x77\x28\x73\x32\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x53\x56\x47\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x3d\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x68\x65\x69\x67\x68\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x28\x74\x68\x69\x73\x2e\x65\x6c\x29\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x77\x69\x64\x74\x68\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5b\x30\x2d\x39\x5d\x2b\x2f\x67\x29\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x3d\x3d\x20\x22\x25\x22\x20\x3f\x20\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x28\x69\x32\x5b\x30\x5d\x29\x20\x26\x26\x20\x28\x69\x32\x5b\x30\x5d\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x28\x74\x68\x69\x73\x2e\x65\x6c\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x29\x2c\x20\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x3d\x20\x69\x32\x5b\x30\x5d\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x77\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x29\x20\x3a\x20\x61\x32\x20\x21\x3d\x3d\x20\x22\x70\x78\x22\x20\x26\x26\x20\x61\x32\x20\x21\x3d\x3d\x20\x22\x22\x20\x7c\x7c\x20\x28\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x77\x69\x64\x74\x68\x2c\x20\x31\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x68\x65\x69\x67\x68\x74\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5b\x30\x2d\x39\x5d\x2b\x2f\x67\x29\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x21\x3d\x3d\x20\x22\x61\x75\x74\x6f\x22\x20\x26\x26\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x21\x3d\x3d\x20\x22\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x20\x3d\x3d\x3d\x20\x22\x25\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x28\x74\x68\x69\x73\x2e\x65\x6c\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x72\x32\x5b\x31\x5d\x20\x2a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x31\x30\x29\x20\x2f\x20\x31\x30\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x2e\x36\x31\x20\x3a\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2f\x20\x31\x2e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x3d\x20\x30\x29\x2c\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x30\x29\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x2c\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x7d\x29\x2c\x20\x73\x32\x20\x21\x3d\x3d\x20\x22\x25\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x30\x20\x3a\x20\x74\x33\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x2e\x70\x61\x72\x65\x6e\x74\x48\x65\x69\x67\x68\x74\x4f\x66\x66\x73\x65\x74\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x6d\x69\x6e\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x6f\x32\x20\x2b\x20\x22\x70\x78\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x73\x74\x79\x6c\x65\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x74\x33\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x73\x74\x79\x6c\x65\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x74\x33\x2e\x73\x76\x67\x48\x65\x69\x67\x68\x74\x20\x2b\x20\x22\x70\x78\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x68\x69\x66\x74\x47\x72\x61\x70\x68\x50\x6f\x73\x69\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x2c\x20\x69\x32\x20\x3d\x20\x7b\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x22\x20\x2b\x20\x74\x33\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x20\x2b\x20\x22\x2c\x20\x22\x20\x2b\x20\x65\x32\x20\x2b\x20\x22\x29\x22\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x6e\x6f\x64\x65\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x73\x69\x7a\x65\x4e\x6f\x6e\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2c\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x3f\x20\x31\x20\x3a\x20\x31\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x20\x2b\x3d\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x61\x64\x64\x69\x6e\x67\x2e\x62\x6f\x74\x74\x6f\x6d\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x74\x6f\x70\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x21\x3d\x3d\x20\x22\x62\x6f\x74\x74\x6f\x6d\x22\x20\x7c\x7c\x20\x21\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x20\x7c\x7c\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x66\x6c\x6f\x61\x74\x69\x6e\x67\x20\x7c\x7c\x20\x28\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x63\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x6c\x65\x67\x65\x6e\x64\x48\x65\x6c\x70\x65\x72\x73\x2e\x67\x65\x74\x4c\x65\x67\x65\x6e\x64\x42\x42\x6f\x78\x28\x29\x2e\x63\x6c\x77\x68\x20\x2b\x20\x31\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x69\x61\x6c\x62\x61\x72\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x22\x29\x2c\x20\x72\x32\x20\x3d\x20\x32\x2e\x30\x35\x20\x2a\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x20\x26\x26\x20\x21\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x70\x61\x72\x6b\x6c\x69\x6e\x65\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x74\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x6c\x6f\x74\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x61\x64\x69\x61\x6c\x42\x61\x72\x2e\x73\x74\x61\x72\x74\x41\x6e\x67\x6c\x65\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x78\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x6f\x32\x2e\x62\x6f\x74\x74\x6f\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x62\x6f\x74\x74\x6f\x6d\x20\x2d\x20\x6f\x32\x2e\x74\x6f\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x32\x2e\x30\x35\x20\x2a\x20\x74\x33\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x61\x64\x69\x61\x6c\x53\x69\x7a\x65\x2c\x20\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x72\x32\x20\x2b\x20\x65\x32\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x20\x2b\x20\x69\x32\x20\x2b\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x46\x6f\x72\x65\x69\x67\x6e\x20\x26\x26\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x46\x6f\x72\x65\x69\x67\x6e\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x68\x65\x69\x67\x68\x74\x22\x2c\x20\x6c\x32\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x65\x6c\x57\x72\x61\x70\x2e\x73\x74\x79\x6c\x65\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x6c\x32\x20\x2b\x20\x22\x70\x78\x22\x2c\x20\x6d\x2e\x73\x65\x74\x41\x74\x74\x72\x73\x28\x65\x32\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x2c\x20\x7b\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x6c\x32\x20\x7d\x29\x2c\x20\x65\x32\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x6d\x69\x6e\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x6c\x32\x20\x2b\x20\x22\x70\x78\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6f\x72\x65\x43\x61\x6c\x63\x75\x6c\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x5a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x69\x6e\x69\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x73\x65\x74\x47\x6c\x6f\x62\x61\x6c\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x4f\x28\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x69\x6e\x69\x74\x47\x6c\x6f\x62\x61\x6c\x56\x61\x72\x73\x28\x61\x32\x29\x2c\x20\x61\x32\x2e\x73\x65\x72\x69\x65\x73\x58\x76\x61\x6c\x75\x65\x73\x20\x3d\x20\x65\x32\x28\x29\x2c\x20\x61\x32\x2e\x73\x65\x72\x69\x65\x73\x59\x76\x61\x6c\x75\x65\x73\x20\x3d\x20\x65\x32\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x3d\x3d\x3d\x20\x41\x72\x72\x61\x79\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x4d\x75\x6c\x74\x69\x70\x6c\x65\x59\x41\x78\x69\x73\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x78\x79\x53\x65\x74\x74\x69\x6e\x67\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x61\x63\x6b\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x74\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x61\x63\x6b\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x74\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x72\x61\x77\x59\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x61\x74\x65\x74\x69\x6d\x65\x22\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6c\x61\x62\x65\x6c\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x20\x3d\x20\x6e\x65\x77\x20\x45\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x29\x20\x26\x26\x20\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x29\x20\x26\x26\x20\x21\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x3f\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x2e\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x54\x69\x6d\x65\x53\x63\x61\x6c\x65\x54\x69\x63\x6b\x73\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x29\x20\x3a\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x42\x61\x72\x48\x6f\x72\x69\x7a\x6f\x6e\x74\x61\x6c\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x2e\x63\x61\x6c\x63\x75\x6c\x61\x74\x65\x54\x69\x6d\x65\x53\x63\x61\x6c\x65\x54\x69\x63\x6b\x73\x28\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x59\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x59\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x69\x6d\x65\x53\x63\x61\x6c\x65\x2e\x72\x65\x63\x61\x6c\x63\x44\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x42\x61\x73\x65\x64\x4f\x6e\x46\x6f\x72\x6d\x61\x74\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x67\x65\x74\x43\x61\x6c\x63\x75\x6c\x61\x74\x65\x64\x52\x61\x74\x69\x6f\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x75\x70\x64\x61\x74\x65\x53\x6f\x75\x72\x63\x65\x43\x68\x61\x72\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x7b\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x2c\x20\x6d\x61\x78\x3a\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x20\x7d\x20\x7d\x20\x7d\x20\x7d\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x75\x70\x42\x72\x75\x73\x68\x48\x61\x6e\x64\x6c\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x72\x75\x73\x68\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x72\x75\x73\x68\x2e\x74\x61\x72\x67\x65\x74\x73\x20\x7c\x7c\x20\x5b\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x72\x75\x73\x68\x2e\x74\x61\x72\x67\x65\x74\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x2e\x67\x65\x74\x43\x68\x61\x72\x74\x42\x79\x49\x44\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x62\x72\x75\x73\x68\x53\x6f\x75\x72\x63\x65\x20\x3d\x20\x74\x33\x2e\x63\x74\x78\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x69\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x75\x70\x64\x61\x74\x65\x53\x6f\x75\x72\x63\x65\x43\x68\x61\x72\x74\x28\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x63\x72\x6f\x6c\x6c\x65\x64\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x69\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x63\x72\x6f\x6c\x6c\x65\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x75\x70\x64\x61\x74\x65\x53\x6f\x75\x72\x63\x65\x43\x68\x61\x72\x74\x28\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x2e\x67\x65\x74\x43\x68\x61\x72\x74\x42\x79\x49\x44\x28\x74\x35\x29\x2c\x20\x72\x32\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x62\x72\x75\x73\x68\x2e\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x61\x78\x69\x73\x20\x26\x26\x20\x61\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x6e\x65\x77\x20\x71\x28\x61\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x3d\x20\x6f\x32\x2e\x61\x75\x74\x6f\x53\x63\x61\x6c\x65\x59\x28\x61\x33\x2c\x20\x72\x32\x2c\x20\x73\x32\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\x6e\x32\x20\x3d\x20\x61\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x36\x2c\x20\x69\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x75\x28\x74\x36\x29\x2c\x20\x5b\x65\x28\x65\x28\x7b\x7d\x2c\x20\x61\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x73\x33\x5d\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x72\x32\x5b\x30\x5d\x2e\x6d\x69\x6e\x2c\x20\x6d\x61\x78\x3a\x20\x72\x32\x5b\x30\x5d\x2e\x6d\x61\x78\x20\x7d\x29\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x5b\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x7b\x20\x78\x61\x78\x69\x73\x3a\x20\x7b\x20\x6d\x69\x6e\x3a\x20\x73\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x2c\x20\x6d\x61\x78\x3a\x20\x73\x32\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x7d\x2c\x20\x79\x61\x78\x69\x73\x3a\x20\x6e\x32\x20\x7d\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x46\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x73\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x2c\x20\x72\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x72\x6f\x6d\x69\x73\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x5b\x65\x32\x2e\x63\x74\x78\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x65\x32\x2e\x63\x74\x78\x2e\x67\x65\x74\x53\x79\x6e\x63\x65\x64\x43\x68\x61\x72\x74\x73\x28\x29\x29\x2c\x20\x65\x32\x2e\x63\x74\x78\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x45\x78\x65\x63\x43\x61\x6c\x6c\x65\x64\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x5b\x65\x32\x2e\x63\x74\x78\x5d\x2c\x20\x65\x32\x2e\x63\x74\x78\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x45\x78\x65\x63\x43\x61\x6c\x6c\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x6c\x32\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x33\x2c\x20\x68\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x72\x33\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x20\x3d\x20\x73\x32\x2c\x20\x61\x32\x20\x7c\x7c\x20\x28\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x73\x32\x20\x26\x26\x20\x72\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x28\x29\x29\x2c\x20\x74\x33\x20\x26\x26\x20\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x28\x72\x33\x2e\x63\x6f\x6e\x66\x69\x67\x20\x3d\x20\x6e\x65\x77\x20\x4e\x28\x74\x33\x29\x2c\x20\x74\x33\x20\x3d\x20\x79\x2e\x65\x78\x74\x65\x6e\x64\x41\x72\x72\x61\x79\x50\x72\x6f\x70\x73\x28\x72\x33\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x74\x33\x2c\x20\x63\x32\x29\x2c\x20\x72\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x68\x61\x72\x74\x49\x44\x20\x21\x3d\x3d\x20\x65\x32\x2e\x63\x74\x78\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x68\x61\x72\x74\x49\x44\x20\x26\x26\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x74\x33\x29\x2c\x20\x6f\x32\x20\x26\x26\x20\x28\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x58\x41\x78\x69\x73\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x20\x3f\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x74\x33\x2e\x78\x61\x78\x69\x73\x29\x20\x3a\x20\x5b\x5d\x2c\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x59\x41\x78\x69\x73\x20\x3d\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x3f\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x29\x20\x3a\x20\x5b\x5d\x2c\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x43\x6f\x6e\x66\x69\x67\x20\x3d\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x29\x2c\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x29\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x29\x29\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\x64\x32\x20\x3d\x20\x30\x3b\x20\x64\x32\x20\x3c\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x64\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x32\x20\x3d\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x5b\x64\x32\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x5b\x64\x32\x5d\x2e\x64\x61\x74\x61\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x67\x32\x2e\x64\x61\x74\x61\x2e\x73\x6c\x69\x63\x65\x28\x29\x20\x3a\x20\x67\x32\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\x75\x32\x20\x3d\x20\x30\x3b\x20\x75\x32\x20\x3c\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x75\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x70\x33\x20\x3d\x20\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x5b\x75\x32\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x63\x69\x6c\x6c\x61\x72\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x5b\x75\x32\x5d\x2e\x64\x61\x74\x61\x20\x3d\x20\x63\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x70\x33\x2e\x64\x61\x74\x61\x2e\x73\x6c\x69\x63\x65\x28\x29\x20\x3a\x20\x70\x33\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\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x65\x6d\x70\x74\x79\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x28\x63\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x33\x2e\x75\x70\x64\x61\x74\x65\x28\x74\x33\x29\x2e\x74\x68\x65\x6e\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x3d\x3d\x20\x6c\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x20\x26\x26\x20\x6e\x32\x28\x72\x33\x29\x3b\x0a\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\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x72\x6f\x6d\x69\x73\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x68\x6f\x75\x6c\x64\x41\x6e\x69\x6d\x61\x74\x65\x20\x3d\x20\x65\x32\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x65\x32\x20\x26\x26\x20\x69\x32\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x2e\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x28\x29\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x28\x28\x72\x32\x20\x3d\x20\x74\x33\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x5f\x65\x78\x74\x65\x6e\x64\x53\x65\x72\x69\x65\x73\x28\x74\x34\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x5b\x7b\x20\x64\x61\x74\x61\x3a\x20\x5b\x5d\x20\x7d\x5d\x29\x2c\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x72\x32\x29\x20\x3a\x20\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x61\x32\x20\x26\x26\x20\x28\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x6f\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x29\x29\x2c\x20\x69\x32\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x2e\x74\x68\x65\x6e\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x28\x69\x32\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x65\x78\x74\x65\x6e\x64\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x73\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x69\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x28\x65\x28\x7b\x7d\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x5b\x69\x32\x5d\x29\x2c\x20\x7b\x7d\x2c\x20\x7b\x20\x6e\x61\x6d\x65\x3a\x20\x74\x33\x2e\x6e\x61\x6d\x65\x20\x3f\x20\x74\x33\x2e\x6e\x61\x6d\x65\x20\x3a\x20\x73\x32\x20\x26\x26\x20\x73\x32\x2e\x6e\x61\x6d\x65\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x20\x3f\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x20\x3a\x20\x73\x32\x20\x26\x26\x20\x73\x32\x2e\x63\x6f\x6c\x6f\x72\x2c\x20\x74\x79\x70\x65\x3a\x20\x74\x33\x2e\x74\x79\x70\x65\x20\x3f\x20\x74\x33\x2e\x74\x79\x70\x65\x20\x3a\x20\x73\x32\x20\x26\x26\x20\x73\x32\x2e\x74\x79\x70\x65\x2c\x20\x64\x61\x74\x61\x3a\x20\x74\x33\x2e\x64\x61\x74\x61\x20\x3f\x20\x74\x33\x2e\x64\x61\x74\x61\x20\x3a\x20\x73\x32\x20\x26\x26\x20\x73\x32\x2e\x64\x61\x74\x61\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x32\x20\x3d\x20\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x5b\x64\x61\x74\x61\x5c\x5c\x3a\x72\x65\x61\x6c\x49\x6e\x64\x65\x78\x3d\x27\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x3f\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x65\x6c\x65\x63\x74\x28\x22\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x20\x70\x61\x74\x68\x5b\x6a\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2c\x20\x22\x27\x5d\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x20\x63\x69\x72\x63\x6c\x65\x5b\x6a\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2c\x20\x22\x27\x5d\x2c\x20\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x20\x72\x65\x63\x74\x5b\x6a\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x65\x32\x2c\x20\x22\x27\x5d\x22\x29\x29\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x30\x5d\x20\x3a\x20\x65\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x73\x65\x6c\x65\x63\x74\x28\x22\x22\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x32\x2c\x20\x22\x20\x70\x61\x74\x68\x5b\x6a\x3d\x27\x22\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x33\x2c\x20\x22\x27\x5d\x22\x29\x29\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x30\x5d\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x70\x69\x65\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x70\x6f\x6c\x61\x72\x41\x72\x65\x61\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x6f\x6e\x75\x74\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x70\x69\x65\x2e\x70\x69\x65\x43\x6c\x69\x63\x6b\x65\x64\x28\x74\x33\x29\x29\x2c\x20\x61\x32\x20\x3f\x20\x28\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x70\x61\x74\x68\x4d\x6f\x75\x73\x65\x44\x6f\x77\x6e\x28\x61\x32\x2c\x20\x6e\x75\x6c\x6c\x29\x2c\x20\x61\x32\x2e\x6e\x6f\x64\x65\x20\x3f\x20\x61\x32\x2e\x6e\x6f\x64\x65\x20\x3a\x20\x6e\x75\x6c\x6c\x29\x20\x3a\x20\x28\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x22\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x45\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x22\x29\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x6f\x72\x63\x65\x58\x41\x78\x69\x73\x55\x70\x64\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x5b\x22\x6d\x69\x6e\x22\x2c\x20\x22\x6d\x61\x78\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x5b\x69\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x5b\x69\x33\x5d\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x5b\x69\x33\x5d\x2c\x20\x65\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x58\x41\x78\x69\x73\x5b\x69\x33\x5d\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x5b\x69\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x20\x26\x26\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x2e\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x29\x2c\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x44\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x69\x32\x2e\x63\x6f\x6e\x76\x65\x72\x74\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x58\x61\x78\x69\x73\x28\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x66\x6f\x72\x63\x65\x59\x41\x78\x69\x73\x55\x70\x64\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x65\x64\x20\x26\x26\x20\x65\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x74\x61\x63\x6b\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x31\x30\x30\x25\x22\x20\x26\x26\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x29\x20\x3f\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x5b\x69\x32\x5d\x2e\x6d\x69\x6e\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x5b\x69\x32\x5d\x2e\x6d\x61\x78\x20\x3d\x20\x31\x30\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x28\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x3d\x20\x31\x30\x30\x29\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x76\x65\x72\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x78\x69\x73\x4d\x69\x6e\x4d\x61\x78\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x58\x41\x78\x69\x73\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6c\x61\x73\x74\x59\x41\x78\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x26\x26\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x29\x2c\x20\x74\x33\x20\x26\x26\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x26\x26\x20\x28\x73\x32\x20\x3d\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6d\x69\x6e\x20\x3d\x20\x61\x32\x2e\x6d\x69\x6e\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x6d\x61\x78\x20\x3d\x20\x61\x32\x2e\x6d\x61\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x5b\x74\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x34\x5d\x2e\x6d\x69\x6e\x20\x3d\x20\x73\x32\x5b\x74\x34\x5d\x2e\x6d\x69\x6e\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x74\x34\x5d\x2e\x6d\x61\x78\x20\x3d\x20\x73\x32\x5b\x74\x34\x5d\x2e\x6d\x61\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x7a\x6f\x6f\x6d\x65\x64\x20\x7c\x7c\x20\x73\x32\x5b\x61\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x72\x32\x28\x61\x33\x29\x20\x3a\x20\x65\x32\x2e\x63\x74\x78\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x61\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x34\x2e\x6d\x69\x6e\x20\x3d\x20\x65\x32\x2e\x63\x74\x78\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x61\x33\x5d\x2e\x6d\x69\x6e\x2c\x20\x74\x34\x2e\x6d\x61\x78\x20\x3d\x20\x65\x32\x2e\x63\x74\x78\x2e\x6f\x70\x74\x73\x2e\x79\x61\x78\x69\x73\x5b\x61\x33\x5d\x2e\x6d\x61\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x49\x74\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x77\x69\x6e\x64\x6f\x77\x20\x21\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x3f\x20\x77\x69\x6e\x64\x6f\x77\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x7a\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x28\x74\x68\x69\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x20\x3a\x20\x74\x32\x29\x2e\x53\x56\x47\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x44\x6f\x63\x28\x74\x33\x29\x2c\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x20\x7c\x7c\x20\x61\x32\x2e\x70\x72\x65\x70\x61\x72\x65\x28\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x6e\x73\x20\x3d\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x2c\x20\x61\x32\x2e\x78\x6d\x6c\x6e\x73\x20\x3d\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x78\x6d\x6c\x6e\x73\x2f\x22\x2c\x20\x61\x32\x2e\x78\x6c\x69\x6e\x6b\x20\x3d\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x2c\x20\x61\x32\x2e\x73\x76\x67\x6a\x73\x20\x3d\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x73\x76\x67\x6a\x73\x2e\x64\x65\x76\x22\x2c\x20\x61\x32\x2e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x21\x61\x32\x2e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x61\x32\x2e\x64\x69\x64\x20\x3d\x20\x31\x65\x33\x2c\x20\x61\x32\x2e\x65\x69\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x53\x76\x67\x6a\x73\x22\x20\x2b\x20\x64\x32\x28\x74\x33\x29\x20\x2b\x20\x61\x32\x2e\x64\x69\x64\x2b\x2b\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x63\x72\x65\x61\x74\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x4e\x53\x28\x74\x68\x69\x73\x2e\x6e\x73\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x2c\x20\x74\x68\x69\x73\x2e\x65\x69\x64\x28\x74\x33\x29\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x33\x20\x3d\x20\x28\x74\x33\x20\x3d\x20\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x69\x32\x20\x3e\x3d\x20\x30\x3b\x20\x69\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x5b\x69\x32\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x33\x20\x69\x6e\x20\x65\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x69\x32\x5d\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x5b\x73\x33\x5d\x20\x3d\x20\x65\x33\x5b\x73\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x53\x65\x74\x20\x26\x26\x20\x61\x32\x2e\x53\x65\x74\x2e\x69\x6e\x68\x65\x72\x69\x74\x20\x26\x26\x20\x61\x32\x2e\x53\x65\x74\x2e\x69\x6e\x68\x65\x72\x69\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x63\x72\x65\x61\x74\x65\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x74\x33\x2e\x63\x72\x65\x61\x74\x65\x20\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x61\x32\x2e\x63\x72\x65\x61\x74\x65\x28\x74\x33\x2e\x63\x72\x65\x61\x74\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x69\x6e\x68\x65\x72\x69\x74\x20\x26\x26\x20\x28\x65\x33\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x20\x3d\x20\x6e\x65\x77\x20\x74\x33\x2e\x69\x6e\x68\x65\x72\x69\x74\x28\x29\x29\x2c\x20\x74\x33\x2e\x65\x78\x74\x65\x6e\x64\x20\x26\x26\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x65\x33\x2c\x20\x74\x33\x2e\x65\x78\x74\x65\x6e\x64\x29\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x20\x26\x26\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x74\x33\x2e\x70\x61\x72\x65\x6e\x74\x20\x7c\x7c\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x74\x33\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x29\x2c\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x3f\x20\x65\x33\x2e\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3f\x20\x65\x33\x2e\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3a\x20\x28\x28\x69\x32\x20\x3d\x20\x65\x33\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x20\x3d\x3d\x20\x22\x73\x76\x67\x22\x20\x3f\x20\x65\x33\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x74\x32\x2e\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x65\x73\x74\x65\x64\x28\x29\x20\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x44\x6f\x63\x28\x29\x20\x3a\x20\x65\x33\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x20\x3d\x3d\x20\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x22\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x2e\x47\x72\x61\x64\x69\x65\x6e\x74\x28\x22\x6c\x69\x6e\x65\x61\x72\x22\x29\x20\x3a\x20\x65\x33\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x20\x3d\x3d\x20\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\x22\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x2e\x47\x72\x61\x64\x69\x65\x6e\x74\x28\x22\x72\x61\x64\x69\x61\x6c\x22\x29\x20\x3a\x20\x61\x32\x5b\x64\x32\x28\x65\x33\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x5d\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x5b\x64\x32\x28\x65\x33\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x5d\x28\x29\x20\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x28\x65\x33\x29\x29\x2e\x74\x79\x70\x65\x20\x3d\x20\x65\x33\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2c\x20\x69\x32\x2e\x6e\x6f\x64\x65\x20\x3d\x20\x65\x33\x2c\x20\x65\x33\x2e\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x69\x32\x2c\x20\x69\x32\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x44\x6f\x63\x20\x26\x26\x20\x69\x32\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x28\x29\x2e\x64\x65\x66\x73\x28\x29\x2c\x20\x69\x32\x2e\x73\x65\x74\x44\x61\x74\x61\x28\x4a\x53\x4f\x4e\x2e\x70\x61\x72\x73\x65\x28\x65\x33\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x76\x67\x6a\x73\x3a\x64\x61\x74\x61\x22\x29\x29\x20\x7c\x7c\x20\x7b\x7d\x29\x2c\x20\x69\x32\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x70\x72\x65\x70\x61\x72\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x62\x6f\x64\x79\x22\x29\x5b\x30\x5d\x2c\x20\x69\x32\x20\x3d\x20\x28\x74\x33\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x2e\x44\x6f\x63\x28\x74\x33\x29\x20\x3a\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x65\x32\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x29\x2e\x6e\x65\x73\x74\x65\x64\x28\x29\x29\x2e\x73\x69\x7a\x65\x28\x32\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x20\x3d\x20\x7b\x20\x62\x6f\x64\x79\x3a\x20\x74\x33\x20\x7c\x7c\x20\x65\x32\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x64\x72\x61\x77\x3a\x20\x69\x32\x2e\x73\x74\x79\x6c\x65\x28\x22\x6f\x70\x61\x63\x69\x74\x79\x3a\x30\x3b\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x6c\x65\x66\x74\x3a\x2d\x31\x30\x30\x25\x3b\x74\x6f\x70\x3a\x2d\x31\x30\x30\x25\x3b\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x68\x69\x64\x64\x65\x6e\x22\x29\x2e\x6e\x6f\x64\x65\x2c\x20\x70\x6f\x6c\x79\x3a\x20\x69\x32\x2e\x70\x6f\x6c\x79\x6c\x69\x6e\x65\x28\x29\x2e\x6e\x6f\x64\x65\x2c\x20\x70\x61\x74\x68\x3a\x20\x69\x32\x2e\x70\x61\x74\x68\x28\x29\x2e\x6e\x6f\x64\x65\x2c\x20\x6e\x61\x74\x69\x76\x65\x3a\x20\x61\x32\x2e\x63\x72\x65\x61\x74\x65\x28\x22\x73\x76\x67\x22\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x20\x3d\x20\x7b\x20\x6e\x61\x74\x69\x76\x65\x3a\x20\x61\x32\x2e\x63\x72\x65\x61\x74\x65\x28\x22\x73\x76\x67\x22\x29\x20\x7d\x2c\x20\x65\x32\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x20\x7c\x7c\x20\x61\x32\x2e\x70\x72\x65\x70\x61\x72\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x20\x3d\x20\x7b\x20\x6e\x75\x6d\x62\x65\x72\x41\x6e\x64\x55\x6e\x69\x74\x3a\x20\x2f\x5e\x28\x5b\x2b\x2d\x5d\x3f\x28\x5c\x64\x2b\x28\x5c\x2e\x5c\x64\x2a\x29\x3f\x7c\x5c\x2e\x5c\x64\x2b\x29\x28\x65\x5b\x2b\x2d\x5d\x3f\x5c\x64\x2b\x29\x3f\x29\x28\x5b\x61\x2d\x7a\x25\x5d\x2a\x29\x24\x2f\x69\x2c\x20\x68\x65\x78\x3a\x20\x2f\x5e\x23\x3f\x28\x5b\x61\x2d\x66\x5c\x64\x5d\x7b\x32\x7d\x29\x28\x5b\x61\x2d\x66\x5c\x64\x5d\x7b\x32\x7d\x29\x28\x5b\x61\x2d\x66\x5c\x64\x5d\x7b\x32\x7d\x29\x24\x2f\x69\x2c\x20\x72\x67\x62\x3a\x20\x2f\x72\x67\x62\x5c\x28\x28\x5c\x64\x2b\x29\x2c\x28\x5c\x64\x2b\x29\x2c\x28\x5c\x64\x2b\x29\x5c\x29\x2f\x2c\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x3a\x20\x2f\x23\x28\x5b\x61\x2d\x7a\x30\x2d\x39\x5c\x2d\x5f\x5d\x2b\x29\x2f\x69\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x73\x3a\x20\x2f\x5c\x29\x5c\x73\x2a\x2c\x3f\x5c\x73\x2a\x2f\x2c\x20\x77\x68\x69\x74\x65\x73\x70\x61\x63\x65\x3a\x20\x2f\x5c\x73\x2f\x67\x2c\x20\x69\x73\x48\x65\x78\x3a\x20\x2f\x5e\x23\x5b\x61\x2d\x66\x30\x2d\x39\x5d\x7b\x33\x2c\x36\x7d\x24\x2f\x69\x2c\x20\x69\x73\x52\x67\x62\x3a\x20\x2f\x5e\x72\x67\x62\x5c\x28\x2f\x2c\x20\x69\x73\x43\x73\x73\x3a\x20\x2f\x5b\x5e\x3a\x5d\x2b\x3a\x5b\x5e\x3b\x5d\x2b\x3b\x3f\x2f\x2c\x20\x69\x73\x42\x6c\x61\x6e\x6b\x3a\x20\x2f\x5e\x28\x5c\x73\x2b\x29\x3f\x24\x2f\x2c\x20\x69\x73\x4e\x75\x6d\x62\x65\x72\x3a\x20\x2f\x5e\x5b\x2b\x2d\x5d\x3f\x28\x5c\x64\x2b\x28\x5c\x2e\x5c\x64\x2a\x29\x3f\x7c\x5c\x2e\x5c\x64\x2b\x29\x28\x65\x5b\x2b\x2d\x5d\x3f\x5c\x64\x2b\x29\x3f\x24\x2f\x69\x2c\x20\x69\x73\x50\x65\x72\x63\x65\x6e\x74\x3a\x20\x2f\x5e\x2d\x3f\x5b\x5c\x64\x5c\x2e\x5d\x2b\x25\x24\x2f\x2c\x20\x69\x73\x49\x6d\x61\x67\x65\x3a\x20\x2f\x5c\x2e\x28\x6a\x70\x67\x7c\x6a\x70\x65\x67\x7c\x70\x6e\x67\x7c\x67\x69\x66\x7c\x73\x76\x67\x29\x28\x5c\x3f\x5b\x5e\x3d\x5d\x2b\x2e\x2a\x29\x3f\x2f\x69\x2c\x20\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x3a\x20\x2f\x5b\x5c\x73\x2c\x5d\x2b\x2f\x2c\x20\x68\x79\x70\x68\x65\x6e\x3a\x20\x2f\x28\x5b\x5e\x65\x5d\x29\x5c\x2d\x2f\x67\x69\x2c\x20\x70\x61\x74\x68\x4c\x65\x74\x74\x65\x72\x73\x3a\x20\x2f\x5b\x4d\x4c\x48\x56\x43\x53\x51\x54\x41\x5a\x5d\x2f\x67\x69\x2c\x20\x69\x73\x50\x61\x74\x68\x4c\x65\x74\x74\x65\x72\x3a\x20\x2f\x5b\x4d\x4c\x48\x56\x43\x53\x51\x54\x41\x5a\x5d\x2f\x69\x2c\x20\x6e\x75\x6d\x62\x65\x72\x73\x57\x69\x74\x68\x44\x6f\x74\x73\x3a\x20\x2f\x28\x28\x5c\x64\x3f\x5c\x2e\x5c\x64\x2b\x28\x3f\x3a\x65\x5b\x2b\x2d\x5d\x3f\x5c\x64\x2b\x29\x3f\x29\x28\x28\x3f\x3a\x5c\x2e\x5c\x64\x2b\x28\x3f\x3a\x65\x5b\x2b\x2d\x5d\x3f\x5c\x64\x2b\x29\x3f\x29\x2b\x29\x29\x2b\x2f\x67\x69\x2c\x20\x64\x6f\x74\x73\x3a\x20\x2f\x5c\x2e\x2f\x67\x20\x7d\x2c\x20\x61\x32\x2e\x75\x74\x69\x6c\x73\x20\x3d\x20\x7b\x20\x6d\x61\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x61\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x33\x20\x3d\x20\x30\x3b\x20\x73\x33\x20\x3c\x20\x69\x32\x3b\x20\x73\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x70\x75\x73\x68\x28\x65\x33\x28\x74\x33\x5b\x73\x33\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x61\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x73\x33\x20\x3d\x20\x30\x3b\x20\x73\x33\x20\x3c\x20\x69\x32\x3b\x20\x73\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x28\x74\x33\x5b\x73\x33\x5d\x29\x20\x26\x26\x20\x61\x33\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x73\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x69\x6c\x74\x65\x72\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x65\x33\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x34\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x74\x32\x2e\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x61\x32\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x20\x3d\x20\x7b\x20\x61\x74\x74\x72\x73\x3a\x20\x7b\x20\x22\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x31\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x31\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x30\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x22\x3a\x20\x22\x6d\x69\x74\x65\x72\x22\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x22\x3a\x20\x22\x62\x75\x74\x74\x22\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x22\x23\x30\x30\x30\x30\x30\x30\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x22\x23\x30\x30\x30\x30\x30\x30\x22\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x2c\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x63\x78\x3a\x20\x30\x2c\x20\x63\x79\x3a\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x2c\x20\x72\x3a\x20\x30\x2c\x20\x72\x78\x3a\x20\x30\x2c\x20\x72\x79\x3a\x20\x30\x2c\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x30\x2c\x20\x22\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x3a\x20\x31\x2c\x20\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x22\x3a\x20\x22\x23\x30\x30\x30\x30\x30\x30\x22\x2c\x20\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x3a\x20\x31\x36\x2c\x20\x22\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x22\x3a\x20\x22\x48\x65\x6c\x76\x65\x74\x69\x63\x61\x2c\x20\x41\x72\x69\x61\x6c\x2c\x20\x73\x61\x6e\x73\x2d\x73\x65\x72\x69\x66\x22\x2c\x20\x22\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x22\x3a\x20\x22\x73\x74\x61\x72\x74\x22\x20\x7d\x20\x7d\x2c\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x2c\x20\x73\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x67\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x62\x20\x3d\x20\x30\x2c\x20\x74\x33\x20\x26\x26\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x52\x67\x62\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x20\x3f\x20\x28\x65\x33\x20\x3d\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x72\x67\x62\x2e\x65\x78\x65\x63\x28\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x77\x68\x69\x74\x65\x73\x70\x61\x63\x65\x2c\x20\x22\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x33\x5b\x31\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x67\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x33\x5b\x32\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x33\x5b\x33\x5d\x29\x29\x20\x3a\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x48\x65\x78\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x20\x26\x26\x20\x28\x65\x33\x20\x3d\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x68\x65\x78\x2e\x65\x78\x65\x63\x28\x28\x73\x33\x20\x3d\x20\x74\x33\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x34\x20\x3f\x20\x5b\x22\x23\x22\x2c\x20\x73\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x2c\x20\x32\x29\x2c\x20\x73\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x2c\x20\x32\x29\x2c\x20\x73\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x32\x2c\x20\x33\x29\x2c\x20\x73\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x32\x2c\x20\x33\x29\x2c\x20\x73\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x33\x2c\x20\x34\x29\x2c\x20\x73\x33\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x33\x2c\x20\x34\x29\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x22\x29\x20\x3a\x20\x73\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x33\x5b\x31\x5d\x2c\x20\x31\x36\x29\x2c\x20\x74\x68\x69\x73\x2e\x67\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x33\x5b\x32\x5d\x2c\x20\x31\x36\x29\x2c\x20\x74\x68\x69\x73\x2e\x62\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x65\x33\x5b\x33\x5d\x2c\x20\x31\x36\x29\x29\x20\x3a\x20\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x72\x20\x3d\x20\x74\x33\x2e\x72\x2c\x20\x74\x68\x69\x73\x2e\x67\x20\x3d\x20\x74\x33\x2e\x67\x2c\x20\x74\x68\x69\x73\x2e\x62\x20\x3d\x20\x74\x33\x2e\x62\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2c\x20\x7b\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x74\x6f\x48\x65\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x48\x65\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x23\x22\x20\x2b\x20\x67\x32\x28\x74\x68\x69\x73\x2e\x72\x29\x20\x2b\x20\x67\x32\x28\x74\x68\x69\x73\x2e\x67\x29\x20\x2b\x20\x67\x32\x28\x74\x68\x69\x73\x2e\x62\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x52\x67\x62\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x72\x67\x62\x28\x22\x20\x2b\x20\x5b\x74\x68\x69\x73\x2e\x72\x2c\x20\x74\x68\x69\x73\x2e\x67\x2c\x20\x74\x68\x69\x73\x2e\x62\x5d\x2e\x6a\x6f\x69\x6e\x28\x29\x20\x2b\x20\x22\x29\x22\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x62\x72\x69\x67\x68\x74\x6e\x65\x73\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x72\x20\x2f\x20\x32\x35\x35\x20\x2a\x20\x30\x2e\x33\x20\x2b\x20\x74\x68\x69\x73\x2e\x67\x20\x2f\x20\x32\x35\x35\x20\x2a\x20\x30\x2e\x35\x39\x20\x2b\x20\x74\x68\x69\x73\x2e\x62\x20\x2f\x20\x32\x35\x35\x20\x2a\x20\x30\x2e\x31\x31\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x72\x70\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x3f\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x30\x20\x3a\x20\x74\x33\x20\x3e\x20\x31\x20\x3f\x20\x31\x20\x3a\x20\x74\x33\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x28\x7b\x20\x72\x3a\x20\x7e\x7e\x28\x74\x68\x69\x73\x2e\x72\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x2e\x72\x20\x2d\x20\x74\x68\x69\x73\x2e\x72\x29\x20\x2a\x20\x74\x33\x29\x2c\x20\x67\x3a\x20\x7e\x7e\x28\x74\x68\x69\x73\x2e\x67\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x2e\x67\x20\x2d\x20\x74\x68\x69\x73\x2e\x67\x29\x20\x2a\x20\x74\x33\x29\x2c\x20\x62\x3a\x20\x7e\x7e\x28\x74\x68\x69\x73\x2e\x62\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x2e\x62\x20\x2d\x20\x74\x68\x69\x73\x2e\x62\x29\x20\x2a\x20\x74\x33\x29\x20\x7d\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2e\x74\x65\x73\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x2b\x3d\x20\x22\x22\x2c\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x48\x65\x78\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x20\x7c\x7c\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x52\x67\x62\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2e\x69\x73\x52\x67\x62\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x72\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x67\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x62\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2e\x69\x73\x52\x67\x62\x28\x74\x33\x29\x20\x7c\x7c\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x41\x72\x72\x61\x79\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x28\x74\x33\x20\x3d\x20\x28\x74\x33\x20\x7c\x7c\x20\x5b\x5d\x29\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x30\x20\x26\x26\x20\x65\x33\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x65\x33\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x41\x72\x72\x61\x79\x2c\x20\x7b\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x76\x61\x6c\x75\x65\x4f\x66\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x73\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x3f\x20\x74\x33\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x70\x6c\x69\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x41\x72\x72\x61\x79\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x20\x7c\x7c\x20\x5b\x5b\x30\x2c\x20\x30\x5d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x41\x72\x72\x61\x79\x28\x29\x2c\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x3d\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x7b\x20\x4d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x78\x20\x3d\x20\x69\x32\x2e\x78\x20\x3d\x20\x74\x33\x5b\x30\x5d\x2c\x20\x65\x33\x2e\x79\x20\x3d\x20\x69\x32\x2e\x79\x20\x3d\x20\x74\x33\x5b\x31\x5d\x2c\x20\x5b\x22\x4d\x22\x2c\x20\x65\x33\x2e\x78\x2c\x20\x65\x33\x2e\x79\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x4c\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x78\x20\x3d\x20\x74\x33\x5b\x30\x5d\x2c\x20\x65\x33\x2e\x79\x20\x3d\x20\x74\x33\x5b\x31\x5d\x2c\x20\x5b\x22\x4c\x22\x2c\x20\x74\x33\x5b\x30\x5d\x2c\x20\x74\x33\x5b\x31\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x48\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x78\x20\x3d\x20\x74\x33\x5b\x30\x5d\x2c\x20\x5b\x22\x48\x22\x2c\x20\x74\x33\x5b\x30\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x56\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x79\x20\x3d\x20\x74\x33\x5b\x30\x5d\x2c\x20\x5b\x22\x56\x22\x2c\x20\x74\x33\x5b\x30\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x43\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x78\x20\x3d\x20\x74\x33\x5b\x34\x5d\x2c\x20\x65\x33\x2e\x79\x20\x3d\x20\x74\x33\x5b\x35\x5d\x2c\x20\x5b\x22\x43\x22\x2c\x20\x74\x33\x5b\x30\x5d\x2c\x20\x74\x33\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x32\x5d\x2c\x20\x74\x33\x5b\x33\x5d\x2c\x20\x74\x33\x5b\x34\x5d\x2c\x20\x74\x33\x5b\x35\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x51\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x78\x20\x3d\x20\x74\x33\x5b\x32\x5d\x2c\x20\x65\x33\x2e\x79\x20\x3d\x20\x74\x33\x5b\x33\x5d\x2c\x20\x5b\x22\x51\x22\x2c\x20\x74\x33\x5b\x30\x5d\x2c\x20\x74\x33\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x32\x5d\x2c\x20\x74\x33\x5b\x33\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x5a\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x78\x20\x3d\x20\x69\x32\x2e\x78\x2c\x20\x65\x33\x2e\x79\x20\x3d\x20\x69\x32\x2e\x79\x2c\x20\x5b\x22\x5a\x22\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x72\x32\x20\x3d\x20\x22\x6d\x6c\x68\x76\x71\x74\x63\x73\x61\x7a\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x22\x29\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x32\x20\x3c\x20\x6e\x32\x3b\x20\x2b\x2b\x6f\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x5b\x72\x32\x5b\x6f\x32\x5d\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x20\x22\x48\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x5b\x30\x5d\x20\x3d\x20\x65\x33\x5b\x30\x5d\x20\x2b\x20\x69\x32\x2e\x78\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x20\x22\x56\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x5b\x30\x5d\x20\x3d\x20\x65\x33\x5b\x30\x5d\x20\x2b\x20\x69\x32\x2e\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x20\x22\x41\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x5b\x35\x5d\x20\x3d\x20\x65\x33\x5b\x35\x5d\x20\x2b\x20\x69\x32\x2e\x78\x2c\x20\x65\x33\x5b\x36\x5d\x20\x3d\x20\x65\x33\x5b\x36\x5d\x20\x2b\x20\x69\x32\x2e\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x30\x2c\x20\x6f\x33\x20\x3d\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x33\x20\x3c\x20\x6f\x33\x3b\x20\x2b\x2b\x72\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x5b\x72\x33\x5d\x20\x3d\x20\x65\x33\x5b\x72\x33\x5d\x20\x2b\x20\x28\x72\x33\x20\x25\x20\x32\x20\x3f\x20\x69\x32\x2e\x79\x20\x3a\x20\x69\x32\x2e\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x32\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x32\x5b\x74\x33\x5d\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x32\x5b\x74\x33\x5d\x28\x65\x33\x2c\x20\x69\x32\x2c\x20\x61\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x72\x32\x5b\x6f\x32\x5d\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x41\x72\x72\x61\x79\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x20\x7c\x7c\x20\x5b\x5b\x22\x4d\x22\x2c\x20\x30\x2c\x20\x30\x5d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x41\x72\x72\x61\x79\x28\x29\x2c\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x3d\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x2c\x20\x7b\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x61\x33\x20\x3d\x20\x22\x22\x3b\x20\x65\x33\x20\x3c\x20\x69\x32\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x5b\x30\x5d\x2c\x20\x74\x33\x5b\x65\x33\x5d\x5b\x31\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x65\x33\x5d\x5b\x32\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x33\x20\x2b\x3d\x20\x22\x20\x22\x2c\x20\x61\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x5b\x32\x5d\x2c\x20\x74\x33\x5b\x65\x33\x5d\x5b\x33\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x33\x20\x2b\x3d\x20\x22\x20\x22\x2c\x20\x61\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x5b\x33\x5d\x2c\x20\x61\x33\x20\x2b\x3d\x20\x22\x20\x22\x2c\x20\x61\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x5b\x34\x5d\x2c\x20\x74\x33\x5b\x65\x33\x5d\x5b\x35\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x33\x20\x2b\x3d\x20\x22\x20\x22\x2c\x20\x61\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x5b\x35\x5d\x2c\x20\x61\x33\x20\x2b\x3d\x20\x22\x20\x22\x2c\x20\x61\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x5b\x36\x5d\x2c\x20\x74\x33\x5b\x65\x33\x5d\x5b\x37\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x33\x20\x2b\x3d\x20\x22\x20\x22\x2c\x20\x61\x33\x20\x2b\x3d\x20\x74\x33\x5b\x65\x33\x5d\x5b\x37\x5d\x29\x29\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x33\x20\x2b\x20\x22\x20\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x78\x2c\x20\x69\x32\x2e\x79\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x2e\x76\x61\x6c\x75\x65\x2c\x20\x73\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x72\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x28\x29\x2c\x20\x6f\x33\x20\x3d\x20\x30\x2c\x20\x6e\x33\x20\x3d\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6f\x33\x20\x3c\x20\x6e\x33\x3b\x20\x6f\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x5b\x6f\x33\x5d\x20\x3d\x20\x5b\x65\x33\x5b\x6f\x33\x5d\x5b\x30\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6c\x33\x20\x3d\x20\x31\x2c\x20\x68\x34\x20\x3d\x20\x65\x33\x5b\x6f\x33\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6c\x33\x20\x3c\x20\x68\x34\x3b\x20\x6c\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x5b\x6f\x33\x5d\x5b\x6c\x33\x5d\x20\x3d\x20\x65\x33\x5b\x6f\x33\x5d\x5b\x6c\x33\x5d\x20\x2b\x20\x28\x69\x32\x5b\x6f\x33\x5d\x5b\x6c\x33\x5d\x20\x2d\x20\x65\x33\x5b\x6f\x33\x5d\x5b\x6c\x33\x5d\x29\x20\x2a\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x5b\x6f\x33\x5d\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x41\x22\x20\x26\x26\x20\x28\x73\x33\x5b\x6f\x33\x5d\x5b\x34\x5d\x20\x3d\x20\x2b\x28\x73\x33\x5b\x6f\x33\x5d\x5b\x34\x5d\x20\x21\x3d\x20\x30\x29\x2c\x20\x73\x33\x5b\x6f\x33\x5d\x5b\x35\x5d\x20\x3d\x20\x2b\x28\x73\x33\x5b\x6f\x33\x5d\x5b\x35\x5d\x20\x21\x3d\x20\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x33\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x73\x33\x2c\x20\x72\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x73\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x2c\x20\x69\x32\x20\x3d\x20\x7b\x20\x4d\x3a\x20\x32\x2c\x20\x4c\x3a\x20\x32\x2c\x20\x48\x3a\x20\x31\x2c\x20\x56\x3a\x20\x31\x2c\x20\x43\x3a\x20\x36\x2c\x20\x53\x3a\x20\x34\x2c\x20\x51\x3a\x20\x34\x2c\x20\x54\x3a\x20\x32\x2c\x20\x41\x3a\x20\x37\x2c\x20\x5a\x3a\x20\x30\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x6e\x75\x6d\x62\x65\x72\x73\x57\x69\x74\x68\x44\x6f\x74\x73\x2c\x20\x68\x33\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x70\x61\x74\x68\x4c\x65\x74\x74\x65\x72\x73\x2c\x20\x22\x20\x24\x26\x20\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x68\x79\x70\x68\x65\x6e\x2c\x20\x22\x24\x31\x20\x2d\x22\x29\x2e\x74\x72\x69\x6d\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x29\x20\x3a\x20\x74\x33\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x2e\x63\x61\x6c\x6c\x28\x74\x34\x2c\x20\x65\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x5b\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x6f\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x28\x29\x2c\x20\x6e\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x28\x29\x2c\x20\x6c\x33\x20\x3d\x20\x30\x2c\x20\x63\x33\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x50\x61\x74\x68\x4c\x65\x74\x74\x65\x72\x2e\x74\x65\x73\x74\x28\x74\x33\x5b\x6c\x33\x5d\x29\x20\x3f\x20\x28\x65\x33\x20\x3d\x20\x74\x33\x5b\x6c\x33\x5d\x2c\x20\x2b\x2b\x6c\x33\x29\x20\x3a\x20\x65\x33\x20\x3d\x3d\x20\x22\x4d\x22\x20\x3f\x20\x65\x33\x20\x3d\x20\x22\x4c\x22\x20\x3a\x20\x65\x33\x20\x3d\x3d\x20\x22\x6d\x22\x20\x26\x26\x20\x28\x65\x33\x20\x3d\x20\x22\x6c\x22\x29\x2c\x20\x72\x33\x2e\x70\x75\x73\x68\x28\x73\x32\x5b\x65\x33\x5d\x2e\x63\x61\x6c\x6c\x28\x6e\x75\x6c\x6c\x2c\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x6c\x33\x2c\x20\x6c\x33\x20\x2b\x3d\x20\x69\x32\x5b\x65\x33\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x29\x2e\x6d\x61\x70\x28\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x29\x2c\x20\x6f\x33\x2c\x20\x6e\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x33\x20\x3e\x20\x6c\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x62\x62\x6f\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x20\x7c\x7c\x20\x61\x32\x2e\x70\x72\x65\x70\x61\x72\x65\x28\x29\x2c\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x70\x61\x74\x68\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x22\x2c\x20\x74\x68\x69\x73\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x29\x2c\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x70\x61\x74\x68\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x3d\x20\x65\x33\x20\x7c\x7c\x20\x22\x22\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x73\x4e\x61\x4e\x28\x74\x33\x29\x20\x3f\x20\x30\x20\x3a\x20\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x74\x33\x29\x20\x3f\x20\x74\x33\x20\x3a\x20\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x2d\x33\x34\x65\x33\x37\x20\x3a\x20\x33\x34\x65\x33\x37\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x28\x65\x33\x20\x3d\x20\x74\x33\x2e\x6d\x61\x74\x63\x68\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x6e\x75\x6d\x62\x65\x72\x41\x6e\x64\x55\x6e\x69\x74\x29\x29\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x33\x5b\x31\x5d\x29\x2c\x20\x65\x33\x5b\x35\x5d\x20\x3d\x3d\x20\x22\x25\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x2f\x3d\x20\x31\x30\x30\x20\x3a\x20\x65\x33\x5b\x35\x5d\x20\x3d\x3d\x20\x22\x73\x22\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x2a\x3d\x20\x31\x65\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x3d\x20\x65\x33\x5b\x35\x5d\x29\x20\x3a\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x33\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x3d\x20\x74\x33\x2e\x75\x6e\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x20\x22\x25\x22\x20\x3f\x20\x7e\x7e\x28\x31\x65\x38\x20\x2a\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x29\x20\x2f\x20\x31\x65\x36\x20\x3a\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x3d\x3d\x20\x22\x73\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x2f\x20\x31\x65\x33\x20\x3a\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x4a\x53\x4f\x4e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x76\x61\x6c\x75\x65\x4f\x66\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6c\x75\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x68\x69\x73\x20\x2b\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x7c\x7c\x20\x74\x33\x2e\x75\x6e\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x69\x6e\x75\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x68\x69\x73\x20\x2d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x7c\x7c\x20\x74\x33\x2e\x75\x6e\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x69\x6d\x65\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x68\x69\x73\x20\x2a\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x7c\x7c\x20\x74\x33\x2e\x75\x6e\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x69\x76\x69\x64\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x68\x69\x73\x20\x2f\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x20\x7c\x7c\x20\x74\x33\x2e\x75\x6e\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x26\x26\x20\x28\x65\x33\x2e\x75\x6e\x69\x74\x20\x3d\x20\x74\x33\x29\x2c\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x72\x70\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x74\x33\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x2e\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x29\x2e\x6d\x69\x6e\x75\x73\x28\x74\x68\x69\x73\x29\x2e\x74\x69\x6d\x65\x73\x28\x74\x33\x29\x2e\x70\x6c\x75\x73\x28\x74\x68\x69\x73\x29\x20\x3a\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x73\x74\x72\x6f\x6b\x65\x20\x3d\x20\x61\x32\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x2e\x61\x74\x74\x72\x73\x2e\x73\x74\x72\x6f\x6b\x65\x2c\x20\x74\x68\x69\x73\x2e\x5f\x65\x76\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x20\x3d\x20\x7b\x7d\x2c\x20\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x20\x3d\x20\x74\x33\x29\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x20\x74\x33\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x2e\x5f\x73\x74\x72\x6f\x6b\x65\x20\x3d\x20\x74\x33\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x74\x72\x6f\x6b\x65\x22\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x5f\x73\x74\x72\x6f\x6b\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x78\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x79\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x78\x28\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x28\x29\x20\x2f\x20\x32\x20\x3a\x20\x74\x68\x69\x73\x2e\x78\x28\x74\x33\x20\x2d\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x28\x29\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x79\x28\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x28\x29\x20\x2f\x20\x32\x20\x3a\x20\x74\x68\x69\x73\x2e\x79\x28\x74\x33\x20\x2d\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x28\x29\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x78\x28\x74\x33\x29\x2e\x79\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x65\x6e\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x78\x28\x74\x33\x29\x2e\x63\x79\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x68\x65\x69\x67\x68\x74\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x69\x7a\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x75\x32\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x69\x32\x2e\x77\x69\x64\x74\x68\x29\x29\x2e\x68\x65\x69\x67\x68\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x6f\x6e\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x72\x69\x74\x65\x44\x61\x74\x61\x54\x6f\x44\x6f\x6d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x78\x32\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3f\x20\x74\x33\x2e\x61\x64\x64\x28\x65\x33\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x66\x74\x65\x72\x28\x65\x33\x29\x2c\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x6d\x6f\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x72\x65\x6d\x6f\x76\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x70\x6c\x61\x63\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x66\x74\x65\x72\x28\x74\x33\x29\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x64\x64\x54\x6f\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x70\x75\x74\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x75\x74\x49\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x64\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x68\x6f\x77\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x28\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x68\x69\x64\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x28\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x2c\x20\x22\x6e\x6f\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x76\x69\x73\x69\x62\x6c\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x28\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x20\x21\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x61\x73\x73\x65\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x61\x73\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x5b\x5d\x20\x3a\x20\x74\x33\x2e\x74\x72\x69\x6d\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x68\x61\x73\x43\x6c\x61\x73\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\x73\x65\x73\x28\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x20\x21\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x64\x64\x43\x6c\x61\x73\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x68\x61\x73\x43\x6c\x61\x73\x73\x28\x74\x33\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\x73\x65\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x70\x75\x73\x68\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x65\x33\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x68\x61\x73\x43\x6c\x61\x73\x73\x28\x74\x33\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\x73\x65\x73\x28\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x21\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x67\x67\x6c\x65\x43\x6c\x61\x73\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x68\x61\x73\x43\x6c\x61\x73\x73\x28\x74\x33\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x28\x74\x33\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x43\x6c\x61\x73\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x67\x65\x74\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x32\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x0a\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\x69\x66\x20\x28\x69\x32\x20\x3d\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x69\x32\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x2c\x20\x21\x65\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x3b\x20\x69\x32\x20\x26\x26\x20\x69\x32\x2e\x6e\x6f\x64\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x74\x32\x2e\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x20\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x69\x32\x2e\x6d\x61\x74\x63\x68\x65\x73\x28\x65\x33\x29\x20\x3a\x20\x69\x32\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x65\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x32\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x7c\x7c\x20\x69\x32\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x20\x3d\x3d\x20\x22\x23\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x29\x0a\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\x69\x32\x20\x3d\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x69\x32\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x6f\x63\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x44\x6f\x63\x20\x3f\x20\x74\x68\x69\x73\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x61\x32\x2e\x44\x6f\x63\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x69\x32\x20\x3d\x20\x69\x32\x2e\x70\x61\x72\x65\x6e\x74\x28\x74\x33\x29\x29\x20\x7c\x7c\x20\x21\x69\x32\x2e\x6e\x6f\x64\x65\x29\x0a\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\x65\x33\x2e\x70\x75\x73\x68\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x77\x68\x69\x6c\x65\x20\x28\x69\x32\x2e\x70\x61\x72\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x61\x74\x63\x68\x65\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x34\x2e\x6d\x61\x74\x63\x68\x65\x73\x20\x7c\x7c\x20\x74\x34\x2e\x6d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x20\x7c\x7c\x20\x74\x34\x2e\x6d\x73\x4d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x20\x7c\x7c\x20\x74\x34\x2e\x6d\x6f\x7a\x4d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x20\x7c\x7c\x20\x74\x34\x2e\x77\x65\x62\x6b\x69\x74\x4d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x20\x7c\x7c\x20\x74\x34\x2e\x6f\x4d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x29\x2e\x63\x61\x6c\x6c\x28\x74\x34\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6e\x61\x74\x69\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x76\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\x76\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x74\x33\x20\x26\x26\x20\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x50\x61\x72\x65\x6e\x74\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x33\x20\x3d\x20\x65\x32\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\x76\x67\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x72\x69\x74\x65\x44\x61\x74\x61\x54\x6f\x44\x6f\x6d\x28\x29\x2c\x20\x74\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x74\x72\x75\x65\x29\x29\x2c\x20\x69\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x3c\x73\x76\x67\x3e\x2f\x2c\x20\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x3c\x5c\x2f\x73\x76\x67\x3e\x24\x2f\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x22\x3c\x73\x76\x67\x3e\x22\x20\x2b\x20\x74\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x6e\x2f\x2c\x20\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x3c\x28\x5b\x5c\x77\x3a\x2d\x5d\x2b\x29\x28\x5b\x5e\x3c\x5d\x2b\x3f\x29\x5c\x2f\x3e\x2f\x67\x2c\x20\x22\x3c\x24\x31\x24\x32\x3e\x3c\x2f\x24\x31\x3e\x22\x29\x20\x2b\x20\x22\x3c\x2f\x73\x76\x67\x3e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x30\x2c\x20\x72\x33\x20\x3d\x20\x69\x32\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x33\x20\x3c\x20\x72\x33\x3b\x20\x73\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x69\x32\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x77\x72\x69\x74\x65\x44\x61\x74\x61\x54\x6f\x44\x6f\x6d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x73\x29\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x20\x3f\x20\x74\x68\x69\x73\x20\x3a\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x73\x28\x29\x29\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x72\x69\x74\x65\x44\x61\x74\x61\x54\x6f\x44\x6f\x6d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x76\x67\x6a\x73\x3a\x64\x61\x74\x61\x22\x29\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x74\x68\x69\x73\x2e\x64\x6f\x6d\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\x76\x67\x6a\x73\x3a\x64\x61\x74\x61\x22\x2c\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x68\x69\x73\x2e\x64\x6f\x6d\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x65\x74\x44\x61\x74\x61\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x61\x73\x69\x6e\x67\x20\x3d\x20\x7b\x20\x22\x2d\x22\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x22\x3c\x3e\x22\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x74\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x29\x20\x2f\x20\x32\x20\x2b\x20\x30\x2e\x35\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x22\x3e\x22\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x74\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x22\x3c\x22\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x20\x2d\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x74\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x61\x32\x2e\x6d\x6f\x72\x70\x68\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x6f\x72\x70\x68\x4f\x62\x6a\x28\x65\x33\x2c\x20\x69\x32\x29\x2e\x61\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x53\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x76\x65\x72\x73\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x29\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x65\x6c\x61\x79\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x2e\x64\x65\x6c\x61\x79\x29\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x20\x3d\x20\x2b\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x64\x65\x6c\x61\x79\x2c\x20\x74\x68\x69\x73\x2e\x66\x69\x6e\x69\x73\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x20\x2b\x20\x74\x68\x69\x73\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x2c\x20\x74\x68\x69\x73\x2e\x65\x61\x73\x65\x20\x3d\x20\x74\x33\x2e\x65\x61\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x6c\x6f\x6f\x70\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x6c\x6f\x6f\x70\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x73\x20\x3d\x20\x7b\x7d\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x73\x20\x3d\x20\x7b\x7d\x2c\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x6f\x6e\x63\x65\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x46\x58\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x75\x73\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x50\x6f\x73\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x61\x62\x73\x50\x6f\x73\x20\x3d\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x5f\x73\x70\x65\x65\x64\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x61\x6e\x69\x6d\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x28\x65\x33\x20\x3d\x20\x74\x33\x2e\x65\x61\x73\x65\x2c\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x64\x65\x6c\x61\x79\x2c\x20\x74\x33\x20\x3d\x20\x74\x33\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x53\x69\x74\x75\x61\x74\x69\x6f\x6e\x28\x7b\x20\x64\x75\x72\x61\x74\x69\x6f\x6e\x3a\x20\x74\x33\x20\x7c\x7c\x20\x31\x65\x33\x2c\x20\x64\x65\x6c\x61\x79\x3a\x20\x73\x33\x20\x7c\x7c\x20\x30\x2c\x20\x65\x61\x73\x65\x3a\x20\x61\x32\x2e\x65\x61\x73\x69\x6e\x67\x5b\x65\x33\x20\x7c\x7c\x20\x22\x2d\x22\x5d\x20\x7c\x7c\x20\x65\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x71\x75\x65\x75\x65\x28\x72\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x61\x72\x67\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x26\x26\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x5f\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x5f\x74\x61\x72\x67\x65\x74\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x69\x6d\x65\x54\x6f\x41\x62\x73\x50\x6f\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x33\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x73\x74\x61\x72\x74\x29\x20\x2f\x20\x28\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x20\x2f\x20\x74\x68\x69\x73\x2e\x5f\x73\x70\x65\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x62\x73\x50\x6f\x73\x54\x6f\x54\x69\x6d\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x20\x2f\x20\x74\x68\x69\x73\x2e\x5f\x73\x70\x65\x65\x64\x20\x2a\x20\x74\x33\x20\x2b\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x73\x74\x61\x72\x74\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x61\x72\x74\x41\x6e\x69\x6d\x46\x72\x61\x6d\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x6f\x70\x41\x6e\x69\x6d\x46\x72\x61\x6d\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x46\x72\x61\x6d\x65\x20\x3d\x20\x74\x32\x2e\x72\x65\x71\x75\x65\x73\x74\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x46\x72\x61\x6d\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x6f\x70\x41\x6e\x69\x6d\x46\x72\x61\x6d\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x32\x2e\x63\x61\x6e\x63\x65\x6c\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x46\x72\x61\x6d\x65\x28\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x46\x72\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x61\x72\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x43\x75\x72\x72\x65\x6e\x74\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x61\x72\x74\x43\x75\x72\x72\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x73\x74\x61\x72\x74\x20\x3d\x20\x2b\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x64\x65\x6c\x61\x79\x20\x2f\x20\x74\x68\x69\x73\x2e\x5f\x73\x70\x65\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x66\x69\x6e\x69\x73\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x73\x74\x61\x72\x74\x20\x2b\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x64\x75\x72\x61\x74\x69\x6f\x6e\x20\x2f\x20\x74\x68\x69\x73\x2e\x5f\x73\x70\x65\x65\x64\x2c\x20\x74\x68\x69\x73\x2e\x69\x6e\x69\x74\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x28\x29\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x71\x75\x65\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x7c\x7c\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x53\x69\x74\x75\x61\x74\x69\x6f\x6e\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x2e\x70\x75\x73\x68\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x2e\x73\x68\x69\x66\x74\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x65\x71\x75\x65\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x74\x6f\x70\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x53\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x69\x74\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x2e\x69\x6e\x69\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x69\x6e\x20\x65\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x5b\x69\x32\x5d\x28\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x7c\x7c\x20\x28\x74\x33\x20\x3d\x20\x5b\x74\x33\x5d\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x5b\x69\x32\x5d\x29\x20\x7c\x7c\x20\x28\x65\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x5b\x69\x32\x5d\x20\x3d\x20\x5b\x65\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x5b\x69\x32\x5d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x33\x2d\x2d\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x5b\x69\x32\x5d\x5b\x73\x33\x5d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x20\x26\x26\x20\x28\x74\x33\x5b\x73\x33\x5d\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x5b\x73\x33\x5d\x29\x29\x2c\x20\x65\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x5b\x69\x32\x5d\x5b\x73\x33\x5d\x20\x3d\x20\x74\x33\x5b\x73\x33\x5d\x2e\x6d\x6f\x72\x70\x68\x28\x65\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x5b\x69\x32\x5d\x5b\x73\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x69\x6e\x20\x65\x33\x2e\x61\x74\x74\x72\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x61\x74\x74\x72\x73\x5b\x69\x32\x5d\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x6f\x72\x70\x68\x4f\x62\x6a\x28\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x61\x74\x74\x72\x28\x69\x32\x29\x2c\x20\x65\x33\x2e\x61\x74\x74\x72\x73\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x69\x6e\x20\x65\x33\x2e\x73\x74\x79\x6c\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x73\x74\x79\x6c\x65\x73\x5b\x69\x32\x5d\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x6f\x72\x70\x68\x4f\x62\x6a\x28\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x73\x74\x79\x6c\x65\x28\x69\x32\x29\x2c\x20\x65\x33\x2e\x73\x74\x79\x6c\x65\x73\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x6d\x61\x74\x72\x69\x78\x69\x66\x79\x28\x29\x2c\x20\x65\x33\x2e\x69\x6e\x69\x74\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x65\x61\x72\x51\x75\x65\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x65\x61\x72\x43\x75\x72\x72\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x6f\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x33\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x51\x75\x65\x75\x65\x28\x29\x2c\x20\x74\x33\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x26\x26\x20\x28\x21\x69\x32\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x43\x75\x72\x72\x65\x6e\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x6f\x70\x41\x6e\x69\x6d\x46\x72\x61\x6d\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x43\x75\x72\x72\x65\x6e\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x66\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x6f\x6e\x28\x22\x66\x69\x6e\x69\x73\x68\x65\x64\x2e\x66\x78\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x32\x28\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x20\x65\x33\x20\x26\x26\x20\x28\x74\x33\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x65\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x28\x22\x66\x69\x6e\x69\x73\x68\x65\x64\x2e\x66\x78\x22\x2c\x20\x69\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x63\x61\x6c\x6c\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x75\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x20\x65\x33\x20\x26\x26\x20\x74\x33\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x69\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x70\x6f\x73\x2c\x20\x61\x32\x2e\x6d\x6f\x72\x70\x68\x28\x69\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x70\x6f\x73\x29\x2c\x20\x69\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x65\x61\x73\x65\x64\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x6f\x66\x66\x28\x22\x64\x75\x72\x69\x6e\x67\x2e\x66\x78\x22\x2c\x20\x69\x32\x29\x2e\x6f\x6e\x28\x22\x64\x75\x72\x69\x6e\x67\x2e\x66\x78\x22\x2c\x20\x69\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x66\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x28\x22\x64\x75\x72\x69\x6e\x67\x2e\x66\x78\x22\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x63\x61\x6c\x6c\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x66\x74\x65\x72\x41\x6c\x6c\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x34\x28\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x28\x22\x61\x6c\x6c\x66\x69\x6e\x69\x73\x68\x65\x64\x2e\x66\x78\x22\x2c\x20\x65\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x6f\x66\x66\x28\x22\x61\x6c\x6c\x66\x69\x6e\x69\x73\x68\x65\x64\x2e\x66\x78\x22\x2c\x20\x65\x33\x29\x2e\x6f\x6e\x28\x22\x61\x6c\x6c\x66\x69\x6e\x69\x73\x68\x65\x64\x2e\x66\x78\x22\x2c\x20\x65\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x63\x61\x6c\x6c\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6c\x61\x73\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x5b\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x64\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x28\x29\x5b\x69\x32\x20\x7c\x7c\x20\x22\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x22\x5d\x5b\x74\x33\x5d\x20\x3d\x20\x65\x33\x2c\x20\x74\x68\x69\x73\x2e\x5f\x63\x61\x6c\x6c\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x65\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x61\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x61\x62\x73\x50\x6f\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x69\x6d\x65\x54\x6f\x41\x62\x73\x50\x6f\x73\x28\x2b\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x29\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x73\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x3f\x20\x28\x65\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x74\x68\x69\x73\x2e\x61\x62\x73\x50\x6f\x73\x2c\x20\x30\x29\x2c\x20\x69\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x65\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x73\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x20\x7c\x7c\x20\x69\x32\x20\x3c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x73\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x65\x33\x20\x2d\x20\x69\x32\x2c\x20\x61\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x20\x3d\x20\x69\x32\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x61\x62\x73\x50\x6f\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x73\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x31\x2c\x20\x61\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x20\x2d\x20\x31\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x72\x65\x76\x65\x72\x73\x69\x6e\x67\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x21\x3d\x20\x42\x6f\x6f\x6c\x65\x61\x6e\x28\x28\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6c\x6f\x6f\x70\x20\x2d\x20\x61\x33\x29\x20\x25\x20\x32\x29\x29\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x61\x62\x73\x50\x6f\x73\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x74\x68\x69\x73\x2e\x61\x62\x73\x50\x6f\x73\x2c\x20\x31\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x62\x73\x50\x6f\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x31\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x65\x61\x73\x65\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x33\x20\x69\x6e\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6f\x6e\x63\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x33\x20\x3e\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x50\x6f\x73\x20\x26\x26\x20\x72\x33\x20\x3c\x3d\x20\x73\x33\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6f\x6e\x63\x65\x5b\x72\x33\x5d\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x20\x73\x33\x29\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x6f\x6e\x63\x65\x5b\x72\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x66\x69\x72\x65\x28\x22\x64\x75\x72\x69\x6e\x67\x22\x2c\x20\x7b\x20\x70\x6f\x73\x3a\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x20\x65\x61\x73\x65\x64\x3a\x20\x73\x33\x2c\x20\x66\x78\x3a\x20\x74\x68\x69\x73\x2c\x20\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x3a\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x41\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x3d\x20\x31\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x2e\x72\x65\x76\x65\x72\x73\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x3d\x20\x30\x20\x3f\x20\x28\x74\x68\x69\x73\x2e\x73\x74\x6f\x70\x41\x6e\x69\x6d\x46\x72\x61\x6d\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x66\x69\x72\x65\x28\x22\x66\x69\x6e\x69\x73\x68\x65\x64\x22\x2c\x20\x7b\x20\x66\x78\x3a\x20\x74\x68\x69\x73\x2c\x20\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x3a\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x66\x69\x72\x65\x28\x22\x61\x6c\x6c\x66\x69\x6e\x69\x73\x68\x65\x64\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2e\x6f\x66\x66\x28\x22\x2e\x66\x78\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x3f\x20\x74\x68\x69\x73\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x43\x75\x72\x72\x65\x6e\x74\x28\x29\x29\x20\x3a\x20\x21\x74\x68\x69\x73\x2e\x70\x61\x75\x73\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x63\x74\x69\x76\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x41\x6e\x69\x6d\x46\x72\x61\x6d\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x50\x6f\x73\x20\x3d\x20\x73\x33\x2c\x20\x74\x68\x69\x73\x29\x20\x3a\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x61\x63\x68\x41\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x2c\x20\x73\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x69\x74\x75\x61\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x33\x20\x69\x6e\x20\x73\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x5b\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x33\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x5b\x72\x33\x5d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x34\x20\x21\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x26\x26\x20\x74\x34\x2e\x61\x74\x20\x3f\x20\x74\x34\x2e\x61\x74\x28\x73\x33\x2e\x65\x61\x73\x65\x28\x65\x33\x2e\x70\x6f\x73\x29\x2c\x20\x65\x33\x2e\x70\x6f\x73\x29\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x5b\x72\x33\x5d\x2e\x61\x70\x70\x6c\x79\x28\x69\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x33\x20\x69\x6e\x20\x73\x33\x2e\x61\x74\x74\x72\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x5b\x72\x33\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x33\x2e\x61\x74\x74\x72\x73\x5b\x72\x33\x5d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x34\x20\x21\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x26\x26\x20\x74\x34\x2e\x61\x74\x20\x3f\x20\x74\x34\x2e\x61\x74\x28\x73\x33\x2e\x65\x61\x73\x65\x28\x65\x33\x2e\x70\x6f\x73\x29\x2c\x20\x65\x33\x2e\x70\x6f\x73\x29\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x2e\x61\x74\x74\x72\x2e\x61\x70\x70\x6c\x79\x28\x69\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x33\x20\x69\x6e\x20\x73\x33\x2e\x73\x74\x79\x6c\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x5b\x72\x33\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x33\x2e\x73\x74\x79\x6c\x65\x73\x5b\x72\x33\x5d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x34\x20\x21\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x26\x26\x20\x74\x34\x2e\x61\x74\x20\x3f\x20\x74\x34\x2e\x61\x74\x28\x73\x33\x2e\x65\x61\x73\x65\x28\x65\x33\x2e\x70\x6f\x73\x29\x2c\x20\x65\x33\x2e\x70\x6f\x73\x29\x20\x3a\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x69\x32\x2e\x73\x74\x79\x6c\x65\x2e\x61\x70\x70\x6c\x79\x28\x69\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x33\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x73\x33\x2e\x69\x6e\x69\x74\x69\x61\x6c\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x2c\x20\x72\x33\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6f\x33\x20\x3d\x20\x73\x33\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x33\x20\x3c\x20\x6f\x33\x3b\x20\x72\x33\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x33\x20\x3d\x20\x73\x33\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x73\x5b\x72\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x20\x3f\x20\x74\x33\x20\x3d\x20\x6e\x33\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x20\x3f\x20\x74\x33\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x79\x28\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x29\x2e\x6d\x6f\x72\x70\x68\x28\x6e\x33\x29\x2e\x61\x74\x28\x73\x33\x2e\x65\x61\x73\x65\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x29\x29\x20\x3a\x20\x74\x33\x2e\x6d\x6f\x72\x70\x68\x28\x6e\x33\x29\x2e\x61\x74\x28\x73\x33\x2e\x65\x61\x73\x65\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x29\x20\x3a\x20\x28\x6e\x33\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x20\x7c\x7c\x20\x6e\x33\x2e\x75\x6e\x64\x6f\x28\x74\x33\x2e\x65\x78\x74\x72\x61\x63\x74\x28\x29\x29\x2c\x20\x74\x33\x20\x3d\x20\x74\x33\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x79\x28\x6e\x33\x2e\x61\x74\x28\x73\x33\x2e\x65\x61\x73\x65\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x6d\x61\x74\x72\x69\x78\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6f\x6e\x63\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x7c\x7c\x20\x28\x74\x33\x20\x3d\x20\x61\x33\x2e\x65\x61\x73\x65\x28\x74\x33\x29\x29\x2c\x20\x61\x33\x2e\x6f\x6e\x63\x65\x5b\x74\x33\x5d\x20\x3d\x20\x65\x33\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x5f\x63\x61\x6c\x6c\x53\x74\x61\x72\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x2c\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x61\x6e\x69\x6d\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x68\x69\x73\x2e\x66\x78\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x66\x78\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x46\x58\x28\x74\x68\x69\x73\x29\x29\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x65\x6c\x61\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x68\x69\x73\x2e\x66\x78\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x66\x78\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x46\x58\x28\x74\x68\x69\x73\x29\x29\x29\x2e\x64\x65\x6c\x61\x79\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x74\x6f\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x78\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x66\x78\x2e\x73\x74\x6f\x70\x28\x74\x33\x2c\x20\x65\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x69\x6e\x69\x73\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x78\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x66\x78\x2e\x66\x69\x6e\x69\x73\x68\x28\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x4d\x6f\x72\x70\x68\x4f\x62\x6a\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x28\x65\x33\x29\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x28\x74\x33\x29\x2e\x6d\x6f\x72\x70\x68\x28\x65\x33\x29\x20\x3a\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x20\x3f\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x70\x61\x74\x68\x4c\x65\x74\x74\x65\x72\x73\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x28\x74\x33\x29\x2e\x6d\x6f\x72\x70\x68\x28\x65\x33\x29\x20\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x41\x72\x72\x61\x79\x28\x74\x33\x29\x2e\x6d\x6f\x72\x70\x68\x28\x65\x33\x29\x20\x3a\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x6e\x75\x6d\x62\x65\x72\x41\x6e\x64\x55\x6e\x69\x74\x2e\x74\x65\x73\x74\x28\x65\x33\x29\x20\x3f\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2e\x6d\x6f\x72\x70\x68\x28\x65\x33\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x33\x2c\x20\x76\x6f\x69\x64\x20\x28\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x3d\x20\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x61\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x3c\x20\x31\x20\x3f\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x76\x61\x6c\x75\x65\x4f\x66\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x46\x58\x2c\x20\x7b\x20\x61\x74\x74\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x33\x20\x69\x6e\x20\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x73\x33\x2c\x20\x74\x33\x5b\x73\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x22\x61\x74\x74\x72\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x34\x20\x3f\x20\x74\x68\x69\x73\x2e\x70\x6c\x6f\x74\x28\x5b\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x61\x33\x5d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x22\x70\x6c\x6f\x74\x22\x2c\x20\x6e\x65\x77\x20\x28\x74\x68\x69\x73\x2e\x74\x61\x72\x67\x65\x74\x28\x29\x29\x2e\x6d\x6f\x72\x70\x68\x41\x72\x72\x61\x79\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x42\x6f\x78\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x73\x33\x2c\x20\x72\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x69\x28\x74\x33\x29\x20\x21\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x7c\x7c\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x42\x6f\x78\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2e\x6c\x65\x66\x74\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x33\x2e\x6c\x65\x66\x74\x20\x3a\x20\x74\x33\x2e\x78\x2c\x20\x74\x33\x2e\x74\x6f\x70\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x33\x2e\x74\x6f\x70\x20\x3a\x20\x74\x33\x2e\x79\x2c\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x34\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x78\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x79\x20\x3d\x20\x65\x33\x2c\x20\x74\x68\x69\x73\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x73\x33\x2c\x20\x74\x68\x69\x73\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x72\x33\x29\x2c\x20\x62\x32\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x42\x42\x6f\x78\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x42\x6f\x78\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\x2c\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x32\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\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\x73\x33\x20\x3d\x20\x74\x33\x2e\x6e\x6f\x64\x65\x3b\x20\x73\x33\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x20\x3d\x20\x73\x33\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x33\x20\x21\x3d\x20\x65\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x45\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x6f\x74\x20\x69\x6e\x20\x74\x68\x65\x20\x64\x6f\x6d\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x20\x7c\x7c\x20\x61\x32\x2e\x70\x72\x65\x70\x61\x72\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x74\x33\x2e\x63\x6c\x6f\x6e\x65\x28\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x2e\x69\x6e\x73\x74\x61\x6e\x63\x65\x29\x2e\x73\x68\x6f\x77\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x33\x20\x26\x26\x20\x72\x33\x2e\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x72\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x42\x42\x6f\x78\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x72\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x29\x2c\x20\x72\x33\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x72\x33\x2e\x72\x65\x6d\x6f\x76\x65\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x72\x33\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x69\x65\x6e\x74\x4c\x65\x66\x74\x2c\x20\x79\x3a\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x69\x65\x6e\x74\x54\x6f\x70\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x69\x65\x6e\x74\x57\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x63\x6c\x69\x65\x6e\x74\x48\x65\x69\x67\x68\x74\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x42\x6f\x78\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x42\x6f\x78\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x62\x62\x6f\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x42\x42\x6f\x78\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x42\x42\x6f\x78\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x20\x3d\x20\x61\x32\x2e\x42\x42\x6f\x78\x2c\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x66\x32\x28\x5b\x31\x2c\x20\x30\x2c\x20\x30\x2c\x20\x31\x2c\x20\x30\x2c\x20\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x74\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x65\x33\x20\x3a\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3f\x20\x74\x33\x2e\x6d\x61\x74\x72\x69\x78\x69\x66\x79\x28\x29\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x66\x32\x28\x74\x33\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x29\x2e\x6d\x61\x70\x28\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x29\x29\x20\x3a\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x36\x20\x3f\x20\x66\x32\x28\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\x20\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x3f\x20\x66\x32\x28\x74\x33\x29\x20\x3a\x20\x74\x33\x20\x26\x26\x20\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x74\x33\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x6d\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x73\x33\x20\x3e\x3d\x20\x30\x3b\x20\x2d\x2d\x73\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x5b\x6d\x32\x5b\x73\x33\x5d\x5d\x20\x3d\x20\x74\x33\x5b\x6d\x32\x5b\x73\x33\x5d\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x33\x5b\x6d\x32\x5b\x73\x33\x5d\x5d\x20\x3a\x20\x65\x33\x5b\x6d\x32\x5b\x73\x33\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x65\x78\x74\x72\x61\x63\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x70\x33\x28\x74\x68\x69\x73\x2c\x20\x30\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x33\x28\x74\x68\x69\x73\x2c\x20\x31\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x31\x38\x30\x20\x2f\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2a\x20\x4d\x61\x74\x68\x2e\x61\x74\x61\x6e\x32\x28\x74\x33\x2e\x79\x2c\x20\x74\x33\x2e\x78\x29\x20\x2d\x20\x39\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x74\x68\x69\x73\x2e\x65\x2c\x20\x79\x3a\x20\x74\x68\x69\x73\x2e\x66\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x65\x64\x58\x3a\x20\x28\x74\x68\x69\x73\x2e\x65\x20\x2a\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x65\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x31\x38\x30\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x66\x20\x2a\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x65\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x31\x38\x30\x29\x29\x20\x2f\x20\x4d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x74\x68\x69\x73\x2e\x61\x20\x2a\x20\x74\x68\x69\x73\x2e\x61\x20\x2b\x20\x74\x68\x69\x73\x2e\x62\x20\x2a\x20\x74\x68\x69\x73\x2e\x62\x29\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x65\x64\x59\x3a\x20\x28\x74\x68\x69\x73\x2e\x66\x20\x2a\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x65\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x31\x38\x30\x29\x20\x2b\x20\x74\x68\x69\x73\x2e\x65\x20\x2a\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x2d\x65\x33\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2f\x20\x31\x38\x30\x29\x29\x20\x2f\x20\x4d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x74\x68\x69\x73\x2e\x63\x20\x2a\x20\x74\x68\x69\x73\x2e\x63\x20\x2b\x20\x74\x68\x69\x73\x2e\x64\x20\x2a\x20\x74\x68\x69\x73\x2e\x64\x29\x2c\x20\x72\x6f\x74\x61\x74\x69\x6f\x6e\x3a\x20\x65\x33\x2c\x20\x61\x3a\x20\x74\x68\x69\x73\x2e\x61\x2c\x20\x62\x3a\x20\x74\x68\x69\x73\x2e\x62\x2c\x20\x63\x3a\x20\x74\x68\x69\x73\x2e\x63\x2c\x20\x64\x3a\x20\x74\x68\x69\x73\x2e\x64\x2c\x20\x65\x3a\x20\x74\x68\x69\x73\x2e\x65\x2c\x20\x66\x3a\x20\x74\x68\x69\x73\x2e\x66\x2c\x20\x6d\x61\x74\x72\x69\x78\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x6f\x6e\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x72\x70\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x75\x6c\x74\x69\x70\x6c\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x2e\x6e\x61\x74\x69\x76\x65\x28\x29\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x79\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x20\x7c\x7c\x20\x28\x74\x34\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x34\x29\x29\x2c\x20\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x33\x29\x2e\x6e\x61\x74\x69\x76\x65\x28\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x76\x65\x72\x73\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x2e\x6e\x61\x74\x69\x76\x65\x28\x29\x2e\x69\x6e\x76\x65\x72\x73\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x2e\x6e\x61\x74\x69\x76\x65\x28\x29\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x74\x33\x20\x7c\x7c\x20\x30\x2c\x20\x65\x33\x20\x7c\x7c\x20\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6e\x61\x74\x69\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x6e\x61\x74\x69\x76\x65\x2e\x63\x72\x65\x61\x74\x65\x53\x56\x47\x4d\x61\x74\x72\x69\x78\x28\x29\x2c\x20\x65\x33\x20\x3d\x20\x6d\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x65\x33\x20\x3e\x3d\x20\x30\x3b\x20\x65\x33\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x6d\x32\x5b\x65\x33\x5d\x5d\x20\x3d\x20\x74\x68\x69\x73\x5b\x6d\x32\x5b\x65\x33\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x6d\x61\x74\x72\x69\x78\x28\x22\x20\x2b\x20\x76\x32\x28\x74\x68\x69\x73\x2e\x61\x29\x20\x2b\x20\x22\x2c\x22\x20\x2b\x20\x76\x32\x28\x74\x68\x69\x73\x2e\x62\x29\x20\x2b\x20\x22\x2c\x22\x20\x2b\x20\x76\x32\x28\x74\x68\x69\x73\x2e\x63\x29\x20\x2b\x20\x22\x2c\x22\x20\x2b\x20\x76\x32\x28\x74\x68\x69\x73\x2e\x64\x29\x20\x2b\x20\x22\x2c\x22\x20\x2b\x20\x76\x32\x28\x74\x68\x69\x73\x2e\x65\x29\x20\x2b\x20\x22\x2c\x22\x20\x2b\x20\x76\x32\x28\x74\x68\x69\x73\x2e\x66\x29\x20\x2b\x20\x22\x29\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x63\x74\x6d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x43\x54\x4d\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x63\x72\x65\x65\x6e\x43\x54\x4d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x4e\x65\x73\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x28\x31\x2c\x20\x31\x29\x2c\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x53\x63\x72\x65\x65\x6e\x43\x54\x4d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x53\x63\x72\x65\x65\x6e\x43\x54\x4d\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x33\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x3f\x20\x7b\x20\x78\x3a\x20\x74\x33\x5b\x30\x5d\x2c\x20\x79\x3a\x20\x74\x33\x5b\x31\x5d\x20\x7d\x20\x3a\x20\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x7b\x20\x78\x3a\x20\x74\x33\x2e\x78\x2c\x20\x79\x3a\x20\x74\x33\x2e\x79\x20\x7d\x20\x3a\x20\x74\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x65\x33\x20\x3a\x20\x74\x33\x20\x7d\x20\x3a\x20\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x78\x20\x3d\x20\x61\x33\x2e\x78\x2c\x20\x74\x68\x69\x73\x2e\x79\x20\x3d\x20\x61\x33\x2e\x79\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x63\x6c\x6f\x6e\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x72\x70\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x70\x6f\x69\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x74\x68\x69\x73\x2e\x73\x63\x72\x65\x65\x6e\x43\x54\x4d\x28\x29\x2e\x69\x6e\x76\x65\x72\x73\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x61\x74\x74\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x74\x33\x20\x3d\x20\x7b\x7d\x2c\x20\x73\x33\x20\x3d\x20\x28\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x73\x33\x20\x3e\x3d\x20\x30\x3b\x20\x73\x33\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x65\x33\x5b\x73\x33\x5d\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x5d\x20\x3d\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x2e\x74\x65\x73\x74\x28\x65\x33\x5b\x73\x33\x5d\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x29\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x33\x5b\x73\x33\x5d\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x29\x20\x3a\x20\x65\x33\x5b\x73\x33\x5d\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x33\x20\x69\x6e\x20\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x72\x33\x2c\x20\x74\x33\x5b\x72\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x65\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x74\x33\x29\x29\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x61\x32\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x2e\x61\x74\x74\x72\x73\x5b\x74\x33\x5d\x20\x3a\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x4e\x75\x6d\x62\x65\x72\x2e\x74\x65\x73\x74\x28\x65\x33\x29\x20\x3f\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x33\x29\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x73\x74\x72\x6f\x6b\x65\x22\x2c\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x65\x33\x29\x20\x3e\x20\x30\x20\x3f\x20\x74\x68\x69\x73\x2e\x5f\x73\x74\x72\x6f\x6b\x65\x20\x3a\x20\x6e\x75\x6c\x6c\x29\x20\x3a\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x6f\x6b\x65\x22\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x5f\x73\x74\x72\x6f\x6b\x65\x20\x3d\x20\x65\x33\x29\x2c\x20\x74\x33\x20\x21\x3d\x20\x22\x66\x69\x6c\x6c\x22\x20\x26\x26\x20\x74\x33\x20\x21\x3d\x20\x22\x73\x74\x72\x6f\x6b\x65\x22\x20\x7c\x7c\x20\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x49\x6d\x61\x67\x65\x2e\x74\x65\x73\x74\x28\x65\x33\x29\x20\x26\x26\x20\x28\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x28\x29\x2e\x64\x65\x66\x73\x28\x29\x2e\x69\x6d\x61\x67\x65\x28\x65\x33\x2c\x20\x30\x2c\x20\x30\x29\x29\x2c\x20\x65\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x49\x6d\x61\x67\x65\x20\x26\x26\x20\x28\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x28\x29\x2e\x64\x65\x66\x73\x28\x29\x2e\x70\x61\x74\x74\x65\x72\x6e\x28\x30\x2c\x20\x30\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x33\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x65\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x65\x33\x29\x20\x3a\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2e\x69\x73\x43\x6f\x6c\x6f\x72\x28\x65\x33\x29\x20\x3f\x20\x65\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x28\x65\x33\x29\x20\x3a\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x33\x29\x20\x26\x26\x20\x28\x65\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x41\x72\x72\x61\x79\x28\x65\x33\x29\x29\x2c\x20\x74\x33\x20\x3d\x3d\x20\x22\x6c\x65\x61\x64\x69\x6e\x67\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x6c\x65\x61\x64\x69\x6e\x67\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6c\x65\x61\x64\x69\x6e\x67\x28\x65\x33\x29\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x53\x28\x73\x33\x2c\x20\x74\x33\x2c\x20\x65\x33\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x74\x33\x2c\x20\x65\x33\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x29\x2c\x20\x21\x74\x68\x69\x73\x2e\x72\x65\x62\x75\x69\x6c\x64\x20\x7c\x7c\x20\x74\x33\x20\x21\x3d\x20\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x20\x26\x26\x20\x74\x33\x20\x21\x3d\x20\x22\x78\x22\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x72\x65\x62\x75\x69\x6c\x64\x28\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x28\x74\x33\x29\x20\x21\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x28\x73\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x29\x2e\x65\x78\x74\x72\x61\x63\x74\x28\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x73\x33\x5b\x74\x33\x5d\x20\x3a\x20\x73\x33\x29\x20\x3a\x20\x28\x73\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x29\x2c\x20\x65\x33\x20\x3d\x20\x21\x21\x65\x33\x20\x7c\x7c\x20\x21\x21\x74\x33\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x2c\x20\x74\x33\x2e\x61\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x73\x33\x20\x3d\x20\x65\x33\x20\x3f\x20\x73\x33\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x79\x28\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x33\x29\x29\x20\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x33\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x73\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x75\x6e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x61\x74\x72\x69\x78\x69\x66\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x29\x20\x7c\x7c\x20\x22\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x73\x29\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x2d\x31\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x74\x72\x69\x6d\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x22\x28\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x65\x33\x5b\x30\x5d\x2c\x20\x65\x33\x5b\x31\x5d\x2e\x73\x70\x6c\x69\x74\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x64\x65\x6c\x69\x6d\x69\x74\x65\x72\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x6d\x61\x74\x72\x69\x78\x22\x20\x3f\x20\x74\x33\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x79\x28\x66\x32\x28\x65\x33\x5b\x31\x5d\x29\x29\x20\x3a\x20\x74\x33\x5b\x65\x33\x5b\x30\x5d\x5d\x2e\x61\x70\x70\x6c\x79\x28\x74\x33\x2c\x20\x65\x33\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x50\x61\x72\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x20\x3d\x3d\x20\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x63\x72\x65\x65\x6e\x43\x54\x4d\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x73\x63\x72\x65\x65\x6e\x43\x54\x4d\x28\x29\x2e\x69\x6e\x76\x65\x72\x73\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x54\x6f\x28\x74\x33\x29\x2e\x75\x6e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x29\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x69\x32\x2e\x6d\x75\x6c\x74\x69\x70\x6c\x79\x28\x65\x33\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x44\x6f\x63\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x74\x6f\x50\x61\x72\x65\x6e\x74\x28\x74\x68\x69\x73\x2e\x64\x6f\x63\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x33\x20\x21\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x30\x2c\x20\x73\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x33\x20\x3c\x20\x73\x33\x3b\x20\x2b\x2b\x61\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x5b\x74\x68\x69\x73\x2e\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x61\x33\x5d\x5d\x20\x3d\x20\x74\x33\x5b\x61\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x33\x20\x26\x26\x20\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x61\x33\x20\x3d\x20\x30\x2c\x20\x73\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x61\x33\x20\x3c\x20\x73\x33\x3b\x20\x2b\x2b\x61\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x5b\x74\x68\x69\x73\x2e\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x61\x33\x5d\x5d\x20\x3d\x20\x74\x33\x5b\x74\x68\x69\x73\x2e\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x61\x33\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x73\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x33\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x76\x65\x72\x73\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x54\x72\x61\x6e\x73\x6c\x61\x74\x65\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x61\x74\x69\x6f\x6e\x2c\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x3a\x20\x5b\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x65\x64\x58\x22\x2c\x20\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x65\x64\x59\x22\x5d\x2c\x20\x6d\x65\x74\x68\x6f\x64\x3a\x20\x22\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x22\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x73\x74\x79\x6c\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x54\x65\x78\x74\x20\x7c\x7c\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x28\x74\x33\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x33\x20\x69\x6e\x20\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x28\x73\x33\x2c\x20\x74\x33\x5b\x73\x33\x5d\x29\x3b\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\x69\x66\x20\x28\x21\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x43\x73\x73\x2e\x74\x65\x73\x74\x28\x74\x33\x29\x29\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\x6e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x5b\x63\x32\x28\x74\x33\x29\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x73\x2a\x3b\x5c\x73\x2a\x2f\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x74\x34\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x73\x2a\x3a\x5c\x73\x2a\x2f\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x70\x6f\x70\x28\x29\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x28\x65\x33\x5b\x30\x5d\x2c\x20\x65\x33\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x5b\x63\x32\x28\x74\x33\x29\x5d\x20\x3d\x20\x65\x33\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x69\x73\x42\x6c\x61\x6e\x6b\x2e\x74\x65\x73\x74\x28\x65\x33\x29\x20\x3f\x20\x22\x22\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x50\x61\x72\x65\x6e\x74\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x75\x74\x69\x6c\x73\x2e\x6d\x61\x70\x28\x61\x32\x2e\x75\x74\x69\x6c\x73\x2e\x66\x69\x6c\x74\x65\x72\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x64\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x33\x2e\x6e\x6f\x64\x65\x29\x20\x3a\x20\x74\x33\x2e\x6e\x6f\x64\x65\x20\x21\x3d\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x5b\x65\x33\x5d\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x74\x33\x2e\x6e\x6f\x64\x65\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x5b\x65\x33\x5d\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x75\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x74\x33\x2c\x20\x65\x33\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x68\x61\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x78\x28\x74\x33\x29\x20\x3e\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x67\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x5b\x74\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x69\x72\x73\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6c\x61\x73\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x61\x63\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x28\x29\x2c\x20\x73\x33\x20\x3d\x20\x30\x2c\x20\x72\x33\x20\x3d\x20\x69\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x33\x20\x3c\x20\x72\x33\x3b\x20\x73\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x5b\x73\x33\x5d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x20\x26\x26\x20\x74\x33\x2e\x61\x70\x70\x6c\x79\x28\x69\x32\x5b\x73\x33\x5d\x2c\x20\x5b\x73\x33\x2c\x20\x69\x32\x5d\x29\x2c\x20\x65\x33\x20\x26\x26\x20\x69\x32\x5b\x73\x33\x5d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x26\x26\x20\x69\x32\x5b\x73\x33\x5d\x2e\x65\x61\x63\x68\x28\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x6d\x6f\x76\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x74\x33\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x65\x61\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x3b\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x68\x61\x73\x43\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x28\x29\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x73\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x65\x66\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x28\x29\x2e\x64\x65\x66\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x50\x61\x72\x65\x6e\x74\x2c\x20\x7b\x20\x75\x6e\x67\x72\x6f\x75\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x44\x65\x66\x73\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x20\x3d\x3d\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x20\x7c\x7c\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x44\x6f\x63\x20\x3f\x20\x74\x68\x69\x73\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x61\x32\x2e\x50\x61\x72\x65\x6e\x74\x29\x29\x2c\x20\x65\x33\x20\x3d\x20\x65\x33\x20\x7c\x7c\x20\x31\x20\x2f\x20\x30\x2c\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x44\x65\x66\x73\x20\x3f\x20\x74\x68\x69\x73\x20\x3a\x20\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x50\x61\x72\x65\x6e\x74\x20\x3f\x20\x74\x68\x69\x73\x2e\x75\x6e\x67\x72\x6f\x75\x70\x28\x74\x33\x2c\x20\x65\x33\x20\x2d\x20\x31\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x74\x6f\x50\x61\x72\x65\x6e\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x6c\x61\x74\x74\x65\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x75\x6e\x67\x72\x6f\x75\x70\x28\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x50\x61\x72\x65\x6e\x74\x20\x7d\x29\x2c\x20\x61\x32\x2e\x56\x69\x65\x77\x42\x6f\x78\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x7d\x20\x7d\x29\x2c\x20\x5b\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x22\x64\x62\x6c\x63\x6c\x69\x63\x6b\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6f\x76\x65\x72\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6f\x75\x74\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x6c\x65\x61\x76\x65\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x63\x61\x6e\x63\x65\x6c\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x5b\x74\x33\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x6f\x6e\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x68\x61\x6e\x64\x6c\x65\x72\x4d\x61\x70\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x49\x64\x20\x3d\x20\x30\x2c\x20\x61\x32\x2e\x6f\x6e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x73\x33\x2c\x20\x72\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x33\x20\x3d\x20\x69\x32\x2e\x62\x69\x6e\x64\x28\x73\x33\x20\x7c\x7c\x20\x74\x33\x2e\x69\x6e\x73\x74\x61\x6e\x63\x65\x20\x7c\x7c\x20\x74\x33\x29\x2c\x20\x6e\x33\x20\x3d\x20\x28\x61\x32\x2e\x68\x61\x6e\x64\x6c\x65\x72\x4d\x61\x70\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x20\x2b\x20\x31\x20\x7c\x7c\x20\x61\x32\x2e\x68\x61\x6e\x64\x6c\x65\x72\x4d\x61\x70\x2e\x70\x75\x73\x68\x28\x74\x33\x29\x29\x20\x2d\x20\x31\x2c\x20\x6c\x33\x20\x3d\x20\x65\x33\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x5b\x30\x5d\x2c\x20\x68\x34\x20\x3d\x20\x65\x33\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x5b\x31\x5d\x20\x7c\x7c\x20\x22\x2a\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x6e\x33\x5d\x20\x3d\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x6e\x33\x5d\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x6e\x33\x5d\x5b\x6c\x33\x5d\x20\x3d\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x6e\x33\x5d\x5b\x6c\x33\x5d\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x6e\x33\x5d\x5b\x6c\x33\x5d\x5b\x68\x34\x5d\x20\x3d\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x6e\x33\x5d\x5b\x6c\x33\x5d\x5b\x68\x34\x5d\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x69\x32\x2e\x5f\x73\x76\x67\x6a\x73\x4c\x69\x73\x74\x65\x6e\x65\x72\x49\x64\x20\x7c\x7c\x20\x28\x69\x32\x2e\x5f\x73\x76\x67\x6a\x73\x4c\x69\x73\x74\x65\x6e\x65\x72\x49\x64\x20\x3d\x20\x2b\x2b\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x49\x64\x29\x2c\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x6e\x33\x5d\x5b\x6c\x33\x5d\x5b\x68\x34\x5d\x5b\x69\x32\x2e\x5f\x73\x76\x67\x6a\x73\x4c\x69\x73\x74\x65\x6e\x65\x72\x49\x64\x5d\x20\x3d\x20\x6f\x33\x2c\x20\x74\x33\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x6c\x33\x2c\x20\x6f\x33\x2c\x20\x72\x33\x20\x7c\x7c\x20\x7b\x20\x70\x61\x73\x73\x69\x76\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x6f\x66\x66\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x61\x32\x2e\x68\x61\x6e\x64\x6c\x65\x72\x4d\x61\x70\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x2c\x20\x72\x33\x20\x3d\x20\x65\x33\x20\x26\x26\x20\x65\x33\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x5b\x30\x5d\x2c\x20\x6f\x33\x20\x3d\x20\x65\x33\x20\x26\x26\x20\x65\x33\x2e\x73\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x5b\x31\x5d\x2c\x20\x6e\x33\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x33\x20\x21\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x69\x32\x2e\x5f\x73\x76\x67\x6a\x73\x4c\x69\x73\x74\x65\x6e\x65\x72\x49\x64\x29\x2c\x20\x21\x69\x32\x29\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\x20\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x20\x26\x26\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x5b\x6f\x33\x20\x7c\x7c\x20\x22\x2a\x22\x5d\x20\x26\x26\x20\x28\x74\x33\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x72\x33\x2c\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x5b\x6f\x33\x20\x7c\x7c\x20\x22\x2a\x22\x5d\x5b\x69\x32\x5d\x2c\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x5b\x6f\x33\x20\x7c\x7c\x20\x22\x2a\x22\x5d\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x33\x20\x26\x26\x20\x72\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x20\x26\x26\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x5b\x6f\x33\x5d\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\x6c\x33\x20\x69\x6e\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x5b\x6f\x33\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x6f\x66\x66\x28\x74\x33\x2c\x20\x5b\x72\x33\x2c\x20\x6f\x33\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x2e\x22\x29\x2c\x20\x6c\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x5b\x6f\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x34\x20\x69\x6e\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6e\x33\x20\x69\x6e\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x68\x34\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x33\x20\x3d\x3d\x3d\x20\x6e\x33\x20\x26\x26\x20\x61\x32\x2e\x6f\x66\x66\x28\x74\x33\x2c\x20\x5b\x68\x34\x2c\x20\x6f\x33\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x2e\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x72\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\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\x6e\x33\x20\x69\x6e\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x6f\x66\x66\x28\x74\x33\x2c\x20\x5b\x72\x33\x2c\x20\x6e\x33\x5d\x2e\x6a\x6f\x69\x6e\x28\x22\x2e\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x5b\x72\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x34\x20\x69\x6e\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x6f\x66\x66\x28\x74\x33\x2c\x20\x68\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x32\x2e\x6c\x69\x73\x74\x65\x6e\x65\x72\x73\x5b\x73\x33\x5d\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x32\x2e\x68\x61\x6e\x64\x6c\x65\x72\x4d\x61\x70\x5b\x73\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x6f\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x6f\x6e\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2c\x20\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x73\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6f\x66\x66\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x6f\x66\x66\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x69\x72\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x74\x32\x2e\x45\x76\x65\x6e\x74\x20\x3f\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x64\x69\x73\x70\x61\x74\x63\x68\x45\x76\x65\x6e\x74\x28\x65\x33\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x64\x69\x73\x70\x61\x74\x63\x68\x45\x76\x65\x6e\x74\x28\x65\x33\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x43\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x28\x65\x33\x2c\x20\x7b\x20\x64\x65\x74\x61\x69\x6c\x3a\x20\x69\x32\x2c\x20\x63\x61\x6e\x63\x65\x6c\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x65\x76\x65\x6e\x74\x20\x3d\x20\x65\x33\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x76\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x65\x76\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x44\x65\x66\x73\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x64\x65\x66\x73\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x7d\x29\x2c\x20\x61\x32\x2e\x47\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x67\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x22\x78\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x7b\x20\x78\x3a\x20\x74\x33\x20\x2d\x20\x74\x68\x69\x73\x2e\x78\x28\x29\x20\x7d\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x67\x72\x6f\x75\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x47\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x44\x6f\x63\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x26\x26\x20\x28\x28\x74\x33\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x65\x32\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x74\x33\x29\x20\x3a\x20\x74\x33\x29\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x20\x3d\x3d\x20\x22\x73\x76\x67\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x61\x32\x2e\x63\x72\x65\x61\x74\x65\x28\x22\x73\x76\x67\x22\x29\x29\x2c\x20\x74\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x28\x22\x31\x30\x30\x25\x22\x2c\x20\x22\x31\x30\x30\x25\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x28\x29\x2e\x64\x65\x66\x73\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x6d\x6c\x6e\x73\x3a\x20\x61\x32\x2e\x6e\x73\x2c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x22\x31\x2e\x31\x22\x20\x7d\x29\x2e\x61\x74\x74\x72\x28\x22\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x22\x2c\x20\x61\x32\x2e\x78\x6c\x69\x6e\x6b\x2c\x20\x61\x32\x2e\x78\x6d\x6c\x6e\x73\x29\x2e\x61\x74\x74\x72\x28\x22\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x6a\x73\x22\x2c\x20\x61\x32\x2e\x73\x76\x67\x6a\x73\x2c\x20\x61\x32\x2e\x78\x6d\x6c\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x65\x66\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x73\x20\x7c\x7c\x20\x28\x28\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x64\x65\x66\x73\x22\x29\x5b\x30\x5d\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x73\x20\x3d\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x74\x33\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x73\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x44\x65\x66\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x73\x2e\x6e\x6f\x64\x65\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x20\x21\x3d\x20\x22\x23\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x6d\x6f\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x65\x61\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x3b\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x68\x61\x73\x43\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x28\x29\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x5f\x64\x65\x66\x73\x2c\x20\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x20\x26\x26\x20\x21\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x61\x32\x2e\x70\x61\x72\x73\x65\x72\x2e\x64\x72\x61\x77\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x6f\x6e\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x72\x69\x74\x65\x44\x61\x74\x61\x54\x6f\x44\x6f\x6d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2c\x20\x69\x32\x20\x3d\x20\x78\x32\x28\x65\x33\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3f\x20\x28\x74\x33\x2e\x6e\x6f\x64\x65\x20\x7c\x7c\x20\x74\x33\x29\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x69\x32\x2e\x6e\x6f\x64\x65\x29\x20\x3a\x20\x65\x33\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x69\x32\x2e\x6e\x6f\x64\x65\x2c\x20\x65\x33\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x7d\x29\x2c\x20\x61\x32\x2e\x47\x72\x61\x64\x69\x65\x6e\x74\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x61\x32\x2e\x63\x72\x65\x61\x74\x65\x28\x74\x33\x20\x2b\x20\x22\x47\x72\x61\x64\x69\x65\x6e\x74\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x61\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x53\x74\x6f\x70\x28\x29\x29\x2e\x75\x70\x64\x61\x74\x65\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x75\x70\x64\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x28\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x75\x72\x6c\x28\x23\x22\x20\x2b\x20\x74\x68\x69\x73\x2e\x69\x64\x28\x29\x20\x2b\x20\x22\x29\x22\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x6c\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x74\x74\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x22\x67\x72\x61\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x29\x2c\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x61\x74\x74\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x73\x28\x29\x2e\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x47\x72\x61\x64\x69\x65\x6e\x74\x2c\x20\x61\x32\x2e\x46\x58\x2c\x20\x7b\x20\x66\x72\x6f\x6d\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x68\x69\x73\x2e\x5f\x74\x61\x72\x67\x65\x74\x20\x7c\x7c\x20\x74\x68\x69\x73\x29\x2e\x74\x79\x70\x65\x20\x3d\x3d\x20\x22\x72\x61\x64\x69\x61\x6c\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x66\x78\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x66\x79\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x65\x33\x29\x20\x7d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x31\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x79\x31\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x65\x33\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x68\x69\x73\x2e\x5f\x74\x61\x72\x67\x65\x74\x20\x7c\x7c\x20\x74\x68\x69\x73\x29\x2e\x74\x79\x70\x65\x20\x3d\x3d\x20\x22\x72\x61\x64\x69\x61\x6c\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x63\x78\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x63\x79\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x65\x33\x29\x20\x7d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x32\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x79\x32\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x65\x33\x29\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x44\x65\x66\x73\x2c\x20\x7b\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x47\x72\x61\x64\x69\x65\x6e\x74\x28\x74\x33\x29\x29\x2e\x75\x70\x64\x61\x74\x65\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x53\x74\x6f\x70\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x73\x74\x6f\x70\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x75\x70\x64\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x7c\x7c\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x29\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x7b\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x2c\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x7d\x29\x2c\x20\x74\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x20\x74\x33\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x2c\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x22\x2c\x20\x74\x33\x2e\x63\x6f\x6c\x6f\x72\x29\x2c\x20\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x6f\x66\x66\x73\x65\x74\x22\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x2e\x6f\x66\x66\x73\x65\x74\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x50\x61\x74\x74\x65\x72\x6e\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x70\x61\x74\x74\x65\x72\x6e\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x66\x69\x6c\x6c\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x75\x72\x6c\x28\x23\x22\x20\x2b\x20\x74\x68\x69\x73\x2e\x69\x64\x28\x29\x20\x2b\x20\x22\x29\x22\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x75\x70\x64\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x28\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x6c\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x74\x74\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x22\x70\x61\x74\x74\x65\x72\x6e\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x29\x2c\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x61\x74\x74\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x70\x61\x74\x74\x65\x72\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x73\x28\x29\x2e\x70\x61\x74\x74\x65\x72\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x44\x65\x66\x73\x2c\x20\x7b\x20\x70\x61\x74\x74\x65\x72\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x50\x61\x74\x74\x65\x72\x6e\x28\x29\x29\x2e\x75\x70\x64\x61\x74\x65\x28\x69\x32\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x30\x2c\x20\x79\x3a\x20\x30\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x74\x33\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x65\x33\x2c\x20\x70\x61\x74\x74\x65\x72\x6e\x55\x6e\x69\x74\x73\x3a\x20\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\x65\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x20\x7d\x29\x2c\x20\x61\x32\x2e\x53\x79\x6d\x62\x6f\x6c\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x73\x79\x6d\x62\x6f\x6c\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x73\x79\x6d\x62\x6f\x6c\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x53\x79\x6d\x62\x6f\x6c\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x55\x73\x65\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x75\x73\x65\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x65\x6c\x65\x6d\x65\x6e\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x68\x72\x65\x66\x22\x2c\x20\x28\x65\x33\x20\x7c\x7c\x20\x22\x22\x29\x20\x2b\x20\x22\x23\x22\x20\x2b\x20\x74\x33\x2c\x20\x61\x32\x2e\x78\x6c\x69\x6e\x6b\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x75\x73\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x55\x73\x65\x28\x29\x29\x2e\x65\x6c\x65\x6d\x65\x6e\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x52\x65\x63\x74\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x72\x65\x63\x74\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x72\x65\x63\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x52\x65\x63\x74\x28\x29\x29\x2e\x73\x69\x7a\x65\x28\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x43\x69\x72\x63\x6c\x65\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x63\x69\x72\x63\x6c\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x43\x69\x72\x63\x6c\x65\x28\x29\x29\x2e\x72\x78\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2e\x64\x69\x76\x69\x64\x65\x28\x32\x29\x29\x2e\x6d\x6f\x76\x65\x28\x30\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x43\x69\x72\x63\x6c\x65\x2c\x20\x61\x32\x2e\x46\x58\x2c\x20\x7b\x20\x72\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x72\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x72\x78\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x45\x6c\x6c\x69\x70\x73\x65\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x65\x6c\x6c\x69\x70\x73\x65\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x65\x6c\x6c\x69\x70\x73\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x45\x6c\x6c\x69\x70\x73\x65\x28\x29\x29\x2e\x73\x69\x7a\x65\x28\x74\x33\x2c\x20\x65\x33\x29\x2e\x6d\x6f\x76\x65\x28\x30\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x6c\x69\x70\x73\x65\x2c\x20\x61\x32\x2e\x52\x65\x63\x74\x2c\x20\x61\x32\x2e\x46\x58\x2c\x20\x7b\x20\x72\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x72\x78\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x72\x79\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x43\x69\x72\x63\x6c\x65\x2c\x20\x61\x32\x2e\x45\x6c\x6c\x69\x70\x73\x65\x2c\x20\x7b\x20\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x78\x28\x29\x20\x2d\x20\x74\x68\x69\x73\x2e\x72\x78\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x78\x28\x74\x33\x20\x2b\x20\x74\x68\x69\x73\x2e\x72\x78\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x79\x28\x29\x20\x2d\x20\x74\x68\x69\x73\x2e\x72\x79\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x79\x28\x74\x33\x20\x2b\x20\x74\x68\x69\x73\x2e\x72\x79\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x63\x78\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x63\x78\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x63\x79\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x63\x79\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x72\x78\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x72\x78\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2e\x64\x69\x76\x69\x64\x65\x28\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x72\x79\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x72\x79\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2e\x64\x69\x76\x69\x64\x65\x28\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x69\x7a\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x75\x32\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x72\x78\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x69\x32\x2e\x77\x69\x64\x74\x68\x29\x2e\x64\x69\x76\x69\x64\x65\x28\x32\x29\x29\x2e\x72\x79\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x2e\x64\x69\x76\x69\x64\x65\x28\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x4c\x69\x6e\x65\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x6c\x69\x6e\x65\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x61\x72\x72\x61\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x28\x5b\x5b\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x78\x31\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x79\x31\x22\x29\x5d\x2c\x20\x5b\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x78\x32\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x79\x32\x22\x29\x5d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x72\x72\x61\x79\x28\x29\x20\x3a\x20\x28\x74\x33\x20\x3d\x20\x65\x33\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x7b\x20\x78\x31\x3a\x20\x74\x33\x2c\x20\x79\x31\x3a\x20\x65\x33\x2c\x20\x78\x32\x3a\x20\x69\x32\x2c\x20\x79\x32\x3a\x20\x73\x33\x20\x7d\x20\x3a\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x28\x74\x33\x29\x2e\x74\x6f\x4c\x69\x6e\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x74\x68\x69\x73\x2e\x61\x72\x72\x61\x79\x28\x29\x2e\x6d\x6f\x76\x65\x28\x74\x33\x2c\x20\x65\x33\x29\x2e\x74\x6f\x4c\x69\x6e\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x69\x7a\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x75\x32\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x74\x68\x69\x73\x2e\x61\x72\x72\x61\x79\x28\x29\x2e\x73\x69\x7a\x65\x28\x69\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x2e\x74\x6f\x4c\x69\x6e\x65\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x6c\x69\x6e\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x4c\x69\x6e\x65\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x6c\x6f\x74\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x4c\x69\x6e\x65\x28\x29\x29\x2c\x20\x74\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x5b\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x73\x33\x5d\x20\x3a\x20\x5b\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x50\x6f\x6c\x79\x6c\x69\x6e\x65\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x70\x6f\x6c\x79\x6c\x69\x6e\x65\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x70\x6f\x6c\x79\x6c\x69\x6e\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x6c\x79\x6c\x69\x6e\x65\x28\x29\x29\x2e\x70\x6c\x6f\x74\x28\x74\x33\x20\x7c\x7c\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x50\x6f\x6c\x79\x67\x6f\x6e\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x70\x6f\x6c\x79\x67\x6f\x6e\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x70\x6f\x6c\x79\x67\x6f\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x6c\x79\x67\x6f\x6e\x28\x29\x29\x2e\x70\x6c\x6f\x74\x28\x74\x33\x20\x7c\x7c\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x50\x6f\x6c\x79\x6c\x69\x6e\x65\x2c\x20\x61\x32\x2e\x50\x6f\x6c\x79\x67\x6f\x6e\x2c\x20\x7b\x20\x61\x72\x72\x61\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x61\x72\x72\x61\x79\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x5f\x61\x72\x72\x61\x79\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x70\x6f\x69\x6e\x74\x73\x22\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x72\x72\x61\x79\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x28\x29\x2e\x61\x74\x74\x72\x28\x22\x70\x6f\x69\x6e\x74\x73\x22\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x33\x20\x3a\x20\x74\x68\x69\x73\x2e\x5f\x61\x72\x72\x61\x79\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x65\x61\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x5f\x61\x72\x72\x61\x79\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x70\x6f\x69\x6e\x74\x73\x22\x2c\x20\x74\x68\x69\x73\x2e\x61\x72\x72\x61\x79\x28\x29\x2e\x6d\x6f\x76\x65\x28\x74\x33\x2c\x20\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x69\x7a\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x75\x32\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x70\x6f\x69\x6e\x74\x73\x22\x2c\x20\x74\x68\x69\x73\x2e\x61\x72\x72\x61\x79\x28\x29\x2e\x73\x69\x7a\x65\x28\x69\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x4c\x69\x6e\x65\x2c\x20\x61\x32\x2e\x50\x6f\x6c\x79\x6c\x69\x6e\x65\x2c\x20\x61\x32\x2e\x50\x6f\x6c\x79\x67\x6f\x6e\x2c\x20\x7b\x20\x6d\x6f\x72\x70\x68\x41\x72\x72\x61\x79\x3a\x20\x61\x32\x2e\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x2c\x20\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x62\x62\x6f\x78\x28\x29\x2e\x78\x20\x3a\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x28\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x62\x62\x6f\x78\x28\x29\x2e\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x62\x62\x6f\x78\x28\x29\x2e\x79\x20\x3a\x20\x74\x68\x69\x73\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x62\x62\x6f\x78\x28\x29\x2e\x78\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x65\x33\x2e\x77\x69\x64\x74\x68\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x28\x74\x33\x2c\x20\x65\x33\x2e\x68\x65\x69\x67\x68\x74\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x65\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x69\x7a\x65\x28\x65\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x50\x61\x74\x68\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x70\x61\x74\x68\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x6d\x6f\x72\x70\x68\x41\x72\x72\x61\x79\x3a\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x2c\x20\x61\x72\x72\x61\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x61\x72\x72\x61\x79\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x5f\x61\x72\x72\x61\x79\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x64\x22\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x72\x72\x61\x79\x28\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x28\x29\x2e\x61\x74\x74\x72\x28\x22\x64\x22\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x33\x20\x3a\x20\x74\x68\x69\x73\x2e\x5f\x61\x72\x72\x61\x79\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x65\x61\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x5f\x61\x72\x72\x61\x79\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x70\x61\x74\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x50\x61\x74\x68\x28\x29\x29\x2e\x70\x6c\x6f\x74\x28\x74\x33\x20\x7c\x7c\x20\x6e\x65\x77\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x49\x6d\x61\x67\x65\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x69\x6d\x61\x67\x65\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x6c\x6f\x61\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x73\x33\x20\x3d\x20\x6e\x65\x77\x20\x74\x32\x2e\x49\x6d\x61\x67\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x6f\x6e\x28\x73\x33\x2c\x20\x22\x6c\x6f\x61\x64\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x6f\x66\x66\x28\x73\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x69\x32\x2e\x70\x61\x72\x65\x6e\x74\x28\x61\x32\x2e\x50\x61\x74\x74\x65\x72\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x69\x32\x2e\x77\x69\x64\x74\x68\x28\x29\x20\x3d\x3d\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x28\x29\x20\x3d\x3d\x20\x30\x20\x26\x26\x20\x69\x32\x2e\x73\x69\x7a\x65\x28\x73\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x73\x33\x2e\x68\x65\x69\x67\x68\x74\x29\x2c\x20\x74\x33\x20\x26\x26\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x28\x29\x20\x3d\x3d\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x28\x29\x20\x3d\x3d\x20\x30\x20\x26\x26\x20\x74\x33\x2e\x73\x69\x7a\x65\x28\x69\x32\x2e\x77\x69\x64\x74\x68\x28\x29\x2c\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x28\x29\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x2e\x5f\x6c\x6f\x61\x64\x65\x64\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x69\x32\x2e\x5f\x6c\x6f\x61\x64\x65\x64\x2e\x63\x61\x6c\x6c\x28\x69\x32\x2c\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x73\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x73\x33\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x72\x61\x74\x69\x6f\x3a\x20\x73\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x73\x33\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x75\x72\x6c\x3a\x20\x65\x33\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x6f\x6e\x28\x73\x33\x2c\x20\x22\x65\x72\x72\x6f\x72\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x6f\x66\x66\x28\x73\x33\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x2e\x5f\x65\x72\x72\x6f\x72\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x69\x32\x2e\x5f\x65\x72\x72\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x69\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x68\x72\x65\x66\x22\x2c\x20\x73\x33\x2e\x73\x72\x63\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x72\x63\x20\x3d\x20\x65\x33\x2c\x20\x61\x32\x2e\x78\x6c\x69\x6e\x6b\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6c\x6f\x61\x64\x65\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x6c\x6f\x61\x64\x65\x64\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x72\x72\x6f\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x65\x72\x72\x6f\x72\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x69\x6d\x61\x67\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x49\x6d\x61\x67\x65\x28\x29\x29\x2e\x6c\x6f\x61\x64\x28\x74\x33\x29\x2e\x73\x69\x7a\x65\x28\x65\x33\x20\x7c\x7c\x20\x30\x2c\x20\x69\x32\x20\x7c\x7c\x20\x65\x33\x20\x7c\x7c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x54\x65\x78\x74\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x61\x32\x2e\x63\x72\x65\x61\x74\x65\x28\x22\x74\x65\x78\x74\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x2e\x6c\x65\x61\x64\x69\x6e\x67\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x31\x2e\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x72\x65\x62\x75\x69\x6c\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x5f\x62\x75\x69\x6c\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x22\x2c\x20\x61\x32\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x2e\x61\x74\x74\x72\x73\x5b\x22\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x22\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x78\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x78\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x65\x78\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2c\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x73\x33\x20\x3d\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x20\x3c\x20\x73\x33\x3b\x20\x2b\x2b\x69\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x21\x3d\x20\x30\x20\x26\x26\x20\x65\x33\x5b\x69\x32\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x20\x21\x3d\x20\x33\x20\x26\x26\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x65\x33\x5b\x69\x32\x5d\x29\x2e\x64\x6f\x6d\x2e\x6e\x65\x77\x4c\x69\x6e\x65\x64\x20\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x74\x33\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x29\x2c\x20\x74\x33\x20\x2b\x3d\x20\x65\x33\x5b\x69\x32\x5d\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x28\x29\x2e\x62\x75\x69\x6c\x64\x28\x74\x72\x75\x65\x29\x2c\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x2e\x73\x70\x6c\x69\x74\x28\x22\x5c\x6e\x22\x29\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x20\x3c\x20\x72\x33\x3b\x20\x69\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x73\x70\x61\x6e\x28\x74\x33\x5b\x69\x32\x5d\x29\x2e\x6e\x65\x77\x4c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x75\x69\x6c\x64\x28\x66\x61\x6c\x73\x65\x29\x2e\x72\x65\x62\x75\x69\x6c\x64\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x69\x7a\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x2c\x20\x74\x33\x29\x2e\x72\x65\x62\x75\x69\x6c\x64\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6c\x65\x61\x64\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x2e\x6c\x65\x61\x64\x69\x6e\x67\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x64\x6f\x6d\x2e\x6c\x65\x61\x64\x69\x6e\x67\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x62\x75\x69\x6c\x64\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6c\x69\x6e\x65\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x28\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x50\x61\x74\x68\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x50\x61\x74\x68\x28\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x29\x2e\x6e\x6f\x64\x65\x2c\x20\x65\x33\x20\x3d\x20\x61\x32\x2e\x75\x74\x69\x6c\x73\x2e\x6d\x61\x70\x28\x61\x32\x2e\x75\x74\x69\x6c\x73\x2e\x66\x69\x6c\x74\x65\x72\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x74\x33\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x53\x65\x74\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x62\x75\x69\x6c\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x5f\x72\x65\x62\x75\x69\x6c\x64\x20\x3d\x20\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x5f\x72\x65\x62\x75\x69\x6c\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x73\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x2e\x6c\x65\x61\x64\x69\x6e\x67\x20\x2a\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x73\x28\x29\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x2e\x6e\x65\x77\x4c\x69\x6e\x65\x64\x20\x26\x26\x20\x28\x65\x33\x2e\x74\x65\x78\x74\x50\x61\x74\x68\x28\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x78\x22\x2c\x20\x65\x33\x2e\x61\x74\x74\x72\x28\x22\x78\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x28\x29\x20\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x3f\x20\x69\x32\x20\x2b\x3d\x20\x73\x33\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x64\x79\x22\x2c\x20\x73\x33\x20\x2b\x20\x69\x32\x29\x2c\x20\x69\x32\x20\x3d\x20\x30\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x66\x69\x72\x65\x28\x22\x72\x65\x62\x75\x69\x6c\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x62\x75\x69\x6c\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x62\x75\x69\x6c\x64\x20\x3d\x20\x21\x21\x74\x33\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x65\x74\x44\x61\x74\x61\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x2e\x6c\x65\x61\x64\x69\x6e\x67\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x2e\x6c\x65\x61\x64\x69\x6e\x67\x20\x7c\x7c\x20\x31\x2e\x33\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x54\x65\x78\x74\x28\x29\x29\x2e\x74\x65\x78\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6c\x61\x69\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x54\x65\x78\x74\x28\x29\x29\x2e\x70\x6c\x61\x69\x6e\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x54\x73\x70\x61\x6e\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x74\x73\x70\x61\x6e\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x74\x65\x78\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x2b\x20\x28\x74\x68\x69\x73\x2e\x64\x6f\x6d\x2e\x6e\x65\x77\x4c\x69\x6e\x65\x64\x20\x3f\x20\x22\x5c\x6e\x22\x20\x3a\x20\x22\x22\x29\x20\x3a\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x74\x33\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x6c\x61\x69\x6e\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x64\x78\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x64\x79\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6e\x65\x77\x4c\x69\x6e\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x61\x32\x2e\x54\x65\x78\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x2e\x6e\x65\x77\x4c\x69\x6e\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x68\x69\x73\x2e\x64\x79\x28\x74\x33\x2e\x64\x6f\x6d\x2e\x6c\x65\x61\x64\x69\x6e\x67\x20\x2a\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x29\x29\x2e\x61\x74\x74\x72\x28\x22\x78\x22\x2c\x20\x74\x33\x2e\x78\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x54\x65\x78\x74\x2c\x20\x61\x32\x2e\x54\x73\x70\x61\x6e\x2c\x20\x7b\x20\x70\x6c\x61\x69\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x62\x75\x69\x6c\x64\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x65\x32\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x74\x33\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x73\x70\x61\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x28\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x50\x61\x74\x68\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x50\x61\x74\x68\x28\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x29\x2e\x6e\x6f\x64\x65\x2c\x20\x69\x32\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x54\x73\x70\x61\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x62\x75\x69\x6c\x64\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x28\x29\x2c\x20\x65\x33\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x69\x32\x2e\x6e\x6f\x64\x65\x29\x2c\x20\x69\x32\x2e\x74\x65\x78\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x65\x61\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x28\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x50\x61\x74\x68\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x50\x61\x74\x68\x28\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x29\x2e\x6e\x6f\x64\x65\x3b\x20\x74\x33\x2e\x68\x61\x73\x43\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x28\x29\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x74\x33\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6c\x65\x6e\x67\x74\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x54\x65\x78\x74\x4c\x65\x6e\x67\x74\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x54\x65\x78\x74\x50\x61\x74\x68\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x74\x65\x78\x74\x50\x61\x74\x68\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x50\x61\x72\x65\x6e\x74\x2c\x20\x70\x61\x72\x65\x6e\x74\x3a\x20\x61\x32\x2e\x54\x65\x78\x74\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x6d\x6f\x72\x70\x68\x41\x72\x72\x61\x79\x3a\x20\x61\x32\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x2c\x20\x61\x72\x72\x61\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x63\x6b\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3f\x20\x74\x33\x2e\x61\x72\x72\x61\x79\x28\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6c\x6f\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x63\x6b\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x65\x33\x2e\x70\x6c\x6f\x74\x28\x74\x33\x29\x29\x2c\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x69\x32\x20\x3a\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x72\x61\x63\x6b\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x65\x78\x74\x50\x61\x74\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x28\x22\x68\x72\x65\x66\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x65\x78\x74\x50\x61\x74\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x20\x3d\x3d\x20\x22\x74\x65\x78\x74\x50\x61\x74\x68\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x4e\x65\x73\x74\x65\x64\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x61\x32\x2e\x63\x72\x65\x61\x74\x65\x28\x22\x73\x76\x67\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x28\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x22\x2c\x20\x22\x76\x69\x73\x69\x62\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x61\x32\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x6e\x65\x73\x74\x65\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x65\x73\x74\x65\x64\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x7b\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x5b\x22\x63\x6f\x6c\x6f\x72\x22\x2c\x20\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x20\x22\x6c\x69\x6e\x65\x63\x61\x70\x22\x2c\x20\x22\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x22\x2c\x20\x22\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x22\x2c\x20\x22\x64\x61\x73\x68\x61\x72\x72\x61\x79\x22\x2c\x20\x22\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x22\x5d\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x5b\x22\x63\x6f\x6c\x6f\x72\x22\x2c\x20\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x20\x22\x72\x75\x6c\x65\x22\x5d\x2c\x20\x70\x72\x65\x66\x69\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x3d\x3d\x20\x22\x63\x6f\x6c\x6f\x72\x22\x20\x3f\x20\x74\x33\x20\x3a\x20\x74\x33\x20\x2b\x20\x22\x2d\x22\x20\x2b\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x33\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x2b\x20\x73\x33\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x64\x6f\x74\x73\x2c\x20\x22\x20\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x2d\x28\x2e\x29\x2f\x67\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x20\x2b\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x31\x36\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x31\x20\x3f\x20\x22\x30\x22\x20\x2b\x20\x65\x33\x20\x3a\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x75\x32\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x69\x32\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x74\x33\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x65\x33\x20\x3d\x20\x61\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x61\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2a\x20\x69\x32\x20\x3a\x20\x69\x32\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x61\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x61\x33\x2e\x77\x69\x64\x74\x68\x20\x2a\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x65\x33\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x33\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x65\x33\x20\x2a\x20\x74\x33\x2e\x61\x20\x2b\x20\x69\x32\x20\x2a\x20\x74\x33\x2e\x63\x20\x2b\x20\x30\x2c\x20\x79\x3a\x20\x65\x33\x20\x2a\x20\x74\x33\x2e\x62\x20\x2b\x20\x69\x32\x20\x2a\x20\x74\x33\x2e\x64\x20\x2b\x20\x30\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x61\x3a\x20\x74\x33\x5b\x30\x5d\x2c\x20\x62\x3a\x20\x74\x33\x5b\x31\x5d\x2c\x20\x63\x3a\x20\x74\x33\x5b\x32\x5d\x2c\x20\x64\x3a\x20\x74\x33\x5b\x33\x5d\x2c\x20\x65\x3a\x20\x74\x33\x5b\x34\x5d\x2c\x20\x66\x3a\x20\x74\x33\x5b\x35\x5d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x78\x32\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x33\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x69\x32\x20\x3e\x3d\x20\x30\x3b\x20\x69\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x33\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x5b\x69\x32\x5d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x74\x32\x2e\x53\x56\x47\x45\x6c\x65\x6d\x65\x6e\x74\x20\x26\x26\x20\x78\x32\x28\x65\x33\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x65\x33\x29\x2e\x69\x64\x28\x61\x32\x2e\x65\x69\x64\x28\x65\x33\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x78\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x74\x33\x2e\x78\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x79\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x20\x3d\x20\x30\x2c\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x20\x30\x29\x2c\x20\x74\x33\x2e\x77\x20\x3d\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x33\x2e\x68\x20\x3d\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x74\x33\x2e\x78\x32\x20\x3d\x20\x74\x33\x2e\x78\x20\x2b\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x2c\x20\x74\x33\x2e\x79\x32\x20\x3d\x20\x74\x33\x2e\x79\x20\x2b\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x74\x33\x2e\x63\x78\x20\x3d\x20\x74\x33\x2e\x78\x20\x2b\x20\x74\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x74\x33\x2e\x63\x79\x20\x3d\x20\x74\x33\x2e\x79\x20\x2b\x20\x74\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x76\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x74\x33\x29\x20\x3e\x20\x31\x65\x2d\x33\x37\x20\x3f\x20\x74\x33\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x5b\x22\x66\x69\x6c\x6c\x22\x2c\x20\x22\x73\x74\x72\x6f\x6b\x65\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x33\x5b\x74\x33\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x34\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x34\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x7c\x7c\x20\x61\x32\x2e\x43\x6f\x6c\x6f\x72\x2e\x69\x73\x52\x67\x62\x28\x65\x34\x29\x20\x7c\x7c\x20\x65\x34\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x34\x2e\x66\x69\x6c\x6c\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x74\x33\x2c\x20\x65\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x6c\x32\x5b\x74\x33\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x69\x32\x20\x3e\x3d\x20\x30\x3b\x20\x69\x32\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x34\x5b\x6c\x32\x5b\x74\x33\x5d\x5b\x69\x32\x5d\x5d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x6c\x32\x2e\x70\x72\x65\x66\x69\x78\x28\x74\x33\x2c\x20\x6c\x32\x5b\x74\x33\x5d\x5b\x69\x32\x5d\x29\x2c\x20\x65\x34\x5b\x6c\x32\x5b\x74\x33\x5d\x5b\x69\x32\x5d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x61\x32\x2e\x46\x58\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x61\x32\x2e\x46\x58\x2c\x20\x7b\x20\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x61\x74\x72\x69\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x22\x2c\x20\x6e\x65\x77\x20\x61\x32\x2e\x4d\x61\x74\x72\x69\x78\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x36\x20\x3f\x20\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x20\x3a\x20\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x78\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2e\x70\x6c\x75\x73\x28\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x46\x58\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x78\x28\x29\x29\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x79\x28\x6e\x65\x77\x20\x61\x32\x2e\x4e\x75\x6d\x62\x65\x72\x28\x74\x33\x29\x2e\x70\x6c\x75\x73\x28\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x61\x32\x2e\x46\x58\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x79\x28\x29\x29\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x50\x61\x74\x68\x2c\x20\x7b\x20\x6c\x65\x6e\x67\x74\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x54\x6f\x74\x61\x6c\x4c\x65\x6e\x67\x74\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6f\x69\x6e\x74\x41\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x50\x6f\x69\x6e\x74\x41\x74\x4c\x65\x6e\x67\x74\x68\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x53\x65\x74\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x20\x3d\x20\x74\x33\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x61\x64\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x5b\x5d\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2c\x20\x65\x33\x20\x3d\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x33\x20\x3c\x20\x69\x32\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x65\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x6d\x6f\x76\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x78\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x20\x3e\x20\x2d\x31\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x65\x33\x2c\x20\x31\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x65\x61\x63\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x33\x20\x3c\x20\x69\x32\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x65\x33\x5d\x2c\x20\x5b\x65\x33\x2c\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6c\x65\x61\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6c\x65\x6e\x67\x74\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x68\x61\x73\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x78\x28\x74\x33\x29\x20\x3e\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x64\x65\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x67\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x74\x33\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x69\x72\x73\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6c\x61\x73\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x76\x61\x6c\x75\x65\x4f\x66\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x3a\x20\x7b\x20\x73\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x53\x65\x74\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x46\x58\x2e\x53\x65\x74\x20\x3d\x20\x61\x32\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x53\x65\x74\x2e\x69\x6e\x68\x65\x72\x69\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x69\x6e\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x53\x68\x61\x70\x65\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x5b\x65\x33\x5d\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x53\x65\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x5b\x65\x33\x5d\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x69\x6e\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x53\x65\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x5b\x74\x34\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x34\x20\x3d\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x34\x20\x3c\x20\x69\x32\x3b\x20\x65\x34\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x65\x34\x5d\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x65\x34\x5d\x5b\x74\x34\x5d\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x65\x34\x5d\x5b\x74\x34\x5d\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x65\x34\x5d\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x20\x3d\x3d\x20\x22\x61\x6e\x69\x6d\x61\x74\x65\x22\x20\x3f\x20\x74\x68\x69\x73\x2e\x66\x78\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x66\x78\x20\x3d\x20\x6e\x65\x77\x20\x61\x32\x2e\x46\x58\x2e\x53\x65\x74\x28\x74\x68\x69\x73\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x33\x20\x3d\x20\x5b\x5d\x2c\x20\x61\x32\x2e\x46\x58\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x46\x58\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x5b\x65\x33\x5d\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x2e\x46\x58\x2e\x53\x65\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x5b\x65\x33\x5d\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x70\x75\x73\x68\x28\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x46\x58\x2e\x53\x65\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x5b\x74\x34\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x34\x20\x3d\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x2e\x6d\x65\x6d\x62\x65\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x34\x20\x3c\x20\x69\x32\x3b\x20\x65\x34\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x65\x34\x5d\x2e\x66\x78\x5b\x74\x34\x5d\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2e\x73\x65\x74\x2e\x6d\x65\x6d\x62\x65\x72\x73\x5b\x65\x34\x5d\x2e\x66\x78\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x7d\x29\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x72\x65\x6d\x65\x6d\x62\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x33\x20\x69\x6e\x20\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x65\x6d\x62\x65\x72\x28\x61\x33\x2c\x20\x74\x33\x5b\x61\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x28\x29\x5b\x74\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x28\x29\x5b\x74\x33\x5d\x20\x3d\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x6f\x72\x67\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x5f\x6d\x65\x6d\x6f\x72\x79\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x74\x33\x20\x3e\x3d\x20\x30\x3b\x20\x74\x33\x2d\x2d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x28\x29\x5b\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x74\x33\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x65\x6d\x6f\x72\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x5f\x6d\x65\x6d\x6f\x72\x79\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x5f\x6d\x65\x6d\x6f\x72\x79\x20\x3d\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x61\x32\x2e\x67\x65\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x65\x32\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x28\x74\x34\x20\x7c\x7c\x20\x22\x22\x29\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x6d\x61\x74\x63\x68\x28\x61\x32\x2e\x72\x65\x67\x65\x78\x2e\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x33\x29\x20\x7c\x7c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x73\x65\x6c\x65\x63\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x32\x2e\x53\x65\x74\x28\x61\x32\x2e\x75\x74\x69\x6c\x73\x2e\x6d\x61\x70\x28\x28\x69\x32\x20\x7c\x7c\x20\x65\x32\x29\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x74\x33\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x64\x6f\x70\x74\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x61\x32\x2e\x65\x78\x74\x65\x6e\x64\x28\x61\x32\x2e\x50\x61\x72\x65\x6e\x74\x2c\x20\x7b\x20\x73\x65\x6c\x65\x63\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x73\x65\x6c\x65\x63\x74\x28\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x32\x20\x3d\x20\x22\x61\x62\x63\x64\x65\x66\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x32\x2e\x43\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x79\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x69\x32\x20\x7c\x7c\x20\x7b\x20\x62\x75\x62\x62\x6c\x65\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x61\x6e\x63\x65\x6c\x61\x62\x6c\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x64\x65\x74\x61\x69\x6c\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x65\x32\x2e\x63\x72\x65\x61\x74\x65\x45\x76\x65\x6e\x74\x28\x22\x43\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x33\x2e\x69\x6e\x69\x74\x43\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x28\x74\x33\x2c\x20\x69\x32\x2e\x62\x75\x62\x62\x6c\x65\x73\x2c\x20\x69\x32\x2e\x63\x61\x6e\x63\x65\x6c\x61\x62\x6c\x65\x2c\x20\x69\x32\x2e\x64\x65\x74\x61\x69\x6c\x29\x2c\x20\x61\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x20\x3d\x20\x74\x32\x2e\x45\x76\x65\x6e\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2c\x20\x61\x32\x2e\x43\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x20\x3d\x20\x79\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x43\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x20\x3d\x20\x74\x32\x2e\x43\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x7d\x2c\x20\x69\x28\x65\x78\x70\x6f\x72\x74\x73\x29\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x74\x72\x75\x65\x20\x3f\x20\x6d\x6f\x64\x75\x6c\x65\x2e\x65\x78\x70\x6f\x72\x74\x73\x20\x3d\x20\x49\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x20\x3f\x20\x7a\x74\x28\x49\x74\x2c\x20\x49\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x29\x20\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7a\x74\x28\x74\x32\x2c\x20\x74\x32\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x29\x3b\x0a\x20\x20\x7d\x20\x3a\x20\x49\x74\x2e\x53\x56\x47\x20\x3d\x20\x7a\x74\x28\x49\x74\x2c\x20\x49\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x53\x56\x47\x2e\x46\x69\x6c\x74\x65\x72\x20\x3d\x20\x53\x56\x47\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x22\x66\x69\x6c\x74\x65\x72\x22\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x53\x56\x47\x2e\x50\x61\x72\x65\x6e\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x22\x53\x6f\x75\x72\x63\x65\x47\x72\x61\x70\x68\x69\x63\x22\x2c\x20\x73\x6f\x75\x72\x63\x65\x41\x6c\x70\x68\x61\x3a\x20\x22\x53\x6f\x75\x72\x63\x65\x41\x6c\x70\x68\x61\x22\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x22\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x49\x6d\x61\x67\x65\x22\x2c\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x41\x6c\x70\x68\x61\x3a\x20\x22\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x41\x6c\x70\x68\x61\x22\x2c\x20\x66\x69\x6c\x6c\x3a\x20\x22\x46\x69\x6c\x6c\x50\x61\x69\x6e\x74\x22\x2c\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x22\x53\x74\x72\x6f\x6b\x65\x50\x61\x69\x6e\x74\x22\x2c\x20\x61\x75\x74\x6f\x53\x65\x74\x49\x6e\x3a\x20\x74\x72\x75\x65\x2c\x20\x70\x75\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x74\x33\x2c\x20\x65\x33\x29\x2c\x20\x21\x74\x33\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x75\x74\x6f\x53\x65\x74\x49\x6e\x20\x26\x26\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x2c\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x29\x2c\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x22\x72\x65\x73\x75\x6c\x74\x22\x29\x20\x7c\x7c\x20\x74\x33\x2e\x61\x74\x74\x72\x28\x22\x72\x65\x73\x75\x6c\x74\x22\x2c\x20\x74\x33\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x62\x6c\x65\x6e\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x42\x6c\x65\x6e\x64\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6c\x6f\x72\x4d\x61\x74\x72\x69\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x43\x6f\x6c\x6f\x72\x4d\x61\x74\x72\x69\x78\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6e\x76\x6f\x6c\x76\x65\x4d\x61\x74\x72\x69\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x43\x6f\x6e\x76\x6f\x6c\x76\x65\x4d\x61\x74\x72\x69\x78\x45\x66\x66\x65\x63\x74\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x65\x72\x45\x66\x66\x65\x63\x74\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x43\x6f\x6d\x70\x6f\x73\x69\x74\x65\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x6c\x6f\x6f\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x46\x6c\x6f\x6f\x64\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x4f\x66\x66\x73\x65\x74\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6d\x61\x67\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x49\x6d\x61\x67\x65\x45\x66\x66\x65\x63\x74\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x65\x72\x67\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x5b\x76\x6f\x69\x64\x20\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x69\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x70\x75\x73\x68\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x65\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x28\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x45\x66\x66\x65\x63\x74\x2e\x62\x69\x6e\x64\x2e\x61\x70\x70\x6c\x79\x28\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x45\x66\x66\x65\x63\x74\x2c\x20\x74\x33\x29\x29\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x67\x61\x75\x73\x73\x69\x61\x6e\x42\x6c\x75\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x47\x61\x75\x73\x73\x69\x61\x6e\x42\x6c\x75\x72\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x72\x70\x68\x6f\x6c\x6f\x67\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x6f\x72\x70\x68\x6f\x6c\x6f\x67\x79\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x69\x66\x66\x75\x73\x65\x4c\x69\x67\x68\x74\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x44\x69\x66\x66\x75\x73\x65\x4c\x69\x67\x68\x74\x69\x6e\x67\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x69\x73\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x4d\x61\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x44\x69\x73\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x4d\x61\x70\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x70\x65\x63\x75\x6c\x61\x72\x4c\x69\x67\x68\x74\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x53\x70\x65\x63\x75\x6c\x61\x72\x4c\x69\x67\x68\x74\x69\x6e\x67\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x69\x6c\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x54\x69\x6c\x65\x45\x66\x66\x65\x63\x74\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x75\x72\x62\x75\x6c\x65\x6e\x63\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x54\x75\x72\x62\x75\x6c\x65\x6e\x63\x65\x45\x66\x66\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x75\x72\x6c\x28\x23\x22\x20\x2b\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x64\x22\x29\x20\x2b\x20\x22\x29\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x44\x65\x66\x73\x2c\x20\x7b\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x46\x69\x6c\x74\x65\x72\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x63\x61\x6c\x6c\x28\x65\x33\x2c\x20\x65\x33\x29\x2c\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x43\x6f\x6e\x74\x61\x69\x6e\x65\x72\x2c\x20\x7b\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x66\x73\x28\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x53\x56\x47\x2e\x47\x2c\x20\x53\x56\x47\x2e\x4e\x65\x73\x74\x65\x64\x2c\x20\x7b\x20\x66\x69\x6c\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x20\x3d\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x20\x3f\x20\x74\x33\x20\x3a\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x28\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2e\x64\x6f\x63\x28\x29\x20\x21\x3d\x3d\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x28\x29\x2e\x64\x65\x66\x73\x28\x29\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x66\x69\x6c\x74\x65\x72\x22\x2c\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x29\x2c\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x75\x6e\x66\x69\x6c\x74\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x20\x26\x26\x20\x74\x33\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x65\x72\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x66\x69\x6c\x74\x65\x72\x22\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x45\x66\x66\x65\x63\x74\x20\x3d\x20\x53\x56\x47\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x69\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x73\x65\x6c\x65\x63\x74\x28\x27\x5b\x72\x65\x73\x75\x6c\x74\x3d\x22\x27\x20\x2b\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x29\x20\x2b\x20\x27\x22\x5d\x27\x29\x2e\x67\x65\x74\x28\x30\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x73\x75\x6c\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x72\x65\x73\x75\x6c\x74\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x72\x65\x73\x75\x6c\x74\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x72\x65\x73\x75\x6c\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x50\x61\x72\x65\x6e\x74\x45\x66\x66\x65\x63\x74\x20\x3d\x20\x53\x56\x47\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x53\x56\x47\x2e\x50\x61\x72\x65\x6e\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x69\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x73\x65\x6c\x65\x63\x74\x28\x27\x5b\x72\x65\x73\x75\x6c\x74\x3d\x22\x27\x20\x2b\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x29\x20\x2b\x20\x27\x22\x5d\x27\x29\x2e\x67\x65\x74\x28\x30\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x72\x65\x73\x75\x6c\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x72\x65\x73\x75\x6c\x74\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x72\x65\x73\x75\x6c\x74\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x72\x65\x73\x75\x6c\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x74\x32\x20\x3d\x20\x7b\x20\x62\x6c\x65\x6e\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x62\x6c\x65\x6e\x64\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6c\x6f\x72\x4d\x61\x74\x72\x69\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x63\x6f\x6c\x6f\x72\x4d\x61\x74\x72\x69\x78\x28\x74\x33\x2c\x20\x65\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6e\x76\x6f\x6c\x76\x65\x4d\x61\x74\x72\x69\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x63\x6f\x6e\x76\x6f\x6c\x76\x65\x4d\x61\x74\x72\x69\x78\x28\x74\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x65\x72\x28\x74\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x6c\x6f\x6f\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x66\x6c\x6f\x6f\x64\x28\x74\x33\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x6f\x66\x66\x73\x65\x74\x28\x74\x33\x2c\x20\x65\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6d\x61\x67\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x69\x6d\x61\x67\x65\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x65\x72\x67\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x6d\x65\x72\x67\x65\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2c\x20\x5b\x74\x68\x69\x73\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x67\x61\x75\x73\x73\x69\x61\x6e\x42\x6c\x75\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x67\x61\x75\x73\x73\x69\x61\x6e\x42\x6c\x75\x72\x28\x74\x33\x2c\x20\x65\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x72\x70\x68\x6f\x6c\x6f\x67\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x6d\x6f\x72\x70\x68\x6f\x6c\x6f\x67\x79\x28\x74\x33\x2c\x20\x65\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x69\x66\x66\x75\x73\x65\x4c\x69\x67\x68\x74\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x64\x69\x66\x66\x75\x73\x65\x4c\x69\x67\x68\x74\x69\x6e\x67\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x69\x73\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x4d\x61\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x64\x69\x73\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x4d\x61\x70\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x70\x65\x63\x75\x6c\x61\x72\x4c\x69\x67\x68\x74\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x73\x70\x65\x63\x75\x6c\x61\x72\x4c\x69\x67\x68\x74\x69\x6e\x67\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x69\x6c\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x74\x69\x6c\x65\x28\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x75\x72\x62\x75\x6c\x65\x6e\x63\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x74\x75\x72\x62\x75\x6c\x65\x6e\x63\x65\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x2e\x69\x6e\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x45\x66\x66\x65\x63\x74\x2c\x20\x74\x32\x29\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x50\x61\x72\x65\x6e\x74\x45\x66\x66\x65\x63\x74\x2c\x20\x74\x32\x29\x2c\x20\x53\x56\x47\x2e\x43\x68\x69\x6c\x64\x45\x66\x66\x65\x63\x74\x20\x3d\x20\x53\x56\x47\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x20\x69\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x7b\x20\x62\x6c\x65\x6e\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x69\x6e\x3a\x20\x74\x33\x2c\x20\x69\x6e\x32\x3a\x20\x65\x33\x2c\x20\x6d\x6f\x64\x65\x3a\x20\x69\x33\x20\x7c\x7c\x20\x22\x6e\x6f\x72\x6d\x61\x6c\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6c\x6f\x72\x4d\x61\x74\x72\x69\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x3d\x20\x22\x6d\x61\x74\x72\x69\x78\x22\x20\x26\x26\x20\x28\x65\x33\x20\x3d\x20\x73\x32\x28\x65\x33\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x74\x79\x70\x65\x3a\x20\x74\x33\x2c\x20\x76\x61\x6c\x75\x65\x73\x3a\x20\x65\x33\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x65\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6e\x76\x6f\x6c\x76\x65\x4d\x61\x74\x72\x69\x78\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x73\x32\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x6f\x72\x64\x65\x72\x3a\x20\x4d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x74\x33\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x29\x2c\x20\x6b\x65\x72\x6e\x65\x6c\x4d\x61\x74\x72\x69\x78\x3a\x20\x74\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6d\x70\x6f\x73\x69\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x69\x6e\x3a\x20\x74\x33\x2c\x20\x69\x6e\x32\x3a\x20\x65\x33\x2c\x20\x6f\x70\x65\x72\x61\x74\x6f\x72\x3a\x20\x69\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x66\x6c\x6f\x6f\x64\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x66\x6c\x6f\x6f\x64\x2d\x63\x6f\x6c\x6f\x72\x22\x2c\x20\x74\x33\x29\x2c\x20\x65\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x66\x6c\x6f\x6f\x64\x2d\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x64\x78\x3a\x20\x74\x33\x2c\x20\x64\x79\x3a\x20\x65\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x69\x6d\x61\x67\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x68\x72\x65\x66\x22\x2c\x20\x74\x33\x2c\x20\x53\x56\x47\x2e\x78\x6c\x69\x6e\x6b\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x69\x73\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x4d\x61\x70\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x69\x6e\x3a\x20\x74\x33\x2c\x20\x69\x6e\x32\x3a\x20\x65\x33\x2c\x20\x73\x63\x61\x6c\x65\x3a\x20\x69\x33\x2c\x20\x78\x43\x68\x61\x6e\x6e\x65\x6c\x53\x65\x6c\x65\x63\x74\x6f\x72\x3a\x20\x61\x33\x2c\x20\x79\x43\x68\x61\x6e\x6e\x65\x6c\x53\x65\x6c\x65\x63\x74\x6f\x72\x3a\x20\x73\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x67\x61\x75\x73\x73\x69\x61\x6e\x42\x6c\x75\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x65\x33\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x73\x74\x64\x44\x65\x76\x69\x61\x74\x69\x6f\x6e\x22\x2c\x20\x72\x32\x28\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x73\x74\x64\x44\x65\x76\x69\x61\x74\x69\x6f\x6e\x22\x2c\x20\x22\x30\x20\x30\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x6f\x72\x70\x68\x6f\x6c\x6f\x67\x79\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x6f\x70\x65\x72\x61\x74\x6f\x72\x3a\x20\x74\x33\x2c\x20\x72\x61\x64\x69\x75\x73\x3a\x20\x65\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x69\x6c\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x75\x72\x62\x75\x6c\x65\x6e\x63\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x6e\x75\x6d\x4f\x63\x74\x61\x76\x65\x73\x3a\x20\x65\x33\x2c\x20\x73\x65\x65\x64\x3a\x20\x69\x33\x2c\x20\x73\x74\x69\x74\x63\x68\x54\x69\x6c\x65\x73\x3a\x20\x61\x33\x2c\x20\x62\x61\x73\x65\x46\x72\x65\x71\x75\x65\x6e\x63\x79\x3a\x20\x74\x33\x2c\x20\x74\x79\x70\x65\x3a\x20\x73\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x69\x32\x20\x3d\x20\x7b\x20\x6d\x65\x72\x67\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x53\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x4e\x6f\x64\x65\x20\x3f\x20\x65\x33\x2e\x70\x75\x74\x28\x74\x68\x69\x73\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x45\x66\x66\x65\x63\x74\x20\x7c\x7c\x20\x74\x68\x69\x73\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x50\x61\x72\x65\x6e\x74\x45\x66\x66\x65\x63\x74\x29\x20\x26\x26\x20\x65\x33\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x4e\x6f\x64\x65\x28\x74\x68\x69\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x29\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x30\x3b\x20\x69\x33\x20\x3c\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x69\x33\x5d\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x4e\x6f\x64\x65\x20\x3f\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x74\x33\x5b\x69\x33\x5d\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x75\x74\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x4e\x6f\x64\x65\x28\x74\x33\x5b\x69\x33\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x65\x72\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x72\x67\x62\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x53\x65\x74\x28\x29\x2c\x20\x5b\x22\x72\x22\x2c\x20\x22\x67\x22\x2c\x20\x22\x62\x22\x2c\x20\x22\x61\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x5b\x74\x34\x5d\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x5b\x22\x46\x75\x6e\x63\x22\x20\x2b\x20\x74\x34\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x28\x22\x69\x64\x65\x6e\x74\x69\x74\x79\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x67\x62\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x5b\x74\x34\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x5b\x74\x34\x5d\x2e\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x29\x2c\x20\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x69\x6e\x20\x74\x33\x2e\x72\x67\x62\x20\x26\x26\x20\x28\x5b\x22\x72\x22\x2c\x20\x22\x67\x22\x2c\x20\x22\x62\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x5b\x65\x34\x5d\x2e\x61\x74\x74\x72\x28\x74\x33\x2e\x72\x67\x62\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x29\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x33\x2e\x72\x67\x62\x29\x2c\x20\x74\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x5b\x65\x33\x5d\x2e\x61\x74\x74\x72\x28\x74\x33\x5b\x65\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x64\x69\x66\x66\x75\x73\x65\x4c\x69\x67\x68\x74\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x73\x75\x72\x66\x61\x63\x65\x53\x63\x61\x6c\x65\x3a\x20\x74\x33\x2c\x20\x64\x69\x66\x66\x75\x73\x65\x43\x6f\x6e\x73\x74\x61\x6e\x74\x3a\x20\x65\x33\x2c\x20\x6b\x65\x72\x6e\x65\x6c\x55\x6e\x69\x74\x4c\x65\x6e\x67\x74\x68\x3a\x20\x69\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x70\x65\x63\x75\x6c\x61\x72\x4c\x69\x67\x68\x74\x69\x6e\x67\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x73\x75\x72\x66\x61\x63\x65\x53\x63\x61\x6c\x65\x3a\x20\x74\x33\x2c\x20\x64\x69\x66\x66\x75\x73\x65\x43\x6f\x6e\x73\x74\x61\x6e\x74\x3a\x20\x65\x33\x2c\x20\x73\x70\x65\x63\x75\x6c\x61\x72\x45\x78\x70\x6f\x6e\x65\x6e\x74\x3a\x20\x69\x33\x2c\x20\x6b\x65\x72\x6e\x65\x6c\x55\x6e\x69\x74\x4c\x65\x6e\x67\x74\x68\x3a\x20\x61\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x61\x32\x20\x3d\x20\x7b\x20\x64\x69\x73\x74\x61\x6e\x74\x4c\x69\x67\x68\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x61\x7a\x69\x6d\x75\x74\x68\x3a\x20\x74\x33\x2c\x20\x65\x6c\x65\x76\x61\x74\x69\x6f\x6e\x3a\x20\x65\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x70\x6f\x69\x6e\x74\x4c\x69\x67\x68\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x33\x2c\x20\x7a\x3a\x20\x69\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x73\x70\x6f\x74\x4c\x69\x67\x68\x74\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x2c\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x2c\x20\x72\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x7b\x20\x78\x3a\x20\x74\x33\x2c\x20\x79\x3a\x20\x65\x33\x2c\x20\x7a\x3a\x20\x69\x33\x2c\x20\x70\x6f\x69\x6e\x74\x73\x41\x74\x58\x3a\x20\x61\x33\x2c\x20\x70\x6f\x69\x6e\x74\x73\x41\x74\x59\x3a\x20\x73\x33\x2c\x20\x70\x6f\x69\x6e\x74\x73\x41\x74\x5a\x3a\x20\x72\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6d\x65\x72\x67\x65\x4e\x6f\x64\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x41\x72\x72\x61\x79\x28\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x5c\x73\x2b\x2f\x2c\x20\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x73\x2b\x24\x2f\x2c\x20\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x73\x2b\x2f\x67\x2c\x20\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x74\x33\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x30\x2c\x20\x69\x33\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x61\x33\x20\x3d\x20\x5b\x5d\x3b\x20\x65\x33\x20\x3c\x20\x69\x33\x3b\x20\x65\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x65\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x33\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6f\x32\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x33\x20\x69\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2c\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x70\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x2c\x20\x31\x29\x29\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x33\x20\x69\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x65\x33\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x65\x33\x5d\x5b\x69\x33\x5d\x2c\x20\x69\x33\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x65\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x5b\x22\x72\x22\x2c\x20\x22\x67\x22\x2c\x20\x22\x62\x22\x2c\x20\x22\x61\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x5b\x22\x46\x75\x6e\x63\x22\x20\x2b\x20\x74\x33\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x74\x79\x70\x65\x22\x2c\x20\x74\x34\x29\x2c\x20\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x74\x61\x62\x6c\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x74\x61\x62\x6c\x65\x56\x61\x6c\x75\x65\x73\x22\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6c\x69\x6e\x65\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x73\x6c\x6f\x70\x65\x22\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x74\x65\x72\x63\x65\x70\x74\x22\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x67\x61\x6d\x6d\x61\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x61\x6d\x70\x6c\x69\x74\x75\x64\x65\x22\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x65\x78\x70\x6f\x6e\x65\x6e\x74\x22\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x6f\x66\x66\x73\x65\x74\x22\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x29\x2c\x20\x6f\x32\x28\x65\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x65\x33\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x20\x2b\x20\x65\x33\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x53\x56\x47\x5b\x69\x33\x20\x2b\x20\x22\x45\x66\x66\x65\x63\x74\x22\x5d\x20\x3d\x20\x53\x56\x47\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x53\x56\x47\x2e\x63\x72\x65\x61\x74\x65\x28\x22\x66\x65\x22\x20\x2b\x20\x69\x33\x29\x29\x2c\x20\x74\x33\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x73\x75\x6c\x74\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x64\x22\x29\x20\x2b\x20\x22\x4f\x75\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x53\x56\x47\x2e\x45\x66\x66\x65\x63\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x2c\x20\x6f\x32\x28\x69\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x65\x33\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x20\x2b\x20\x65\x33\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x53\x56\x47\x5b\x69\x33\x20\x2b\x20\x22\x45\x66\x66\x65\x63\x74\x22\x5d\x20\x3d\x20\x53\x56\x47\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x53\x56\x47\x2e\x63\x72\x65\x61\x74\x65\x28\x22\x66\x65\x22\x20\x2b\x20\x69\x33\x29\x29\x2c\x20\x74\x33\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x73\x75\x6c\x74\x28\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x64\x22\x29\x20\x2b\x20\x22\x4f\x75\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x53\x56\x47\x2e\x50\x61\x72\x65\x6e\x74\x45\x66\x66\x65\x63\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x2c\x20\x6f\x32\x28\x61\x32\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x65\x33\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x20\x2b\x20\x65\x33\x2e\x73\x6c\x69\x63\x65\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x53\x56\x47\x5b\x69\x33\x5d\x20\x3d\x20\x53\x56\x47\x2e\x69\x6e\x76\x65\x6e\x74\x28\x7b\x20\x63\x72\x65\x61\x74\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x53\x56\x47\x2e\x63\x72\x65\x61\x74\x65\x28\x22\x66\x65\x22\x20\x2b\x20\x69\x33\x29\x29\x2c\x20\x74\x33\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x69\x6e\x68\x65\x72\x69\x74\x3a\x20\x53\x56\x47\x2e\x43\x68\x69\x6c\x64\x45\x66\x66\x65\x63\x74\x2c\x20\x65\x78\x74\x65\x6e\x64\x3a\x20\x7b\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x45\x66\x66\x65\x63\x74\x2c\x20\x7b\x20\x69\x6e\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x4e\x6f\x64\x65\x20\x3f\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x74\x33\x2c\x20\x30\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x65\x72\x67\x65\x4e\x6f\x64\x65\x28\x74\x33\x29\x2c\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x43\x6f\x6d\x70\x6f\x73\x69\x74\x65\x45\x66\x66\x65\x63\x74\x2c\x20\x53\x56\x47\x2e\x42\x6c\x65\x6e\x64\x45\x66\x66\x65\x63\x74\x2c\x20\x53\x56\x47\x2e\x44\x69\x73\x70\x6c\x61\x63\x65\x6d\x65\x6e\x74\x4d\x61\x70\x45\x66\x66\x65\x63\x74\x2c\x20\x7b\x20\x69\x6e\x32\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x73\x65\x6c\x65\x63\x74\x28\x27\x5b\x72\x65\x73\x75\x6c\x74\x3d\x22\x27\x20\x2b\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x32\x22\x29\x20\x2b\x20\x27\x22\x5d\x27\x29\x2e\x67\x65\x74\x28\x30\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x32\x22\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x61\x74\x74\x72\x28\x22\x69\x6e\x32\x22\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x66\x69\x6c\x74\x65\x72\x20\x3d\x20\x7b\x20\x73\x65\x70\x69\x61\x74\x6f\x6e\x65\x3a\x20\x5b\x30\x2e\x33\x34\x33\x2c\x20\x30\x2e\x36\x36\x39\x2c\x20\x30\x2e\x31\x31\x39\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x32\x34\x39\x2c\x20\x30\x2e\x36\x32\x36\x2c\x20\x30\x2e\x31\x33\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x31\x37\x32\x2c\x20\x30\x2e\x33\x33\x34\x2c\x20\x30\x2e\x31\x31\x31\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x31\x2c\x20\x30\x5d\x20\x7d\x3b\x0a\x20\x20\x7d\x2e\x63\x61\x6c\x6c\x28\x76\x6f\x69\x64\x20\x30\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x74\x33\x2c\x20\x73\x33\x2c\x20\x72\x32\x2c\x20\x6f\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x73\x33\x2c\x20\x72\x32\x20\x7c\x7c\x20\x68\x33\x29\x2c\x20\x64\x32\x20\x3d\x20\x6f\x32\x2e\x73\x6c\x69\x63\x65\x28\x6e\x32\x2c\x20\x6c\x32\x20\x7c\x7c\x20\x68\x33\x29\x2c\x20\x67\x32\x20\x3d\x20\x30\x2c\x20\x75\x32\x20\x3d\x20\x7b\x20\x70\x6f\x73\x3a\x20\x5b\x30\x2c\x20\x30\x5d\x2c\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x30\x2c\x20\x30\x5d\x20\x7d\x2c\x20\x70\x33\x20\x3d\x20\x7b\x20\x70\x6f\x73\x3a\x20\x5b\x30\x2c\x20\x30\x5d\x2c\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x30\x2c\x20\x30\x5d\x20\x7d\x3b\x20\x3b\x20\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x32\x5b\x67\x32\x5d\x20\x3d\x20\x65\x32\x2e\x63\x61\x6c\x6c\x28\x75\x32\x2c\x20\x63\x32\x5b\x67\x32\x5d\x29\x2c\x20\x64\x32\x5b\x67\x32\x5d\x20\x3d\x20\x65\x32\x2e\x63\x61\x6c\x6c\x28\x70\x33\x2c\x20\x64\x32\x5b\x67\x32\x5d\x29\x2c\x20\x63\x32\x5b\x67\x32\x5d\x5b\x30\x5d\x20\x21\x3d\x20\x64\x32\x5b\x67\x32\x5d\x5b\x30\x5d\x20\x7c\x7c\x20\x63\x32\x5b\x67\x32\x5d\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x4d\x22\x20\x7c\x7c\x20\x63\x32\x5b\x67\x32\x5d\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x41\x22\x20\x26\x26\x20\x28\x63\x32\x5b\x67\x32\x5d\x5b\x34\x5d\x20\x21\x3d\x20\x64\x32\x5b\x67\x32\x5d\x5b\x34\x5d\x20\x7c\x7c\x20\x63\x32\x5b\x67\x32\x5d\x5b\x35\x5d\x20\x21\x3d\x20\x64\x32\x5b\x67\x32\x5d\x5b\x35\x5d\x29\x20\x3f\x20\x28\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x70\x6c\x69\x63\x65\x2e\x61\x70\x70\x6c\x79\x28\x63\x32\x2c\x20\x5b\x67\x32\x2c\x20\x31\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2e\x63\x61\x6c\x6c\x28\x75\x32\x2c\x20\x63\x32\x5b\x67\x32\x5d\x29\x29\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x70\x6c\x69\x63\x65\x2e\x61\x70\x70\x6c\x79\x28\x64\x32\x2c\x20\x5b\x67\x32\x2c\x20\x31\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x32\x2e\x63\x61\x6c\x6c\x28\x70\x33\x2c\x20\x64\x32\x5b\x67\x32\x5d\x29\x29\x29\x29\x20\x3a\x20\x28\x63\x32\x5b\x67\x32\x5d\x20\x3d\x20\x69\x32\x2e\x63\x61\x6c\x6c\x28\x75\x32\x2c\x20\x63\x32\x5b\x67\x32\x5d\x29\x2c\x20\x64\x32\x5b\x67\x32\x5d\x20\x3d\x20\x69\x32\x2e\x63\x61\x6c\x6c\x28\x70\x33\x2c\x20\x64\x32\x5b\x67\x32\x5d\x29\x29\x2c\x20\x2b\x2b\x67\x32\x20\x3d\x3d\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x67\x32\x20\x3d\x3d\x20\x64\x32\x2e\x6c\x65\x6e\x67\x74\x68\x29\x0a\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\x67\x32\x20\x3d\x3d\x20\x63\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x63\x32\x2e\x70\x75\x73\x68\x28\x5b\x22\x43\x22\x2c\x20\x75\x32\x2e\x70\x6f\x73\x5b\x30\x5d\x2c\x20\x75\x32\x2e\x70\x6f\x73\x5b\x31\x5d\x2c\x20\x75\x32\x2e\x70\x6f\x73\x5b\x30\x5d\x2c\x20\x75\x32\x2e\x70\x6f\x73\x5b\x31\x5d\x2c\x20\x75\x32\x2e\x70\x6f\x73\x5b\x30\x5d\x2c\x20\x75\x32\x2e\x70\x6f\x73\x5b\x31\x5d\x5d\x29\x2c\x20\x67\x32\x20\x3d\x3d\x20\x64\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x64\x32\x2e\x70\x75\x73\x68\x28\x5b\x22\x43\x22\x2c\x20\x70\x33\x2e\x70\x6f\x73\x5b\x30\x5d\x2c\x20\x70\x33\x2e\x70\x6f\x73\x5b\x31\x5d\x2c\x20\x70\x33\x2e\x70\x6f\x73\x5b\x30\x5d\x2c\x20\x70\x33\x2e\x70\x6f\x73\x5b\x31\x5d\x2c\x20\x70\x33\x2e\x70\x6f\x73\x5b\x30\x5d\x2c\x20\x70\x33\x2e\x70\x6f\x73\x5b\x31\x5d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x63\x32\x2c\x20\x64\x65\x73\x74\x3a\x20\x64\x32\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x33\x5b\x30\x5d\x29\x20\x7b\x0a\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\x63\x61\x73\x65\x20\x22\x5a\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x30\x5d\x20\x3d\x20\x22\x4c\x22\x2c\x20\x74\x33\x5b\x31\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x5b\x30\x5d\x2c\x20\x74\x33\x5b\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x5b\x31\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x48\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x30\x5d\x20\x3d\x20\x22\x4c\x22\x2c\x20\x74\x33\x5b\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x5b\x31\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x56\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x30\x5d\x20\x3d\x20\x22\x4c\x22\x2c\x20\x74\x33\x5b\x32\x5d\x20\x3d\x20\x74\x33\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x31\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x5b\x30\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x54\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x30\x5d\x20\x3d\x20\x22\x51\x22\x2c\x20\x74\x33\x5b\x33\x5d\x20\x3d\x20\x74\x33\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x34\x5d\x20\x3d\x20\x74\x33\x5b\x32\x5d\x2c\x20\x74\x33\x5b\x31\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x66\x6c\x65\x63\x74\x69\x6f\x6e\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x66\x6c\x65\x63\x74\x69\x6f\x6e\x5b\x30\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x53\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x30\x5d\x20\x3d\x20\x22\x43\x22\x2c\x20\x74\x33\x5b\x36\x5d\x20\x3d\x20\x74\x33\x5b\x34\x5d\x2c\x20\x74\x33\x5b\x35\x5d\x20\x3d\x20\x74\x33\x5b\x33\x5d\x2c\x20\x74\x33\x5b\x34\x5d\x20\x3d\x20\x74\x33\x5b\x32\x5d\x2c\x20\x74\x33\x5b\x33\x5d\x20\x3d\x20\x74\x33\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x66\x6c\x65\x63\x74\x69\x6f\x6e\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x31\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x66\x6c\x65\x63\x74\x69\x6f\x6e\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x5b\x74\x33\x5b\x65\x33\x20\x2d\x20\x32\x5d\x2c\x20\x74\x33\x5b\x65\x33\x20\x2d\x20\x31\x5d\x5d\x2c\x20\x22\x53\x43\x51\x54\x22\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x33\x5b\x30\x5d\x29\x20\x21\x3d\x20\x2d\x31\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x66\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x5b\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x5b\x30\x5d\x20\x2d\x20\x74\x33\x5b\x65\x33\x20\x2d\x20\x34\x5d\x2c\x20\x32\x20\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x5b\x31\x5d\x20\x2d\x20\x74\x33\x5b\x65\x33\x20\x2d\x20\x33\x5d\x5d\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x33\x20\x3d\x20\x5b\x74\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x33\x5b\x30\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x20\x3d\x20\x5b\x74\x33\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x32\x5d\x5d\x2c\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4c\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x35\x5d\x20\x3d\x20\x74\x33\x5b\x33\x5d\x20\x3d\x20\x74\x33\x5b\x31\x5d\x2c\x20\x74\x33\x5b\x36\x5d\x20\x3d\x20\x74\x33\x5b\x34\x5d\x20\x3d\x20\x74\x33\x5b\x32\x5d\x2c\x20\x74\x33\x5b\x31\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x5b\x30\x5d\x2c\x20\x74\x33\x5b\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x5b\x31\x5d\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x51\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x5b\x36\x5d\x20\x3d\x20\x74\x33\x5b\x34\x5d\x2c\x20\x74\x33\x5b\x35\x5d\x20\x3d\x20\x74\x33\x5b\x33\x5d\x2c\x20\x74\x33\x5b\x34\x5d\x20\x3d\x20\x31\x20\x2a\x20\x74\x33\x5b\x34\x5d\x20\x2f\x20\x33\x20\x2b\x20\x32\x20\x2a\x20\x74\x33\x5b\x32\x5d\x20\x2f\x20\x33\x2c\x20\x74\x33\x5b\x33\x5d\x20\x3d\x20\x31\x20\x2a\x20\x74\x33\x5b\x33\x5d\x20\x2f\x20\x33\x20\x2b\x20\x32\x20\x2a\x20\x74\x33\x5b\x31\x5d\x20\x2f\x20\x33\x2c\x20\x74\x33\x5b\x32\x5d\x20\x3d\x20\x31\x20\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x5b\x31\x5d\x20\x2f\x20\x33\x20\x2b\x20\x32\x20\x2a\x20\x74\x33\x5b\x32\x5d\x20\x2f\x20\x33\x2c\x20\x74\x33\x5b\x31\x5d\x20\x3d\x20\x31\x20\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x5b\x30\x5d\x20\x2f\x20\x33\x20\x2b\x20\x32\x20\x2a\x20\x74\x33\x5b\x31\x5d\x20\x2f\x20\x33\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x41\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x20\x3d\x20\x28\x65\x33\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x2c\x20\x61\x33\x2c\x20\x73\x33\x2c\x20\x72\x32\x2c\x20\x6f\x32\x2c\x20\x6e\x32\x2c\x20\x6c\x32\x2c\x20\x68\x33\x2c\x20\x63\x32\x2c\x20\x64\x32\x2c\x20\x67\x32\x2c\x20\x75\x32\x2c\x20\x70\x33\x2c\x20\x66\x32\x2c\x20\x78\x32\x2c\x20\x62\x32\x2c\x20\x76\x32\x2c\x20\x6d\x32\x2c\x20\x79\x32\x2c\x20\x77\x32\x2c\x20\x6b\x32\x2c\x20\x41\x32\x2c\x20\x53\x32\x2c\x20\x43\x32\x2c\x20\x4c\x32\x2c\x20\x50\x32\x2c\x20\x54\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x34\x5b\x31\x5d\x29\x2c\x20\x4d\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x65\x34\x5b\x32\x5d\x29\x2c\x20\x49\x32\x20\x3d\x20\x65\x34\x5b\x33\x5d\x20\x25\x20\x33\x36\x30\x2c\x20\x7a\x32\x20\x3d\x20\x65\x34\x5b\x34\x5d\x2c\x20\x58\x32\x20\x3d\x20\x65\x34\x5b\x35\x5d\x2c\x20\x45\x32\x20\x3d\x20\x65\x34\x5b\x36\x5d\x2c\x20\x59\x32\x20\x3d\x20\x65\x34\x5b\x37\x5d\x2c\x20\x46\x32\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x74\x34\x29\x2c\x20\x52\x32\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x45\x32\x2c\x20\x59\x32\x29\x2c\x20\x48\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x54\x32\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x4d\x32\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x46\x32\x2e\x78\x20\x3d\x3d\x3d\x20\x52\x32\x2e\x78\x20\x26\x26\x20\x46\x32\x2e\x79\x20\x3d\x3d\x3d\x20\x52\x32\x2e\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5b\x22\x43\x22\x2c\x20\x46\x32\x2e\x78\x2c\x20\x46\x32\x2e\x79\x2c\x20\x52\x32\x2e\x78\x2c\x20\x52\x32\x2e\x79\x2c\x20\x52\x32\x2e\x78\x2c\x20\x52\x32\x2e\x79\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x28\x46\x32\x2e\x78\x20\x2d\x20\x52\x32\x2e\x78\x29\x20\x2f\x20\x32\x2c\x20\x28\x46\x32\x2e\x79\x20\x2d\x20\x52\x32\x2e\x79\x29\x20\x2f\x20\x32\x29\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x61\x74\x72\x69\x78\x28\x29\x2e\x72\x6f\x74\x61\x74\x65\x28\x49\x32\x29\x29\x2c\x20\x28\x61\x33\x20\x3d\x20\x69\x33\x2e\x78\x20\x2a\x20\x69\x33\x2e\x78\x20\x2f\x20\x28\x54\x32\x20\x2a\x20\x54\x32\x29\x20\x2b\x20\x69\x33\x2e\x79\x20\x2a\x20\x69\x33\x2e\x79\x20\x2f\x20\x28\x4d\x32\x20\x2a\x20\x4d\x32\x29\x29\x20\x3e\x20\x31\x20\x26\x26\x20\x28\x54\x32\x20\x2a\x3d\x20\x61\x33\x20\x3d\x20\x4d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x61\x33\x29\x2c\x20\x4d\x32\x20\x2a\x3d\x20\x61\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x33\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x61\x74\x72\x69\x78\x28\x29\x2e\x72\x6f\x74\x61\x74\x65\x28\x49\x32\x29\x2e\x73\x63\x61\x6c\x65\x28\x31\x20\x2f\x20\x54\x32\x2c\x20\x31\x20\x2f\x20\x4d\x32\x29\x2e\x72\x6f\x74\x61\x74\x65\x28\x2d\x49\x32\x29\x2c\x20\x46\x32\x20\x3d\x20\x46\x32\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x73\x33\x29\x2c\x20\x52\x32\x20\x3d\x20\x52\x32\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x73\x33\x29\x2c\x20\x72\x32\x20\x3d\x20\x5b\x52\x32\x2e\x78\x20\x2d\x20\x46\x32\x2e\x78\x2c\x20\x52\x32\x2e\x79\x20\x2d\x20\x46\x32\x2e\x79\x5d\x2c\x20\x6e\x32\x20\x3d\x20\x72\x32\x5b\x30\x5d\x20\x2a\x20\x72\x32\x5b\x30\x5d\x20\x2b\x20\x72\x32\x5b\x31\x5d\x20\x2a\x20\x72\x32\x5b\x31\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x6e\x32\x29\x2c\x20\x72\x32\x5b\x30\x5d\x20\x2f\x3d\x20\x6f\x32\x2c\x20\x72\x32\x5b\x31\x5d\x20\x2f\x3d\x20\x6f\x32\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x32\x20\x3c\x20\x34\x20\x3f\x20\x4d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x31\x20\x2d\x20\x6e\x32\x20\x2f\x20\x34\x29\x20\x3a\x20\x30\x2c\x20\x7a\x32\x20\x3d\x3d\x3d\x20\x58\x32\x20\x26\x26\x20\x28\x6c\x32\x20\x2a\x3d\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x28\x52\x32\x2e\x78\x20\x2b\x20\x46\x32\x2e\x78\x29\x20\x2f\x20\x32\x20\x2b\x20\x6c\x32\x20\x2a\x20\x2d\x72\x32\x5b\x31\x5d\x2c\x20\x28\x52\x32\x2e\x79\x20\x2b\x20\x46\x32\x2e\x79\x29\x20\x2f\x20\x32\x20\x2b\x20\x6c\x32\x20\x2a\x20\x72\x32\x5b\x30\x5d\x29\x2c\x20\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x46\x32\x2e\x78\x20\x2d\x20\x68\x33\x2e\x78\x2c\x20\x46\x32\x2e\x79\x20\x2d\x20\x68\x33\x2e\x79\x29\x2c\x20\x64\x32\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x52\x32\x2e\x78\x20\x2d\x20\x68\x33\x2e\x78\x2c\x20\x52\x32\x2e\x79\x20\x2d\x20\x68\x33\x2e\x79\x29\x2c\x20\x67\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x63\x6f\x73\x28\x63\x32\x2e\x78\x20\x2f\x20\x4d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x63\x32\x2e\x78\x20\x2a\x20\x63\x32\x2e\x78\x20\x2b\x20\x63\x32\x2e\x79\x20\x2a\x20\x63\x32\x2e\x79\x29\x29\x2c\x20\x63\x32\x2e\x79\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x67\x32\x20\x2a\x3d\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x63\x6f\x73\x28\x64\x32\x2e\x78\x20\x2f\x20\x4d\x61\x74\x68\x2e\x73\x71\x72\x74\x28\x64\x32\x2e\x78\x20\x2a\x20\x64\x32\x2e\x78\x20\x2b\x20\x64\x32\x2e\x79\x20\x2a\x20\x64\x32\x2e\x79\x29\x29\x2c\x20\x64\x32\x2e\x79\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x75\x32\x20\x2a\x3d\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x58\x32\x20\x26\x26\x20\x67\x32\x20\x3e\x20\x75\x32\x20\x26\x26\x20\x28\x75\x32\x20\x2b\x3d\x20\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x21\x58\x32\x20\x26\x26\x20\x67\x32\x20\x3c\x20\x75\x32\x20\x26\x26\x20\x28\x75\x32\x20\x2d\x3d\x20\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x50\x49\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x66\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x32\x20\x2a\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x67\x32\x20\x2d\x20\x75\x32\x29\x20\x2f\x20\x4d\x61\x74\x68\x2e\x50\x49\x29\x2c\x20\x62\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x76\x32\x20\x3d\x20\x67\x32\x2c\x20\x70\x33\x20\x3d\x20\x28\x75\x32\x20\x2d\x20\x67\x32\x29\x20\x2f\x20\x66\x32\x2c\x20\x78\x32\x20\x3d\x20\x34\x20\x2a\x20\x4d\x61\x74\x68\x2e\x74\x61\x6e\x28\x70\x33\x20\x2f\x20\x34\x29\x20\x2f\x20\x33\x2c\x20\x6b\x32\x20\x3d\x20\x30\x3b\x20\x6b\x32\x20\x3c\x3d\x20\x66\x32\x3b\x20\x6b\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x63\x6f\x73\x28\x76\x32\x29\x2c\x20\x6d\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x73\x69\x6e\x28\x76\x32\x29\x2c\x20\x77\x32\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x68\x33\x2e\x78\x20\x2b\x20\x79\x32\x2c\x20\x68\x33\x2e\x79\x20\x2b\x20\x6d\x32\x29\x2c\x20\x62\x32\x5b\x6b\x32\x5d\x20\x3d\x20\x5b\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x77\x32\x2e\x78\x20\x2b\x20\x78\x32\x20\x2a\x20\x6d\x32\x2c\x20\x77\x32\x2e\x79\x20\x2d\x20\x78\x32\x20\x2a\x20\x79\x32\x29\x2c\x20\x77\x32\x2c\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x6f\x69\x6e\x74\x28\x77\x32\x2e\x78\x20\x2d\x20\x78\x32\x20\x2a\x20\x6d\x32\x2c\x20\x77\x32\x2e\x79\x20\x2b\x20\x78\x32\x20\x2a\x20\x79\x32\x29\x5d\x2c\x20\x76\x32\x20\x2b\x3d\x20\x70\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x62\x32\x5b\x30\x5d\x5b\x30\x5d\x20\x3d\x20\x62\x32\x5b\x30\x5d\x5b\x31\x5d\x2e\x63\x6c\x6f\x6e\x65\x28\x29\x2c\x20\x62\x32\x5b\x62\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x5b\x32\x5d\x20\x3d\x20\x62\x32\x5b\x62\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x5b\x31\x5d\x2e\x63\x6c\x6f\x6e\x65\x28\x29\x2c\x20\x73\x33\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x61\x74\x72\x69\x78\x28\x29\x2e\x72\x6f\x74\x61\x74\x65\x28\x49\x32\x29\x2e\x73\x63\x61\x6c\x65\x28\x54\x32\x2c\x20\x4d\x32\x29\x2e\x72\x6f\x74\x61\x74\x65\x28\x2d\x49\x32\x29\x2c\x20\x6b\x32\x20\x3d\x20\x30\x2c\x20\x41\x32\x20\x3d\x20\x62\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6b\x32\x20\x3c\x20\x41\x32\x3b\x20\x6b\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x32\x5b\x6b\x32\x5d\x5b\x30\x5d\x20\x3d\x20\x62\x32\x5b\x6b\x32\x5d\x5b\x30\x5d\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x73\x33\x29\x2c\x20\x62\x32\x5b\x6b\x32\x5d\x5b\x31\x5d\x20\x3d\x20\x62\x32\x5b\x6b\x32\x5d\x5b\x31\x5d\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x73\x33\x29\x2c\x20\x62\x32\x5b\x6b\x32\x5d\x5b\x32\x5d\x20\x3d\x20\x62\x32\x5b\x6b\x32\x5d\x5b\x32\x5d\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x73\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6b\x32\x20\x3d\x20\x31\x2c\x20\x41\x32\x20\x3d\x20\x62\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6b\x32\x20\x3c\x20\x41\x32\x3b\x20\x6b\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x53\x32\x20\x3d\x20\x28\x77\x32\x20\x3d\x20\x62\x32\x5b\x6b\x32\x20\x2d\x20\x31\x5d\x5b\x32\x5d\x29\x2e\x78\x2c\x20\x43\x32\x20\x3d\x20\x77\x32\x2e\x79\x2c\x20\x4c\x32\x20\x3d\x20\x28\x77\x32\x20\x3d\x20\x62\x32\x5b\x6b\x32\x5d\x5b\x30\x5d\x29\x2e\x78\x2c\x20\x50\x32\x20\x3d\x20\x77\x32\x2e\x79\x2c\x20\x45\x32\x20\x3d\x20\x28\x77\x32\x20\x3d\x20\x62\x32\x5b\x6b\x32\x5d\x5b\x31\x5d\x29\x2e\x78\x2c\x20\x59\x32\x20\x3d\x20\x77\x32\x2e\x79\x2c\x20\x48\x32\x2e\x70\x75\x73\x68\x28\x5b\x22\x43\x22\x2c\x20\x53\x32\x2c\x20\x43\x32\x2c\x20\x4c\x32\x2c\x20\x50\x32\x2c\x20\x45\x32\x2c\x20\x59\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x48\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x20\x74\x33\x29\x29\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x5b\x30\x5d\x20\x3d\x20\x22\x43\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x5b\x74\x33\x5b\x35\x5d\x2c\x20\x74\x33\x5b\x36\x5d\x5d\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x66\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x5b\x32\x20\x2a\x20\x74\x33\x5b\x35\x5d\x20\x2d\x20\x74\x33\x5b\x33\x5d\x2c\x20\x32\x20\x2a\x20\x74\x33\x5b\x36\x5d\x20\x2d\x20\x74\x33\x5b\x34\x5d\x5d\x2c\x20\x65\x33\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x32\x28\x74\x33\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x33\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x29\x0a\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\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x65\x33\x2c\x20\x61\x33\x20\x3d\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x33\x20\x3c\x20\x61\x33\x3b\x20\x2b\x2b\x69\x33\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x5b\x69\x33\x5d\x5b\x30\x5d\x20\x3d\x3d\x20\x22\x4d\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x2c\x20\x7b\x20\x6d\x6f\x72\x70\x68\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x2c\x20\x61\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x28\x65\x33\x29\x2c\x20\x72\x32\x20\x3d\x20\x30\x2c\x20\x6f\x32\x20\x3d\x20\x30\x2c\x20\x6e\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x32\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x20\x72\x32\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x7c\x7c\x20\x6f\x32\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x3b\x20\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x32\x20\x3d\x20\x73\x32\x28\x69\x33\x2c\x20\x72\x32\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x72\x32\x20\x2b\x20\x31\x29\x2c\x20\x6c\x32\x20\x3d\x20\x73\x32\x28\x61\x33\x2c\x20\x6f\x32\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x6f\x32\x20\x2b\x20\x31\x29\x2c\x20\x72\x32\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x28\x72\x32\x20\x3d\x20\x28\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x73\x74\x61\x72\x74\x29\x2e\x62\x62\x6f\x78\x28\x29\x29\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x68\x33\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x20\x30\x20\x3f\x20\x69\x33\x2e\x70\x75\x73\x68\x28\x69\x33\x5b\x30\x5d\x29\x20\x2d\x20\x31\x20\x3a\x20\x69\x33\x2e\x70\x75\x73\x68\x28\x5b\x22\x4d\x22\x2c\x20\x68\x33\x2e\x78\x20\x2b\x20\x68\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x68\x33\x2e\x79\x20\x2b\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x5d\x29\x20\x2d\x20\x31\x29\x2c\x20\x6f\x32\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x28\x68\x33\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x28\x63\x32\x2e\x64\x65\x73\x74\x29\x2e\x62\x62\x6f\x78\x28\x29\x29\x2e\x68\x65\x69\x67\x68\x74\x20\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x68\x33\x2e\x77\x69\x64\x74\x68\x20\x3d\x3d\x20\x30\x20\x3f\x20\x61\x33\x2e\x70\x75\x73\x68\x28\x61\x33\x5b\x30\x5d\x29\x20\x2d\x20\x31\x20\x3a\x20\x61\x33\x2e\x70\x75\x73\x68\x28\x5b\x22\x4d\x22\x2c\x20\x68\x33\x2e\x78\x20\x2b\x20\x68\x33\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x68\x33\x2e\x79\x20\x2b\x20\x68\x33\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x5d\x29\x20\x2d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x74\x32\x28\x69\x33\x2c\x20\x72\x32\x2c\x20\x6e\x32\x2c\x20\x61\x33\x2c\x20\x6f\x32\x2c\x20\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x69\x33\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x72\x32\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x63\x32\x2e\x73\x74\x61\x72\x74\x2c\x20\x6e\x32\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x3f\x20\x5b\x5d\x20\x3a\x20\x69\x33\x2e\x73\x6c\x69\x63\x65\x28\x6e\x32\x29\x29\x2c\x20\x61\x33\x20\x3d\x20\x61\x33\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x6f\x32\x29\x2e\x63\x6f\x6e\x63\x61\x74\x28\x63\x32\x2e\x64\x65\x73\x74\x2c\x20\x6c\x32\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x3f\x20\x5b\x5d\x20\x3a\x20\x61\x33\x2e\x73\x6c\x69\x63\x65\x28\x6c\x32\x29\x29\x2c\x20\x72\x32\x20\x3d\x20\x6e\x32\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x72\x32\x20\x2b\x20\x63\x32\x2e\x73\x74\x61\x72\x74\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6f\x32\x20\x3d\x20\x6c\x32\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x6f\x32\x20\x2b\x20\x63\x32\x2e\x64\x65\x73\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x33\x2c\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x53\x56\x47\x2e\x50\x61\x74\x68\x41\x72\x72\x61\x79\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x74\x69\x6e\x61\x74\x69\x6f\x6e\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x61\x33\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x72\x65\x6d\x65\x6d\x62\x65\x72\x28\x22\x5f\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x22\x2c\x20\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x3d\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x69\x6e\x69\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x2e\x64\x72\x61\x67\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x73\x74\x61\x72\x74\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x2e\x64\x72\x61\x67\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x73\x74\x61\x72\x74\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x50\x6f\x69\x6e\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x2e\x63\x68\x61\x6e\x67\x65\x64\x54\x6f\x75\x63\x68\x65\x73\x20\x26\x26\x20\x74\x33\x2e\x63\x68\x61\x6e\x67\x65\x64\x54\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x20\x7c\x7c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x2e\x78\x20\x3d\x20\x69\x32\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x2d\x20\x28\x65\x32\x20\x7c\x7c\x20\x30\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x2e\x79\x20\x3d\x20\x69\x32\x2e\x63\x6c\x69\x65\x6e\x74\x59\x2c\x20\x74\x68\x69\x73\x2e\x70\x2e\x6d\x61\x74\x72\x69\x78\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x74\x68\x69\x73\x2e\x6d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x67\x65\x74\x42\x42\x6f\x78\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x4e\x65\x73\x74\x65\x64\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x72\x62\x6f\x78\x28\x29\x29\x2c\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x47\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x55\x73\x65\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x4e\x65\x73\x74\x65\x64\x29\x20\x26\x26\x20\x28\x74\x33\x2e\x78\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x78\x28\x29\x2c\x20\x74\x33\x2e\x79\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x79\x28\x29\x29\x2c\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x74\x61\x72\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x74\x79\x70\x65\x20\x21\x3d\x20\x22\x63\x6c\x69\x63\x6b\x22\x20\x26\x26\x20\x74\x33\x2e\x74\x79\x70\x65\x20\x21\x3d\x20\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x74\x79\x70\x65\x20\x21\x3d\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x20\x7c\x7c\x20\x28\x74\x33\x2e\x77\x68\x69\x63\x68\x20\x7c\x7c\x20\x74\x33\x2e\x62\x75\x74\x74\x6f\x6e\x73\x29\x20\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x62\x65\x66\x6f\x72\x65\x64\x72\x61\x67\x22\x2c\x20\x7b\x20\x65\x76\x65\x6e\x74\x3a\x20\x74\x33\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x3a\x20\x74\x68\x69\x73\x20\x7d\x29\x2c\x20\x21\x74\x68\x69\x73\x2e\x65\x6c\x2e\x65\x76\x65\x6e\x74\x28\x29\x2e\x64\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x2c\x20\x74\x33\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x70\x61\x72\x65\x6e\x74\x28\x53\x56\x47\x2e\x4e\x65\x73\x74\x65\x64\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x70\x61\x72\x65\x6e\x74\x28\x53\x56\x47\x2e\x44\x6f\x63\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x2e\x6e\x6f\x64\x65\x2e\x63\x72\x65\x61\x74\x65\x53\x56\x47\x50\x6f\x69\x6e\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x53\x63\x72\x65\x65\x6e\x43\x54\x4d\x28\x29\x2e\x69\x6e\x76\x65\x72\x73\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x54\x65\x78\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x54\x65\x78\x74\x4c\x65\x6e\x67\x74\x68\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x74\x74\x72\x28\x22\x74\x65\x78\x74\x2d\x61\x6e\x63\x68\x6f\x72\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x69\x64\x64\x6c\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x2f\x3d\x20\x32\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\x20\x20\x63\x61\x73\x65\x20\x22\x73\x74\x61\x72\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x20\x3d\x20\x30\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\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x20\x3d\x20\x7b\x20\x70\x6f\x69\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x50\x6f\x69\x6e\x74\x28\x74\x33\x2c\x20\x69\x32\x29\x2c\x20\x62\x6f\x78\x3a\x20\x61\x32\x2c\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x29\x20\x7d\x2c\x20\x53\x56\x47\x2e\x6f\x6e\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x2e\x64\x72\x61\x67\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x72\x61\x67\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x6f\x6e\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x2e\x64\x72\x61\x67\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x72\x61\x67\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x6f\x6e\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x2e\x64\x72\x61\x67\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x65\x6e\x64\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x6f\x6e\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x2e\x64\x72\x61\x67\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x65\x6e\x64\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x64\x72\x61\x67\x73\x74\x61\x72\x74\x22\x2c\x20\x7b\x20\x65\x76\x65\x6e\x74\x3a\x20\x74\x33\x2c\x20\x70\x3a\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x70\x6f\x69\x6e\x74\x2c\x20\x6d\x3a\x20\x74\x68\x69\x73\x2e\x6d\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x3a\x20\x74\x68\x69\x73\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x64\x72\x61\x67\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x42\x42\x6f\x78\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x50\x6f\x69\x6e\x74\x28\x74\x33\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2b\x20\x69\x32\x2e\x78\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x70\x6f\x69\x6e\x74\x2e\x78\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x62\x6f\x78\x2e\x79\x20\x2b\x20\x69\x32\x2e\x79\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x70\x6f\x69\x6e\x74\x2e\x79\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x2c\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x78\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x70\x6f\x69\x6e\x74\x2e\x78\x2c\x20\x6e\x32\x20\x3d\x20\x69\x32\x2e\x79\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x70\x6f\x69\x6e\x74\x2e\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x64\x72\x61\x67\x6d\x6f\x76\x65\x22\x2c\x20\x7b\x20\x65\x76\x65\x6e\x74\x3a\x20\x74\x33\x2c\x20\x70\x3a\x20\x69\x32\x2c\x20\x6d\x3a\x20\x74\x68\x69\x73\x2e\x6d\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x3a\x20\x74\x68\x69\x73\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x65\x76\x65\x6e\x74\x28\x29\x2e\x64\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x72\x32\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2e\x65\x6c\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x74\x68\x69\x73\x2e\x6d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x6c\x32\x20\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x20\x26\x26\x20\x28\x6c\x32\x20\x3d\x20\x7b\x20\x78\x3a\x20\x6c\x32\x2c\x20\x79\x3a\x20\x6c\x32\x20\x7d\x29\x2c\x20\x6c\x32\x2e\x78\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x20\x3f\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x78\x28\x61\x32\x29\x20\x3a\x20\x6c\x32\x2e\x78\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x78\x28\x6c\x32\x2e\x78\x29\x2c\x20\x6c\x32\x2e\x79\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x20\x3f\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x79\x28\x73\x32\x29\x20\x3a\x20\x6c\x32\x2e\x79\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x79\x28\x6c\x32\x2e\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x72\x32\x20\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x28\x72\x32\x2e\x6d\x69\x6e\x58\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x61\x32\x20\x3c\x20\x72\x32\x2e\x6d\x69\x6e\x58\x20\x3f\x20\x6f\x32\x20\x3d\x20\x28\x61\x32\x20\x3d\x20\x72\x32\x2e\x6d\x69\x6e\x58\x29\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x62\x6f\x78\x2e\x78\x20\x3a\x20\x72\x32\x2e\x6d\x61\x78\x58\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x61\x32\x20\x3e\x20\x72\x32\x2e\x6d\x61\x78\x58\x20\x2d\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x28\x61\x32\x20\x3d\x20\x72\x32\x2e\x6d\x61\x78\x58\x20\x2d\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x29\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x62\x6f\x78\x2e\x78\x29\x2c\x20\x72\x32\x2e\x6d\x69\x6e\x59\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x73\x32\x20\x3c\x20\x72\x32\x2e\x6d\x69\x6e\x59\x20\x3f\x20\x6e\x32\x20\x3d\x20\x28\x73\x32\x20\x3d\x20\x72\x32\x2e\x6d\x69\x6e\x59\x29\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x62\x6f\x78\x2e\x79\x20\x3a\x20\x72\x32\x2e\x6d\x61\x78\x59\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x73\x32\x20\x3e\x20\x72\x32\x2e\x6d\x61\x78\x59\x20\x2d\x20\x65\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x26\x26\x20\x28\x6e\x32\x20\x3d\x20\x28\x73\x32\x20\x3d\x20\x72\x32\x2e\x6d\x61\x78\x59\x20\x2d\x20\x65\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x20\x2d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2c\x20\x72\x32\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x61\x32\x20\x2d\x3d\x20\x61\x32\x20\x25\x20\x72\x32\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x2c\x20\x73\x32\x20\x2d\x3d\x20\x73\x32\x20\x25\x20\x72\x32\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x2c\x20\x6f\x32\x20\x2d\x3d\x20\x6f\x32\x20\x25\x20\x72\x32\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x2c\x20\x6e\x32\x20\x2d\x3d\x20\x6e\x32\x20\x25\x20\x72\x32\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x56\x47\x2e\x47\x20\x3f\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x50\x6f\x69\x6e\x74\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x29\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x7b\x20\x78\x3a\x20\x6f\x32\x2c\x20\x79\x3a\x20\x6e\x32\x20\x7d\x2c\x20\x74\x72\x75\x65\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x61\x32\x2c\x20\x73\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x65\x6e\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x67\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x64\x72\x61\x67\x65\x6e\x64\x22\x2c\x20\x7b\x20\x65\x76\x65\x6e\x74\x3a\x20\x74\x33\x2c\x20\x70\x3a\x20\x65\x32\x2c\x20\x6d\x3a\x20\x74\x68\x69\x73\x2e\x6d\x2c\x20\x68\x61\x6e\x64\x6c\x65\x72\x3a\x20\x74\x68\x69\x73\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x6f\x66\x66\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x2e\x64\x72\x61\x67\x22\x29\x2c\x20\x53\x56\x47\x2e\x6f\x66\x66\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x2e\x64\x72\x61\x67\x22\x29\x2c\x20\x53\x56\x47\x2e\x6f\x66\x66\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x2e\x64\x72\x61\x67\x22\x29\x2c\x20\x53\x56\x47\x2e\x6f\x66\x66\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x2e\x64\x72\x61\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x20\x21\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x20\x21\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x7c\x7c\x20\x28\x69\x32\x20\x3d\x20\x65\x32\x2c\x20\x65\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x65\x6d\x62\x65\x72\x28\x22\x5f\x64\x72\x61\x67\x67\x61\x62\x6c\x65\x22\x29\x20\x7c\x7c\x20\x6e\x65\x77\x20\x74\x32\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x65\x32\x20\x3d\x20\x65\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x65\x32\x29\x20\x3f\x20\x61\x32\x2e\x69\x6e\x69\x74\x28\x69\x32\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x65\x32\x29\x20\x3a\x20\x28\x74\x68\x69\x73\x2e\x6f\x66\x66\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x2e\x64\x72\x61\x67\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x28\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x2e\x64\x72\x61\x67\x22\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x2e\x63\x61\x6c\x6c\x28\x76\x6f\x69\x64\x20\x30\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x3d\x20\x74\x33\x2c\x20\x74\x33\x2e\x72\x65\x6d\x65\x6d\x62\x65\x72\x28\x22\x5f\x73\x65\x6c\x65\x63\x74\x48\x61\x6e\x64\x6c\x65\x72\x22\x2c\x20\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x7b\x20\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x7b\x20\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x4c\x69\x73\x74\x20\x3d\x20\x7b\x20\x6c\x74\x3a\x20\x5b\x30\x2c\x20\x30\x5d\x2c\x20\x72\x74\x3a\x20\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x30\x5d\x2c\x20\x72\x62\x3a\x20\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x5d\x2c\x20\x6c\x62\x3a\x20\x5b\x30\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x5d\x2c\x20\x74\x3a\x20\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x30\x5d\x2c\x20\x72\x3a\x20\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x5d\x2c\x20\x62\x3a\x20\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x5d\x2c\x20\x6c\x3a\x20\x5b\x30\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x5d\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x34\x20\x21\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x74\x34\x20\x3a\x20\x65\x32\x5b\x74\x34\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x3f\x20\x61\x32\x20\x2f\x20\x32\x20\x3a\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x73\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x73\x4c\x69\x73\x74\x5b\x74\x34\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x28\x69\x32\x5b\x30\x5d\x2c\x20\x65\x32\x2c\x20\x74\x34\x20\x3d\x3d\x3d\x20\x22\x74\x22\x20\x7c\x7c\x20\x74\x34\x20\x3d\x3d\x3d\x20\x22\x62\x22\x29\x2c\x20\x79\x3a\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x28\x69\x32\x5b\x31\x5d\x2c\x20\x65\x32\x2c\x20\x74\x34\x20\x3d\x3d\x3d\x20\x22\x72\x22\x20\x7c\x7c\x20\x74\x34\x20\x3d\x3d\x3d\x20\x22\x6c\x22\x29\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x69\x6e\x69\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x73\x65\x6c\x65\x63\x74\x69\x7a\x65\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x2e\x70\x6f\x69\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x69\x6e\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x73\x65\x6c\x65\x63\x74\x69\x7a\x65\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x73\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x73\x65\x6c\x65\x63\x74\x69\x7a\x65\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x5b\x73\x32\x5d\x2c\x20\x65\x32\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x73\x32\x5d\x20\x3d\x20\x65\x32\x5b\x73\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x5b\x22\x70\x6f\x69\x6e\x74\x73\x22\x2c\x20\x22\x70\x6f\x69\x6e\x74\x73\x45\x78\x63\x6c\x75\x64\x65\x22\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x69\x6e\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x72\x32\x5b\x73\x32\x5d\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x6f\x32\x20\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x6f\x32\x20\x3d\x20\x6f\x32\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x3f\x20\x6f\x32\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x73\x2a\x2c\x5c\x73\x2a\x2f\x69\x29\x20\x3a\x20\x5b\x5d\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x6f\x32\x20\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x20\x26\x26\x20\x72\x32\x5b\x73\x32\x5d\x20\x3d\x3d\x3d\x20\x22\x70\x6f\x69\x6e\x74\x73\x22\x20\x26\x26\x20\x28\x6f\x32\x20\x3d\x20\x6f\x32\x20\x3f\x20\x61\x32\x20\x3a\x20\x5b\x5d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x72\x32\x5b\x73\x32\x5d\x5d\x20\x3d\x20\x6f\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x3d\x20\x5b\x61\x32\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x5d\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x35\x29\x20\x3e\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x3d\x20\x5b\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x45\x78\x63\x6c\x75\x64\x65\x5d\x2e\x72\x65\x64\x75\x63\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x33\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x35\x29\x20\x3c\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x2e\x67\x72\x6f\x75\x70\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x2e\x6d\x61\x74\x72\x69\x78\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x2e\x65\x6c\x29\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x69\x32\x2e\x78\x2c\x20\x69\x32\x2e\x79\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x65\x65\x70\x53\x65\x6c\x65\x63\x74\x20\x26\x26\x20\x5b\x22\x6c\x69\x6e\x65\x22\x2c\x20\x22\x70\x6f\x6c\x79\x6c\x69\x6e\x65\x22\x2c\x20\x22\x70\x6f\x6c\x79\x67\x6f\x6e\x22\x5d\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x74\x68\x69\x73\x2e\x65\x6c\x2e\x74\x79\x70\x65\x29\x20\x21\x3d\x3d\x20\x2d\x31\x20\x3f\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x50\x6f\x69\x6e\x74\x73\x28\x74\x33\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x52\x65\x63\x74\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x62\x73\x65\x72\x76\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x6e\x75\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x65\x6c\x65\x63\x74\x50\x6f\x69\x6e\x74\x73\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x2e\x73\x65\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x73\x28\x29\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x67\x65\x74\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x72\x72\x61\x79\x28\x29\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x65\x32\x5b\x30\x5d\x20\x2d\x20\x74\x33\x2e\x78\x2c\x20\x65\x32\x5b\x31\x5d\x20\x2d\x20\x74\x33\x2e\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x73\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x28\x29\x2c\x20\x69\x32\x20\x3d\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x20\x3c\x20\x61\x32\x3b\x20\x2b\x2b\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x69\x33\x20\x3d\x20\x69\x33\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x20\x3f\x20\x69\x33\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x20\x3a\x20\x69\x33\x2e\x72\x65\x74\x75\x72\x6e\x56\x61\x6c\x75\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x33\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\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x69\x33\x2e\x70\x61\x67\x65\x58\x20\x7c\x7c\x20\x69\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x70\x61\x67\x65\x58\x2c\x20\x73\x33\x20\x3d\x20\x69\x33\x2e\x70\x61\x67\x65\x59\x20\x7c\x7c\x20\x69\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x70\x61\x67\x65\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x70\x6f\x69\x6e\x74\x22\x2c\x20\x7b\x20\x78\x3a\x20\x61\x33\x2c\x20\x79\x3a\x20\x73\x33\x2c\x20\x69\x3a\x20\x65\x33\x2c\x20\x65\x76\x65\x6e\x74\x3a\x20\x69\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x69\x32\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x28\x65\x32\x5b\x69\x32\x5d\x5b\x30\x5d\x2c\x20\x65\x32\x5b\x69\x32\x5d\x5b\x31\x5d\x29\x2e\x61\x64\x64\x43\x6c\x61\x73\x73\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6c\x61\x73\x73\x50\x6f\x69\x6e\x74\x73\x29\x2e\x61\x64\x64\x43\x6c\x61\x73\x73\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6c\x61\x73\x73\x50\x6f\x69\x6e\x74\x73\x20\x2b\x20\x22\x5f\x70\x6f\x69\x6e\x74\x22\x29\x2e\x6f\x6e\x28\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x2c\x20\x73\x32\x29\x2e\x6f\x6e\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x61\x64\x64\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x54\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x43\x69\x72\x63\x6c\x65\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x65\x63\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x20\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x22\x20\x2b\x20\x69\x32\x20\x2b\x20\x22\x20\x70\x6f\x69\x6e\x74\x20\x74\x79\x70\x65\x21\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x64\x72\x61\x77\x43\x69\x72\x63\x6c\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x2e\x63\x69\x72\x63\x6c\x65\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x53\x69\x7a\x65\x29\x2e\x63\x65\x6e\x74\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x64\x72\x61\x77\x52\x65\x63\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x2e\x72\x65\x63\x74\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x53\x69\x7a\x65\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x53\x69\x7a\x65\x29\x2e\x63\x65\x6e\x74\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x75\x70\x64\x61\x74\x65\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x50\x6f\x69\x6e\x74\x41\x72\x72\x61\x79\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x78\x28\x29\x20\x3d\x3d\x3d\x20\x74\x33\x5b\x65\x32\x5d\x5b\x30\x5d\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x79\x28\x29\x20\x3d\x3d\x3d\x20\x74\x33\x5b\x65\x32\x5d\x5b\x31\x5d\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x63\x65\x6e\x74\x65\x72\x28\x74\x33\x5b\x65\x32\x5d\x5b\x30\x5d\x2c\x20\x74\x33\x5b\x65\x32\x5d\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x75\x70\x64\x61\x74\x65\x52\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x67\x65\x74\x28\x30\x29\x2e\x61\x74\x74\x72\x28\x7b\x20\x77\x69\x64\x74\x68\x3a\x20\x65\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x65\x32\x2e\x68\x65\x69\x67\x68\x74\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x73\x28\x69\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x67\x65\x74\x28\x61\x32\x20\x2b\x20\x31\x29\x2e\x63\x65\x6e\x74\x65\x72\x28\x73\x32\x2e\x78\x2c\x20\x73\x32\x2e\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x6f\x74\x61\x74\x69\x6f\x6e\x50\x6f\x69\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x6c\x65\x6e\x67\x74\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x67\x65\x74\x28\x69\x32\x20\x2d\x20\x31\x29\x2e\x63\x65\x6e\x74\x65\x72\x28\x65\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x32\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x65\x6c\x65\x63\x74\x52\x65\x63\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x32\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x69\x33\x20\x3d\x20\x69\x33\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x20\x3f\x20\x69\x33\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x20\x3a\x20\x69\x33\x2e\x72\x65\x74\x75\x72\x6e\x56\x61\x6c\x75\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x33\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\x76\x61\x72\x20\x61\x33\x20\x3d\x20\x69\x33\x2e\x70\x61\x67\x65\x58\x20\x7c\x7c\x20\x69\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x70\x61\x67\x65\x58\x2c\x20\x73\x33\x20\x3d\x20\x69\x33\x2e\x70\x61\x67\x65\x59\x20\x7c\x7c\x20\x69\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x70\x61\x67\x65\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x74\x34\x2c\x20\x7b\x20\x78\x3a\x20\x61\x33\x2c\x20\x79\x3a\x20\x73\x33\x2c\x20\x65\x76\x65\x6e\x74\x3a\x20\x69\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x2e\x73\x65\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x67\x65\x74\x28\x30\x29\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x2e\x72\x65\x63\x74\x28\x69\x32\x2e\x77\x69\x64\x74\x68\x2c\x20\x69\x32\x2e\x68\x65\x69\x67\x68\x74\x29\x2e\x61\x64\x64\x43\x6c\x61\x73\x73\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6c\x61\x73\x73\x52\x65\x63\x74\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x6c\x65\x6e\x67\x74\x68\x28\x29\x20\x3c\x20\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x73\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x33\x20\x3d\x20\x65\x32\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x73\x28\x74\x34\x2c\x20\x69\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x65\x32\x2e\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x28\x72\x33\x2e\x78\x2c\x20\x72\x33\x2e\x79\x29\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x65\x32\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6c\x61\x73\x73\x50\x6f\x69\x6e\x74\x73\x20\x2b\x20\x22\x5f\x22\x20\x2b\x20\x74\x34\x29\x2e\x6f\x6e\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x61\x32\x28\x74\x34\x29\x29\x2e\x6f\x6e\x28\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x2c\x20\x61\x32\x28\x74\x34\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x61\x64\x64\x28\x6f\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x43\x6c\x61\x73\x73\x28\x65\x32\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6c\x61\x73\x73\x50\x6f\x69\x6e\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x72\x6f\x74\x61\x74\x69\x6f\x6e\x50\x6f\x69\x6e\x74\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x67\x65\x74\x28\x39\x29\x20\x7c\x7c\x20\x21\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x69\x6e\x74\x73\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x67\x65\x74\x28\x31\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x74\x34\x20\x3d\x20\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x20\x3f\x20\x74\x34\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x20\x3a\x20\x74\x34\x2e\x72\x65\x74\x75\x72\x6e\x56\x61\x6c\x75\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x34\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\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x34\x2e\x70\x61\x67\x65\x58\x20\x7c\x7c\x20\x74\x34\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x70\x61\x67\x65\x58\x2c\x20\x61\x33\x20\x3d\x20\x74\x34\x2e\x70\x61\x67\x65\x59\x20\x7c\x7c\x20\x74\x34\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x70\x61\x67\x65\x59\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x72\x6f\x74\x22\x2c\x20\x7b\x20\x78\x3a\x20\x69\x33\x2c\x20\x79\x3a\x20\x61\x33\x2c\x20\x65\x76\x65\x6e\x74\x3a\x20\x74\x34\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x72\x61\x77\x50\x6f\x69\x6e\x74\x28\x69\x32\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x2c\x20\x32\x30\x29\x2e\x61\x74\x74\x72\x28\x22\x63\x6c\x61\x73\x73\x22\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6c\x61\x73\x73\x50\x6f\x69\x6e\x74\x73\x20\x2b\x20\x22\x5f\x72\x6f\x74\x22\x29\x2e\x6f\x6e\x28\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x2c\x20\x73\x32\x29\x2e\x6f\x6e\x28\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x73\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x61\x64\x64\x28\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x68\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x62\x62\x6f\x78\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x2e\x6d\x61\x74\x72\x69\x78\x28\x6e\x65\x77\x20\x53\x56\x47\x2e\x4d\x61\x74\x72\x69\x78\x28\x74\x68\x69\x73\x2e\x65\x6c\x29\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x74\x33\x2e\x78\x2c\x20\x74\x33\x2e\x79\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x52\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4d\x75\x74\x61\x74\x69\x6f\x6e\x4f\x62\x73\x65\x72\x76\x65\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x49\x6e\x73\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x49\x6e\x73\x74\x20\x7c\x7c\x20\x6e\x65\x77\x20\x4d\x75\x74\x61\x74\x69\x6f\x6e\x4f\x62\x73\x65\x72\x76\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x68\x61\x6e\x64\x6c\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x49\x6e\x73\x74\x2e\x6f\x62\x73\x65\x72\x76\x65\x28\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6e\x6f\x64\x65\x2c\x20\x7b\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x49\x6e\x73\x74\x2e\x64\x69\x73\x63\x6f\x6e\x6e\x65\x63\x74\x28\x29\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x49\x6e\x73\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x44\x4f\x4d\x41\x74\x74\x72\x4d\x6f\x64\x69\x66\x69\x65\x64\x2e\x73\x65\x6c\x65\x63\x74\x22\x29\x2c\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x44\x4f\x4d\x41\x74\x74\x72\x4d\x6f\x64\x69\x66\x69\x65\x64\x2e\x73\x65\x6c\x65\x63\x74\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x68\x61\x6e\x64\x6c\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x63\x6c\x65\x61\x6e\x75\x70\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x21\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x63\x6c\x65\x61\x72\x28\x29\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x29\x2c\x20\x21\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x2e\x63\x6c\x65\x61\x72\x28\x29\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x73\x65\x74\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x72\x65\x63\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x73\x53\x65\x6c\x65\x63\x74\x65\x64\x20\x7c\x7c\x20\x28\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x6e\x65\x73\x74\x65\x64\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x73\x65\x6c\x65\x63\x74\x69\x7a\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x20\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x65\x32\x2c\x20\x65\x32\x20\x3d\x20\x74\x72\x75\x65\x29\x2c\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x6d\x65\x6d\x62\x65\x72\x28\x22\x5f\x73\x65\x6c\x65\x63\x74\x48\x61\x6e\x64\x6c\x65\x72\x22\x29\x20\x7c\x7c\x20\x6e\x65\x77\x20\x74\x32\x28\x74\x68\x69\x73\x29\x29\x2e\x69\x6e\x69\x74\x28\x65\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x65\x32\x2c\x20\x69\x32\x20\x7c\x7c\x20\x7b\x7d\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x65\x6c\x65\x63\x74\x69\x7a\x65\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x20\x3d\x20\x7b\x20\x70\x6f\x69\x6e\x74\x73\x3a\x20\x5b\x22\x6c\x74\x22\x2c\x20\x22\x72\x74\x22\x2c\x20\x22\x72\x62\x22\x2c\x20\x22\x6c\x62\x22\x2c\x20\x22\x74\x22\x2c\x20\x22\x72\x22\x2c\x20\x22\x62\x22\x2c\x20\x22\x6c\x22\x5d\x2c\x20\x70\x6f\x69\x6e\x74\x73\x45\x78\x63\x6c\x75\x64\x65\x3a\x20\x5b\x5d\x2c\x20\x63\x6c\x61\x73\x73\x52\x65\x63\x74\x3a\x20\x22\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x62\x6f\x75\x6e\x64\x69\x6e\x67\x52\x65\x63\x74\x22\x2c\x20\x63\x6c\x61\x73\x73\x50\x6f\x69\x6e\x74\x73\x3a\x20\x22\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x70\x6f\x69\x6e\x74\x73\x22\x2c\x20\x70\x6f\x69\x6e\x74\x53\x69\x7a\x65\x3a\x20\x37\x2c\x20\x72\x6f\x74\x61\x74\x69\x6f\x6e\x50\x6f\x69\x6e\x74\x3a\x20\x74\x72\x75\x65\x2c\x20\x64\x65\x65\x70\x53\x65\x6c\x65\x63\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x70\x6f\x69\x6e\x74\x54\x79\x70\x65\x3a\x20\x22\x63\x69\x72\x63\x6c\x65\x22\x20\x7d\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x72\x65\x6d\x65\x6d\x62\x65\x72\x28\x22\x5f\x72\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x22\x2c\x20\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x3d\x20\x74\x33\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x3d\x20\x7b\x7d\x2c\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x55\x70\x64\x61\x74\x65\x43\x61\x6c\x6c\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x70\x20\x3d\x20\x74\x33\x2e\x64\x6f\x63\x28\x29\x2e\x6e\x6f\x64\x65\x2e\x63\x72\x65\x61\x74\x65\x53\x56\x47\x50\x6f\x69\x6e\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x50\x6f\x69\x6e\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x2e\x78\x20\x3d\x20\x74\x33\x20\x2d\x20\x28\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2e\x78\x20\x2d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x70\x61\x67\x65\x58\x4f\x66\x66\x73\x65\x74\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x2e\x79\x20\x3d\x20\x65\x32\x20\x2d\x20\x28\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2e\x79\x20\x2d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x70\x61\x67\x65\x59\x4f\x66\x66\x73\x65\x74\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x2e\x6d\x61\x74\x72\x69\x78\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x69\x32\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x6d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x5f\x65\x78\x74\x72\x61\x63\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x78\x3a\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x58\x20\x3a\x20\x74\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2c\x20\x79\x3a\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x74\x33\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x3a\x20\x74\x33\x2e\x74\x6f\x75\x63\x68\x65\x73\x5b\x30\x5d\x2e\x63\x6c\x69\x65\x6e\x74\x59\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x69\x6e\x69\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x73\x74\x6f\x70\x28\x29\x2c\x20\x74\x33\x20\x21\x3d\x3d\x20\x22\x73\x74\x6f\x70\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x32\x20\x69\x6e\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x72\x65\x73\x69\x7a\x65\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x69\x32\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x72\x65\x73\x69\x7a\x65\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x5b\x69\x32\x5d\x2c\x20\x74\x33\x5b\x69\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x5b\x69\x32\x5d\x20\x3d\x20\x74\x33\x5b\x69\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x6c\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x72\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x72\x62\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x6c\x62\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x72\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x62\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x6c\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x72\x6f\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x6e\x28\x22\x70\x6f\x69\x6e\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x72\x65\x73\x69\x7a\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x74\x6f\x70\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x6c\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x72\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x72\x62\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x6c\x62\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x72\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x62\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x6c\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x72\x6f\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6f\x66\x66\x28\x22\x70\x6f\x69\x6e\x74\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x72\x65\x73\x69\x7a\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6e\x6f\x64\x65\x2e\x67\x65\x74\x53\x63\x72\x65\x65\x6e\x43\x54\x4d\x28\x29\x2e\x69\x6e\x76\x65\x72\x73\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x7b\x20\x78\x3a\x20\x77\x69\x6e\x64\x6f\x77\x2e\x70\x61\x67\x65\x58\x4f\x66\x66\x73\x65\x74\x2c\x20\x79\x3a\x20\x77\x69\x6e\x64\x6f\x77\x2e\x70\x61\x67\x65\x59\x4f\x66\x66\x73\x65\x74\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x65\x78\x74\x72\x61\x63\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x74\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x3d\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x74\x79\x70\x65\x2c\x20\x70\x3a\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x50\x6f\x69\x6e\x74\x28\x69\x32\x2e\x78\x2c\x20\x69\x32\x2e\x79\x29\x2c\x20\x78\x3a\x20\x74\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x78\x2c\x20\x79\x3a\x20\x74\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x79\x2c\x20\x62\x6f\x78\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x62\x62\x6f\x78\x28\x29\x2c\x20\x72\x6f\x74\x61\x74\x69\x6f\x6e\x3a\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x28\x29\x2e\x72\x6f\x74\x61\x74\x69\x6f\x6e\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x74\x74\x72\x28\x29\x5b\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x5d\x29\x2c\x20\x74\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x69\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x72\x72\x61\x79\x28\x29\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x69\x20\x3d\x20\x74\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x69\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x73\x20\x3d\x20\x5b\x61\x32\x5b\x74\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x69\x5d\x5b\x30\x5d\x2c\x20\x61\x32\x5b\x74\x33\x2e\x64\x65\x74\x61\x69\x6c\x2e\x69\x5d\x5b\x31\x5d\x5d\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\x74\x33\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6c\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x69\x33\x5b\x30\x5d\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x69\x33\x5b\x31\x5d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x29\x0a\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2b\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2c\x20\x76\x6f\x69\x64\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x74\x74\x72\x28\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x2d\x20\x69\x33\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\x28\x69\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2b\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x20\x2b\x20\x69\x33\x5b\x31\x5d\x29\x2e\x73\x69\x7a\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x69\x33\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x69\x33\x5b\x30\x5d\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x69\x33\x5b\x31\x5d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x29\x0a\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2d\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2c\x20\x76\x6f\x69\x64\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x74\x74\x72\x28\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x2b\x20\x69\x33\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\x28\x69\x33\x2c\x20\x74\x72\x75\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x20\x2b\x20\x69\x33\x5b\x31\x5d\x29\x2e\x73\x69\x7a\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x69\x33\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x62\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x69\x33\x5b\x30\x5d\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x69\x33\x5b\x31\x5d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x29\x0a\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2d\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2c\x20\x76\x6f\x69\x64\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x74\x74\x72\x28\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x2b\x20\x69\x33\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\x28\x69\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2e\x73\x69\x7a\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x69\x33\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6c\x62\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x69\x33\x5b\x30\x5d\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x69\x33\x5b\x31\x5d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x29\x0a\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2b\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2c\x20\x76\x6f\x69\x64\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x74\x74\x72\x28\x22\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x66\x6f\x6e\x74\x53\x69\x7a\x65\x20\x2d\x20\x69\x33\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x65\x63\x6b\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\x28\x69\x33\x2c\x20\x74\x72\x75\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2b\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2e\x73\x69\x7a\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x69\x33\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x69\x33\x5b\x31\x5d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x29\x0a\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x20\x2b\x20\x69\x33\x5b\x31\x5d\x29\x2e\x68\x65\x69\x67\x68\x74\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x69\x33\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\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\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x69\x33\x5b\x30\x5d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x29\x0a\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2e\x77\x69\x64\x74\x68\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x69\x33\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x69\x33\x5b\x31\x5d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x29\x0a\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2e\x68\x65\x69\x67\x68\x74\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2b\x20\x69\x33\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6c\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x69\x33\x5b\x30\x5d\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x65\x78\x74\x22\x29\x0a\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2b\x20\x69\x33\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x29\x2e\x77\x69\x64\x74\x68\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x69\x33\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x72\x6f\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x34\x20\x2b\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x2e\x78\x2c\x20\x61\x33\x20\x3d\x20\x65\x33\x20\x2b\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x2e\x79\x2c\x20\x73\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x74\x61\x6e\x32\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x2e\x79\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x2e\x78\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x2c\x20\x72\x32\x20\x3d\x20\x4d\x61\x74\x68\x2e\x61\x74\x61\x6e\x32\x28\x61\x33\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2f\x20\x32\x2c\x20\x69\x33\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x72\x6f\x74\x61\x74\x69\x6f\x6e\x20\x2b\x20\x31\x38\x30\x20\x2a\x20\x28\x72\x32\x20\x2d\x20\x73\x32\x29\x20\x2f\x20\x4d\x61\x74\x68\x2e\x50\x49\x20\x2b\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x41\x6e\x67\x6c\x65\x20\x2f\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x63\x65\x6e\x74\x65\x72\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x63\x78\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x63\x79\x29\x2e\x72\x6f\x74\x61\x74\x65\x28\x6f\x32\x20\x2d\x20\x6f\x32\x20\x25\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x41\x6e\x67\x6c\x65\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x63\x78\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x63\x79\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\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x70\x6f\x69\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x28\x74\x34\x2c\x20\x65\x33\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x73\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x73\x5b\x31\x5d\x29\x2c\x20\x61\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x61\x72\x72\x61\x79\x28\x29\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x33\x5b\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x69\x5d\x5b\x30\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x73\x5b\x30\x5d\x20\x2b\x20\x69\x33\x5b\x30\x5d\x2c\x20\x61\x33\x5b\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x69\x5d\x5b\x31\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x6f\x69\x6e\x74\x43\x6f\x6f\x72\x64\x73\x5b\x31\x5d\x20\x2b\x20\x69\x33\x5b\x31\x5d\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x70\x6c\x6f\x74\x28\x61\x33\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\x74\x68\x69\x73\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x72\x65\x73\x69\x7a\x65\x73\x74\x61\x72\x74\x22\x2c\x20\x7b\x20\x64\x78\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x78\x2c\x20\x64\x79\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x79\x2c\x20\x65\x76\x65\x6e\x74\x3a\x20\x74\x33\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x6f\x6e\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x75\x70\x64\x61\x74\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x6f\x6e\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x6f\x6e\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x75\x70\x64\x61\x74\x65\x28\x74\x34\x20\x7c\x7c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x6f\x6e\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x2e\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x64\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x75\x70\x64\x61\x74\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x65\x78\x74\x72\x61\x63\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x74\x33\x29\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x50\x6f\x69\x6e\x74\x28\x65\x32\x2e\x78\x2c\x20\x65\x32\x2e\x79\x29\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x78\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x2e\x78\x2c\x20\x73\x32\x20\x3d\x20\x69\x32\x2e\x79\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x70\x2e\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x55\x70\x64\x61\x74\x65\x43\x61\x6c\x6c\x20\x3d\x20\x5b\x61\x32\x2c\x20\x73\x32\x5d\x2c\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x28\x61\x32\x2c\x20\x73\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x72\x65\x73\x69\x7a\x69\x6e\x67\x22\x2c\x20\x7b\x20\x64\x78\x3a\x20\x61\x32\x2c\x20\x64\x79\x3a\x20\x73\x32\x2c\x20\x65\x76\x65\x6e\x74\x3a\x20\x74\x33\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x55\x70\x64\x61\x74\x65\x43\x61\x6c\x6c\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x61\x6c\x63\x28\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x55\x70\x64\x61\x74\x65\x43\x61\x6c\x6c\x5b\x30\x5d\x2c\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x55\x70\x64\x61\x74\x65\x43\x61\x6c\x6c\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x64\x6f\x6e\x65\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x61\x73\x74\x55\x70\x64\x61\x74\x65\x43\x61\x6c\x6c\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x53\x56\x47\x2e\x6f\x66\x66\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x53\x56\x47\x2e\x6f\x66\x66\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x53\x56\x47\x2e\x6f\x66\x66\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x53\x56\x47\x2e\x6f\x66\x66\x28\x77\x69\x6e\x64\x6f\x77\x2c\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x2e\x72\x65\x73\x69\x7a\x65\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x66\x69\x72\x65\x28\x22\x72\x65\x73\x69\x7a\x65\x64\x6f\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x73\x32\x20\x3d\x20\x5b\x28\x69\x32\x20\x2b\x20\x74\x33\x29\x20\x25\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x2c\x20\x28\x61\x32\x20\x2b\x20\x65\x32\x29\x20\x25\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x5d\x20\x3a\x20\x28\x69\x32\x20\x3d\x20\x69\x32\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x33\x20\x3a\x20\x69\x32\x2c\x20\x73\x32\x20\x3d\x20\x5b\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2b\x20\x74\x33\x20\x2b\x20\x28\x31\x20\x26\x20\x69\x32\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x29\x29\x20\x25\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x2c\x20\x28\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x20\x2b\x20\x65\x32\x20\x2b\x20\x28\x32\x20\x26\x20\x69\x32\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x29\x29\x20\x25\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x5d\x29\x2c\x20\x74\x33\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x73\x32\x5b\x30\x5d\x20\x2d\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x29\x2c\x20\x65\x32\x20\x3c\x20\x30\x20\x26\x26\x20\x28\x73\x32\x5b\x31\x5d\x20\x2d\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x29\x2c\x20\x74\x33\x20\x2d\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x5b\x30\x5d\x29\x20\x3c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x20\x2f\x20\x32\x20\x3f\x20\x73\x32\x5b\x30\x5d\x20\x3a\x20\x73\x32\x5b\x30\x5d\x20\x2d\x20\x28\x74\x33\x20\x3c\x20\x30\x20\x3f\x20\x2d\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x20\x3a\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x29\x2c\x20\x65\x32\x20\x2d\x3d\x20\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x73\x32\x5b\x31\x5d\x29\x20\x3c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x20\x2f\x20\x32\x20\x3f\x20\x73\x32\x5b\x31\x5d\x20\x3a\x20\x73\x32\x5b\x31\x5d\x20\x2d\x20\x28\x65\x32\x20\x3c\x20\x30\x20\x3f\x20\x2d\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x20\x3a\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x54\x6f\x42\x6f\x78\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x54\x6f\x42\x6f\x78\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x2c\x20\x72\x32\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x20\x7c\x7c\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x28\x73\x32\x20\x3d\x20\x69\x32\x2c\x20\x72\x32\x20\x3d\x20\x61\x32\x29\x20\x3a\x20\x28\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x78\x20\x2b\x20\x28\x31\x20\x26\x20\x69\x32\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x29\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x79\x20\x2b\x20\x28\x32\x20\x26\x20\x69\x32\x20\x3f\x20\x30\x20\x3a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x29\x29\x2c\x20\x6f\x32\x2e\x6d\x69\x6e\x58\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x73\x32\x20\x2b\x20\x74\x33\x20\x3c\x20\x6f\x32\x2e\x6d\x69\x6e\x58\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x6f\x32\x2e\x6d\x69\x6e\x58\x20\x2d\x20\x73\x32\x29\x2c\x20\x6f\x32\x2e\x6d\x61\x78\x58\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x73\x32\x20\x2b\x20\x74\x33\x20\x3e\x20\x6f\x32\x2e\x6d\x61\x78\x58\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x6f\x32\x2e\x6d\x61\x78\x58\x20\x2d\x20\x73\x32\x29\x2c\x20\x6f\x32\x2e\x6d\x69\x6e\x59\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x72\x32\x20\x2b\x20\x65\x32\x20\x3c\x20\x6f\x32\x2e\x6d\x69\x6e\x59\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x6f\x32\x2e\x6d\x69\x6e\x59\x20\x2d\x20\x72\x32\x29\x2c\x20\x6f\x32\x2e\x6d\x61\x78\x59\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x72\x32\x20\x2b\x20\x65\x32\x20\x3e\x20\x6f\x32\x2e\x6d\x61\x78\x59\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x6f\x32\x2e\x6d\x61\x78\x59\x20\x2d\x20\x72\x32\x29\x2c\x20\x5b\x74\x33\x2c\x20\x65\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x32\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x63\x68\x65\x63\x6b\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x61\x76\x65\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2f\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2b\x20\x74\x33\x5b\x30\x5d\x2c\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x20\x2d\x20\x74\x33\x5b\x31\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x73\x32\x20\x2f\x20\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x20\x3c\x20\x61\x32\x20\x3f\x20\x28\x69\x32\x5b\x31\x5d\x20\x3d\x20\x73\x32\x20\x2f\x20\x61\x32\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x65\x32\x20\x26\x26\x20\x28\x69\x32\x5b\x31\x5d\x20\x3d\x20\x2d\x69\x32\x5b\x31\x5d\x29\x29\x20\x3a\x20\x6f\x32\x20\x3e\x20\x61\x32\x20\x26\x26\x20\x28\x69\x32\x5b\x30\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e\x62\x6f\x78\x2e\x77\x69\x64\x74\x68\x20\x2d\x20\x72\x32\x20\x2a\x20\x61\x32\x2c\x20\x65\x32\x20\x26\x26\x20\x28\x69\x32\x5b\x30\x5d\x20\x3d\x20\x2d\x69\x32\x5b\x30\x5d\x29\x29\x2c\x20\x69\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x53\x56\x47\x2e\x65\x78\x74\x65\x6e\x64\x28\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x20\x7b\x20\x72\x65\x73\x69\x7a\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x74\x68\x69\x73\x2e\x72\x65\x6d\x65\x6d\x62\x65\x72\x28\x22\x5f\x72\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x22\x29\x20\x7c\x7c\x20\x6e\x65\x77\x20\x74\x32\x28\x74\x68\x69\x73\x29\x29\x2e\x69\x6e\x69\x74\x28\x65\x32\x20\x7c\x7c\x20\x7b\x7d\x29\x2c\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x7d\x29\x2c\x20\x53\x56\x47\x2e\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x72\x65\x73\x69\x7a\x65\x2e\x64\x65\x66\x61\x75\x6c\x74\x73\x20\x3d\x20\x7b\x20\x73\x6e\x61\x70\x54\x6f\x41\x6e\x67\x6c\x65\x3a\x20\x30\x2e\x31\x2c\x20\x73\x6e\x61\x70\x54\x6f\x47\x72\x69\x64\x3a\x20\x31\x2c\x20\x63\x6f\x6e\x73\x74\x72\x61\x69\x6e\x74\x3a\x20\x7b\x7d\x2c\x20\x73\x61\x76\x65\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6f\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x29\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x20\x3d\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x76\x61\x72\x20\x52\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x4d\x6f\x64\x75\x6c\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x70\x75\x62\x6c\x69\x63\x4d\x65\x74\x68\x6f\x64\x73\x20\x3d\x20\x5b\x22\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x22\x2c\x20\x22\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x22\x61\x70\x70\x65\x6e\x64\x44\x61\x74\x61\x22\x2c\x20\x22\x61\x70\x70\x65\x6e\x64\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x22\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x22\x73\x68\x6f\x77\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x22\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x22\x73\x65\x74\x4c\x6f\x63\x61\x6c\x65\x22\x2c\x20\x22\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x22\x7a\x6f\x6f\x6d\x58\x22\x2c\x20\x22\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x22\x64\x61\x74\x61\x55\x52\x49\x22\x2c\x20\x22\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x22\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x22\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x22\x63\x6c\x65\x61\x72\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x22\x72\x65\x6d\x6f\x76\x65\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x22\x70\x61\x70\x65\x72\x22\x2c\x20\x22\x64\x65\x73\x74\x72\x6f\x79\x22\x5d\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x20\x3d\x20\x5b\x22\x63\x6c\x69\x63\x6b\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x73\x74\x61\x72\x74\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x6d\x6f\x76\x65\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x6c\x65\x61\x76\x65\x22\x2c\x20\x22\x6d\x6f\x75\x73\x65\x75\x70\x22\x2c\x20\x22\x74\x6f\x75\x63\x68\x65\x6e\x64\x22\x5d\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x65\x77\x20\x62\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x61\x78\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x4b\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x6f\x72\x65\x20\x3d\x20\x6e\x65\x77\x20\x59\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x20\x3d\x20\x6e\x65\x77\x20\x4e\x28\x7b\x7d\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x64\x61\x74\x61\x20\x3d\x20\x6e\x65\x77\x20\x42\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x67\x72\x69\x64\x20\x3d\x20\x6e\x65\x77\x20\x55\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x67\x72\x61\x70\x68\x69\x63\x73\x20\x3d\x20\x6e\x65\x77\x20\x6d\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x20\x3d\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x74\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x20\x3d\x20\x6e\x65\x77\x20\x4a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x78\x70\x6f\x72\x74\x73\x20\x3d\x20\x6e\x65\x77\x20\x6a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6c\x6f\x63\x61\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x51\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x65\x77\x20\x4c\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x20\x3d\x20\x6e\x65\x77\x20\x65\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x45\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x68\x65\x6d\x65\x20\x3d\x20\x6e\x65\x77\x20\x69\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x56\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x20\x3d\x20\x6e\x65\x77\x20\x61\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6c\x65\x67\x65\x6e\x64\x20\x3d\x20\x6e\x65\x77\x20\x63\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x20\x3d\x20\x6e\x65\x77\x20\x64\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x64\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x65\x77\x20\x6c\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x65\x77\x20\x46\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x7a\x6f\x6f\x6d\x50\x61\x6e\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x65\x77\x20\x67\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x6e\x65\x77\x20\x6d\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x48\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x65\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x65\x61\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x33\x2e\x69\x73\x55\x70\x64\x61\x74\x69\x6e\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x7a\x6f\x6f\x6d\x50\x61\x6e\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x7a\x6f\x6f\x6d\x50\x61\x6e\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x64\x65\x73\x74\x72\x6f\x79\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x64\x65\x73\x74\x72\x6f\x79\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x61\x78\x65\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x6f\x72\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x64\x61\x74\x61\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x67\x72\x69\x64\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x68\x65\x6d\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6c\x65\x67\x65\x6e\x64\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x64\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x7a\x6f\x6f\x6d\x50\x61\x6e\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x6c\x6f\x63\x61\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x68\x69\x73\x2e\x63\x6c\x65\x61\x72\x44\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x7b\x20\x69\x73\x55\x70\x64\x61\x74\x69\x6e\x67\x3a\x20\x65\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6b\x69\x6c\x6c\x53\x56\x47\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x28\x22\x2a\x22\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x74\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x74\x72\x75\x65\x29\x2c\x20\x74\x33\x2e\x75\x6e\x67\x72\x6f\x75\x70\x28\x29\x2c\x20\x74\x33\x2e\x63\x6c\x65\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x65\x61\x72\x44\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x74\x33\x2e\x69\x73\x55\x70\x64\x61\x74\x69\x6e\x67\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x26\x26\x20\x61\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x20\x26\x26\x20\x21\x69\x32\x20\x26\x26\x20\x28\x61\x32\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x73\x74\x79\x6c\x65\x2e\x6d\x69\x6e\x48\x65\x69\x67\x68\x74\x20\x3d\x20\x22\x75\x6e\x73\x65\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x32\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x4c\x69\x73\x74\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x32\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x74\x34\x2c\x20\x65\x32\x2e\x63\x74\x78\x2e\x65\x76\x65\x6e\x74\x73\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x76\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x6c\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x3b\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x6c\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x20\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x6c\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x65\x6c\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6b\x69\x6c\x6c\x53\x56\x47\x28\x72\x32\x2e\x50\x61\x70\x65\x72\x29\x2c\x20\x72\x32\x2e\x50\x61\x70\x65\x72\x2e\x72\x65\x6d\x6f\x76\x65\x28\x29\x2c\x20\x72\x32\x2e\x65\x6c\x57\x72\x61\x70\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x4c\x65\x67\x65\x6e\x64\x57\x72\x61\x70\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x62\x61\x73\x65\x45\x6c\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x73\x6b\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x47\x72\x69\x64\x52\x65\x63\x74\x4d\x61\x72\x6b\x65\x72\x4d\x61\x73\x6b\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x4e\x6f\x6e\x46\x6f\x72\x65\x63\x61\x73\x74\x4d\x61\x73\x6b\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x32\x2e\x65\x6c\x44\x65\x66\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x2c\x20\x44\x74\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x57\x65\x61\x6b\x4d\x61\x70\x28\x29\x3b\x0a\x20\x20\x76\x61\x72\x20\x4e\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x32\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x28\x74\x68\x69\x73\x2c\x20\x74\x32\x29\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x73\x20\x3d\x20\x69\x32\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x74\x68\x69\x73\x2e\x77\x20\x3d\x20\x6e\x65\x77\x20\x57\x28\x69\x32\x29\x2e\x69\x6e\x69\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x20\x3d\x20\x65\x32\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x20\x3d\x20\x78\x2e\x72\x61\x6e\x64\x6f\x6d\x49\x64\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x68\x61\x72\x74\x49\x44\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x69\x64\x20\x3f\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x69\x64\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x75\x69\x64\x2c\x20\x6e\x65\x77\x20\x52\x74\x28\x74\x68\x69\x73\x29\x2e\x69\x6e\x69\x74\x4d\x6f\x64\x75\x6c\x65\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x20\x3d\x20\x78\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x2c\x20\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x77\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x2c\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x52\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x20\x3d\x20\x74\x68\x69\x73\x2e\x5f\x70\x61\x72\x65\x6e\x74\x52\x65\x73\x69\x7a\x65\x43\x61\x6c\x6c\x62\x61\x63\x6b\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x28\x74\x32\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6e\x64\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x72\x6f\x6d\x69\x73\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x2c\x20\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x2e\x65\x6c\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x70\x65\x78\x2e\x5f\x63\x68\x61\x72\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x41\x70\x65\x78\x2e\x5f\x63\x68\x61\x72\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x73\x20\x3d\x20\x5b\x5d\x29\x2c\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x69\x64\x20\x26\x26\x20\x41\x70\x65\x78\x2e\x5f\x63\x68\x61\x72\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x69\x64\x3a\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x68\x61\x72\x74\x49\x44\x2c\x20\x67\x72\x6f\x75\x70\x3a\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x67\x72\x6f\x75\x70\x2c\x20\x63\x68\x61\x72\x74\x3a\x20\x74\x33\x20\x7d\x29\x2c\x20\x74\x33\x2e\x73\x65\x74\x4c\x6f\x63\x61\x6c\x65\x28\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x64\x65\x66\x61\x75\x6c\x74\x4c\x6f\x63\x61\x6c\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x32\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x61\x32\x28\x74\x33\x2c\x20\x74\x33\x2e\x77\x29\x2c\x20\x74\x33\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x22\x2c\x20\x5b\x74\x33\x2c\x20\x74\x33\x2e\x77\x5d\x29\x2c\x20\x77\x69\x6e\x64\x6f\x77\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x74\x33\x2e\x77\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x29\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x33\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x33\x20\x3d\x20\x74\x34\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x21\x3d\x3d\x20\x22\x6e\x6f\x6e\x65\x22\x20\x26\x26\x20\x61\x33\x2e\x77\x69\x64\x74\x68\x20\x21\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x28\x69\x33\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x33\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x73\x69\x7a\x65\x4f\x62\x73\x65\x72\x76\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x33\x20\x26\x26\x20\x65\x33\x2e\x63\x61\x6c\x6c\x28\x74\x34\x2c\x20\x61\x34\x29\x2c\x20\x69\x33\x20\x3d\x20\x74\x72\x75\x65\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\x34\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x20\x3d\x3d\x3d\x20\x4e\x6f\x64\x65\x2e\x44\x4f\x43\x55\x4d\x45\x4e\x54\x5f\x46\x52\x41\x47\x4d\x45\x4e\x54\x5f\x4e\x4f\x44\x45\x20\x3f\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x74\x34\x2e\x63\x68\x69\x6c\x64\x72\x65\x6e\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x35\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x33\x2e\x6f\x62\x73\x65\x72\x76\x65\x28\x74\x35\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x20\x3a\x20\x73\x33\x2e\x6f\x62\x73\x65\x72\x76\x65\x28\x74\x34\x29\x2c\x20\x44\x74\x2e\x73\x65\x74\x28\x65\x33\x2c\x20\x73\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x28\x74\x33\x2e\x65\x6c\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x20\x74\x33\x2e\x70\x61\x72\x65\x6e\x74\x52\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x29\x2c\x20\x21\x74\x33\x2e\x63\x73\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x2e\x67\x65\x74\x52\x6f\x6f\x74\x4e\x6f\x64\x65\x20\x26\x26\x20\x74\x33\x2e\x65\x6c\x2e\x67\x65\x74\x52\x6f\x6f\x74\x4e\x6f\x64\x65\x28\x29\x2c\x20\x72\x32\x20\x3d\x20\x78\x2e\x69\x73\x28\x22\x53\x68\x61\x64\x6f\x77\x52\x6f\x6f\x74\x22\x2c\x20\x73\x32\x29\x2c\x20\x6f\x32\x20\x3d\x20\x74\x33\x2e\x65\x6c\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x20\x6e\x32\x20\x3d\x20\x6f\x32\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x73\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x21\x72\x32\x20\x26\x26\x20\x6e\x32\x20\x7c\x7c\x20\x28\x74\x33\x2e\x63\x73\x73\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\x74\x79\x6c\x65\x22\x29\x2c\x20\x74\x33\x2e\x63\x73\x73\x2e\x69\x64\x20\x3d\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x73\x73\x22\x2c\x20\x74\x33\x2e\x63\x73\x73\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x27\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x20\x7b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x5c\x6e\x20\x20\x75\x73\x65\x72\x2d\x73\x65\x6c\x65\x63\x74\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x20\x20\x2f\x2a\x20\x63\x61\x6e\x6e\x6f\x74\x20\x67\x69\x76\x65\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x20\x68\x69\x64\x64\x65\x6e\x20\x61\x73\x20\x69\x74\x20\x77\x69\x6c\x6c\x20\x63\x72\x6f\x70\x20\x74\x6f\x6f\x6c\x74\x69\x70\x73\x20\x77\x68\x69\x63\x68\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x20\x6f\x75\x74\x73\x69\x64\x65\x20\x63\x68\x61\x72\x74\x20\x61\x72\x65\x61\x20\x2a\x2f\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x5c\x6e\x2f\x2a\x20\x73\x63\x72\x6f\x6c\x6c\x62\x61\x72\x20\x69\x73\x20\x6e\x6f\x74\x20\x76\x69\x73\x69\x62\x6c\x65\x20\x62\x79\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x66\x6f\x72\x20\x6c\x65\x67\x65\x6e\x64\x2c\x20\x68\x65\x6e\x63\x65\x20\x66\x6f\x72\x63\x69\x6e\x67\x20\x74\x68\x65\x20\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x20\x2a\x2f\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x20\x3a\x3a\x2d\x77\x65\x62\x6b\x69\x74\x2d\x73\x63\x72\x6f\x6c\x6c\x62\x61\x72\x20\x7b\x5c\x6e\x20\x20\x2d\x77\x65\x62\x6b\x69\x74\x2d\x61\x70\x70\x65\x61\x72\x61\x6e\x63\x65\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x36\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x20\x3a\x3a\x2d\x77\x65\x62\x6b\x69\x74\x2d\x73\x63\x72\x6f\x6c\x6c\x62\x61\x72\x2d\x74\x68\x75\x6d\x62\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x34\x70\x78\x3b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x2e\x35\x29\x3b\x5c\x6e\x20\x20\x62\x6f\x78\x2d\x73\x68\x61\x64\x6f\x77\x3a\x20\x30\x20\x30\x20\x31\x70\x78\x20\x72\x67\x62\x61\x28\x32\x35\x35\x2c\x20\x32\x35\x35\x2c\x20\x32\x35\x35\x2c\x20\x2e\x35\x29\x3b\x5c\x6e\x20\x20\x2d\x77\x65\x62\x6b\x69\x74\x2d\x62\x6f\x78\x2d\x73\x68\x61\x64\x6f\x77\x3a\x20\x30\x20\x30\x20\x31\x70\x78\x20\x72\x67\x62\x61\x28\x32\x35\x35\x2c\x20\x32\x35\x35\x2c\x20\x32\x35\x35\x2c\x20\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x69\x6e\x6e\x65\x72\x20\x7b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x65\x78\x74\x20\x74\x73\x70\x61\x6e\x20\x7b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\x69\x6e\x68\x65\x72\x69\x74\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x6c\x65\x67\x65\x6e\x64\x2d\x6d\x6f\x75\x73\x65\x6f\x76\x65\x72\x2d\x69\x6e\x61\x63\x74\x69\x76\x65\x20\x7b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x2e\x32\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x70\x78\x3b\x5c\x6e\x20\x20\x62\x6f\x78\x2d\x73\x68\x61\x64\x6f\x77\x3a\x20\x32\x70\x78\x20\x32\x70\x78\x20\x36\x70\x78\x20\x2d\x34\x70\x78\x20\x23\x39\x39\x39\x3b\x5c\x6e\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x64\x65\x66\x61\x75\x6c\x74\x3b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x34\x70\x78\x3b\x5c\x6e\x20\x20\x6c\x65\x66\x74\x3a\x20\x36\x32\x70\x78\x3b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x5c\x6e\x20\x20\x74\x6f\x70\x3a\x20\x32\x30\x70\x78\x3b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x66\x6c\x65\x78\x3b\x5c\x6e\x20\x20\x66\x6c\x65\x78\x2d\x64\x69\x72\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6f\x6c\x75\x6d\x6e\x3b\x5c\x6e\x20\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x20\x68\x69\x64\x64\x65\x6e\x3b\x5c\x6e\x20\x20\x77\x68\x69\x74\x65\x2d\x73\x70\x61\x63\x65\x3a\x20\x6e\x6f\x77\x72\x61\x70\x3b\x5c\x6e\x20\x20\x7a\x2d\x69\x6e\x64\x65\x78\x3a\x20\x31\x32\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x65\x33\x65\x33\x65\x33\x3b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x72\x67\x62\x61\x28\x32\x35\x35\x2c\x20\x32\x35\x35\x2c\x20\x32\x35\x35\x2c\x20\x30\x2e\x39\x36\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x7b\x5c\x6e\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x3b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x72\x67\x62\x61\x28\x33\x30\x2c\x20\x33\x30\x2c\x20\x33\x30\x2c\x20\x30\x2e\x38\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x20\x2a\x20\x7b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\x69\x6e\x68\x65\x72\x69\x74\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x69\x74\x6c\x65\x20\x7b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x3b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x35\x70\x78\x3b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x34\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x69\x74\x6c\x65\x20\x7b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x45\x43\x45\x46\x46\x31\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x64\x64\x64\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x69\x74\x6c\x65\x20\x7b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x37\x29\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x33\x33\x33\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x79\x2d\x76\x61\x6c\x75\x65\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x76\x61\x6c\x75\x65\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x7a\x2d\x76\x61\x6c\x75\x65\x20\x7b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x69\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\x6f\x63\x6b\x3b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x36\x30\x30\x3b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x35\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x69\x74\x6c\x65\x3a\x65\x6d\x70\x74\x79\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x79\x2d\x6c\x61\x62\x65\x6c\x3a\x65\x6d\x70\x74\x79\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x79\x2d\x76\x61\x6c\x75\x65\x3a\x65\x6d\x70\x74\x79\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x6c\x61\x62\x65\x6c\x3a\x65\x6d\x70\x74\x79\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x76\x61\x6c\x75\x65\x3a\x65\x6d\x70\x74\x79\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x7a\x2d\x76\x61\x6c\x75\x65\x3a\x65\x6d\x70\x74\x79\x20\x7b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x79\x2d\x76\x61\x6c\x75\x65\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x76\x61\x6c\x75\x65\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x7a\x2d\x76\x61\x6c\x75\x65\x20\x7b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x36\x30\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x6c\x61\x62\x65\x6c\x2c\x20\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x76\x61\x6c\x75\x65\x20\x7b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x20\x30\x20\x35\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x67\x6f\x61\x6c\x73\x2d\x67\x72\x6f\x75\x70\x2c\x20\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x6c\x61\x62\x65\x6c\x2c\x20\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x76\x61\x6c\x75\x65\x20\x7b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x66\x6c\x65\x78\x3b\x5c\x6e\x7d\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x6c\x61\x62\x65\x6c\x3a\x6e\x6f\x74\x28\x3a\x65\x6d\x70\x74\x79\x29\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x65\x78\x74\x2d\x67\x6f\x61\x6c\x73\x2d\x76\x61\x6c\x75\x65\x3a\x6e\x6f\x74\x28\x3a\x65\x6d\x70\x74\x79\x29\x20\x7b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x2d\x36\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6d\x61\x72\x6b\x65\x72\x20\x7b\x5c\x6e\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x32\x70\x78\x3b\x5c\x6e\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x32\x70\x78\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x5c\x6e\x20\x20\x74\x6f\x70\x3a\x20\x30\x70\x78\x3b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x72\x69\x67\x68\x74\x3a\x20\x31\x30\x70\x78\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x35\x30\x25\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x20\x7b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x20\x31\x30\x70\x78\x3b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x6c\x65\x66\x74\x3b\x5c\x6e\x20\x20\x6a\x75\x73\x74\x69\x66\x79\x2d\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x6c\x65\x66\x74\x3b\x5c\x6e\x20\x20\x61\x6c\x69\x67\x6e\x2d\x69\x74\x65\x6d\x73\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6d\x61\x72\x6b\x65\x72\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x3a\x6c\x61\x73\x74\x2d\x63\x68\x69\x6c\x64\x20\x7b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x34\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x73\x65\x72\x69\x65\x73\x2d\x67\x72\x6f\x75\x70\x2d\x68\x69\x64\x64\x65\x6e\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x6c\x69\x6e\x65\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x20\x21\x69\x6d\x70\x6f\x72\x74\x61\x6e\x74\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x79\x2d\x67\x72\x6f\x75\x70\x20\x7b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x20\x30\x20\x35\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x78\x2c\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x75\x73\x74\x6f\x6d\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x20\x7b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x34\x70\x78\x20\x38\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x78\x50\x6c\x6f\x74\x20\x7b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x66\x6c\x65\x78\x3b\x5c\x6e\x20\x20\x66\x6c\x65\x78\x2d\x64\x69\x72\x65\x63\x74\x69\x6f\x6e\x3a\x20\x63\x6f\x6c\x75\x6d\x6e\x2d\x72\x65\x76\x65\x72\x73\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x78\x3e\x64\x69\x76\x20\x7b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x34\x70\x78\x20\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x78\x20\x73\x70\x61\x6e\x2e\x76\x61\x6c\x75\x65\x20\x7b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x62\x6f\x6c\x64\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x20\x7b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x35\x70\x78\x20\x38\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x20\x2e\x63\x61\x74\x65\x67\x6f\x72\x79\x20\x7b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x36\x30\x30\x3b\x5c\x6e\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x37\x37\x37\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x61\x6e\x67\x65\x62\x61\x72\x20\x2e\x73\x65\x72\x69\x65\x73\x2d\x6e\x61\x6d\x65\x20\x7b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x62\x6f\x6c\x64\x3b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x62\x6c\x6f\x63\x6b\x3b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x35\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x39\x70\x78\x20\x31\x30\x70\x78\x3b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x33\x37\x33\x64\x33\x66\x3b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x33\x70\x78\x3b\x5c\x6e\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x32\x70\x78\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x5c\x6e\x20\x20\x7a\x2d\x69\x6e\x64\x65\x78\x3a\x20\x31\x30\x3b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x45\x43\x45\x46\x46\x31\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x39\x30\x41\x34\x41\x45\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x7b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x37\x29\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x61\x66\x74\x65\x72\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x6c\x65\x66\x74\x3a\x20\x35\x30\x25\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x73\x6f\x6c\x69\x64\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x3b\x5c\x6e\x20\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x22\x20\x22\x3b\x5c\x6e\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x32\x33\x36\x2c\x20\x32\x33\x39\x2c\x20\x32\x34\x31\x2c\x20\x30\x29\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x36\x70\x78\x3b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x2d\x36\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x31\x34\x34\x2c\x20\x31\x36\x34\x2c\x20\x31\x37\x34\x2c\x20\x30\x29\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x37\x70\x78\x3b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x2d\x37\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x61\x66\x74\x65\x72\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x31\x30\x30\x25\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x6f\x70\x3a\x61\x66\x74\x65\x72\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x6f\x70\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x74\x6f\x70\x3a\x20\x31\x30\x30\x25\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x45\x43\x45\x46\x46\x31\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x30\x41\x34\x41\x45\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x74\x74\x6f\x6d\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x62\x6f\x74\x74\x6f\x6d\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x6f\x70\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x45\x43\x45\x46\x46\x31\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x6f\x70\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x30\x41\x34\x41\x45\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x6f\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x74\x6f\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x34\x70\x78\x20\x31\x30\x70\x78\x3b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x33\x37\x33\x64\x33\x66\x3b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x33\x70\x78\x3b\x5c\x6e\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x32\x70\x78\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x5c\x6e\x20\x20\x7a\x2d\x69\x6e\x64\x65\x78\x3a\x20\x31\x30\x3b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x45\x43\x45\x46\x46\x31\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x39\x30\x41\x34\x41\x45\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x7b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x37\x29\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x61\x66\x74\x65\x72\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x74\x6f\x70\x3a\x20\x35\x30\x25\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x73\x6f\x6c\x69\x64\x20\x74\x72\x61\x6e\x73\x70\x61\x72\x65\x6e\x74\x3b\x5c\x6e\x20\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x22\x20\x22\x3b\x5c\x6e\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x32\x33\x36\x2c\x20\x32\x33\x39\x2c\x20\x32\x34\x31\x2c\x20\x30\x29\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x36\x70\x78\x3b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x2d\x36\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x31\x34\x34\x2c\x20\x31\x36\x34\x2c\x20\x31\x37\x34\x2c\x20\x30\x29\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x77\x69\x64\x74\x68\x3a\x20\x37\x70\x78\x3b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x2d\x37\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6c\x65\x66\x74\x3a\x61\x66\x74\x65\x72\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6c\x65\x66\x74\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x6c\x65\x66\x74\x3a\x20\x31\x30\x30\x25\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x69\x67\x68\x74\x3a\x61\x66\x74\x65\x72\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x69\x67\x68\x74\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x72\x69\x67\x68\x74\x3a\x20\x31\x30\x30\x25\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6c\x65\x66\x74\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x45\x43\x45\x46\x46\x31\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6c\x65\x66\x74\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x30\x41\x34\x41\x45\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6c\x65\x66\x74\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x6c\x65\x66\x74\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x6c\x65\x66\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x69\x67\x68\x74\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x69\x67\x68\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x45\x43\x45\x46\x46\x31\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x69\x67\x68\x74\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x69\x67\x68\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x30\x41\x34\x41\x45\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x69\x67\x68\x74\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x3a\x61\x66\x74\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x69\x67\x68\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x72\x69\x67\x68\x74\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x69\x67\x68\x74\x2d\x63\x6f\x6c\x6f\x72\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x61\x78\x69\x73\x74\x6f\x6f\x6c\x74\x69\x70\x2d\x68\x69\x64\x64\x65\x6e\x20\x7b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x20\x7b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x78\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x63\x74\x69\x76\x65\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x79\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2d\x68\x69\x64\x64\x65\x6e\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x20\x7b\x5c\x6e\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x6d\x6f\x76\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x62\x6f\x75\x6e\x64\x69\x6e\x67\x52\x65\x63\x74\x2c\x20\x2e\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x70\x6f\x69\x6e\x74\x73\x5f\x72\x6f\x74\x20\x7b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x20\x68\x69\x64\x64\x65\x6e\x3b\x5c\x6e\x7d\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x20\x2b\x20\x67\x20\x2e\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x62\x6f\x75\x6e\x64\x69\x6e\x67\x52\x65\x63\x74\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x20\x2b\x20\x67\x20\x2e\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x70\x6f\x69\x6e\x74\x73\x5f\x72\x6f\x74\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x20\x68\x69\x64\x64\x65\x6e\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x20\x2b\x20\x67\x20\x2e\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x70\x6f\x69\x6e\x74\x73\x5f\x6c\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x20\x2b\x20\x67\x20\x2e\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x70\x6f\x69\x6e\x74\x73\x5f\x72\x20\x7b\x5c\x6e\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x65\x77\x2d\x72\x65\x73\x69\x7a\x65\x3b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x20\x20\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x20\x76\x69\x73\x69\x62\x6c\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x73\x76\x67\x5f\x73\x65\x6c\x65\x63\x74\x5f\x70\x6f\x69\x6e\x74\x73\x20\x7b\x5c\x6e\x20\x20\x66\x69\x6c\x6c\x3a\x20\x23\x65\x66\x65\x66\x65\x66\x3b\x5c\x6e\x20\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x23\x33\x33\x33\x3b\x5c\x6e\x20\x20\x72\x78\x3a\x20\x32\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x76\x67\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x61\x62\x6c\x65\x2e\x68\x6f\x76\x65\x72\x69\x6e\x67\x2d\x7a\x6f\x6f\x6d\x20\x7b\x5c\x6e\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x76\x67\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x61\x62\x6c\x65\x2e\x68\x6f\x76\x65\x72\x69\x6e\x67\x2d\x70\x61\x6e\x20\x7b\x5c\x6e\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x6d\x6f\x76\x65\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x69\x6e\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x6f\x75\x74\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x65\x73\x65\x74\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x61\x6e\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x62\x61\x72\x2d\x63\x75\x73\x74\x6f\x6d\x2d\x69\x63\x6f\x6e\x20\x7b\x5c\x6e\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x70\x6f\x69\x6e\x74\x65\x72\x3b\x5c\x6e\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x30\x70\x78\x3b\x5c\x6e\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x32\x30\x70\x78\x3b\x5c\x6e\x20\x20\x6c\x69\x6e\x65\x2d\x68\x65\x69\x67\x68\x74\x3a\x20\x32\x34\x70\x78\x3b\x5c\x6e\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x36\x45\x38\x31\x39\x32\x3b\x5c\x6e\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x69\x6e\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x6f\x75\x74\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x65\x73\x65\x74\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x20\x7b\x5c\x6e\x20\x20\x66\x69\x6c\x6c\x3a\x20\x23\x36\x45\x38\x31\x39\x32\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x20\x7b\x5c\x6e\x20\x20\x66\x69\x6c\x6c\x3a\x20\x23\x34\x34\x34\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x73\x63\x61\x6c\x65\x28\x30\x2e\x37\x36\x29\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x69\x6e\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x6f\x75\x74\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x65\x73\x65\x74\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x61\x6e\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x62\x61\x72\x2d\x63\x75\x73\x74\x6f\x6d\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x20\x7b\x5c\x6e\x20\x20\x66\x69\x6c\x6c\x3a\x20\x23\x66\x33\x66\x34\x66\x35\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x69\x63\x6f\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x69\x63\x6f\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x65\x73\x65\x74\x2d\x7a\x6f\x6f\x6d\x2d\x69\x63\x6f\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x73\x76\x67\x20\x7b\x5c\x6e\x20\x20\x66\x69\x6c\x6c\x3a\x20\x23\x30\x30\x38\x46\x46\x42\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x69\x63\x6f\x6e\x3a\x6e\x6f\x74\x28\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x65\x64\x29\x3a\x68\x6f\x76\x65\x72\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x69\x63\x6f\x6e\x3a\x6e\x6f\x74\x28\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x65\x64\x29\x3a\x68\x6f\x76\x65\x72\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x69\x6e\x2d\x69\x63\x6f\x6e\x3a\x68\x6f\x76\x65\x72\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x6f\x75\x74\x2d\x69\x63\x6f\x6e\x3a\x68\x6f\x76\x65\x72\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x65\x73\x65\x74\x2d\x69\x63\x6f\x6e\x3a\x68\x6f\x76\x65\x72\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x63\x6f\x6e\x3a\x68\x6f\x76\x65\x72\x20\x73\x76\x67\x20\x7b\x5c\x6e\x20\x20\x66\x69\x6c\x6c\x3a\x20\x23\x33\x33\x33\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x63\x6f\x6e\x20\x7b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x65\x73\x65\x74\x2d\x69\x63\x6f\x6e\x20\x7b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x35\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x65\x73\x65\x74\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x63\x6f\x6e\x20\x7b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x73\x63\x61\x6c\x65\x28\x30\x2e\x38\x35\x29\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x69\x6e\x2d\x69\x63\x6f\x6e\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x6f\x75\x74\x2d\x69\x63\x6f\x6e\x20\x7b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x73\x63\x61\x6c\x65\x28\x30\x2e\x37\x29\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x6f\x75\x74\x2d\x69\x63\x6f\x6e\x20\x7b\x5c\x6e\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x72\x69\x67\x68\x74\x3a\x20\x33\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x61\x6e\x2d\x69\x63\x6f\x6e\x20\x7b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3a\x20\x73\x63\x61\x6c\x65\x28\x30\x2e\x36\x32\x29\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x72\x65\x6c\x61\x74\x69\x76\x65\x3b\x5c\x6e\x20\x20\x6c\x65\x66\x74\x3a\x20\x31\x70\x78\x3b\x5c\x6e\x20\x20\x74\x6f\x70\x3a\x20\x30\x70\x78\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x61\x6e\x2d\x69\x63\x6f\x6e\x20\x73\x76\x67\x20\x7b\x5c\x6e\x20\x20\x66\x69\x6c\x6c\x3a\x20\x23\x66\x66\x66\x3b\x5c\x6e\x20\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x23\x36\x45\x38\x31\x39\x32\x3b\x5c\x6e\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x20\x32\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x61\x6e\x2d\x69\x63\x6f\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x65\x64\x20\x73\x76\x67\x20\x7b\x5c\x6e\x20\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x23\x30\x30\x38\x46\x46\x42\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x61\x6e\x2d\x69\x63\x6f\x6e\x3a\x6e\x6f\x74\x28\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x6c\x65\x63\x74\x65\x64\x29\x3a\x68\x6f\x76\x65\x72\x20\x73\x76\x67\x20\x7b\x5c\x6e\x20\x20\x73\x74\x72\x6f\x6b\x65\x3a\x20\x23\x33\x33\x33\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x62\x61\x72\x20\x7b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x5c\x6e\x20\x20\x7a\x2d\x69\x6e\x64\x65\x78\x3a\x20\x31\x31\x3b\x5c\x6e\x20\x20\x6d\x61\x78\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x37\x36\x70\x78\x3b\x5c\x6e\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x72\x69\x67\x68\x74\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x33\x70\x78\x3b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x70\x78\x20\x36\x70\x78\x20\x32\x70\x78\x20\x36\x70\x78\x3b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x66\x6c\x65\x78\x3b\x5c\x6e\x20\x20\x6a\x75\x73\x74\x69\x66\x79\x2d\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x73\x70\x61\x63\x65\x2d\x62\x65\x74\x77\x65\x65\x6e\x3b\x5c\x6e\x20\x20\x61\x6c\x69\x67\x6e\x2d\x69\x74\x65\x6d\x73\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x20\x7b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x66\x66\x66\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x5c\x6e\x20\x20\x74\x6f\x70\x3a\x20\x31\x30\x30\x25\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x64\x64\x64\x3b\x5c\x6e\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x33\x70\x78\x3b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x33\x70\x78\x3b\x5c\x6e\x20\x20\x72\x69\x67\x68\x74\x3a\x20\x31\x30\x70\x78\x3b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x6d\x69\x6e\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x31\x30\x70\x78\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x6f\x70\x65\x6e\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x61\x6c\x6c\x3b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x74\x65\x6d\x20\x7b\x5c\x6e\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x36\x70\x78\x20\x37\x70\x78\x3b\x5c\x6e\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x32\x70\x78\x3b\x5c\x6e\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x70\x6f\x69\x6e\x74\x65\x72\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x6c\x69\x67\x68\x74\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x2d\x69\x74\x65\x6d\x3a\x68\x6f\x76\x65\x72\x20\x7b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x65\x65\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x68\x65\x6d\x65\x2d\x64\x61\x72\x6b\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x65\x6e\x75\x20\x7b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x72\x67\x62\x61\x28\x30\x2c\x20\x30\x2c\x20\x30\x2c\x20\x30\x2e\x37\x29\x3b\x5c\x6e\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x66\x66\x66\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x40\x6d\x65\x64\x69\x61\x20\x73\x63\x72\x65\x65\x6e\x20\x61\x6e\x64\x20\x28\x6d\x69\x6e\x2d\x77\x69\x64\x74\x68\x3a\x20\x37\x36\x38\x70\x78\x29\x20\x7b\x5c\x6e\x20\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x3a\x68\x6f\x76\x65\x72\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x62\x61\x72\x20\x7b\x5c\x6e\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x20\x20\x7d\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x65\x6c\x65\x6d\x65\x6e\x74\x2d\x68\x69\x64\x64\x65\x6e\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x2d\x6c\x61\x62\x65\x6c\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x73\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x2d\x6c\x61\x62\x65\x6c\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x64\x61\x74\x61\x6c\x61\x62\x65\x6c\x2d\x76\x61\x6c\x75\x65\x20\x7b\x5c\x6e\x20\x20\x63\x75\x72\x73\x6f\x72\x3a\x20\x64\x65\x66\x61\x75\x6c\x74\x3b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x70\x69\x65\x2d\x6c\x61\x62\x65\x6c\x2d\x64\x65\x6c\x61\x79\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2d\x6e\x61\x6d\x65\x3a\x20\x6f\x70\x61\x71\x75\x65\x3b\x5c\x6e\x20\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2d\x64\x75\x72\x61\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x33\x73\x3b\x5c\x6e\x20\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2d\x66\x69\x6c\x6c\x2d\x6d\x6f\x64\x65\x3a\x20\x66\x6f\x72\x77\x61\x72\x64\x73\x3b\x5c\x6e\x20\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x2d\x74\x69\x6d\x69\x6e\x67\x2d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x3a\x20\x65\x61\x73\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x63\x61\x6e\x76\x61\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x65\x6c\x65\x6d\x65\x6e\x74\x2d\x68\x69\x64\x64\x65\x6e\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x68\x69\x64\x65\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x70\x6f\x69\x6e\x74\x73\x20\x7b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x67\x72\x69\x64\x6c\x69\x6e\x65\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2d\x72\x65\x63\x74\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x74\x69\x70\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x72\x65\x61\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x72\x65\x61\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x69\x6e\x65\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x7a\x6f\x6f\x6d\x2d\x72\x65\x63\x74\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x74\x6f\x6f\x6c\x62\x61\x72\x20\x73\x76\x67\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x61\x72\x65\x61\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x2e\x6e\x6f\x2d\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6c\x69\x6e\x65\x2d\x73\x65\x72\x69\x65\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x73\x65\x72\x69\x65\x73\x2d\x6d\x61\x72\x6b\x65\x72\x73\x20\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x2e\x6e\x6f\x2d\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x20\x70\x61\x74\x68\x2c\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x72\x61\x64\x61\x72\x2d\x73\x65\x72\x69\x65\x73\x20\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x7b\x5c\x6e\x20\x20\x70\x6f\x69\x6e\x74\x65\x72\x2d\x65\x76\x65\x6e\x74\x73\x3a\x20\x6e\x6f\x6e\x65\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x5c\x6e\x2f\x2a\x20\x6d\x61\x72\x6b\x65\x72\x73\x20\x2a\x2f\x5c\x6e\x5c\x6e\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x6d\x61\x72\x6b\x65\x72\x20\x7b\x5c\x6e\x20\x20\x74\x72\x61\x6e\x73\x69\x74\x69\x6f\x6e\x3a\x20\x30\x2e\x31\x35\x73\x20\x65\x61\x73\x65\x20\x61\x6c\x6c\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x40\x6b\x65\x79\x66\x72\x61\x6d\x65\x73\x20\x6f\x70\x61\x71\x75\x65\x20\x7b\x5c\x6e\x20\x20\x30\x25\x20\x7b\x5c\x6e\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x7d\x5c\x6e\x20\x20\x31\x30\x30\x25\x20\x7b\x5c\x6e\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x31\x3b\x5c\x6e\x20\x20\x7d\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x5c\x6e\x2f\x2a\x20\x52\x65\x73\x69\x7a\x65\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x73\x74\x79\x6c\x65\x73\x20\x2a\x2f\x5c\x6e\x5c\x6e\x40\x6b\x65\x79\x66\x72\x61\x6d\x65\x73\x20\x72\x65\x73\x69\x7a\x65\x61\x6e\x69\x6d\x20\x7b\x5c\x6e\x20\x20\x66\x72\x6f\x6d\x20\x7b\x5c\x6e\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x7d\x5c\x6e\x20\x20\x74\x6f\x20\x7b\x5c\x6e\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x7d\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x72\x65\x73\x69\x7a\x65\x2d\x74\x72\x69\x67\x67\x65\x72\x73\x20\x7b\x5c\x6e\x20\x20\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x3a\x20\x31\x6d\x73\x20\x72\x65\x73\x69\x7a\x65\x61\x6e\x69\x6d\x3b\x5c\x6e\x20\x20\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x20\x68\x69\x64\x64\x65\x6e\x3b\x5c\x6e\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3a\x20\x30\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x72\x65\x73\x69\x7a\x65\x2d\x74\x72\x69\x67\x67\x65\x72\x73\x2c\x5c\x6e\x2e\x72\x65\x73\x69\x7a\x65\x2d\x74\x72\x69\x67\x67\x65\x72\x73\x3e\x64\x69\x76\x2c\x5c\x6e\x2e\x63\x6f\x6e\x74\x72\x61\x63\x74\x2d\x74\x72\x69\x67\x67\x65\x72\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x22\x20\x22\x3b\x5c\x6e\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x62\x6c\x6f\x63\x6b\x3b\x5c\x6e\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x5c\x6e\x20\x20\x74\x6f\x70\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x6c\x65\x66\x74\x3a\x20\x30\x3b\x5c\x6e\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x31\x30\x30\x25\x3b\x5c\x6e\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x30\x30\x25\x3b\x5c\x6e\x20\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x20\x68\x69\x64\x64\x65\x6e\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x72\x65\x73\x69\x7a\x65\x2d\x74\x72\x69\x67\x67\x65\x72\x73\x3e\x64\x69\x76\x20\x7b\x5c\x6e\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x23\x65\x65\x65\x3b\x5c\x6e\x20\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3a\x20\x61\x75\x74\x6f\x3b\x5c\x6e\x7d\x5c\x6e\x5c\x6e\x2e\x63\x6f\x6e\x74\x72\x61\x63\x74\x2d\x74\x72\x69\x67\x67\x65\x72\x3a\x62\x65\x66\x6f\x72\x65\x20\x7b\x5c\x6e\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x32\x30\x30\x25\x3b\x5c\x6e\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x32\x30\x30\x25\x3b\x5c\x6e\x7d\x27\x2c\x20\x72\x32\x20\x3f\x20\x73\x32\x2e\x70\x72\x65\x70\x65\x6e\x64\x28\x74\x33\x2e\x63\x73\x73\x29\x20\x3a\x20\x6f\x32\x2e\x68\x65\x61\x64\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x74\x33\x2e\x63\x73\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6c\x32\x20\x3d\x20\x74\x33\x2e\x63\x72\x65\x61\x74\x65\x28\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6c\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x6d\x6f\x75\x6e\x74\x28\x6c\x32\x29\x2e\x74\x68\x65\x6e\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6d\x6f\x75\x6e\x74\x65\x64\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x6d\x6f\x75\x6e\x74\x65\x64\x28\x74\x33\x2c\x20\x74\x33\x2e\x77\x29\x2c\x20\x74\x33\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x6d\x6f\x75\x6e\x74\x65\x64\x22\x2c\x20\x5b\x74\x33\x2c\x20\x74\x33\x2e\x77\x5d\x29\x2c\x20\x65\x32\x28\x6c\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x63\x61\x74\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x28\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x45\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x72\x65\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x52\x74\x28\x74\x68\x69\x73\x29\x2e\x69\x6e\x69\x74\x4d\x6f\x64\x75\x6c\x65\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x61\x32\x2e\x6e\x6f\x44\x61\x74\x61\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x61\x32\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x68\x69\x73\x2e\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x2e\x63\x68\x65\x63\x6b\x52\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x43\x6f\x6e\x66\x69\x67\x28\x65\x32\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x29\x20\x26\x26\x20\x6e\x65\x77\x20\x44\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x29\x2e\x63\x6f\x6e\x76\x65\x72\x74\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x58\x61\x78\x69\x73\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x65\x6c\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x2e\x73\x65\x74\x75\x70\x45\x6c\x65\x6d\x65\x6e\x74\x73\x28\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x26\x26\x20\x28\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x73\x68\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x73\x68\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x61\x32\x2e\x73\x76\x67\x57\x69\x64\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x79\x2e\x63\x68\x65\x63\x6b\x43\x6f\x6d\x62\x6f\x53\x65\x72\x69\x65\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6d\x62\x6f\x43\x68\x61\x72\x74\x73\x2c\x20\x61\x32\x2e\x63\x6f\x6d\x62\x6f\x42\x61\x72\x43\x6f\x75\x6e\x74\x20\x3d\x20\x73\x32\x2e\x63\x6f\x6d\x62\x6f\x42\x61\x72\x43\x6f\x75\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x74\x33\x2e\x65\x76\x65\x72\x79\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x64\x61\x74\x61\x20\x26\x26\x20\x74\x34\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x72\x32\x29\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x68\x61\x6e\x64\x6c\x65\x4e\x6f\x44\x61\x74\x61\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x76\x65\x6e\x74\x73\x2e\x73\x65\x74\x75\x70\x45\x76\x65\x6e\x74\x48\x61\x6e\x64\x6c\x65\x72\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x61\x74\x61\x2e\x70\x61\x72\x73\x65\x44\x61\x74\x61\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x68\x65\x6d\x65\x2e\x69\x6e\x69\x74\x28\x29\x2c\x20\x6e\x65\x77\x20\x4d\x28\x74\x68\x69\x73\x29\x2e\x73\x65\x74\x47\x6c\x6f\x62\x61\x6c\x4d\x61\x72\x6b\x65\x72\x53\x69\x7a\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x2e\x73\x65\x74\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x74\x69\x74\x6c\x65\x53\x75\x62\x74\x69\x74\x6c\x65\x2e\x64\x72\x61\x77\x28\x29\x2c\x20\x61\x32\x2e\x6e\x6f\x44\x61\x74\x61\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x61\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x21\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x73\x68\x6f\x77\x46\x6f\x72\x53\x69\x6e\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x6c\x65\x67\x65\x6e\x64\x2e\x69\x6e\x69\x74\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x68\x61\x73\x41\x6c\x6c\x53\x65\x72\x69\x65\x73\x45\x71\x75\x61\x6c\x58\x28\x29\x2c\x20\x61\x32\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x2e\x63\x6f\x72\x65\x43\x61\x6c\x63\x75\x6c\x61\x74\x69\x6f\x6e\x73\x28\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x2e\x73\x65\x74\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x6d\x69\x6e\x58\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x69\x6e\x58\x2c\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x6d\x61\x78\x58\x20\x3d\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x61\x78\x58\x29\x2c\x20\x74\x68\x69\x73\x2e\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x2e\x68\x65\x61\x74\x6d\x61\x70\x4c\x61\x62\x65\x6c\x46\x6f\x72\x6d\x61\x74\x74\x65\x72\x73\x28\x29\x2c\x20\x6e\x65\x77\x20\x79\x28\x74\x68\x69\x73\x29\x2e\x67\x65\x74\x4c\x61\x72\x67\x65\x73\x74\x4d\x61\x72\x6b\x65\x72\x53\x69\x7a\x65\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x64\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x2e\x70\x6c\x6f\x74\x43\x6f\x6f\x72\x64\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x2e\x78\x79\x53\x65\x74\x74\x69\x6e\x67\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x72\x69\x64\x2e\x63\x72\x65\x61\x74\x65\x47\x72\x69\x64\x4d\x61\x73\x6b\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x2e\x70\x6c\x6f\x74\x43\x68\x61\x72\x74\x54\x79\x70\x65\x28\x74\x33\x2c\x20\x6f\x32\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x7a\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x32\x2e\x62\x72\x69\x6e\x67\x46\x6f\x72\x77\x61\x72\x64\x28\x29\x2c\x20\x69\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x2e\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x6c\x32\x2e\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x42\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x2e\x73\x68\x69\x66\x74\x47\x72\x61\x70\x68\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x7b\x20\x70\x6c\x6f\x74\x3a\x20\x7b\x20\x6c\x65\x66\x74\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x58\x2c\x20\x74\x6f\x70\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x59\x2c\x20\x77\x69\x64\x74\x68\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x57\x69\x64\x74\x68\x2c\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x67\x72\x69\x64\x48\x65\x69\x67\x68\x74\x20\x7d\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x65\x6c\x47\x72\x61\x70\x68\x3a\x20\x6e\x32\x2c\x20\x78\x79\x52\x61\x74\x69\x6f\x73\x3a\x20\x6f\x32\x2c\x20\x65\x6c\x49\x6e\x6e\x65\x72\x3a\x20\x69\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2c\x20\x64\x69\x6d\x65\x6e\x73\x69\x6f\x6e\x73\x3a\x20\x68\x33\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x6f\x75\x6e\x74\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x72\x6f\x6d\x69\x73\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x73\x32\x2c\x20\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x65\x6c\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x32\x28\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x4e\x6f\x74\x20\x65\x6e\x6f\x75\x67\x68\x20\x64\x61\x74\x61\x20\x74\x6f\x20\x64\x69\x73\x70\x6c\x61\x79\x20\x6f\x72\x20\x74\x61\x72\x67\x65\x74\x20\x65\x6c\x65\x6d\x65\x6e\x74\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x28\x65\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x29\x20\x26\x26\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x68\x61\x6e\x64\x6c\x65\x4e\x6f\x44\x61\x74\x61\x28\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x74\x72\x65\x65\x6d\x61\x70\x22\x20\x26\x26\x20\x69\x32\x2e\x61\x78\x65\x73\x2e\x64\x72\x61\x77\x41\x78\x69\x73\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x2c\x20\x65\x32\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x29\x2c\x20\x69\x32\x2e\x67\x72\x69\x64\x20\x3d\x20\x6e\x65\x77\x20\x55\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x32\x20\x3d\x20\x69\x32\x2e\x67\x72\x69\x64\x2e\x64\x72\x61\x77\x47\x72\x69\x64\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6e\x65\x77\x20\x50\x28\x69\x32\x29\x2c\x20\x69\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x64\x72\x61\x77\x49\x6d\x61\x67\x65\x41\x6e\x6e\x6f\x73\x28\x29\x2c\x20\x69\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x64\x72\x61\x77\x54\x65\x78\x74\x41\x6e\x6e\x6f\x73\x28\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x61\x63\x6b\x22\x20\x26\x26\x20\x6f\x32\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x6f\x32\x2e\x65\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x32\x20\x3d\x20\x6e\x65\x77\x20\x5f\x28\x74\x33\x2e\x63\x74\x78\x29\x2c\x20\x6c\x32\x20\x3d\x20\x6e\x65\x77\x20\x24\x28\x74\x33\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x28\x6e\x32\x2e\x78\x41\x78\x69\x73\x4c\x61\x62\x65\x6c\x43\x6f\x72\x72\x65\x63\x74\x69\x6f\x6e\x73\x28\x6f\x32\x2e\x78\x41\x78\x69\x73\x54\x69\x63\x6b\x57\x69\x64\x74\x68\x29\x2c\x20\x6c\x32\x2e\x73\x65\x74\x59\x41\x78\x69\x73\x54\x65\x78\x74\x41\x6c\x69\x67\x6e\x6d\x65\x6e\x74\x73\x28\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x67\x6e\x6f\x72\x65\x59\x41\x78\x69\x73\x49\x6e\x64\x65\x78\x65\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x33\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x6c\x32\x2e\x79\x41\x78\x69\x73\x54\x69\x74\x6c\x65\x52\x6f\x74\x61\x74\x65\x28\x65\x33\x2c\x20\x74\x34\x2e\x6f\x70\x70\x6f\x73\x69\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x62\x61\x63\x6b\x22\x20\x26\x26\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x61\x64\x64\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x29\x2c\x20\x69\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x64\x72\x61\x77\x41\x78\x65\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x29\x2c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x32\x2e\x65\x6c\x47\x72\x61\x70\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x68\x33\x20\x3d\x20\x30\x3b\x20\x68\x33\x20\x3c\x20\x65\x32\x2e\x65\x6c\x47\x72\x61\x70\x68\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x68\x33\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x65\x32\x2e\x65\x6c\x47\x72\x61\x70\x68\x5b\x68\x33\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x65\x32\x2e\x65\x6c\x47\x72\x61\x70\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x67\x72\x69\x64\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x66\x72\x6f\x6e\x74\x22\x20\x26\x26\x20\x6f\x32\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x47\x72\x61\x70\x68\x69\x63\x61\x6c\x2e\x61\x64\x64\x28\x6f\x32\x2e\x65\x6c\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x66\x72\x6f\x6e\x74\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x64\x72\x61\x77\x58\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x79\x61\x78\x69\x73\x5b\x30\x5d\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x66\x72\x6f\x6e\x74\x22\x20\x26\x26\x20\x69\x32\x2e\x63\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x2e\x64\x72\x61\x77\x59\x43\x72\x6f\x73\x73\x68\x61\x69\x72\x73\x28\x29\x2c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x22\x66\x72\x6f\x6e\x74\x22\x20\x26\x26\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x2e\x61\x64\x64\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x65\x6c\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x29\x2c\x20\x69\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x64\x72\x61\x77\x41\x78\x65\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x29\x2c\x20\x21\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6e\x6f\x44\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x26\x26\x20\x21\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6e\x6f\x44\x61\x74\x61\x20\x26\x26\x20\x69\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x74\x6f\x6f\x6c\x74\x69\x70\x2e\x64\x72\x61\x77\x54\x6f\x6f\x6c\x74\x69\x70\x28\x65\x32\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x26\x26\x20\x28\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x58\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x78\x61\x78\x69\x73\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x64\x43\x61\x74\x54\x6f\x4e\x75\x6d\x65\x72\x69\x63\x20\x7c\x7c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x52\x61\x6e\x67\x65\x42\x61\x72\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x7a\x6f\x6f\x6d\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x20\x7c\x7c\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x70\x61\x6e\x20\x26\x26\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x70\x61\x6e\x2e\x65\x6e\x61\x62\x6c\x65\x64\x29\x20\x26\x26\x20\x69\x32\x2e\x7a\x6f\x6f\x6d\x50\x61\x6e\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x69\x6e\x69\x74\x28\x7b\x20\x78\x79\x52\x61\x74\x69\x6f\x73\x3a\x20\x65\x32\x2e\x78\x79\x52\x61\x74\x69\x6f\x73\x20\x7d\x29\x3b\x0a\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\x76\x61\x72\x20\x63\x32\x20\x3d\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x74\x6f\x6f\x6c\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5b\x22\x7a\x6f\x6f\x6d\x22\x2c\x20\x22\x7a\x6f\x6f\x6d\x69\x6e\x22\x2c\x20\x22\x7a\x6f\x6f\x6d\x6f\x75\x74\x22\x2c\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x22\x70\x61\x6e\x22\x2c\x20\x22\x72\x65\x73\x65\x74\x22\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x32\x5b\x74\x34\x5d\x20\x3d\x20\x66\x61\x6c\x73\x65\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x73\x68\x6f\x77\x20\x26\x26\x20\x21\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6c\x6c\x53\x65\x72\x69\x65\x73\x43\x6f\x6c\x6c\x61\x70\x73\x65\x64\x20\x26\x26\x20\x69\x32\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x63\x72\x65\x61\x74\x65\x54\x6f\x6f\x6c\x62\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x2e\x6d\x65\x74\x68\x6f\x64\x73\x54\x6f\x45\x78\x65\x63\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6d\x65\x6d\x6f\x72\x79\x2e\x6d\x65\x74\x68\x6f\x64\x73\x54\x6f\x45\x78\x65\x63\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x6d\x65\x74\x68\x6f\x64\x28\x74\x34\x2e\x70\x61\x72\x61\x6d\x73\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x34\x2e\x63\x6f\x6e\x74\x65\x78\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x78\x69\x73\x43\x68\x61\x72\x74\x73\x20\x7c\x7c\x20\x61\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x6e\x6f\x44\x61\x74\x61\x20\x7c\x7c\x20\x69\x32\x2e\x63\x6f\x72\x65\x2e\x72\x65\x73\x69\x7a\x65\x4e\x6f\x6e\x41\x78\x69\x73\x43\x68\x61\x72\x74\x73\x28\x29\x2c\x20\x73\x32\x28\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x65\x73\x74\x72\x6f\x79\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x69\x6e\x64\x6f\x77\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x72\x65\x73\x69\x7a\x65\x22\x2c\x20\x74\x68\x69\x73\x2e\x77\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x29\x2c\x20\x74\x68\x69\x73\x2e\x65\x6c\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x52\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x2c\x20\x28\x65\x32\x20\x3d\x20\x44\x74\x2e\x67\x65\x74\x28\x74\x33\x29\x29\x20\x26\x26\x20\x28\x65\x32\x2e\x64\x69\x73\x63\x6f\x6e\x6e\x65\x63\x74\x28\x29\x2c\x20\x44\x74\x2e\x64\x65\x6c\x65\x74\x65\x28\x74\x33\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x69\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x26\x26\x20\x41\x70\x65\x78\x2e\x5f\x63\x68\x61\x72\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x65\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x34\x2e\x69\x64\x20\x3d\x3d\x3d\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x69\x32\x29\x20\x26\x26\x20\x41\x70\x65\x78\x2e\x5f\x63\x68\x61\x72\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x65\x33\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x6e\x65\x77\x20\x48\x74\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x63\x6c\x65\x61\x72\x28\x7b\x20\x69\x73\x55\x70\x64\x61\x74\x69\x6e\x67\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x2c\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x61\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x2c\x20\x73\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x33\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x33\x5d\x2c\x20\x72\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x34\x5d\x2c\x20\x6f\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x28\x66\x61\x6c\x73\x65\x2c\x20\x74\x72\x75\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x2c\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x5b\x30\x5d\x2e\x64\x61\x74\x61\x20\x26\x26\x20\x28\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x74\x33\x2e\x73\x65\x72\x69\x65\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x2c\x20\x69\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x65\x78\x74\x65\x6e\x64\x53\x65\x72\x69\x65\x73\x28\x74\x34\x2c\x20\x69\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x72\x65\x76\x65\x72\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x78\x69\x73\x4d\x69\x6e\x4d\x61\x78\x28\x29\x29\x2c\x20\x74\x33\x2e\x78\x61\x78\x69\x73\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x66\x6f\x72\x63\x65\x58\x41\x78\x69\x73\x55\x70\x64\x61\x74\x65\x28\x74\x33\x29\x29\x2c\x20\x74\x33\x2e\x79\x61\x78\x69\x73\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x66\x6f\x72\x63\x65\x59\x41\x78\x69\x73\x55\x70\x64\x61\x74\x65\x28\x74\x33\x29\x29\x2c\x20\x6f\x32\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x63\x6f\x6c\x6c\x61\x70\x73\x65\x64\x53\x65\x72\x69\x65\x73\x49\x6e\x64\x69\x63\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x63\x6c\x65\x61\x72\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x28\x29\x2c\x20\x74\x33\x2e\x74\x68\x65\x6d\x65\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x68\x65\x6d\x65\x2e\x75\x70\x64\x61\x74\x65\x54\x68\x65\x6d\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x33\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x33\x2c\x20\x69\x32\x2c\x20\x61\x32\x2c\x20\x73\x32\x2c\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x5b\x5d\x2c\x20\x65\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x69\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x28\x66\x61\x6c\x73\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x72\x65\x76\x65\x72\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x78\x69\x73\x4d\x69\x6e\x4d\x61\x78\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x70\x70\x65\x6e\x64\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x69\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x2e\x70\x75\x73\x68\x28\x74\x33\x29\x2c\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x28\x66\x61\x6c\x73\x65\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x72\x65\x76\x65\x72\x74\x44\x65\x66\x61\x75\x6c\x74\x41\x78\x69\x73\x4d\x69\x6e\x4d\x61\x78\x28\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x5f\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x61\x32\x2c\x20\x65\x32\x2c\x20\x69\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x70\x70\x65\x6e\x64\x44\x61\x74\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x69\x32\x2e\x73\x65\x72\x69\x65\x73\x2e\x67\x65\x74\x50\x72\x65\x76\x69\x6f\x75\x73\x50\x61\x74\x68\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x69\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x2c\x20\x73\x32\x20\x3d\x20\x30\x3b\x20\x73\x32\x20\x3c\x20\x61\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x33\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x33\x5b\x73\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x72\x32\x20\x3d\x20\x30\x3b\x20\x72\x32\x20\x3c\x20\x74\x33\x5b\x73\x32\x5d\x2e\x64\x61\x74\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x5b\x73\x32\x5d\x2e\x64\x61\x74\x61\x2e\x70\x75\x73\x68\x28\x74\x33\x5b\x73\x32\x5d\x2e\x64\x61\x74\x61\x5b\x72\x32\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x61\x32\x2c\x20\x65\x32\x20\x26\x26\x20\x28\x69\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x6e\x69\x74\x69\x61\x6c\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x78\x2e\x63\x6c\x6f\x6e\x65\x28\x69\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x29\x29\x2c\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x75\x70\x64\x61\x74\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x72\x6f\x6d\x69\x73\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x69\x32\x2c\x20\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x48\x74\x28\x65\x32\x2e\x63\x74\x78\x29\x2e\x63\x6c\x65\x61\x72\x28\x7b\x20\x69\x73\x55\x70\x64\x61\x74\x69\x6e\x67\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x65\x32\x2e\x63\x72\x65\x61\x74\x65\x28\x65\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x6d\x6f\x75\x6e\x74\x28\x73\x32\x29\x2e\x74\x68\x65\x6e\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x65\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x75\x70\x64\x61\x74\x65\x64\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x65\x32\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x2e\x75\x70\x64\x61\x74\x65\x64\x28\x65\x32\x2c\x20\x65\x32\x2e\x77\x29\x2c\x20\x65\x32\x2e\x65\x76\x65\x6e\x74\x73\x2e\x66\x69\x72\x65\x45\x76\x65\x6e\x74\x28\x22\x75\x70\x64\x61\x74\x65\x64\x22\x2c\x20\x5b\x65\x32\x2c\x20\x65\x32\x2e\x77\x5d\x29\x2c\x20\x65\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x44\x69\x72\x74\x79\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x69\x32\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x2e\x63\x61\x74\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x79\x6e\x63\x65\x64\x43\x68\x61\x72\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x47\x72\x6f\x75\x70\x65\x64\x43\x68\x61\x72\x74\x73\x28\x29\x2c\x20\x65\x32\x20\x3d\x20\x5b\x74\x68\x69\x73\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x5b\x5d\x2c\x20\x74\x33\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x32\x2e\x70\x75\x73\x68\x28\x74\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x2c\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x47\x72\x6f\x75\x70\x65\x64\x43\x68\x61\x72\x74\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x41\x70\x65\x78\x2e\x5f\x63\x68\x61\x72\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x34\x2e\x67\x72\x6f\x75\x70\x29\x0a\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\x7d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x33\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x67\x72\x6f\x75\x70\x20\x3d\x3d\x3d\x20\x65\x32\x2e\x67\x72\x6f\x75\x70\x20\x3f\x20\x65\x32\x2e\x63\x68\x61\x72\x74\x20\x3a\x20\x74\x33\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x53\x65\x72\x69\x65\x73\x4f\x6e\x4c\x65\x67\x65\x6e\x64\x48\x6f\x76\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x4f\x6e\x48\x6f\x76\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x68\x6f\x77\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x73\x68\x6f\x77\x53\x65\x72\x69\x65\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x2c\x20\x65\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x65\x73\x2e\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x76\x65\x6e\x74\x73\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x76\x65\x6e\x74\x73\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x29\x2c\x20\x61\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x29\x2c\x20\x61\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x21\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7c\x7c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x2c\x20\x69\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x32\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x32\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x61\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x32\x20\x26\x26\x20\x28\x61\x32\x20\x3d\x20\x69\x32\x29\x2c\x20\x61\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x45\x78\x74\x65\x72\x6e\x61\x6c\x28\x74\x33\x2c\x20\x65\x32\x2c\x20\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x63\x6c\x65\x61\x72\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x65\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x33\x20\x26\x26\x20\x28\x65\x32\x20\x3d\x20\x74\x33\x29\x2c\x20\x65\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x63\x6c\x65\x61\x72\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x72\x65\x6d\x6f\x76\x65\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x32\x20\x26\x26\x20\x28\x69\x32\x20\x3d\x20\x65\x32\x29\x2c\x20\x69\x32\x2e\x61\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2e\x72\x65\x6d\x6f\x76\x65\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x69\x32\x2c\x20\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x43\x68\x61\x72\x74\x41\x72\x65\x61\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x62\x61\x73\x65\x45\x6c\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x22\x2e\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2d\x69\x6e\x6e\x65\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x58\x52\x61\x6e\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6f\x72\x65\x55\x74\x69\x6c\x73\x2e\x67\x65\x74\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x58\x52\x61\x6e\x67\x65\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x48\x69\x67\x68\x65\x73\x74\x56\x61\x6c\x75\x65\x49\x6e\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x30\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x5a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x67\x65\x74\x4d\x69\x6e\x59\x4d\x61\x78\x59\x28\x74\x33\x29\x2e\x68\x69\x67\x68\x65\x73\x74\x59\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x4c\x6f\x77\x65\x73\x74\x56\x61\x6c\x75\x65\x49\x6e\x53\x65\x72\x69\x65\x73\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\x20\x3a\x20\x30\x2c\x20\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x5a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x65\x32\x2e\x67\x65\x74\x4d\x69\x6e\x59\x4d\x61\x78\x59\x28\x74\x33\x29\x2e\x6c\x6f\x77\x65\x73\x74\x59\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x53\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x73\x65\x72\x69\x65\x73\x54\x6f\x74\x61\x6c\x73\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x48\x65\x6c\x70\x65\x72\x73\x2e\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x7a\x6f\x6f\x6d\x58\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x74\x78\x2e\x74\x6f\x6f\x6c\x62\x61\x72\x2e\x7a\x6f\x6f\x6d\x55\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x73\x65\x74\x4c\x6f\x63\x61\x6c\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x6f\x63\x61\x6c\x69\x7a\x61\x74\x69\x6f\x6e\x2e\x73\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x4c\x6f\x63\x61\x6c\x65\x56\x61\x6c\x75\x65\x73\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x64\x61\x74\x61\x55\x52\x49\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x6a\x28\x74\x68\x69\x73\x2e\x63\x74\x78\x29\x2e\x64\x61\x74\x61\x55\x52\x49\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x70\x61\x70\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x6f\x6d\x2e\x50\x61\x70\x65\x72\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x70\x61\x72\x65\x6e\x74\x52\x65\x73\x69\x7a\x65\x43\x61\x6c\x6c\x62\x61\x63\x6b\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x65\x64\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x72\x65\x64\x72\x61\x77\x4f\x6e\x50\x61\x72\x65\x6e\x74\x52\x65\x73\x69\x7a\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x5f\x77\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x77\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6c\x65\x61\x72\x54\x69\x6d\x65\x6f\x75\x74\x28\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x54\x69\x6d\x65\x72\x29\x2c\x20\x74\x68\x69\x73\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x54\x69\x6d\x65\x72\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x72\x65\x73\x69\x7a\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x74\x33\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x64\x61\x74\x61\x43\x68\x61\x6e\x67\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x33\x2e\x63\x74\x78\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x31\x35\x30\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x5f\x77\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x48\x61\x6e\x64\x6c\x65\x72\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x74\x33\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x2e\x72\x65\x64\x72\x61\x77\x4f\x6e\x57\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x33\x20\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x28\x74\x33\x20\x3d\x20\x74\x33\x28\x29\x29\x2c\x20\x74\x33\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x5f\x77\x69\x6e\x64\x6f\x77\x52\x65\x73\x69\x7a\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x2c\x20\x5b\x7b\x20\x6b\x65\x79\x3a\x20\x22\x67\x65\x74\x43\x68\x61\x72\x74\x42\x79\x49\x44\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x78\x2e\x65\x73\x63\x61\x70\x65\x53\x74\x72\x69\x6e\x67\x28\x74\x33\x29\x2c\x20\x69\x32\x20\x3d\x20\x41\x70\x65\x78\x2e\x5f\x63\x68\x61\x72\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x34\x2e\x69\x64\x20\x3d\x3d\x3d\x20\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x32\x20\x26\x26\x20\x69\x32\x2e\x63\x68\x61\x72\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x69\x6e\x69\x74\x4f\x6e\x4c\x6f\x61\x64\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x65\x32\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\x22\x5b\x64\x61\x74\x61\x2d\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5d\x22\x29\x2c\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x65\x32\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x32\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x74\x32\x28\x65\x32\x5b\x69\x32\x5d\x2c\x20\x4a\x53\x4f\x4e\x2e\x70\x61\x72\x73\x65\x28\x65\x32\x5b\x69\x32\x5d\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x61\x74\x61\x2d\x6f\x70\x74\x69\x6f\x6e\x73\x22\x29\x29\x29\x2e\x72\x65\x6e\x64\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x65\x78\x65\x63\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x43\x68\x61\x72\x74\x42\x79\x49\x44\x28\x74\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x32\x2e\x77\x2e\x67\x6c\x6f\x62\x61\x6c\x73\x2e\x69\x73\x45\x78\x65\x63\x43\x61\x6c\x6c\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x61\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x32\x2e\x70\x75\x62\x6c\x69\x63\x4d\x65\x74\x68\x6f\x64\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x65\x32\x29\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x73\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x41\x72\x72\x61\x79\x28\x73\x32\x20\x3e\x20\x32\x20\x3f\x20\x73\x32\x20\x2d\x20\x32\x20\x3a\x20\x30\x29\x2c\x20\x6f\x32\x20\x3d\x20\x32\x3b\x20\x6f\x32\x20\x3c\x20\x73\x32\x3b\x20\x6f\x32\x2b\x2b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x32\x5b\x6f\x32\x20\x2d\x20\x32\x5d\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x6f\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x32\x20\x3d\x20\x69\x32\x5b\x65\x32\x5d\x2e\x61\x70\x70\x6c\x79\x28\x69\x32\x2c\x20\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x7d\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x22\x6d\x65\x72\x67\x65\x22\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x33\x2c\x20\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x78\x2e\x65\x78\x74\x65\x6e\x64\x28\x74\x33\x2c\x20\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x7d\x5d\x29\x2c\x20\x74\x32\x3b\x0a\x20\x20\x7d\x28\x29\x3b\x0a\x20\x20\x6d\x6f\x64\x75\x6c\x65\x2e\x65\x78\x70\x6f\x72\x74\x73\x20\x3d\x20\x4e\x74\x3b\x0a\x7d\x29\x28\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x2c\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x2e\x65\x78\x70\x6f\x72\x74\x73\x29\x3b\x0a\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x6f\x64\x75\x6c\x65\x29\x20\x7b\x0a\x20\x20\x6d\x6f\x64\x75\x6c\x65\x2e\x65\x78\x70\x6f\x72\x74\x73\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x6f\x64\x75\x6c\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x4d\x6f\x64\x75\x6c\x65\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x28\x6d\x6f\x64\x75\x6c\x65\x49\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x4d\x6f\x64\x75\x6c\x65\x73\x5b\x6d\x6f\x64\x75\x6c\x65\x49\x64\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x4d\x6f\x64\x75\x6c\x65\x73\x5b\x6d\x6f\x64\x75\x6c\x65\x49\x64\x5d\x2e\x65\x78\x70\x6f\x72\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6d\x6f\x64\x75\x6c\x65\x32\x20\x3d\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x4d\x6f\x64\x75\x6c\x65\x73\x5b\x6d\x6f\x64\x75\x6c\x65\x49\x64\x5d\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x3a\x20\x6d\x6f\x64\x75\x6c\x65\x49\x64\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x78\x70\x6f\x72\x74\x73\x3a\x20\x7b\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x75\x6c\x65\x73\x5b\x6d\x6f\x64\x75\x6c\x65\x49\x64\x5d\x2e\x63\x61\x6c\x6c\x28\x6d\x6f\x64\x75\x6c\x65\x32\x2e\x65\x78\x70\x6f\x72\x74\x73\x2c\x20\x6d\x6f\x64\x75\x6c\x65\x32\x2c\x20\x6d\x6f\x64\x75\x6c\x65\x32\x2e\x65\x78\x70\x6f\x72\x74\x73\x2c\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x75\x6c\x65\x32\x2e\x6c\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x32\x2e\x65\x78\x70\x6f\x72\x74\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x6d\x20\x3d\x20\x6d\x6f\x64\x75\x6c\x65\x73\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x63\x20\x3d\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x4d\x6f\x64\x75\x6c\x65\x73\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x64\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x78\x70\x6f\x72\x74\x73\x2c\x20\x6e\x61\x6d\x65\x2c\x20\x67\x65\x74\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x6f\x28\x65\x78\x70\x6f\x72\x74\x73\x2c\x20\x6e\x61\x6d\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\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\x6e\x61\x6d\x65\x2c\x20\x7b\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x67\x65\x74\x3a\x20\x67\x65\x74\x74\x65\x72\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x72\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\x78\x70\x6f\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x53\x79\x6d\x62\x6f\x6c\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x26\x26\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x54\x61\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\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\x53\x79\x6d\x62\x6f\x6c\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x54\x61\x67\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x22\x4d\x6f\x64\x75\x6c\x65\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\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\x7d\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x74\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x75\x65\x2c\x20\x6d\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x26\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x26\x20\x38\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x26\x20\x34\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x2e\x5f\x5f\x65\x73\x4d\x6f\x64\x75\x6c\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x6e\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x72\x28\x6e\x73\x29\x3b\x0a\x20\x20\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\x6e\x73\x2c\x20\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x2c\x20\x7b\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x26\x20\x32\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x21\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x6b\x65\x79\x20\x69\x6e\x20\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x64\x28\x6e\x73\x2c\x20\x6b\x65\x79\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6b\x65\x79\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x5b\x6b\x65\x79\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2e\x62\x69\x6e\x64\x28\x6e\x75\x6c\x6c\x2c\x20\x6b\x65\x79\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x73\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x6e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x6f\x64\x75\x6c\x65\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x65\x74\x74\x65\x72\x20\x3d\x20\x6d\x6f\x64\x75\x6c\x65\x32\x20\x26\x26\x20\x6d\x6f\x64\x75\x6c\x65\x32\x2e\x5f\x5f\x65\x73\x4d\x6f\x64\x75\x6c\x65\x20\x3f\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x32\x5b\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x4d\x6f\x64\x75\x6c\x65\x45\x78\x70\x6f\x72\x74\x73\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x6f\x64\x75\x6c\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x64\x28\x67\x65\x74\x74\x65\x72\x2c\x20\x22\x61\x22\x2c\x20\x67\x65\x74\x74\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x67\x65\x74\x74\x65\x72\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x6f\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6f\x62\x6a\x65\x63\x74\x2c\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x2e\x63\x61\x6c\x6c\x28\x6f\x62\x6a\x65\x63\x74\x2c\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x70\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x28\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x73\x20\x3d\x20\x22\x66\x62\x31\x35\x22\x29\x3b\x0a\x20\x20\x7d\x28\x7b\x0a\x20\x20\x20\x20\x22\x38\x38\x37\x35\x22\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x6f\x64\x75\x6c\x65\x32\x2c\x20\x65\x78\x70\x6f\x72\x74\x73\x2c\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x46\x41\x43\x54\x4f\x52\x59\x5f\x5f\x2c\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x41\x52\x52\x41\x59\x5f\x5f\x2c\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x52\x45\x53\x55\x4c\x54\x5f\x5f\x3b\x0a\x20\x20\x20\x20\x20\x20\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x72\x6f\x6f\x74\x2c\x20\x66\x61\x63\x74\x6f\x72\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x21\x28\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x41\x52\x52\x41\x59\x5f\x5f\x20\x3d\x20\x5b\x5d\x2c\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x46\x41\x43\x54\x4f\x52\x59\x5f\x5f\x20\x3d\x20\x66\x61\x63\x74\x6f\x72\x79\x2c\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x52\x45\x53\x55\x4c\x54\x5f\x5f\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x46\x41\x43\x54\x4f\x52\x59\x5f\x5f\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x46\x41\x43\x54\x4f\x52\x59\x5f\x5f\x2e\x61\x70\x70\x6c\x79\x28\x65\x78\x70\x6f\x72\x74\x73\x2c\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x41\x52\x52\x41\x59\x5f\x5f\x29\x20\x3a\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x46\x41\x43\x54\x4f\x52\x59\x5f\x5f\x2c\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x52\x45\x53\x55\x4c\x54\x5f\x5f\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x28\x6d\x6f\x64\x75\x6c\x65\x32\x2e\x65\x78\x70\x6f\x72\x74\x73\x20\x3d\x20\x5f\x5f\x57\x45\x42\x50\x41\x43\x4b\x5f\x41\x4d\x44\x5f\x44\x45\x46\x49\x4e\x45\x5f\x52\x45\x53\x55\x4c\x54\x5f\x5f\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x28\x74\x79\x70\x65\x6f\x66\x20\x73\x65\x6c\x66\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x3f\x20\x73\x65\x6c\x66\x20\x3a\x20\x74\x68\x69\x73\x2c\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x20\x22\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x20\x26\x26\x20\x22\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x22\x20\x69\x6e\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x20\x26\x26\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x20\x26\x26\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x2e\x67\x65\x74\x20\x21\x3d\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x20\x26\x26\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x65\x72\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x69\x65\x53\x74\x61\x63\x6b\x52\x65\x67\x45\x78\x70\x20\x3d\x20\x2f\x2e\x2a\x61\x74\x20\x5b\x5e\x28\x5d\x2a\x5c\x28\x28\x2e\x2a\x29\x3a\x28\x2e\x2b\x29\x3a\x28\x2e\x2b\x29\x5c\x29\x24\x2f\x69\x67\x2c\x20\x66\x66\x53\x74\x61\x63\x6b\x52\x65\x67\x45\x78\x70\x20\x3d\x20\x2f\x40\x28\x5b\x5e\x40\x5d\x2a\x29\x3a\x28\x5c\x64\x2b\x29\x3a\x28\x5c\x64\x2b\x29\x5c\x73\x2a\x24\x2f\x69\x67\x2c\x20\x73\x74\x61\x63\x6b\x44\x65\x74\x61\x69\x6c\x73\x20\x3d\x20\x69\x65\x53\x74\x61\x63\x6b\x52\x65\x67\x45\x78\x70\x2e\x65\x78\x65\x63\x28\x65\x72\x72\x2e\x73\x74\x61\x63\x6b\x29\x20\x7c\x7c\x20\x66\x66\x53\x74\x61\x63\x6b\x52\x65\x67\x45\x78\x70\x2e\x65\x78\x65\x63\x28\x65\x72\x72\x2e\x73\x74\x61\x63\x6b\x29\x2c\x20\x73\x63\x72\x69\x70\x74\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x3d\x20\x73\x74\x61\x63\x6b\x44\x65\x74\x61\x69\x6c\x73\x20\x26\x26\x20\x73\x74\x61\x63\x6b\x44\x65\x74\x61\x69\x6c\x73\x5b\x31\x5d\x20\x7c\x7c\x20\x66\x61\x6c\x73\x65\x2c\x20\x6c\x69\x6e\x65\x20\x3d\x20\x73\x74\x61\x63\x6b\x44\x65\x74\x61\x69\x6c\x73\x20\x26\x26\x20\x73\x74\x61\x63\x6b\x44\x65\x74\x61\x69\x6c\x73\x5b\x32\x5d\x20\x7c\x7c\x20\x66\x61\x6c\x73\x65\x2c\x20\x63\x75\x72\x72\x65\x6e\x74\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x2e\x68\x72\x65\x66\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x2e\x68\x61\x73\x68\x2c\x20\x22\x22\x29\x2c\x20\x70\x61\x67\x65\x53\x6f\x75\x72\x63\x65\x2c\x20\x69\x6e\x6c\x69\x6e\x65\x53\x63\x72\x69\x70\x74\x53\x6f\x75\x72\x63\x65\x52\x65\x67\x45\x78\x70\x2c\x20\x69\x6e\x6c\x69\x6e\x65\x53\x63\x72\x69\x70\x74\x53\x6f\x75\x72\x63\x65\x2c\x20\x73\x63\x72\x69\x70\x74\x73\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x73\x63\x72\x69\x70\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x72\x69\x70\x74\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x67\x65\x53\x6f\x75\x72\x63\x65\x20\x3d\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x6f\x75\x74\x65\x72\x48\x54\x4d\x4c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6c\x69\x6e\x65\x53\x63\x72\x69\x70\x74\x53\x6f\x75\x72\x63\x65\x52\x65\x67\x45\x78\x70\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x28\x3f\x3a\x5b\x5e\x5c\x5c\x6e\x5d\x2b\x3f\x5c\x5c\x6e\x29\x7b\x30\x2c\x22\x20\x2b\x20\x28\x6c\x69\x6e\x65\x20\x2d\x20\x32\x29\x20\x2b\x20\x22\x7d\x5b\x5e\x3c\x5d\x2a\x3c\x73\x63\x72\x69\x70\x74\x3e\x28\x5b\x5c\x5c\x64\x5c\x5c\x44\x5d\x2a\x3f\x29\x3c\x5c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x5b\x5c\x5c\x64\x5c\x5c\x44\x5d\x2a\x22\x2c\x20\x22\x69\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6c\x69\x6e\x65\x53\x63\x72\x69\x70\x74\x53\x6f\x75\x72\x63\x65\x20\x3d\x20\x70\x61\x67\x65\x53\x6f\x75\x72\x63\x65\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x69\x6e\x6c\x69\x6e\x65\x53\x63\x72\x69\x70\x74\x53\x6f\x75\x72\x63\x65\x52\x65\x67\x45\x78\x70\x2c\x20\x22\x24\x31\x22\x29\x2e\x74\x72\x69\x6d\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\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x76\x61\x72\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x73\x63\x72\x69\x70\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x2b\x2b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x72\x69\x70\x74\x73\x5b\x69\x5d\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x20\x3d\x3d\x3d\x20\x22\x69\x6e\x74\x65\x72\x61\x63\x74\x69\x76\x65\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\x20\x73\x63\x72\x69\x70\x74\x73\x5b\x69\x5d\x3b\x0a\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\x69\x66\x20\x28\x73\x63\x72\x69\x70\x74\x73\x5b\x69\x5d\x2e\x73\x72\x63\x20\x3d\x3d\x3d\x20\x73\x63\x72\x69\x70\x74\x4c\x6f\x63\x61\x74\x69\x6f\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\x20\x73\x63\x72\x69\x70\x74\x73\x5b\x69\x5d\x3b\x0a\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\x69\x66\x20\x28\x73\x63\x72\x69\x70\x74\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x26\x26\x20\x73\x63\x72\x69\x70\x74\x73\x5b\x69\x5d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x26\x26\x20\x73\x63\x72\x69\x70\x74\x73\x5b\x69\x5d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x2e\x74\x72\x69\x6d\x28\x29\x20\x3d\x3d\x3d\x20\x69\x6e\x6c\x69\x6e\x65\x53\x63\x72\x69\x70\x74\x53\x6f\x75\x72\x63\x65\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\x73\x63\x72\x69\x70\x74\x73\x5b\x69\x5d\x3b\x0a\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\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\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\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x22\x38\x62\x62\x66\x22\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x6f\x64\x75\x6c\x65\x32\x2c\x20\x65\x78\x70\x6f\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x75\x6c\x65\x32\x2e\x65\x78\x70\x6f\x72\x74\x73\x20\x3d\x20\x72\x65\x71\x75\x69\x72\x65\x24\x24\x30\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x22\x39\x35\x65\x36\x22\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x6f\x64\x75\x6c\x65\x32\x2c\x20\x65\x78\x70\x6f\x72\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x6f\x64\x75\x6c\x65\x32\x2e\x65\x78\x70\x6f\x72\x74\x73\x20\x3d\x20\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x2e\x65\x78\x70\x6f\x72\x74\x73\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x22\x66\x62\x31\x35\x22\x3a\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x6d\x6f\x64\x75\x6c\x65\x32\x2c\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x65\x78\x70\x6f\x72\x74\x73\x5f\x5f\x2c\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x72\x28\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x65\x78\x70\x6f\x72\x74\x73\x5f\x5f\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x77\x69\x6e\x64\x6f\x77\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x20\x3d\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x28\x22\x38\x38\x37\x35\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x20\x3d\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x22\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x22\x20\x69\x6e\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\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\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x20\x22\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x22\x2c\x20\x7b\x20\x67\x65\x74\x3a\x20\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x20\x7d\x29\x3b\x0a\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\x76\x61\x72\x20\x73\x72\x63\x20\x3d\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x20\x26\x26\x20\x63\x75\x72\x72\x65\x6e\x74\x53\x63\x72\x69\x70\x74\x2e\x73\x72\x63\x2e\x6d\x61\x74\x63\x68\x28\x2f\x28\x2e\x2b\x5c\x2f\x29\x5b\x5e\x2f\x5d\x2b\x5c\x2e\x6a\x73\x28\x5c\x3f\x2e\x2a\x29\x3f\x24\x2f\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x72\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x70\x20\x3d\x20\x73\x72\x63\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x20\x3d\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x28\x22\x38\x62\x62\x66\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x72\x6f\x6f\x74\x5f\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x20\x3d\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x28\x22\x39\x35\x65\x36\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x72\x6f\x6f\x74\x5f\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x64\x65\x66\x61\x75\x6c\x74\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x72\x65\x71\x75\x69\x72\x65\x5f\x5f\x2e\x6e\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x72\x6f\x6f\x74\x5f\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x76\x65\x6e\x74\x73\x20\x3d\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x45\x6e\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x62\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x6d\x6f\x75\x6e\x74\x65\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x75\x70\x64\x61\x74\x65\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x63\x6c\x69\x63\x6b\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x6d\x6f\x75\x73\x65\x4d\x6f\x76\x65\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x6c\x65\x67\x65\x6e\x64\x43\x6c\x69\x63\x6b\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x45\x6e\x74\x65\x72\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x4d\x6f\x75\x73\x65\x4c\x65\x61\x76\x65\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x62\x65\x66\x6f\x72\x65\x5a\x6f\x6f\x6d\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x62\x65\x66\x6f\x72\x65\x52\x65\x73\x65\x74\x5a\x6f\x6f\x6d\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x7a\x6f\x6f\x6d\x65\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x73\x63\x72\x6f\x6c\x6c\x65\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x73\x63\x72\x6f\x6c\x6c\x65\x64\x22\x0a\x20\x20\x20\x20\x20\x20\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x75\x65\x41\x70\x65\x78\x63\x68\x61\x72\x74\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x64\x65\x66\x69\x6e\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x22\x5d\x29\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x4f\x62\x6a\x65\x63\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x53\x74\x72\x69\x6e\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x22\x31\x30\x30\x25\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x22\x61\x75\x74\x6f\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6d\x69\x74\x73\x3a\x20\x65\x76\x65\x6e\x74\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x75\x70\x28\x70\x72\x6f\x70\x73\x2c\x20\x7b\x20\x65\x6d\x69\x74\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x5f\x65\x6c\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x72\x65\x66\x22\x5d\x29\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x61\x72\x74\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x72\x65\x66\x22\x5d\x29\x28\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x32\x20\x3d\x20\x28\x69\x74\x65\x6d\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x65\x6d\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x74\x65\x6d\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x21\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x69\x74\x65\x6d\x29\x20\x26\x26\x20\x69\x74\x65\x6d\x20\x21\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x74\x65\x6e\x64\x32\x20\x3d\x20\x28\x74\x61\x72\x67\x65\x74\x2c\x20\x73\x6f\x75\x72\x63\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x20\x21\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x20\x3d\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x74\x61\x72\x67\x65\x74\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x74\x61\x72\x67\x65\x74\x32\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x22\x43\x61\x6e\x6e\x6f\x74\x20\x63\x6f\x6e\x76\x65\x72\x74\x20\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x20\x6f\x72\x20\x6e\x75\x6c\x6c\x20\x74\x6f\x20\x6f\x62\x6a\x65\x63\x74\x22\x29\x3b\x0a\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\x6c\x65\x74\x20\x6f\x75\x74\x70\x75\x74\x32\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x28\x74\x61\x72\x67\x65\x74\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x6e\x64\x65\x78\x20\x3d\x20\x31\x3b\x20\x69\x6e\x64\x65\x78\x20\x3c\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x6e\x64\x65\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\x6c\x65\x74\x20\x73\x6f\x75\x72\x63\x65\x32\x20\x3d\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x69\x6e\x64\x65\x78\x5d\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\x73\x6f\x75\x72\x63\x65\x32\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x73\x6f\x75\x72\x63\x65\x32\x20\x21\x3d\x3d\x20\x6e\x75\x6c\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\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x6e\x65\x78\x74\x4b\x65\x79\x20\x69\x6e\x20\x73\x6f\x75\x72\x63\x65\x32\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\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x32\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x28\x6e\x65\x78\x74\x4b\x65\x79\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\x20\x20\x20\x20\x20\x20\x6f\x75\x74\x70\x75\x74\x32\x5b\x6e\x65\x78\x74\x4b\x65\x79\x5d\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x32\x5b\x6e\x65\x78\x74\x4b\x65\x79\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\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\x6f\x75\x74\x70\x75\x74\x32\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\x7d\x29\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\x20\x20\x20\x20\x6c\x65\x74\x20\x6f\x75\x74\x70\x75\x74\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x74\x61\x72\x67\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x32\x28\x74\x61\x72\x67\x65\x74\x29\x20\x26\x26\x20\x69\x73\x4f\x62\x6a\x65\x63\x74\x32\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x73\x6f\x75\x72\x63\x65\x29\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4f\x62\x6a\x65\x63\x74\x32\x28\x73\x6f\x75\x72\x63\x65\x5b\x6b\x65\x79\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x28\x6b\x65\x79\x20\x69\x6e\x20\x74\x61\x72\x67\x65\x74\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\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x6f\x75\x74\x70\x75\x74\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\x5b\x6b\x65\x79\x5d\x3a\x20\x73\x6f\x75\x72\x63\x65\x5b\x6b\x65\x79\x5d\x0a\x20\x20\x20\x20\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\x20\x20\x20\x20\x20\x20\x7d\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\x6f\x75\x74\x70\x75\x74\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x65\x78\x74\x65\x6e\x64\x32\x28\x74\x61\x72\x67\x65\x74\x5b\x6b\x65\x79\x5d\x2c\x20\x73\x6f\x75\x72\x63\x65\x5b\x6b\x65\x79\x5d\x29\x3b\x0a\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\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\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x6f\x75\x74\x70\x75\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5b\x6b\x65\x79\x5d\x3a\x20\x73\x6f\x75\x72\x63\x65\x5b\x6b\x65\x79\x5d\x0a\x20\x20\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\x20\x20\x20\x20\x7d\x0a\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\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x75\x74\x70\x75\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x69\x74\x20\x3d\x20\x61\x73\x79\x6e\x63\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x6e\x65\x78\x74\x54\x69\x63\x6b\x22\x5d\x29\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x77\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x70\x72\x6f\x70\x73\x2e\x74\x79\x70\x65\x20\x7c\x7c\x20\x70\x72\x6f\x70\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x68\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x7c\x7c\x20\x22\x6c\x69\x6e\x65\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x70\x72\x6f\x70\x73\x2e\x68\x65\x69\x67\x68\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x70\x72\x6f\x70\x73\x2e\x77\x69\x64\x74\x68\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x65\x6e\x74\x73\x3a\x20\x7b\x7d\x0a\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\x73\x65\x72\x69\x65\x73\x3a\x20\x70\x72\x6f\x70\x73\x2e\x73\x65\x72\x69\x65\x73\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x65\x6e\x74\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x65\x76\x65\x6e\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x61\x6c\x6c\x62\x61\x63\x6b\x20\x3d\x20\x28\x2e\x2e\x2e\x61\x72\x67\x73\x29\x20\x3d\x3e\x20\x65\x6d\x69\x74\x28\x65\x76\x65\x6e\x74\x2c\x20\x2e\x2e\x2e\x61\x72\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x4f\x70\x74\x69\x6f\x6e\x73\x2e\x63\x68\x61\x72\x74\x2e\x65\x76\x65\x6e\x74\x73\x5b\x65\x76\x65\x6e\x74\x5d\x20\x3d\x20\x63\x61\x6c\x6c\x62\x61\x63\x6b\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\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x66\x69\x67\x20\x3d\x20\x65\x78\x74\x65\x6e\x64\x32\x28\x70\x72\x6f\x70\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6e\x65\x77\x4f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x6e\x65\x77\x20\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x72\x6f\x6f\x74\x5f\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x64\x65\x66\x61\x75\x6c\x74\x2e\x61\x28\x5f\x5f\x65\x6c\x2e\x76\x61\x6c\x75\x65\x2c\x20\x63\x6f\x6e\x66\x69\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x72\x65\x6e\x64\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x66\x72\x65\x73\x68\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x73\x74\x72\x6f\x79\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x69\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x73\x74\x72\x6f\x79\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x64\x65\x73\x74\x72\x6f\x79\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x28\x6e\x65\x77\x53\x65\x72\x69\x65\x73\x2c\x20\x61\x6e\x69\x6d\x61\x74\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x6e\x65\x77\x53\x65\x72\x69\x65\x73\x2c\x20\x61\x6e\x69\x6d\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x28\x6e\x65\x77\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68\x73\x2c\x20\x61\x6e\x69\x6d\x61\x74\x65\x2c\x20\x75\x70\x64\x61\x74\x65\x53\x79\x6e\x63\x65\x64\x43\x68\x61\x72\x74\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x6e\x65\x77\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68\x73\x2c\x20\x61\x6e\x69\x6d\x61\x74\x65\x2c\x20\x75\x70\x64\x61\x74\x65\x53\x79\x6e\x63\x65\x64\x43\x68\x61\x72\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x28\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x28\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x68\x6f\x77\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x28\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x73\x68\x6f\x77\x53\x65\x72\x69\x65\x73\x28\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x28\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x28\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x65\x6e\x64\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x28\x6e\x65\x77\x53\x65\x72\x69\x65\x73\x2c\x20\x61\x6e\x69\x6d\x61\x74\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x61\x70\x70\x65\x6e\x64\x53\x65\x72\x69\x65\x73\x28\x6e\x65\x77\x53\x65\x72\x69\x65\x73\x2c\x20\x61\x6e\x69\x6d\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x20\x28\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x28\x73\x65\x72\x69\x65\x73\x49\x6e\x64\x65\x78\x2c\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x65\x6e\x64\x44\x61\x74\x61\x20\x3d\x20\x28\x6e\x65\x77\x44\x61\x74\x61\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x61\x70\x70\x65\x6e\x64\x44\x61\x74\x61\x28\x6e\x65\x77\x44\x61\x74\x61\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7a\x6f\x6f\x6d\x58\x20\x3d\x20\x28\x73\x74\x61\x72\x74\x2c\x20\x65\x6e\x64\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x7a\x6f\x6f\x6d\x58\x28\x73\x74\x61\x72\x74\x2c\x20\x65\x6e\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x61\x74\x61\x55\x52\x49\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x64\x61\x74\x61\x55\x52\x49\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3d\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3d\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3d\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x70\x75\x73\x68\x54\x6f\x4d\x65\x6d\x6f\x72\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x6d\x6f\x76\x65\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x20\x3d\x20\x28\x69\x64\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x72\x65\x6d\x6f\x76\x65\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x28\x69\x64\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6c\x65\x61\x72\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x20\x3d\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x63\x6c\x65\x61\x72\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x6f\x6e\x42\x65\x66\x6f\x72\x65\x4d\x6f\x75\x6e\x74\x22\x5d\x29\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6e\x64\x6f\x77\x2e\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x20\x3d\x20\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x72\x6f\x6f\x74\x5f\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x64\x65\x66\x61\x75\x6c\x74\x2e\x61\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x6f\x6e\x4d\x6f\x75\x6e\x74\x65\x64\x22\x5d\x29\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5f\x5f\x65\x6c\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x67\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x49\x6e\x73\x74\x61\x6e\x63\x65\x22\x5d\x29\x28\x29\x2e\x70\x72\x6f\x78\x79\x2e\x24\x65\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x6f\x6e\x42\x65\x66\x6f\x72\x65\x55\x6e\x6d\x6f\x75\x6e\x74\x22\x5d\x29\x28\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\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\x64\x65\x73\x74\x72\x6f\x79\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x74\x6f\x52\x65\x66\x73\x22\x5d\x29\x28\x70\x72\x6f\x70\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x77\x61\x74\x63\x68\x22\x5d\x29\x28\x72\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x70\x72\x6f\x70\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\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\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x77\x61\x74\x63\x68\x22\x5d\x29\x28\x72\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x73\x65\x72\x69\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x2e\x76\x61\x6c\x75\x65\x2e\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x70\x72\x6f\x70\x73\x2e\x73\x65\x72\x69\x65\x73\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\x7d\x2c\x20\x7b\x20\x64\x65\x65\x70\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x77\x61\x74\x63\x68\x22\x5d\x29\x28\x72\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x2e\x74\x79\x70\x65\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x72\x65\x73\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x77\x61\x74\x63\x68\x22\x5d\x29\x28\x72\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x2e\x77\x69\x64\x74\x68\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x72\x65\x73\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x77\x61\x74\x63\x68\x22\x5d\x29\x28\x72\x65\x61\x63\x74\x69\x76\x65\x50\x72\x6f\x70\x73\x2e\x68\x65\x69\x67\x68\x74\x2c\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x72\x65\x73\x68\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\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\x63\x68\x61\x72\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x69\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x72\x65\x73\x68\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x73\x74\x72\x6f\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x75\x70\x64\x61\x74\x65\x53\x65\x72\x69\x65\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x67\x67\x6c\x65\x53\x65\x72\x69\x65\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x68\x6f\x77\x53\x65\x72\x69\x65\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x64\x65\x53\x65\x72\x69\x65\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x65\x74\x53\x65\x72\x69\x65\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7a\x6f\x6f\x6d\x58\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x67\x67\x6c\x65\x44\x61\x74\x61\x50\x6f\x69\x6e\x74\x53\x65\x6c\x65\x63\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x70\x70\x65\x6e\x64\x44\x61\x74\x61\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x70\x70\x65\x6e\x64\x53\x65\x72\x69\x65\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x58\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x59\x61\x78\x69\x73\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x50\x6f\x69\x6e\x74\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6d\x6f\x76\x65\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x65\x61\x72\x41\x6e\x6e\x6f\x74\x61\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x61\x74\x61\x55\x52\x49\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x6e\x64\x65\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4f\x62\x6a\x65\x63\x74\x28\x65\x78\x74\x65\x72\x6e\x61\x6c\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x5f\x76\x75\x65\x5f\x63\x6f\x6d\x6d\x6f\x6e\x6a\x73\x32\x5f\x76\x75\x65\x5f\x72\x6f\x6f\x74\x5f\x56\x75\x65\x5f\x5b\x22\x68\x22\x5d\x29\x28\x22\x64\x69\x76\x22\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x76\x75\x65\x2d\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x76\x75\x65\x33\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x20\x3d\x20\x76\x75\x65\x41\x70\x65\x78\x63\x68\x61\x72\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x73\x74\x61\x6c\x6c\x20\x3d\x20\x28\x61\x70\x70\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x70\x70\x32\x2e\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x76\x75\x65\x33\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2e\x6e\x61\x6d\x65\x2c\x20\x76\x75\x65\x33\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x75\x65\x33\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x2e\x69\x6e\x73\x74\x61\x6c\x6c\x20\x3d\x20\x69\x6e\x73\x74\x61\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x73\x72\x63\x5f\x30\x20\x3d\x20\x76\x75\x65\x33\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x5f\x5f\x77\x65\x62\x70\x61\x63\x6b\x5f\x65\x78\x70\x6f\x72\x74\x73\x5f\x5f\x5b\x22\x64\x65\x66\x61\x75\x6c\x74\x22\x5d\x20\x3d\x20\x73\x72\x63\x5f\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x29\x28\x76\x75\x65\x33\x41\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x29\x3b\x0a\x76\x61\x72\x20\x56\x75\x65\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x67\x65\x74\x44\x65\x66\x61\x75\x6c\x74\x45\x78\x70\x6f\x72\x74\x46\x72\x6f\x6d\x43\x6a\x73\x28\x76\x75\x65\x33\x41\x70\x65\x78\x63\x68\x61\x72\x74\x73\x5f\x63\x6f\x6d\x6d\x6f\x6e\x2e\x65\x78\x70\x6f\x72\x74\x73\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x41\x4c\x49\x41\x53\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x66\x6f\x72\x28\x22\x79\x61\x6d\x6c\x2e\x61\x6c\x69\x61\x73\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x44\x4f\x43\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x66\x6f\x72\x28\x22\x79\x61\x6d\x6c\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x4d\x41\x50\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x66\x6f\x72\x28\x22\x79\x61\x6d\x6c\x2e\x6d\x61\x70\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x50\x41\x49\x52\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x66\x6f\x72\x28\x22\x79\x61\x6d\x6c\x2e\x70\x61\x69\x72\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x53\x43\x41\x4c\x41\x52\x24\x31\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x66\x6f\x72\x28\x22\x79\x61\x6d\x6c\x2e\x73\x63\x61\x6c\x61\x72\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x53\x45\x51\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x66\x6f\x72\x28\x22\x79\x61\x6d\x6c\x2e\x73\x65\x71\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x66\x6f\x72\x28\x22\x79\x61\x6d\x6c\x2e\x6e\x6f\x64\x65\x2e\x74\x79\x70\x65\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x41\x6c\x69\x61\x73\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x21\x21\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x6e\x6f\x64\x65\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x20\x3d\x3d\x3d\x20\x41\x4c\x49\x41\x53\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x21\x21\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x6e\x6f\x64\x65\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x20\x3d\x3d\x3d\x20\x44\x4f\x43\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4d\x61\x70\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x21\x21\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x6e\x6f\x64\x65\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x20\x3d\x3d\x3d\x20\x4d\x41\x50\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x50\x61\x69\x72\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x21\x21\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x6e\x6f\x64\x65\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x20\x3d\x3d\x3d\x20\x50\x41\x49\x52\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x21\x21\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x6e\x6f\x64\x65\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x20\x3d\x3d\x3d\x20\x53\x43\x41\x4c\x41\x52\x24\x31\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x65\x71\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x21\x21\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x6e\x6f\x64\x65\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x20\x3d\x3d\x3d\x20\x53\x45\x51\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6e\x6f\x64\x65\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x4d\x41\x50\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x45\x51\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6e\x6f\x64\x65\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x41\x4c\x49\x41\x53\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x4d\x41\x50\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x43\x41\x4c\x41\x52\x24\x31\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x45\x51\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x41\x6e\x63\x68\x6f\x72\x20\x3d\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6e\x6f\x64\x65\x29\x20\x7c\x7c\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x29\x20\x26\x26\x20\x21\x21\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x3b\x0a\x63\x6c\x61\x73\x73\x20\x4e\x6f\x64\x65\x42\x61\x73\x65\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x74\x79\x70\x65\x29\x20\x7b\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\x74\x68\x69\x73\x2c\x20\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x79\x70\x65\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x70\x79\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x4f\x66\x28\x74\x68\x69\x73\x29\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x73\x28\x74\x68\x69\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x72\x61\x6e\x67\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x61\x6e\x67\x65\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x70\x79\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x42\x52\x45\x41\x4b\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x22\x62\x72\x65\x61\x6b\x20\x76\x69\x73\x69\x74\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x53\x4b\x49\x50\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x22\x73\x6b\x69\x70\x20\x63\x68\x69\x6c\x64\x72\x65\x6e\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x52\x45\x4d\x4f\x56\x45\x20\x3d\x20\x53\x79\x6d\x62\x6f\x6c\x28\x22\x72\x65\x6d\x6f\x76\x65\x20\x6e\x6f\x64\x65\x22\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x76\x69\x73\x69\x74\x28\x6e\x6f\x64\x65\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x69\x73\x69\x74\x6f\x72\x5f\x20\x3d\x20\x69\x6e\x69\x74\x56\x69\x73\x69\x74\x6f\x72\x28\x76\x69\x73\x69\x74\x6f\x72\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x64\x20\x3d\x20\x76\x69\x73\x69\x74\x5f\x28\x6e\x75\x6c\x6c\x2c\x20\x6e\x6f\x64\x65\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x5f\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x66\x72\x65\x65\x7a\x65\x28\x5b\x6e\x6f\x64\x65\x5d\x29\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x64\x20\x3d\x3d\x3d\x20\x52\x45\x4d\x4f\x56\x45\x29\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x76\x69\x73\x69\x74\x5f\x28\x6e\x75\x6c\x6c\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x5f\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x66\x72\x65\x65\x7a\x65\x28\x5b\x5d\x29\x29\x3b\x0a\x7d\x0a\x76\x69\x73\x69\x74\x2e\x42\x52\x45\x41\x4b\x20\x3d\x20\x42\x52\x45\x41\x4b\x3b\x0a\x76\x69\x73\x69\x74\x2e\x53\x4b\x49\x50\x20\x3d\x20\x53\x4b\x49\x50\x3b\x0a\x76\x69\x73\x69\x74\x2e\x52\x45\x4d\x4f\x56\x45\x20\x3d\x20\x52\x45\x4d\x4f\x56\x45\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x76\x69\x73\x69\x74\x5f\x28\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x70\x61\x74\x68\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x72\x6c\x20\x3d\x20\x63\x61\x6c\x6c\x56\x69\x73\x69\x74\x6f\x72\x28\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x63\x74\x72\x6c\x29\x20\x7c\x7c\x20\x69\x73\x50\x61\x69\x72\x28\x63\x74\x72\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x70\x6c\x61\x63\x65\x4e\x6f\x64\x65\x28\x6b\x65\x79\x2c\x20\x70\x61\x74\x68\x2c\x20\x63\x74\x72\x6c\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x69\x73\x69\x74\x5f\x28\x6b\x65\x79\x2c\x20\x63\x74\x72\x6c\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x74\x72\x6c\x20\x21\x3d\x3d\x20\x22\x73\x79\x6d\x62\x6f\x6c\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x68\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x66\x72\x65\x65\x7a\x65\x28\x70\x61\x74\x68\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6e\x6f\x64\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6e\x6f\x64\x65\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x69\x20\x3d\x20\x76\x69\x73\x69\x74\x5f\x28\x69\x2c\x20\x6e\x6f\x64\x65\x2e\x69\x74\x65\x6d\x73\x5b\x69\x5d\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x69\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x3d\x20\x63\x69\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x69\x20\x3d\x3d\x3d\x20\x42\x52\x45\x41\x4b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x42\x52\x45\x41\x4b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x69\x20\x3d\x3d\x3d\x20\x52\x45\x4d\x4f\x56\x45\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x69\x74\x65\x6d\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2d\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x74\x68\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x66\x72\x65\x65\x7a\x65\x28\x70\x61\x74\x68\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6e\x6f\x64\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6b\x20\x3d\x20\x76\x69\x73\x69\x74\x5f\x28\x22\x6b\x65\x79\x22\x2c\x20\x6e\x6f\x64\x65\x2e\x6b\x65\x79\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6b\x20\x3d\x3d\x3d\x20\x42\x52\x45\x41\x4b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x42\x52\x45\x41\x4b\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x6b\x20\x3d\x3d\x3d\x20\x52\x45\x4d\x4f\x56\x45\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x6b\x65\x79\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x76\x20\x3d\x20\x76\x69\x73\x69\x74\x5f\x28\x22\x76\x61\x6c\x75\x65\x22\x2c\x20\x6e\x6f\x64\x65\x2e\x76\x61\x6c\x75\x65\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x76\x20\x3d\x3d\x3d\x20\x42\x52\x45\x41\x4b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x42\x52\x45\x41\x4b\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x76\x20\x3d\x3d\x3d\x20\x52\x45\x4d\x4f\x56\x45\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x74\x72\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x56\x69\x73\x69\x74\x6f\x72\x28\x76\x69\x73\x69\x74\x6f\x72\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x69\x73\x69\x74\x6f\x72\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x28\x76\x69\x73\x69\x74\x6f\x72\x2e\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x7c\x7c\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x4e\x6f\x64\x65\x20\x7c\x7c\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x56\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x41\x6c\x69\x61\x73\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x4d\x61\x70\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x53\x63\x61\x6c\x61\x72\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x4e\x6f\x64\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x53\x65\x71\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x4e\x6f\x64\x65\x0a\x20\x20\x20\x20\x7d\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x56\x61\x6c\x75\x65\x20\x26\x26\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x4d\x61\x70\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x56\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x53\x63\x61\x6c\x61\x72\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x56\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x53\x65\x71\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x56\x61\x6c\x75\x65\x0a\x20\x20\x20\x20\x7d\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x26\x26\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x4d\x61\x70\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x53\x65\x71\x3a\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\x7d\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x69\x73\x69\x74\x6f\x72\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x61\x6c\x6c\x56\x69\x73\x69\x74\x6f\x72\x28\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x70\x61\x74\x68\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x2c\x20\x5f\x62\x2c\x20\x5f\x63\x2c\x20\x5f\x64\x2c\x20\x5f\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x69\x73\x69\x74\x6f\x72\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x69\x73\x69\x74\x6f\x72\x28\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x61\x70\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x61\x20\x3d\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x4d\x61\x70\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x63\x61\x6c\x6c\x28\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x65\x71\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x62\x20\x3d\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x53\x65\x71\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x62\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x62\x2e\x63\x61\x6c\x6c\x28\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x63\x20\x3d\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x50\x61\x69\x72\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x63\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x63\x2e\x63\x61\x6c\x6c\x28\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x64\x20\x3d\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x53\x63\x61\x6c\x61\x72\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x64\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x64\x2e\x63\x61\x6c\x6c\x28\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x6c\x69\x61\x73\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x65\x20\x3d\x20\x76\x69\x73\x69\x74\x6f\x72\x2e\x41\x6c\x69\x61\x73\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x65\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x65\x2e\x63\x61\x6c\x6c\x28\x76\x69\x73\x69\x74\x6f\x72\x2c\x20\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x70\x61\x74\x68\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x70\x6c\x61\x63\x65\x4e\x6f\x64\x65\x28\x6b\x65\x79\x2c\x20\x70\x61\x74\x68\x2c\x20\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x70\x61\x74\x68\x5b\x70\x61\x74\x68\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x70\x61\x72\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2e\x69\x74\x65\x6d\x73\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x70\x61\x72\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x6b\x65\x79\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2e\x6b\x65\x79\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x70\x61\x72\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x72\x65\x6e\x74\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x74\x20\x3d\x20\x69\x73\x41\x6c\x69\x61\x73\x28\x70\x61\x72\x65\x6e\x74\x29\x20\x3f\x20\x22\x61\x6c\x69\x61\x73\x22\x20\x3a\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x43\x61\x6e\x6e\x6f\x74\x20\x72\x65\x70\x6c\x61\x63\x65\x20\x6e\x6f\x64\x65\x20\x77\x69\x74\x68\x20\x24\x7b\x70\x74\x7d\x20\x70\x61\x72\x65\x6e\x74\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x65\x73\x63\x61\x70\x65\x43\x68\x61\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x22\x21\x22\x3a\x20\x22\x25\x32\x31\x22\x2c\x0a\x20\x20\x22\x2c\x22\x3a\x20\x22\x25\x32\x43\x22\x2c\x0a\x20\x20\x22\x5b\x22\x3a\x20\x22\x25\x35\x42\x22\x2c\x0a\x20\x20\x22\x5d\x22\x3a\x20\x22\x25\x35\x44\x22\x2c\x0a\x20\x20\x22\x7b\x22\x3a\x20\x22\x25\x37\x42\x22\x2c\x0a\x20\x20\x22\x7d\x22\x3a\x20\x22\x25\x37\x44\x22\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x65\x73\x63\x61\x70\x65\x54\x61\x67\x4e\x61\x6d\x65\x20\x3d\x20\x28\x74\x6e\x29\x20\x3d\x3e\x20\x74\x6e\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x21\x2c\x5b\x5c\x5d\x7b\x7d\x5d\x2f\x67\x2c\x20\x28\x63\x68\x29\x20\x3d\x3e\x20\x65\x73\x63\x61\x70\x65\x43\x68\x61\x72\x73\x5b\x63\x68\x5d\x29\x3b\x0a\x63\x6c\x61\x73\x73\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x79\x61\x6d\x6c\x2c\x20\x74\x61\x67\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x53\x74\x61\x72\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x45\x6e\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x59\x61\x6d\x6c\x2c\x20\x79\x61\x6d\x6c\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x54\x61\x67\x73\x2c\x20\x74\x61\x67\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x70\x79\x20\x3d\x20\x6e\x65\x77\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x28\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x2c\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x64\x6f\x63\x53\x74\x61\x72\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x53\x74\x61\x72\x74\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x70\x79\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x28\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x2c\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x2e\x76\x65\x72\x73\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x31\x2e\x31\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x78\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x31\x2e\x32\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x78\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x3a\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x59\x61\x6d\x6c\x2e\x65\x78\x70\x6c\x69\x63\x69\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x22\x31\x2e\x32\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x54\x61\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x64\x64\x28\x6c\x69\x6e\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x78\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x20\x3d\x20\x7b\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x3a\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x59\x61\x6d\x6c\x2e\x65\x78\x70\x6c\x69\x63\x69\x74\x2c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x22\x31\x2e\x31\x22\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x54\x61\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x78\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x74\x73\x20\x3d\x20\x6c\x69\x6e\x65\x2e\x74\x72\x69\x6d\x28\x29\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5b\x20\x5c\x74\x5d\x2b\x2f\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x61\x6d\x65\x20\x3d\x20\x70\x61\x72\x74\x73\x2e\x73\x68\x69\x66\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x25\x54\x41\x47\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x30\x2c\x20\x22\x25\x54\x41\x47\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x20\x73\x68\x6f\x75\x6c\x64\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x65\x78\x61\x63\x74\x6c\x79\x20\x74\x77\x6f\x20\x70\x61\x72\x74\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x68\x61\x6e\x64\x6c\x65\x2c\x20\x70\x72\x65\x66\x69\x78\x5d\x20\x3d\x20\x70\x61\x72\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x5b\x68\x61\x6e\x64\x6c\x65\x5d\x20\x3d\x20\x70\x72\x65\x66\x69\x78\x3b\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x25\x59\x41\x4d\x4c\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x2e\x65\x78\x70\x6c\x69\x63\x69\x74\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x30\x2c\x20\x22\x25\x59\x41\x4d\x4c\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x20\x73\x68\x6f\x75\x6c\x64\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x65\x78\x61\x63\x74\x6c\x79\x20\x6f\x6e\x65\x20\x70\x61\x72\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x76\x65\x72\x73\x69\x6f\x6e\x32\x5d\x20\x3d\x20\x70\x61\x72\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x65\x72\x73\x69\x6f\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x31\x2e\x31\x22\x20\x7c\x7c\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x31\x2e\x32\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x2e\x76\x65\x72\x73\x69\x6f\x6e\x20\x3d\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x3b\x0a\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\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x56\x61\x6c\x69\x64\x20\x3d\x20\x2f\x5e\x5c\x64\x2b\x5c\x2e\x5c\x64\x2b\x24\x2f\x2e\x74\x65\x73\x74\x28\x76\x65\x72\x73\x69\x6f\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x36\x2c\x20\x60\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x59\x41\x4d\x4c\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x24\x7b\x76\x65\x72\x73\x69\x6f\x6e\x32\x7d\x60\x2c\x20\x69\x73\x56\x61\x6c\x69\x64\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x30\x2c\x20\x60\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x20\x24\x7b\x6e\x61\x6d\x65\x7d\x60\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\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\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x74\x61\x67\x4e\x61\x6d\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x21\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x21\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x22\x21\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x60\x4e\x6f\x74\x20\x61\x20\x76\x61\x6c\x69\x64\x20\x74\x61\x67\x3a\x20\x24\x7b\x73\x6f\x75\x72\x63\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x3c\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x65\x72\x62\x61\x74\x69\x6d\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x73\x6c\x69\x63\x65\x28\x32\x2c\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x65\x72\x62\x61\x74\x69\x6d\x20\x3d\x3d\x3d\x20\x22\x21\x22\x20\x7c\x7c\x20\x76\x65\x72\x62\x61\x74\x69\x6d\x20\x3d\x3d\x3d\x20\x22\x21\x21\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x60\x56\x65\x72\x62\x61\x74\x69\x6d\x20\x74\x61\x67\x73\x20\x61\x72\x65\x6e\x27\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x2c\x20\x73\x6f\x20\x24\x7b\x73\x6f\x75\x72\x63\x65\x7d\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x2e\x60\x29\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x21\x3d\x3d\x20\x22\x3e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x22\x56\x65\x72\x62\x61\x74\x69\x6d\x20\x74\x61\x67\x73\x20\x6d\x75\x73\x74\x20\x65\x6e\x64\x20\x77\x69\x74\x68\x20\x61\x20\x3e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x65\x72\x62\x61\x74\x69\x6d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x2c\x20\x68\x61\x6e\x64\x6c\x65\x2c\x20\x73\x75\x66\x66\x69\x78\x5d\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6d\x61\x74\x63\x68\x28\x2f\x5e\x28\x2e\x2a\x21\x29\x28\x5b\x5e\x21\x5d\x2a\x29\x24\x2f\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x75\x66\x66\x69\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x60\x54\x68\x65\x20\x24\x7b\x73\x6f\x75\x72\x63\x65\x7d\x20\x74\x61\x67\x20\x68\x61\x73\x20\x6e\x6f\x20\x73\x75\x66\x66\x69\x78\x60\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x66\x69\x78\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x5b\x68\x61\x6e\x64\x6c\x65\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x66\x69\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x65\x66\x69\x78\x20\x2b\x20\x64\x65\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x73\x75\x66\x66\x69\x78\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x6e\x64\x6c\x65\x20\x3d\x3d\x3d\x20\x22\x21\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x60\x43\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x20\x74\x61\x67\x3a\x20\x24\x7b\x73\x6f\x75\x72\x63\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x61\x67\x53\x74\x72\x69\x6e\x67\x28\x74\x61\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x5b\x68\x61\x6e\x64\x6c\x65\x2c\x20\x70\x72\x65\x66\x69\x78\x5d\x20\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x2e\x65\x6e\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x67\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x70\x72\x65\x66\x69\x78\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x68\x61\x6e\x64\x6c\x65\x20\x2b\x20\x65\x73\x63\x61\x70\x65\x54\x61\x67\x4e\x61\x6d\x65\x28\x74\x61\x67\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x70\x72\x65\x66\x69\x78\x2e\x6c\x65\x6e\x67\x74\x68\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x21\x22\x20\x3f\x20\x74\x61\x67\x20\x3a\x20\x60\x21\x3c\x24\x7b\x74\x61\x67\x7d\x3e\x60\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x64\x6f\x63\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x2e\x65\x78\x70\x6c\x69\x63\x69\x74\x20\x3f\x20\x5b\x60\x25\x59\x41\x4d\x4c\x20\x24\x7b\x74\x68\x69\x73\x2e\x79\x61\x6d\x6c\x2e\x76\x65\x72\x73\x69\x6f\x6e\x20\x7c\x7c\x20\x22\x31\x2e\x32\x22\x7d\x60\x5d\x20\x3a\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x45\x6e\x74\x72\x69\x65\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x65\x6e\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x74\x61\x67\x4e\x61\x6d\x65\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x20\x26\x26\x20\x74\x61\x67\x45\x6e\x74\x72\x69\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x69\x73\x4e\x6f\x64\x65\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x69\x73\x69\x74\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2c\x20\x28\x5f\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x6e\x6f\x64\x65\x29\x20\x26\x26\x20\x6e\x6f\x64\x65\x2e\x74\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x67\x73\x5b\x6e\x6f\x64\x65\x2e\x74\x61\x67\x5d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x61\x67\x4e\x61\x6d\x65\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x74\x61\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x74\x61\x67\x4e\x61\x6d\x65\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x5b\x68\x61\x6e\x64\x6c\x65\x2c\x20\x70\x72\x65\x66\x69\x78\x5d\x20\x6f\x66\x20\x74\x61\x67\x45\x6e\x74\x72\x69\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x6e\x64\x6c\x65\x20\x3d\x3d\x3d\x20\x22\x21\x21\x22\x20\x26\x26\x20\x70\x72\x65\x66\x69\x78\x20\x3d\x3d\x3d\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x6f\x63\x32\x20\x7c\x7c\x20\x74\x61\x67\x4e\x61\x6d\x65\x73\x2e\x73\x6f\x6d\x65\x28\x28\x74\x6e\x29\x20\x3d\x3e\x20\x74\x6e\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x70\x72\x65\x66\x69\x78\x29\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x60\x25\x54\x41\x47\x20\x24\x7b\x68\x61\x6e\x64\x6c\x65\x7d\x20\x24\x7b\x70\x72\x65\x66\x69\x78\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x69\x6e\x65\x73\x2e\x6a\x6f\x69\x6e\x28\x22\x5c\x6e\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x59\x61\x6d\x6c\x20\x3d\x20\x7b\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x22\x31\x2e\x32\x22\x20\x7d\x3b\x0a\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x65\x66\x61\x75\x6c\x74\x54\x61\x67\x73\x20\x3d\x20\x7b\x20\x22\x21\x21\x22\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x22\x20\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x6e\x63\x68\x6f\x72\x49\x73\x56\x61\x6c\x69\x64\x28\x61\x6e\x63\x68\x6f\x72\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x2f\x5b\x5c\x78\x30\x30\x2d\x5c\x78\x31\x39\x5c\x73\x2c\x5b\x5c\x5d\x7b\x7d\x5d\x2f\x2e\x74\x65\x73\x74\x28\x61\x6e\x63\x68\x6f\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x61\x20\x3d\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x60\x41\x6e\x63\x68\x6f\x72\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x20\x77\x68\x69\x74\x65\x73\x70\x61\x63\x65\x20\x6f\x72\x20\x63\x6f\x6e\x74\x72\x6f\x6c\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x3a\x20\x24\x7b\x73\x61\x7d\x60\x3b\x0a\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x6d\x73\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x6e\x63\x68\x6f\x72\x4e\x61\x6d\x65\x73\x28\x72\x6f\x6f\x74\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x63\x68\x6f\x72\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x29\x3b\x0a\x20\x20\x76\x69\x73\x69\x74\x28\x72\x6f\x6f\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x56\x61\x6c\x75\x65\x28\x5f\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x61\x64\x64\x28\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x6e\x63\x68\x6f\x72\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6e\x64\x4e\x65\x77\x41\x6e\x63\x68\x6f\x72\x28\x70\x72\x65\x66\x69\x78\x2c\x20\x65\x78\x63\x6c\x75\x64\x65\x29\x20\x7b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x31\x3b\x20\x74\x72\x75\x65\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x61\x6d\x65\x20\x3d\x20\x60\x24\x7b\x70\x72\x65\x66\x69\x78\x7d\x24\x7b\x69\x7d\x60\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x78\x63\x6c\x75\x64\x65\x2e\x68\x61\x73\x28\x6e\x61\x6d\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x61\x6d\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x41\x6e\x63\x68\x6f\x72\x73\x28\x64\x6f\x63\x32\x2c\x20\x70\x72\x65\x66\x69\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6c\x69\x61\x73\x4f\x62\x6a\x65\x63\x74\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x70\x72\x65\x76\x41\x6e\x63\x68\x6f\x72\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x3a\x20\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x6c\x69\x61\x73\x4f\x62\x6a\x65\x63\x74\x73\x2e\x70\x75\x73\x68\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x65\x76\x41\x6e\x63\x68\x6f\x72\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x41\x6e\x63\x68\x6f\x72\x73\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x4e\x61\x6d\x65\x73\x28\x64\x6f\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x66\x69\x6e\x64\x4e\x65\x77\x41\x6e\x63\x68\x6f\x72\x28\x70\x72\x65\x66\x69\x78\x2c\x20\x70\x72\x65\x76\x41\x6e\x63\x68\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x41\x6e\x63\x68\x6f\x72\x73\x2e\x61\x64\x64\x28\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x6e\x63\x68\x6f\x72\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x73\x65\x74\x41\x6e\x63\x68\x6f\x72\x73\x3a\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x73\x6f\x75\x72\x63\x65\x20\x6f\x66\x20\x61\x6c\x69\x61\x73\x4f\x62\x6a\x65\x63\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x66\x32\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x2e\x67\x65\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x66\x32\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x72\x65\x66\x32\x2e\x61\x6e\x63\x68\x6f\x72\x20\x26\x26\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x72\x65\x66\x32\x2e\x6e\x6f\x64\x65\x29\x20\x7c\x7c\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x72\x65\x66\x32\x2e\x6e\x6f\x64\x65\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x32\x2e\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x72\x65\x66\x32\x2e\x61\x6e\x63\x68\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x72\x72\x6f\x72\x20\x3d\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x46\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x72\x65\x73\x6f\x6c\x76\x65\x20\x72\x65\x70\x65\x61\x74\x65\x64\x20\x6f\x62\x6a\x65\x63\x74\x20\x28\x74\x68\x69\x73\x20\x73\x68\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x68\x61\x70\x70\x65\x6e\x29\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x65\x72\x72\x6f\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x41\x6c\x69\x61\x73\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x4e\x6f\x64\x65\x42\x61\x73\x65\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x41\x4c\x49\x41\x53\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\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\x74\x68\x69\x73\x2c\x20\x22\x74\x61\x67\x22\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x41\x6c\x69\x61\x73\x20\x6e\x6f\x64\x65\x73\x20\x63\x61\x6e\x6e\x6f\x74\x20\x68\x61\x76\x65\x20\x74\x61\x67\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x64\x6f\x63\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x66\x6f\x75\x6e\x64\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x76\x69\x73\x69\x74\x28\x64\x6f\x63\x32\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x4e\x6f\x64\x65\x3a\x20\x28\x5f\x6b\x65\x79\x2c\x20\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x74\x68\x69\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x69\x73\x69\x74\x2e\x42\x52\x45\x41\x4b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x3d\x3d\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x75\x6e\x64\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6f\x75\x6e\x64\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x4f\x4e\x28\x5f\x61\x72\x67\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x61\x6e\x63\x68\x6f\x72\x73\x2c\x20\x64\x6f\x63\x3a\x20\x64\x6f\x63\x32\x2c\x20\x6d\x61\x78\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x64\x6f\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x60\x55\x6e\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x61\x6c\x69\x61\x73\x20\x28\x74\x68\x65\x20\x61\x6e\x63\x68\x6f\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x61\x6c\x69\x61\x73\x29\x3a\x20\x24\x7b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x45\x72\x72\x6f\x72\x28\x6d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x61\x74\x61\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x67\x65\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x61\x74\x61\x20\x7c\x7c\x20\x64\x61\x74\x61\x2e\x72\x65\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x22\x54\x68\x69\x73\x20\x73\x68\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x68\x61\x70\x70\x65\x6e\x3a\x20\x41\x6c\x69\x61\x73\x20\x61\x6e\x63\x68\x6f\x72\x20\x77\x61\x73\x20\x6e\x6f\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x3f\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x45\x72\x72\x6f\x72\x28\x6d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x78\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x20\x3e\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x61\x74\x61\x2e\x63\x6f\x75\x6e\x74\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x61\x74\x61\x2e\x61\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x61\x74\x61\x2e\x61\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x20\x3d\x20\x67\x65\x74\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x28\x64\x6f\x63\x32\x2c\x20\x73\x6f\x75\x72\x63\x65\x2c\x20\x61\x6e\x63\x68\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x61\x74\x61\x2e\x63\x6f\x75\x6e\x74\x20\x2a\x20\x64\x61\x74\x61\x2e\x61\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x20\x3e\x20\x6d\x61\x78\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x22\x45\x78\x63\x65\x73\x73\x69\x76\x65\x20\x61\x6c\x69\x61\x73\x20\x63\x6f\x75\x6e\x74\x20\x69\x6e\x64\x69\x63\x61\x74\x65\x73\x20\x61\x20\x72\x65\x73\x6f\x75\x72\x63\x65\x20\x65\x78\x68\x61\x75\x73\x74\x69\x6f\x6e\x20\x61\x74\x74\x61\x63\x6b\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x52\x65\x66\x65\x72\x65\x6e\x63\x65\x45\x72\x72\x6f\x72\x28\x6d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x61\x74\x61\x2e\x72\x65\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x63\x74\x78\x2c\x20\x5f\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x5f\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x72\x63\x20\x3d\x20\x60\x2a\x24\x7b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x7d\x60\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x49\x73\x56\x61\x6c\x69\x64\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x76\x65\x72\x69\x66\x79\x41\x6c\x69\x61\x73\x4f\x72\x64\x65\x72\x20\x26\x26\x20\x21\x63\x74\x78\x2e\x61\x6e\x63\x68\x6f\x72\x73\x2e\x68\x61\x73\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x60\x55\x6e\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x61\x6c\x69\x61\x73\x20\x28\x74\x68\x65\x20\x61\x6e\x63\x68\x6f\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x74\x20\x62\x65\x66\x6f\x72\x65\x20\x74\x68\x65\x20\x61\x6c\x69\x61\x73\x29\x3a\x20\x24\x7b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x6d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x60\x24\x7b\x73\x72\x63\x7d\x20\x60\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x72\x63\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x28\x64\x6f\x63\x32\x2c\x20\x6e\x6f\x64\x65\x2c\x20\x61\x6e\x63\x68\x6f\x72\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x6c\x69\x61\x73\x28\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x6e\x6f\x64\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x64\x6f\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x73\x20\x26\x26\x20\x73\x6f\x75\x72\x63\x65\x20\x26\x26\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x67\x65\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x6e\x63\x68\x6f\x72\x20\x3f\x20\x61\x6e\x63\x68\x6f\x72\x2e\x63\x6f\x75\x6e\x74\x20\x2a\x20\x61\x6e\x63\x68\x6f\x72\x2e\x61\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x20\x3a\x20\x30\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x6f\x75\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x20\x6f\x66\x20\x6e\x6f\x64\x65\x2e\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x20\x3d\x20\x67\x65\x74\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x28\x64\x6f\x63\x32\x2c\x20\x69\x74\x65\x6d\x2c\x20\x61\x6e\x63\x68\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x20\x3e\x20\x63\x6f\x75\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x75\x6e\x74\x20\x3d\x20\x63\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x75\x6e\x74\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x6e\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x63\x20\x3d\x20\x67\x65\x74\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x28\x64\x6f\x63\x32\x2c\x20\x6e\x6f\x64\x65\x2e\x6b\x65\x79\x2c\x20\x61\x6e\x63\x68\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x63\x20\x3d\x20\x67\x65\x74\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x28\x64\x6f\x63\x32\x2c\x20\x6e\x6f\x64\x65\x2e\x76\x61\x6c\x75\x65\x2c\x20\x61\x6e\x63\x68\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x6b\x63\x2c\x20\x76\x63\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x31\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x4a\x53\x28\x76\x61\x6c\x75\x65\x2c\x20\x61\x72\x67\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x2e\x6d\x61\x70\x28\x28\x76\x2c\x20\x69\x29\x20\x3d\x3e\x20\x74\x6f\x4a\x53\x28\x76\x2c\x20\x53\x74\x72\x69\x6e\x67\x28\x69\x29\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x4a\x53\x4f\x4e\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x20\x7c\x7c\x20\x21\x68\x61\x73\x41\x6e\x63\x68\x6f\x72\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x4a\x53\x4f\x4e\x28\x61\x72\x67\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x61\x74\x61\x20\x3d\x20\x7b\x20\x61\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x3a\x20\x30\x2c\x20\x63\x6f\x75\x6e\x74\x3a\x20\x31\x2c\x20\x72\x65\x73\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x3b\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x61\x6e\x63\x68\x6f\x72\x73\x2e\x73\x65\x74\x28\x76\x61\x6c\x75\x65\x2c\x20\x64\x61\x74\x61\x29\x3b\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x20\x3d\x20\x28\x72\x65\x73\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x61\x74\x61\x2e\x72\x65\x73\x20\x3d\x20\x72\x65\x73\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x4a\x53\x4f\x4e\x28\x61\x72\x67\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x28\x72\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x69\x67\x69\x6e\x74\x22\x20\x26\x26\x20\x21\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x6b\x65\x65\x70\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4e\x75\x6d\x62\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x56\x61\x6c\x75\x65\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x21\x76\x61\x6c\x75\x65\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x3b\x0a\x63\x6c\x61\x73\x73\x20\x53\x63\x61\x6c\x61\x72\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x4e\x6f\x64\x65\x42\x61\x73\x65\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x53\x43\x41\x4c\x41\x52\x24\x31\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x4f\x4e\x28\x61\x72\x67\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x6b\x65\x65\x70\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x74\x6f\x4a\x53\x28\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x2c\x20\x61\x72\x67\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x53\x74\x72\x69\x6e\x67\x28\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x46\x4f\x4c\x44\x45\x44\x20\x3d\x20\x22\x42\x4c\x4f\x43\x4b\x5f\x46\x4f\x4c\x44\x45\x44\x22\x3b\x0a\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x20\x3d\x20\x22\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x22\x3b\x0a\x53\x63\x61\x6c\x61\x72\x2e\x50\x4c\x41\x49\x4e\x20\x3d\x20\x22\x50\x4c\x41\x49\x4e\x22\x3b\x0a\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x44\x4f\x55\x42\x4c\x45\x20\x3d\x20\x22\x51\x55\x4f\x54\x45\x5f\x44\x4f\x55\x42\x4c\x45\x22\x3b\x0a\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x53\x49\x4e\x47\x4c\x45\x20\x3d\x20\x22\x51\x55\x4f\x54\x45\x5f\x53\x49\x4e\x47\x4c\x45\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x54\x61\x67\x50\x72\x65\x66\x69\x78\x20\x3d\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x22\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6e\x64\x54\x61\x67\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x2c\x20\x74\x61\x67\x4e\x61\x6d\x65\x2c\x20\x74\x61\x67\x73\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x4e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x61\x67\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x28\x74\x29\x20\x3d\x3e\x20\x74\x2e\x74\x61\x67\x20\x3d\x3d\x3d\x20\x74\x61\x67\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x6d\x61\x74\x63\x68\x2e\x66\x69\x6e\x64\x28\x28\x74\x29\x20\x3d\x3e\x20\x21\x74\x2e\x66\x6f\x72\x6d\x61\x74\x29\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x6d\x61\x74\x63\x68\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x4f\x62\x6a\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x54\x61\x67\x20\x24\x7b\x74\x61\x67\x4e\x61\x6d\x65\x7d\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x60\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x4f\x62\x6a\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x73\x2e\x66\x69\x6e\x64\x28\x28\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x32\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x28\x5f\x61\x32\x20\x3d\x20\x74\x2e\x69\x64\x65\x6e\x74\x69\x66\x79\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x32\x2e\x63\x61\x6c\x6c\x28\x74\x2c\x20\x76\x61\x6c\x75\x65\x29\x29\x20\x26\x26\x20\x21\x74\x2e\x66\x6f\x72\x6d\x61\x74\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x2c\x20\x74\x61\x67\x4e\x61\x6d\x65\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x2c\x20\x5f\x62\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x28\x5f\x62\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x5b\x4d\x41\x50\x5d\x29\x2e\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x62\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x62\x2e\x63\x61\x6c\x6c\x28\x5f\x61\x2c\x20\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x74\x72\x69\x6e\x67\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4e\x75\x6d\x62\x65\x72\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x42\x6f\x6f\x6c\x65\x61\x6e\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x42\x69\x67\x49\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x42\x69\x67\x49\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x61\x6c\x69\x61\x73\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x73\x2c\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x2c\x20\x6f\x6e\x54\x61\x67\x4f\x62\x6a\x2c\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x66\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x6c\x69\x61\x73\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x73\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x66\x32\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x2e\x67\x65\x74\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x66\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x66\x32\x2e\x61\x6e\x63\x68\x6f\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x32\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x41\x6c\x69\x61\x73\x28\x72\x65\x66\x32\x2e\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x66\x32\x20\x3d\x20\x7b\x20\x61\x6e\x63\x68\x6f\x72\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x6e\x6f\x64\x65\x3a\x20\x6e\x75\x6c\x6c\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x2e\x73\x65\x74\x28\x76\x61\x6c\x75\x65\x2c\x20\x72\x65\x66\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x74\x61\x67\x4e\x61\x6d\x65\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x22\x21\x21\x22\x29\x29\x0a\x20\x20\x20\x20\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x20\x64\x65\x66\x61\x75\x6c\x74\x54\x61\x67\x50\x72\x65\x66\x69\x78\x20\x2b\x20\x74\x61\x67\x4e\x61\x6d\x65\x2e\x73\x6c\x69\x63\x65\x28\x32\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x66\x69\x6e\x64\x54\x61\x67\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x2c\x20\x74\x61\x67\x4e\x61\x6d\x65\x2c\x20\x73\x63\x68\x65\x6d\x61\x32\x2e\x74\x61\x67\x73\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x4f\x62\x6a\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x4a\x53\x4f\x4e\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x4a\x53\x4f\x4e\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x76\x61\x6c\x75\x65\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x32\x20\x3d\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x66\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x66\x32\x2e\x6e\x6f\x64\x65\x20\x3d\x20\x6e\x6f\x64\x65\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4d\x61\x70\x20\x3f\x20\x73\x63\x68\x65\x6d\x61\x32\x5b\x4d\x41\x50\x5d\x20\x3a\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x20\x69\x6e\x20\x4f\x62\x6a\x65\x63\x74\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x73\x63\x68\x65\x6d\x61\x32\x5b\x53\x45\x51\x5d\x20\x3a\x20\x73\x63\x68\x65\x6d\x61\x32\x5b\x4d\x41\x50\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6f\x6e\x54\x61\x67\x4f\x62\x6a\x29\x20\x7b\x0a\x20\x20\x20\x20\x6f\x6e\x54\x61\x67\x4f\x62\x6a\x28\x74\x61\x67\x4f\x62\x6a\x29\x3b\x0a\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x63\x74\x78\x2e\x6f\x6e\x54\x61\x67\x4f\x62\x6a\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x28\x74\x61\x67\x4f\x62\x6a\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x74\x61\x67\x4f\x62\x6a\x2e\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x29\x20\x3f\x20\x74\x61\x67\x4f\x62\x6a\x2e\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x20\x3a\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x4e\x61\x6d\x65\x29\x0a\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x74\x61\x67\x20\x3d\x20\x74\x61\x67\x4e\x61\x6d\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x66\x32\x29\x0a\x20\x20\x20\x20\x72\x65\x66\x32\x2e\x6e\x6f\x64\x65\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x46\x72\x6f\x6d\x50\x61\x74\x68\x28\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x70\x61\x74\x68\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x76\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x70\x61\x74\x68\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x69\x20\x3e\x3d\x20\x30\x3b\x20\x2d\x2d\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x20\x3d\x20\x70\x61\x74\x68\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x6b\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x28\x6b\x29\x20\x26\x26\x20\x6b\x20\x3e\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x5b\x6b\x5d\x20\x3d\x20\x76\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x20\x3d\x20\x61\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x5b\x5b\x6b\x2c\x20\x76\x5d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x76\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x7b\x0a\x20\x20\x20\x20\x61\x6c\x69\x61\x73\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x6b\x65\x65\x70\x55\x6e\x64\x65\x66\x69\x6e\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x3a\x20\x28\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x54\x68\x69\x73\x20\x73\x68\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x68\x61\x70\x70\x65\x6e\x2c\x20\x70\x6c\x65\x61\x73\x65\x20\x72\x65\x70\x6f\x72\x74\x20\x61\x20\x62\x75\x67\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x73\x63\x68\x65\x6d\x61\x32\x2c\x0a\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x45\x6d\x70\x74\x79\x50\x61\x74\x68\x20\x3d\x20\x28\x70\x61\x74\x68\x29\x20\x3d\x3e\x20\x70\x61\x74\x68\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x70\x61\x74\x68\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x21\x21\x70\x61\x74\x68\x5b\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x5d\x28\x29\x2e\x6e\x65\x78\x74\x28\x29\x2e\x64\x6f\x6e\x65\x3b\x0a\x63\x6c\x61\x73\x73\x20\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x4e\x6f\x64\x65\x42\x61\x73\x65\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x74\x79\x70\x65\x2c\x20\x73\x63\x68\x65\x6d\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x74\x79\x70\x65\x29\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\x74\x68\x69\x73\x2c\x20\x22\x73\x63\x68\x65\x6d\x61\x22\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x3a\x20\x73\x63\x68\x65\x6d\x61\x32\x2c\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x77\x72\x69\x74\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x70\x79\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x50\x72\x6f\x74\x6f\x74\x79\x70\x65\x4f\x66\x28\x74\x68\x69\x73\x29\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x73\x28\x74\x68\x69\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x73\x63\x68\x65\x6d\x61\x20\x3d\x20\x73\x63\x68\x65\x6d\x61\x32\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x69\x74\x65\x6d\x73\x20\x3d\x20\x63\x6f\x70\x79\x2e\x69\x74\x65\x6d\x73\x2e\x6d\x61\x70\x28\x28\x69\x74\x29\x20\x3d\x3e\x20\x69\x73\x4e\x6f\x64\x65\x28\x69\x74\x29\x20\x7c\x7c\x20\x69\x73\x50\x61\x69\x72\x28\x69\x74\x29\x20\x3f\x20\x69\x74\x2e\x63\x6c\x6f\x6e\x65\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x20\x3a\x20\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x72\x61\x6e\x67\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x61\x6e\x67\x65\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x70\x79\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x64\x64\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x70\x74\x79\x50\x61\x74\x68\x28\x70\x61\x74\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x65\x79\x2c\x20\x2e\x2e\x2e\x72\x65\x73\x74\x5d\x20\x3d\x20\x70\x61\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x61\x64\x64\x49\x6e\x28\x72\x65\x73\x74\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x46\x72\x6f\x6d\x50\x61\x74\x68\x28\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x2c\x20\x72\x65\x73\x74\x2c\x20\x76\x61\x6c\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x59\x41\x4d\x4c\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x61\x74\x20\x24\x7b\x6b\x65\x79\x7d\x2e\x20\x52\x65\x6d\x61\x69\x6e\x69\x6e\x67\x20\x70\x61\x74\x68\x3a\x20\x24\x7b\x72\x65\x73\x74\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x64\x65\x6c\x65\x74\x65\x49\x6e\x28\x70\x61\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x65\x79\x2c\x20\x2e\x2e\x2e\x72\x65\x73\x74\x5d\x20\x3d\x20\x70\x61\x74\x68\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x2e\x64\x65\x6c\x65\x74\x65\x49\x6e\x28\x72\x65\x73\x74\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x59\x41\x4d\x4c\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x61\x74\x20\x24\x7b\x6b\x65\x79\x7d\x2e\x20\x52\x65\x6d\x61\x69\x6e\x69\x6e\x67\x20\x70\x61\x74\x68\x3a\x20\x24\x7b\x72\x65\x73\x74\x7d\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x65\x79\x2c\x20\x2e\x2e\x2e\x72\x65\x73\x74\x5d\x20\x3d\x20\x70\x61\x74\x68\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6e\x6f\x64\x65\x29\x20\x3f\x20\x6e\x6f\x64\x65\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x20\x3f\x20\x6e\x6f\x64\x65\x2e\x67\x65\x74\x49\x6e\x28\x72\x65\x73\x74\x2c\x20\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x29\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x68\x61\x73\x41\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x28\x61\x6c\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x65\x76\x65\x72\x79\x28\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x50\x61\x69\x72\x28\x6e\x6f\x64\x65\x29\x29\x0a\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\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x6e\x6f\x64\x65\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x61\x6c\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6e\x29\x20\x26\x26\x20\x6e\x2e\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x21\x6e\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x26\x26\x20\x21\x6e\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x26\x26\x20\x21\x6e\x2e\x74\x61\x67\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x68\x61\x73\x49\x6e\x28\x70\x61\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x65\x79\x2c\x20\x2e\x2e\x2e\x72\x65\x73\x74\x5d\x20\x3d\x20\x70\x61\x74\x68\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x68\x61\x73\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x20\x3f\x20\x6e\x6f\x64\x65\x2e\x68\x61\x73\x49\x6e\x28\x72\x65\x73\x74\x29\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x65\x79\x2c\x20\x2e\x2e\x2e\x72\x65\x73\x74\x5d\x20\x3d\x20\x70\x61\x74\x68\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x73\x65\x74\x49\x6e\x28\x72\x65\x73\x74\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x46\x72\x6f\x6d\x50\x61\x74\x68\x28\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x2c\x20\x72\x65\x73\x74\x2c\x20\x76\x61\x6c\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x59\x41\x4d\x4c\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x61\x74\x20\x24\x7b\x6b\x65\x79\x7d\x2e\x20\x52\x65\x6d\x61\x69\x6e\x69\x6e\x67\x20\x70\x61\x74\x68\x3a\x20\x24\x7b\x72\x65\x73\x74\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x6d\x61\x78\x46\x6c\x6f\x77\x53\x74\x72\x69\x6e\x67\x53\x69\x6e\x67\x6c\x65\x4c\x69\x6e\x65\x4c\x65\x6e\x67\x74\x68\x20\x3d\x20\x36\x30\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x28\x3f\x21\x24\x29\x28\x3f\x3a\x20\x24\x29\x3f\x2f\x67\x6d\x2c\x20\x22\x23\x22\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x69\x6e\x64\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x2f\x5e\x5c\x6e\x2b\x24\x2f\x2e\x74\x65\x73\x74\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x64\x65\x6e\x74\x20\x3f\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x28\x3f\x21\x20\x2a\x24\x29\x2f\x67\x6d\x2c\x20\x69\x6e\x64\x65\x6e\x74\x29\x20\x3a\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x28\x73\x74\x72\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x3d\x3e\x20\x73\x74\x72\x2e\x65\x6e\x64\x73\x57\x69\x74\x68\x28\x22\x5c\x6e\x22\x29\x20\x3f\x20\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x69\x6e\x64\x65\x6e\x74\x29\x20\x3a\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x5c\x6e\x22\x29\x20\x3f\x20\x22\x5c\x6e\x22\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x69\x6e\x64\x65\x6e\x74\x29\x20\x3a\x20\x28\x73\x74\x72\x2e\x65\x6e\x64\x73\x57\x69\x74\x68\x28\x22\x20\x22\x29\x20\x3f\x20\x22\x22\x20\x3a\x20\x22\x20\x22\x29\x20\x2b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x46\x4f\x4c\x44\x5f\x46\x4c\x4f\x57\x20\x3d\x20\x22\x66\x6c\x6f\x77\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x46\x4f\x4c\x44\x5f\x42\x4c\x4f\x43\x4b\x20\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x46\x4f\x4c\x44\x5f\x51\x55\x4f\x54\x45\x44\x20\x3d\x20\x22\x71\x75\x6f\x74\x65\x64\x22\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x6c\x64\x46\x6c\x6f\x77\x4c\x69\x6e\x65\x73\x28\x74\x65\x78\x74\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x6d\x6f\x64\x65\x20\x3d\x20\x22\x66\x6c\x6f\x77\x22\x2c\x20\x7b\x20\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x2c\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x3d\x20\x38\x30\x2c\x20\x6d\x69\x6e\x43\x6f\x6e\x74\x65\x6e\x74\x57\x69\x64\x74\x68\x20\x3d\x20\x32\x30\x2c\x20\x6f\x6e\x46\x6f\x6c\x64\x2c\x20\x6f\x6e\x4f\x76\x65\x72\x66\x6c\x6f\x77\x20\x7d\x20\x3d\x20\x7b\x7d\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x7c\x7c\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x3c\x20\x30\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x65\x78\x74\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x53\x74\x65\x70\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x31\x20\x2b\x20\x6d\x69\x6e\x43\x6f\x6e\x74\x65\x6e\x74\x57\x69\x64\x74\x68\x2c\x20\x31\x20\x2b\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x65\x78\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x3d\x20\x65\x6e\x64\x53\x74\x65\x70\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x65\x78\x74\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6f\x6c\x64\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x73\x63\x61\x70\x65\x64\x46\x6f\x6c\x64\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x20\x3d\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x20\x3e\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x32\x2c\x20\x6d\x69\x6e\x43\x6f\x6e\x74\x65\x6e\x74\x57\x69\x64\x74\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x6c\x64\x73\x2e\x70\x75\x73\x68\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x73\x70\x6c\x69\x74\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x6c\x65\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x6c\x65\x74\x20\x65\x73\x63\x53\x74\x61\x72\x74\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x6c\x65\x74\x20\x65\x73\x63\x45\x6e\x64\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x46\x4f\x4c\x44\x5f\x42\x4c\x4f\x43\x4b\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x20\x3d\x20\x63\x6f\x6e\x73\x75\x6d\x65\x4d\x6f\x72\x65\x49\x6e\x64\x65\x6e\x74\x65\x64\x4c\x69\x6e\x65\x73\x28\x74\x65\x78\x74\x2c\x20\x69\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x21\x3d\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x69\x20\x2b\x20\x65\x6e\x64\x53\x74\x65\x70\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x63\x68\x3b\x20\x63\x68\x20\x3d\x20\x74\x65\x78\x74\x5b\x69\x20\x2b\x3d\x20\x31\x5d\x3b\x20\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x46\x4f\x4c\x44\x5f\x51\x55\x4f\x54\x45\x44\x20\x26\x26\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x5c\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x73\x63\x53\x74\x61\x72\x74\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x65\x78\x74\x5b\x69\x20\x2b\x20\x31\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x78\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x33\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x75\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x35\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x55\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x39\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x65\x73\x63\x45\x6e\x64\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x46\x4f\x4c\x44\x5f\x42\x4c\x4f\x43\x4b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x3d\x20\x63\x6f\x6e\x73\x75\x6d\x65\x4d\x6f\x72\x65\x49\x6e\x64\x65\x6e\x74\x65\x64\x4c\x69\x6e\x65\x73\x28\x74\x65\x78\x74\x2c\x20\x69\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x69\x20\x2b\x20\x65\x6e\x64\x53\x74\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x26\x26\x20\x70\x72\x65\x76\x20\x26\x26\x20\x70\x72\x65\x76\x20\x21\x3d\x3d\x20\x22\x20\x22\x20\x26\x26\x20\x70\x72\x65\x76\x20\x21\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x26\x26\x20\x70\x72\x65\x76\x20\x21\x3d\x3d\x20\x22\x09\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x74\x65\x78\x74\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x26\x26\x20\x6e\x65\x78\x74\x20\x21\x3d\x3d\x20\x22\x20\x22\x20\x26\x26\x20\x6e\x65\x78\x74\x20\x21\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x26\x26\x20\x6e\x65\x78\x74\x20\x21\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3e\x3d\x20\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x70\x6c\x69\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x6c\x64\x73\x2e\x70\x75\x73\x68\x28\x73\x70\x6c\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x73\x70\x6c\x69\x74\x20\x2b\x20\x65\x6e\x64\x53\x74\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x46\x4f\x4c\x44\x5f\x51\x55\x4f\x54\x45\x44\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x70\x72\x65\x76\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x70\x72\x65\x76\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x20\x3d\x20\x63\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x65\x78\x74\x5b\x69\x20\x2b\x3d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6a\x20\x3d\x20\x69\x20\x3e\x20\x65\x73\x63\x45\x6e\x64\x20\x2b\x20\x31\x20\x3f\x20\x69\x20\x2d\x20\x32\x20\x3a\x20\x65\x73\x63\x53\x74\x61\x72\x74\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x73\x63\x61\x70\x65\x64\x46\x6f\x6c\x64\x73\x5b\x6a\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x65\x78\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x6c\x64\x73\x2e\x70\x75\x73\x68\x28\x6a\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x73\x63\x61\x70\x65\x64\x46\x6f\x6c\x64\x73\x5b\x6a\x5d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x6a\x20\x2b\x20\x65\x6e\x64\x53\x74\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x6c\x69\x74\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x70\x72\x65\x76\x20\x3d\x20\x63\x68\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6f\x76\x65\x72\x66\x6c\x6f\x77\x20\x26\x26\x20\x6f\x6e\x4f\x76\x65\x72\x66\x6c\x6f\x77\x29\x0a\x20\x20\x20\x20\x6f\x6e\x4f\x76\x65\x72\x66\x6c\x6f\x77\x28\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x66\x6f\x6c\x64\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x65\x78\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x6e\x46\x6f\x6c\x64\x29\x0a\x20\x20\x20\x20\x6f\x6e\x46\x6f\x6c\x64\x28\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x20\x3d\x20\x74\x65\x78\x74\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x66\x6f\x6c\x64\x73\x5b\x30\x5d\x29\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x32\x20\x3d\x20\x30\x3b\x20\x69\x32\x20\x3c\x20\x66\x6f\x6c\x64\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6f\x6c\x64\x20\x3d\x20\x66\x6f\x6c\x64\x73\x5b\x69\x32\x5d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x32\x20\x3d\x20\x66\x6f\x6c\x64\x73\x5b\x69\x32\x20\x2b\x20\x31\x5d\x20\x7c\x7c\x20\x74\x65\x78\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x66\x6f\x6c\x64\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x60\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x24\x7b\x74\x65\x78\x74\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x65\x6e\x64\x32\x29\x7d\x60\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x46\x4f\x4c\x44\x5f\x51\x55\x4f\x54\x45\x44\x20\x26\x26\x20\x65\x73\x63\x61\x70\x65\x64\x46\x6f\x6c\x64\x73\x5b\x66\x6f\x6c\x64\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x60\x24\x7b\x74\x65\x78\x74\x5b\x66\x6f\x6c\x64\x5d\x7d\x5c\x5c\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x60\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x24\x7b\x74\x65\x78\x74\x2e\x73\x6c\x69\x63\x65\x28\x66\x6f\x6c\x64\x20\x2b\x20\x31\x2c\x20\x65\x6e\x64\x32\x29\x7d\x60\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x73\x75\x6d\x65\x4d\x6f\x72\x65\x49\x6e\x64\x65\x6e\x74\x65\x64\x4c\x69\x6e\x65\x73\x28\x74\x65\x78\x74\x2c\x20\x69\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x63\x68\x20\x3d\x20\x74\x65\x78\x74\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x64\x6f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x65\x78\x74\x5b\x69\x20\x2b\x3d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x20\x26\x26\x20\x63\x68\x20\x21\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x65\x78\x74\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x67\x65\x74\x46\x6f\x6c\x64\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x28\x63\x74\x78\x29\x20\x3d\x3e\x20\x28\x7b\x0a\x20\x20\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x3a\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x2c\x0a\x20\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x3a\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x2c\x0a\x20\x20\x6d\x69\x6e\x43\x6f\x6e\x74\x65\x6e\x74\x57\x69\x64\x74\x68\x3a\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6d\x69\x6e\x43\x6f\x6e\x74\x65\x6e\x74\x57\x69\x64\x74\x68\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x4d\x61\x72\x6b\x65\x72\x20\x3d\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x2f\x5e\x28\x25\x7c\x2d\x2d\x2d\x7c\x5c\x2e\x5c\x2e\x5c\x2e\x29\x2f\x6d\x2e\x74\x65\x73\x74\x28\x73\x74\x72\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x69\x6e\x65\x4c\x65\x6e\x67\x74\x68\x4f\x76\x65\x72\x4c\x69\x6d\x69\x74\x28\x73\x74\x72\x2c\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x2c\x20\x69\x6e\x64\x65\x6e\x74\x4c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x7c\x7c\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x3c\x20\x30\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6d\x69\x74\x20\x3d\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x69\x6e\x64\x65\x6e\x74\x4c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x4c\x65\x6e\x20\x3d\x20\x73\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x74\x72\x4c\x65\x6e\x20\x3c\x3d\x20\x6c\x69\x6d\x69\x74\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x2c\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x73\x74\x72\x4c\x65\x6e\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x72\x5b\x69\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x2d\x20\x73\x74\x61\x72\x74\x20\x3e\x20\x6c\x69\x6d\x69\x74\x29\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\x20\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x69\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x72\x4c\x65\x6e\x20\x2d\x20\x73\x74\x61\x72\x74\x20\x3c\x3d\x20\x6c\x69\x6d\x69\x74\x29\x0a\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\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6a\x73\x6f\x6e\x20\x3d\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x41\x73\x4a\x53\x4f\x4e\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6a\x73\x6f\x6e\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x69\x6e\x4d\x75\x6c\x74\x69\x4c\x69\x6e\x65\x4c\x65\x6e\x67\x74\x68\x20\x3d\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x4d\x69\x6e\x4d\x75\x6c\x74\x69\x4c\x69\x6e\x65\x4c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x20\x7c\x7c\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x4d\x61\x72\x6b\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x22\x20\x20\x22\x20\x3a\x20\x22\x22\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x72\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x2c\x20\x63\x68\x20\x3d\x20\x6a\x73\x6f\x6e\x5b\x69\x5d\x3b\x20\x63\x68\x3b\x20\x63\x68\x20\x3d\x20\x6a\x73\x6f\x6e\x5b\x2b\x2b\x69\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x26\x26\x20\x6a\x73\x6f\x6e\x5b\x69\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x5c\x22\x20\x26\x26\x20\x6a\x73\x6f\x6e\x5b\x69\x20\x2b\x20\x32\x5d\x20\x3d\x3d\x3d\x20\x22\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6a\x73\x6f\x6e\x2e\x73\x6c\x69\x63\x65\x28\x73\x74\x61\x72\x74\x2c\x20\x69\x29\x20\x2b\x20\x22\x5c\x5c\x20\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x22\x5c\x5c\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x5c\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6a\x73\x6f\x6e\x5b\x69\x20\x2b\x20\x31\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x75\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6a\x73\x6f\x6e\x2e\x73\x6c\x69\x63\x65\x28\x73\x74\x61\x72\x74\x2c\x20\x69\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x64\x65\x20\x3d\x20\x6a\x73\x6f\x6e\x2e\x73\x75\x62\x73\x74\x72\x28\x69\x20\x2b\x20\x32\x2c\x20\x34\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x63\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x30\x30\x30\x30\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x30\x22\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\x20\x20\x63\x61\x73\x65\x20\x22\x30\x30\x30\x37\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x61\x22\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\x20\x20\x63\x61\x73\x65\x20\x22\x30\x30\x30\x62\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x76\x22\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\x20\x20\x63\x61\x73\x65\x20\x22\x30\x30\x31\x62\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x65\x22\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\x20\x20\x63\x61\x73\x65\x20\x22\x30\x30\x38\x35\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x4e\x22\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\x20\x20\x63\x61\x73\x65\x20\x22\x30\x30\x61\x30\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x5f\x22\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\x20\x20\x63\x61\x73\x65\x20\x22\x32\x30\x32\x38\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x4c\x22\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\x20\x20\x63\x61\x73\x65\x20\x22\x32\x30\x32\x39\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x50\x22\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\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\x63\x6f\x64\x65\x2e\x73\x75\x62\x73\x74\x72\x28\x30\x2c\x20\x32\x29\x20\x3d\x3d\x3d\x20\x22\x30\x30\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x78\x22\x20\x2b\x20\x63\x6f\x64\x65\x2e\x73\x75\x62\x73\x74\x72\x28\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6a\x73\x6f\x6e\x2e\x73\x75\x62\x73\x74\x72\x28\x69\x2c\x20\x36\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\x20\x2b\x3d\x20\x35\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x69\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\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\x63\x61\x73\x65\x20\x22\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x7c\x7c\x20\x6a\x73\x6f\x6e\x5b\x69\x20\x2b\x20\x32\x5d\x20\x3d\x3d\x3d\x20\x27\x22\x27\x20\x7c\x7c\x20\x6a\x73\x6f\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x6d\x69\x6e\x4d\x75\x6c\x74\x69\x4c\x69\x6e\x65\x4c\x65\x6e\x67\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6a\x73\x6f\x6e\x2e\x73\x6c\x69\x63\x65\x28\x73\x74\x61\x72\x74\x2c\x20\x69\x29\x20\x2b\x20\x22\x5c\x6e\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6a\x73\x6f\x6e\x5b\x69\x20\x2b\x20\x32\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x5c\x22\x20\x26\x26\x20\x6a\x73\x6f\x6e\x5b\x69\x20\x2b\x20\x33\x5d\x20\x3d\x3d\x3d\x20\x22\x6e\x22\x20\x26\x26\x20\x6a\x73\x6f\x6e\x5b\x69\x20\x2b\x20\x34\x5d\x20\x21\x3d\x3d\x20\x27\x22\x27\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x32\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\x74\x72\x20\x2b\x3d\x20\x69\x6e\x64\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6a\x73\x6f\x6e\x5b\x69\x20\x2b\x20\x32\x5d\x20\x3d\x3d\x3d\x20\x22\x20\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x5c\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x69\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x73\x74\x72\x20\x3d\x20\x73\x74\x61\x72\x74\x20\x3f\x20\x73\x74\x72\x20\x2b\x20\x6a\x73\x6f\x6e\x2e\x73\x6c\x69\x63\x65\x28\x73\x74\x61\x72\x74\x29\x20\x3a\x20\x6a\x73\x6f\x6e\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x3f\x20\x73\x74\x72\x20\x3a\x20\x66\x6f\x6c\x64\x46\x6c\x6f\x77\x4c\x69\x6e\x65\x73\x28\x73\x74\x72\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x46\x4f\x4c\x44\x5f\x51\x55\x4f\x54\x45\x44\x2c\x20\x67\x65\x74\x46\x6f\x6c\x64\x4f\x70\x74\x69\x6f\x6e\x73\x28\x63\x74\x78\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x7c\x7c\x20\x63\x74\x78\x2e\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x5c\x6e\x22\x29\x20\x7c\x7c\x20\x2f\x5b\x20\x5c\x74\x5d\x5c\x6e\x7c\x5c\x6e\x5b\x20\x5c\x74\x5d\x2f\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x20\x7c\x7c\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x4d\x61\x72\x6b\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x22\x20\x20\x22\x20\x3a\x20\x22\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x22\x27\x22\x20\x2b\x20\x76\x61\x6c\x75\x65\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x27\x2f\x67\x2c\x20\x22\x27\x27\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x6e\x2b\x2f\x67\x2c\x20\x60\x24\x26\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x60\x29\x20\x2b\x20\x22\x27\x22\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x74\x78\x2e\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x3f\x20\x72\x65\x73\x20\x3a\x20\x66\x6f\x6c\x64\x46\x6c\x6f\x77\x4c\x69\x6e\x65\x73\x28\x72\x65\x73\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x46\x4f\x4c\x44\x5f\x46\x4c\x4f\x57\x2c\x20\x67\x65\x74\x46\x6f\x6c\x64\x4f\x70\x74\x69\x6f\x6e\x73\x28\x63\x74\x78\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x71\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x20\x7d\x20\x3d\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x6c\x65\x74\x20\x71\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x29\x0a\x20\x20\x20\x20\x71\x73\x20\x3d\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x3b\x0a\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x44\x6f\x75\x62\x6c\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x27\x22\x27\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x61\x73\x53\x69\x6e\x67\x6c\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x27\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x68\x61\x73\x44\x6f\x75\x62\x6c\x65\x20\x26\x26\x20\x21\x68\x61\x73\x53\x69\x6e\x67\x6c\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x71\x73\x20\x3d\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x68\x61\x73\x53\x69\x6e\x67\x6c\x65\x20\x26\x26\x20\x21\x68\x61\x73\x44\x6f\x75\x62\x6c\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x71\x73\x20\x3d\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x71\x73\x20\x3d\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x20\x3f\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x20\x3a\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x71\x73\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x6c\x6f\x63\x6b\x53\x74\x72\x69\x6e\x67\x28\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x74\x79\x70\x65\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x62\x6c\x6f\x63\x6b\x51\x75\x6f\x74\x65\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x2c\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x7d\x20\x3d\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x62\x6c\x6f\x63\x6b\x51\x75\x6f\x74\x65\x20\x7c\x7c\x20\x2f\x5c\x6e\x5b\x5c\x74\x20\x5d\x2b\x24\x2f\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x20\x7c\x7c\x20\x2f\x5e\x5c\x73\x2a\x24\x2f\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x71\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x20\x7c\x7c\x20\x28\x63\x74\x78\x2e\x66\x6f\x72\x63\x65\x42\x6c\x6f\x63\x6b\x49\x6e\x64\x65\x6e\x74\x20\x7c\x7c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x4d\x61\x72\x6b\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x22\x20\x20\x22\x20\x3a\x20\x22\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x74\x65\x72\x61\x6c\x20\x3d\x20\x62\x6c\x6f\x63\x6b\x51\x75\x6f\x74\x65\x20\x3d\x3d\x3d\x20\x22\x6c\x69\x74\x65\x72\x61\x6c\x22\x20\x3f\x20\x74\x72\x75\x65\x20\x3a\x20\x62\x6c\x6f\x63\x6b\x51\x75\x6f\x74\x65\x20\x3d\x3d\x3d\x20\x22\x66\x6f\x6c\x64\x65\x64\x22\x20\x7c\x7c\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x46\x4f\x4c\x44\x45\x44\x20\x3f\x20\x66\x61\x6c\x73\x65\x20\x3a\x20\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x20\x3f\x20\x74\x72\x75\x65\x20\x3a\x20\x21\x6c\x69\x6e\x65\x4c\x65\x6e\x67\x74\x68\x4f\x76\x65\x72\x4c\x69\x6d\x69\x74\x28\x76\x61\x6c\x75\x65\x2c\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x69\x74\x65\x72\x61\x6c\x20\x3f\x20\x22\x7c\x5c\x6e\x22\x20\x3a\x20\x22\x3e\x5c\x6e\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x68\x6f\x6d\x70\x3b\x0a\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x53\x74\x61\x72\x74\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x65\x6e\x64\x53\x74\x61\x72\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x65\x6e\x64\x53\x74\x61\x72\x74\x20\x3e\x20\x30\x3b\x20\x2d\x2d\x65\x6e\x64\x53\x74\x61\x72\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x76\x61\x6c\x75\x65\x5b\x65\x6e\x64\x53\x74\x61\x72\x74\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x21\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x26\x26\x20\x63\x68\x20\x21\x3d\x3d\x20\x22\x09\x22\x20\x26\x26\x20\x63\x68\x20\x21\x3d\x3d\x20\x22\x20\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x65\x6e\x64\x53\x74\x61\x72\x74\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x4e\x6c\x50\x6f\x73\x20\x3d\x20\x65\x6e\x64\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x4e\x6c\x50\x6f\x73\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x68\x6f\x6d\x70\x20\x3d\x20\x22\x2d\x22\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x65\x6e\x64\x20\x7c\x7c\x20\x65\x6e\x64\x4e\x6c\x50\x6f\x73\x20\x21\x3d\x3d\x20\x65\x6e\x64\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x68\x6f\x6d\x70\x20\x3d\x20\x22\x2b\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x28\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x68\x6f\x6d\x70\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x2d\x65\x6e\x64\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x5b\x65\x6e\x64\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x65\x6e\x64\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x65\x6e\x64\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x6e\x2b\x28\x3f\x21\x5c\x6e\x7c\x24\x29\x2f\x67\x2c\x20\x60\x24\x26\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x61\x72\x74\x57\x69\x74\x68\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x61\x72\x74\x45\x6e\x64\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x61\x72\x74\x4e\x6c\x50\x6f\x73\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x73\x74\x61\x72\x74\x45\x6e\x64\x20\x3d\x20\x30\x3b\x20\x73\x74\x61\x72\x74\x45\x6e\x64\x20\x3c\x20\x76\x61\x6c\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x73\x74\x61\x72\x74\x45\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x76\x61\x6c\x75\x65\x5b\x73\x74\x61\x72\x74\x45\x6e\x64\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x57\x69\x74\x68\x53\x70\x61\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x4e\x6c\x50\x6f\x73\x20\x3d\x20\x73\x74\x61\x72\x74\x45\x6e\x64\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x73\x74\x61\x72\x74\x4e\x6c\x50\x6f\x73\x20\x3c\x20\x73\x74\x61\x72\x74\x45\x6e\x64\x20\x3f\x20\x73\x74\x61\x72\x74\x4e\x6c\x50\x6f\x73\x20\x2b\x20\x31\x20\x3a\x20\x73\x74\x61\x72\x74\x45\x6e\x64\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x74\x61\x72\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x73\x74\x61\x72\x74\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x73\x74\x61\x72\x74\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x6e\x2b\x2f\x67\x2c\x20\x60\x24\x26\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x64\x65\x6e\x74\x53\x69\x7a\x65\x20\x3d\x20\x69\x6e\x64\x65\x6e\x74\x20\x3f\x20\x22\x32\x22\x20\x3a\x20\x22\x31\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3d\x20\x28\x6c\x69\x74\x65\x72\x61\x6c\x20\x3f\x20\x22\x7c\x22\x20\x3a\x20\x22\x3e\x22\x29\x20\x2b\x20\x28\x73\x74\x61\x72\x74\x57\x69\x74\x68\x53\x70\x61\x63\x65\x20\x3f\x20\x69\x6e\x64\x65\x6e\x74\x53\x69\x7a\x65\x20\x3a\x20\x22\x22\x29\x20\x2b\x20\x63\x68\x6f\x6d\x70\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x20\x2b\x3d\x20\x22\x20\x22\x20\x2b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x20\x3f\x5b\x5c\x72\x5c\x6e\x5d\x2b\x2f\x67\x2c\x20\x22\x20\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6c\x69\x74\x65\x72\x61\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x6e\x2b\x2f\x67\x2c\x20\x60\x24\x26\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x60\x24\x7b\x68\x65\x61\x64\x65\x72\x7d\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x24\x7b\x73\x74\x61\x72\x74\x7d\x24\x7b\x76\x61\x6c\x75\x65\x7d\x24\x7b\x65\x6e\x64\x7d\x60\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x6e\x2b\x2f\x67\x2c\x20\x22\x5c\x6e\x24\x26\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x3f\x3a\x5e\x7c\x5c\x6e\x29\x28\x5b\x5c\x74\x20\x5d\x2e\x2a\x29\x28\x3f\x3a\x28\x5b\x5c\x6e\x5c\x74\x20\x5d\x2a\x29\x5c\x6e\x28\x3f\x21\x5b\x5c\x6e\x5c\x74\x20\x5d\x29\x29\x3f\x2f\x67\x2c\x20\x22\x24\x31\x24\x32\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x6e\x2b\x2f\x67\x2c\x20\x60\x24\x26\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x60\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x6f\x64\x79\x20\x3d\x20\x66\x6f\x6c\x64\x46\x6c\x6f\x77\x4c\x69\x6e\x65\x73\x28\x60\x24\x7b\x73\x74\x61\x72\x74\x7d\x24\x7b\x76\x61\x6c\x75\x65\x7d\x24\x7b\x65\x6e\x64\x7d\x60\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x46\x4f\x4c\x44\x5f\x42\x4c\x4f\x43\x4b\x2c\x20\x67\x65\x74\x46\x6f\x6c\x64\x4f\x70\x74\x69\x6f\x6e\x73\x28\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x60\x24\x7b\x68\x65\x61\x64\x65\x72\x7d\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x24\x7b\x62\x6f\x64\x79\x7d\x60\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x6c\x61\x69\x6e\x53\x74\x72\x69\x6e\x67\x28\x69\x74\x65\x6d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x74\x79\x70\x65\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x3d\x20\x69\x74\x65\x6d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x61\x63\x74\x75\x61\x6c\x53\x74\x72\x69\x6e\x67\x2c\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x69\x6e\x46\x6c\x6f\x77\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x2f\x5b\x5c\x6e\x5b\x5c\x5d\x7b\x7d\x2c\x5d\x2f\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x20\x7c\x7c\x20\x69\x6e\x46\x6c\x6f\x77\x20\x26\x26\x20\x2f\x5b\x5b\x5c\x5d\x7b\x7d\x2c\x5d\x2f\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x71\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x76\x61\x6c\x75\x65\x20\x7c\x7c\x20\x2f\x5e\x5b\x5c\x6e\x5c\x74\x20\x2c\x5b\x5c\x5d\x7b\x7d\x23\x26\x2a\x21\x7c\x3e\x27\x22\x25\x40\x60\x5d\x7c\x5e\x5b\x3f\x2d\x5d\x24\x7c\x5e\x5b\x3f\x2d\x5d\x5b\x20\x5c\x74\x5d\x7c\x5b\x5c\x6e\x3a\x5d\x5b\x20\x5c\x74\x5d\x7c\x5b\x20\x5c\x74\x5d\x5c\x6e\x7c\x5b\x5c\x6e\x5c\x74\x20\x5d\x23\x7c\x5b\x5c\x6e\x5c\x74\x20\x3a\x5d\x24\x2f\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x7c\x7c\x20\x69\x6e\x46\x6c\x6f\x77\x20\x7c\x7c\x20\x21\x76\x61\x6c\x75\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x5c\x6e\x22\x29\x20\x3f\x20\x71\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x20\x3a\x20\x62\x6c\x6f\x63\x6b\x53\x74\x72\x69\x6e\x67\x28\x69\x74\x65\x6d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x21\x69\x6e\x46\x6c\x6f\x77\x20\x26\x26\x20\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x50\x4c\x41\x49\x4e\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x5c\x6e\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x6c\x6f\x63\x6b\x53\x74\x72\x69\x6e\x67\x28\x69\x74\x65\x6d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x22\x20\x26\x26\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x44\x6f\x63\x75\x6d\x65\x6e\x74\x4d\x61\x72\x6b\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x66\x6f\x72\x63\x65\x42\x6c\x6f\x63\x6b\x49\x6e\x64\x65\x6e\x74\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x6c\x6f\x63\x6b\x53\x74\x72\x69\x6e\x67\x28\x69\x74\x65\x6d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x6e\x2b\x2f\x67\x2c\x20\x60\x24\x26\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x60\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x63\x74\x75\x61\x6c\x53\x74\x72\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x65\x73\x74\x20\x3d\x20\x28\x74\x61\x67\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x26\x26\x20\x74\x61\x67\x2e\x74\x61\x67\x20\x21\x3d\x3d\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x74\x72\x22\x20\x26\x26\x20\x28\x28\x5f\x61\x20\x3d\x20\x74\x61\x67\x2e\x74\x65\x73\x74\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x74\x65\x73\x74\x28\x73\x74\x72\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x63\x6f\x6d\x70\x61\x74\x2c\x20\x74\x61\x67\x73\x20\x7d\x20\x3d\x20\x63\x74\x78\x2e\x64\x6f\x63\x2e\x73\x63\x68\x65\x6d\x61\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x67\x73\x2e\x73\x6f\x6d\x65\x28\x74\x65\x73\x74\x29\x20\x7c\x7c\x20\x28\x63\x6f\x6d\x70\x61\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x6f\x6d\x70\x61\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x6f\x6d\x70\x61\x74\x2e\x73\x6f\x6d\x65\x28\x74\x65\x73\x74\x29\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x71\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x3f\x20\x73\x74\x72\x20\x3a\x20\x66\x6f\x6c\x64\x46\x6c\x6f\x77\x4c\x69\x6e\x65\x73\x28\x73\x74\x72\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x46\x4f\x4c\x44\x5f\x46\x4c\x4f\x57\x2c\x20\x67\x65\x74\x46\x6f\x6c\x64\x4f\x70\x74\x69\x6f\x6e\x73\x28\x63\x74\x78\x29\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x53\x74\x72\x69\x6e\x67\x28\x69\x74\x65\x6d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x2c\x20\x69\x6e\x46\x6c\x6f\x77\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x73\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x74\x65\x6d\x2e\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x69\x74\x65\x6d\x20\x3a\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x69\x74\x65\x6d\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x53\x74\x72\x69\x6e\x67\x28\x69\x74\x65\x6d\x2e\x76\x61\x6c\x75\x65\x29\x20\x7d\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x7b\x20\x74\x79\x70\x65\x20\x7d\x20\x3d\x20\x69\x74\x65\x6d\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x44\x4f\x55\x42\x4c\x45\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x2f\x5b\x5c\x78\x30\x30\x2d\x5c\x78\x30\x38\x5c\x78\x30\x62\x2d\x5c\x78\x31\x66\x5c\x78\x37\x66\x2d\x5c\x78\x39\x66\x5c\x75\x7b\x44\x38\x30\x30\x7d\x2d\x5c\x75\x7b\x44\x46\x46\x46\x7d\x5d\x2f\x75\x2e\x74\x65\x73\x74\x28\x73\x73\x2e\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x44\x4f\x55\x42\x4c\x45\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x20\x3d\x20\x28\x5f\x74\x79\x70\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x5f\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x46\x4f\x4c\x44\x45\x44\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x7c\x7c\x20\x69\x6e\x46\x6c\x6f\x77\x20\x3f\x20\x71\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x73\x73\x2e\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x20\x3a\x20\x62\x6c\x6f\x63\x6b\x53\x74\x72\x69\x6e\x67\x28\x73\x73\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x44\x4f\x55\x42\x4c\x45\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x73\x73\x2e\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x53\x49\x4e\x47\x4c\x45\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x64\x53\x74\x72\x69\x6e\x67\x28\x73\x73\x2e\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x63\x61\x6c\x61\x72\x2e\x50\x4c\x41\x49\x4e\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x6c\x61\x69\x6e\x53\x74\x72\x69\x6e\x67\x28\x73\x73\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\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\x7d\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x20\x3d\x20\x5f\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x73\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x64\x65\x66\x61\x75\x6c\x74\x4b\x65\x79\x54\x79\x70\x65\x2c\x20\x64\x65\x66\x61\x75\x6c\x74\x53\x74\x72\x69\x6e\x67\x54\x79\x70\x65\x20\x7d\x20\x3d\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x20\x3d\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x64\x65\x66\x61\x75\x6c\x74\x4b\x65\x79\x54\x79\x70\x65\x20\x7c\x7c\x20\x64\x65\x66\x61\x75\x6c\x74\x53\x74\x72\x69\x6e\x67\x54\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x73\x20\x3d\x20\x5f\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x73\x74\x72\x69\x6e\x67\x20\x74\x79\x70\x65\x20\x24\x7b\x74\x7d\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x43\x6f\x6e\x74\x65\x78\x74\x28\x64\x6f\x63\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x0a\x20\x20\x20\x20\x62\x6c\x6f\x63\x6b\x51\x75\x6f\x74\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x4b\x65\x79\x54\x79\x70\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x53\x74\x72\x69\x6e\x67\x54\x79\x70\x65\x3a\x20\x22\x50\x4c\x41\x49\x4e\x22\x2c\x0a\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x41\x73\x4a\x53\x4f\x4e\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x4d\x69\x6e\x4d\x75\x6c\x74\x69\x4c\x69\x6e\x65\x4c\x65\x6e\x67\x74\x68\x3a\x20\x34\x30\x2c\x0a\x20\x20\x20\x20\x66\x61\x6c\x73\x65\x53\x74\x72\x3a\x20\x22\x66\x61\x6c\x73\x65\x22\x2c\x0a\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x53\x65\x71\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x3a\x20\x38\x30\x2c\x0a\x20\x20\x20\x20\x6d\x69\x6e\x43\x6f\x6e\x74\x65\x6e\x74\x57\x69\x64\x74\x68\x3a\x20\x32\x30\x2c\x0a\x20\x20\x20\x20\x6e\x75\x6c\x6c\x53\x74\x72\x3a\x20\x22\x6e\x75\x6c\x6c\x22\x2c\x0a\x20\x20\x20\x20\x73\x69\x6d\x70\x6c\x65\x4b\x65\x79\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x74\x72\x75\x65\x53\x74\x72\x3a\x20\x22\x74\x72\x75\x65\x22\x2c\x0a\x20\x20\x20\x20\x76\x65\x72\x69\x66\x79\x41\x6c\x69\x61\x73\x4f\x72\x64\x65\x72\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x7d\x2c\x20\x64\x6f\x63\x32\x2e\x73\x63\x68\x65\x6d\x61\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x4f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x69\x6e\x46\x6c\x6f\x77\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6f\x70\x74\x2e\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x53\x74\x79\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x46\x6c\x6f\x77\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x46\x6c\x6f\x77\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x46\x6c\x6f\x77\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x29\x2c\x0a\x20\x20\x20\x20\x64\x6f\x63\x3a\x20\x64\x6f\x63\x32\x2c\x0a\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x22\x22\x2c\x0a\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x53\x74\x65\x70\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x6f\x70\x74\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x22\x20\x22\x2e\x72\x65\x70\x65\x61\x74\x28\x6f\x70\x74\x2e\x69\x6e\x64\x65\x6e\x74\x29\x20\x3a\x20\x22\x20\x20\x22\x2c\x0a\x20\x20\x20\x20\x69\x6e\x46\x6c\x6f\x77\x2c\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x6f\x70\x74\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x54\x61\x67\x4f\x62\x6a\x65\x63\x74\x28\x74\x61\x67\x73\x2c\x20\x69\x74\x65\x6d\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x2c\x20\x5f\x62\x2c\x20\x5f\x63\x2c\x20\x5f\x64\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x2e\x74\x61\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x61\x67\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x28\x74\x29\x20\x3d\x3e\x20\x74\x2e\x74\x61\x67\x20\x3d\x3d\x3d\x20\x69\x74\x65\x6d\x2e\x74\x61\x67\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x74\x63\x68\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x61\x20\x3d\x20\x6d\x61\x74\x63\x68\x2e\x66\x69\x6e\x64\x28\x28\x74\x29\x20\x3d\x3e\x20\x74\x2e\x66\x6f\x72\x6d\x61\x74\x20\x3d\x3d\x3d\x20\x69\x74\x65\x6d\x2e\x66\x6f\x72\x6d\x61\x74\x29\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x6d\x61\x74\x63\x68\x5b\x30\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6f\x62\x6a\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x69\x74\x65\x6d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x6f\x62\x6a\x20\x3d\x20\x69\x74\x65\x6d\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x74\x61\x67\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x28\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x61\x32\x20\x3d\x20\x74\x2e\x69\x64\x65\x6e\x74\x69\x66\x79\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x32\x2e\x63\x61\x6c\x6c\x28\x74\x2c\x20\x6f\x62\x6a\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x28\x5f\x62\x20\x3d\x20\x6d\x61\x74\x63\x68\x2e\x66\x69\x6e\x64\x28\x28\x74\x29\x20\x3d\x3e\x20\x74\x2e\x66\x6f\x72\x6d\x61\x74\x20\x3d\x3d\x3d\x20\x69\x74\x65\x6d\x2e\x66\x6f\x72\x6d\x61\x74\x29\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x62\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x62\x20\x3a\x20\x6d\x61\x74\x63\x68\x2e\x66\x69\x6e\x64\x28\x28\x74\x29\x20\x3d\x3e\x20\x21\x74\x2e\x66\x6f\x72\x6d\x61\x74\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x6f\x62\x6a\x20\x3d\x20\x69\x74\x65\x6d\x3b\x0a\x20\x20\x20\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x74\x61\x67\x73\x2e\x66\x69\x6e\x64\x28\x28\x74\x29\x20\x3d\x3e\x20\x74\x2e\x6e\x6f\x64\x65\x43\x6c\x61\x73\x73\x20\x26\x26\x20\x6f\x62\x6a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x74\x2e\x6e\x6f\x64\x65\x43\x6c\x61\x73\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x4f\x62\x6a\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x61\x6d\x65\x20\x3d\x20\x28\x5f\x64\x20\x3d\x20\x28\x5f\x63\x20\x3d\x20\x6f\x62\x6a\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6f\x62\x6a\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x6f\x62\x6a\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x63\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x63\x2e\x6e\x61\x6d\x65\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x64\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x64\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x6f\x62\x6a\x3b\x0a\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x54\x61\x67\x20\x6e\x6f\x74\x20\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x66\x6f\x72\x20\x24\x7b\x6e\x61\x6d\x65\x7d\x20\x76\x61\x6c\x75\x65\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x4f\x62\x6a\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x50\x72\x6f\x70\x73\x28\x6e\x6f\x64\x65\x2c\x20\x74\x61\x67\x4f\x62\x6a\x2c\x20\x7b\x20\x61\x6e\x63\x68\x6f\x72\x73\x2c\x20\x64\x6f\x63\x3a\x20\x64\x6f\x63\x32\x20\x7d\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x22\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6e\x6f\x64\x65\x29\x20\x7c\x7c\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x29\x20\x26\x26\x20\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x20\x26\x26\x20\x61\x6e\x63\x68\x6f\x72\x49\x73\x56\x61\x6c\x69\x64\x28\x61\x6e\x63\x68\x6f\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x2e\x61\x64\x64\x28\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x2e\x70\x75\x73\x68\x28\x60\x26\x24\x7b\x61\x6e\x63\x68\x6f\x72\x7d\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x20\x3d\x20\x6e\x6f\x64\x65\x2e\x74\x61\x67\x20\x3f\x20\x6e\x6f\x64\x65\x2e\x74\x61\x67\x20\x3a\x20\x74\x61\x67\x4f\x62\x6a\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x3f\x20\x6e\x75\x6c\x6c\x20\x3a\x20\x74\x61\x67\x4f\x62\x6a\x2e\x74\x61\x67\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x29\x0a\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x2e\x70\x75\x73\x68\x28\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x74\x61\x67\x53\x74\x72\x69\x6e\x67\x28\x74\x61\x67\x29\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x6f\x70\x73\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x69\x74\x65\x6d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x2c\x20\x5f\x62\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x69\x74\x65\x6d\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x65\x6d\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x41\x6c\x69\x61\x73\x28\x69\x74\x65\x6d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x64\x6f\x63\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x65\x6d\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x28\x5f\x61\x20\x3d\x20\x63\x74\x78\x2e\x72\x65\x73\x6f\x6c\x76\x65\x64\x41\x6c\x69\x61\x73\x65\x73\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x68\x61\x73\x28\x69\x74\x65\x6d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x60\x43\x61\x6e\x6e\x6f\x74\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x20\x63\x69\x72\x63\x75\x6c\x61\x72\x20\x73\x74\x72\x75\x63\x74\x75\x72\x65\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x61\x6c\x69\x61\x73\x20\x6e\x6f\x64\x65\x73\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x72\x65\x73\x6f\x6c\x76\x65\x64\x41\x6c\x69\x61\x73\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x72\x65\x73\x6f\x6c\x76\x65\x64\x41\x6c\x69\x61\x73\x65\x73\x2e\x61\x64\x64\x28\x69\x74\x65\x6d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x72\x65\x73\x6f\x6c\x76\x65\x64\x41\x6c\x69\x61\x73\x65\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x5b\x69\x74\x65\x6d\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x20\x3d\x20\x69\x74\x65\x6d\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x63\x74\x78\x2e\x64\x6f\x63\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x69\x73\x4e\x6f\x64\x65\x28\x69\x74\x65\x6d\x29\x20\x3f\x20\x69\x74\x65\x6d\x20\x3a\x20\x63\x74\x78\x2e\x64\x6f\x63\x2e\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x69\x74\x65\x6d\x2c\x20\x7b\x20\x6f\x6e\x54\x61\x67\x4f\x62\x6a\x3a\x20\x28\x6f\x29\x20\x3d\x3e\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x6f\x20\x7d\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x4f\x62\x6a\x29\x0a\x20\x20\x20\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x67\x65\x74\x54\x61\x67\x4f\x62\x6a\x65\x63\x74\x28\x63\x74\x78\x2e\x64\x6f\x63\x2e\x73\x63\x68\x65\x6d\x61\x2e\x74\x61\x67\x73\x2c\x20\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x50\x72\x6f\x70\x73\x28\x6e\x6f\x64\x65\x2c\x20\x74\x61\x67\x4f\x62\x6a\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x20\x3d\x20\x28\x28\x5f\x62\x20\x3d\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x62\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x62\x20\x3a\x20\x30\x29\x20\x2b\x20\x70\x72\x6f\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x61\x67\x4f\x62\x6a\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x74\x61\x67\x4f\x62\x6a\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6e\x6f\x64\x65\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x3a\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6e\x6f\x64\x65\x29\x20\x3f\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x53\x74\x72\x69\x6e\x67\x28\x6e\x6f\x64\x65\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x3a\x20\x6e\x6f\x64\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x70\x72\x6f\x70\x73\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6e\x6f\x64\x65\x29\x20\x7c\x7c\x20\x73\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x7b\x22\x20\x7c\x7c\x20\x73\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x5b\x22\x20\x3f\x20\x60\x24\x7b\x70\x72\x6f\x70\x73\x7d\x20\x24\x7b\x73\x74\x72\x7d\x60\x20\x3a\x20\x60\x24\x7b\x70\x72\x6f\x70\x73\x7d\x0a\x24\x7b\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x7d\x24\x7b\x73\x74\x72\x7d\x60\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x50\x61\x69\x72\x28\x7b\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x61\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x2c\x20\x64\x6f\x63\x3a\x20\x64\x6f\x63\x32\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x69\x6e\x64\x65\x6e\x74\x53\x74\x65\x70\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x2c\x20\x69\x6e\x64\x65\x6e\x74\x53\x65\x71\x2c\x20\x73\x69\x6d\x70\x6c\x65\x4b\x65\x79\x73\x20\x7d\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x69\x73\x4e\x6f\x64\x65\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x6b\x65\x79\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x7c\x7c\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x69\x6d\x70\x6c\x65\x4b\x65\x79\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x57\x69\x74\x68\x20\x73\x69\x6d\x70\x6c\x65\x20\x6b\x65\x79\x73\x2c\x20\x6b\x65\x79\x20\x6e\x6f\x64\x65\x73\x20\x63\x61\x6e\x6e\x6f\x74\x20\x68\x61\x76\x65\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x22\x57\x69\x74\x68\x20\x73\x69\x6d\x70\x6c\x65\x20\x6b\x65\x79\x73\x2c\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x75\x73\x65\x64\x20\x61\x73\x20\x61\x20\x6b\x65\x79\x20\x76\x61\x6c\x75\x65\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x6d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x3d\x20\x21\x73\x69\x6d\x70\x6c\x65\x4b\x65\x79\x73\x20\x26\x26\x20\x28\x21\x6b\x65\x79\x20\x7c\x7c\x20\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x21\x63\x74\x78\x2e\x69\x6e\x46\x6c\x6f\x77\x20\x7c\x7c\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6b\x65\x79\x29\x20\x7c\x7c\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6b\x65\x79\x29\x20\x3f\x20\x6b\x65\x79\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x46\x4f\x4c\x44\x45\x44\x20\x7c\x7c\x20\x6b\x65\x79\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x20\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x29\x3b\x0a\x20\x20\x63\x74\x78\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x63\x74\x78\x2c\x20\x7b\x0a\x20\x20\x20\x20\x61\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x3a\x20\x21\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x28\x73\x69\x6d\x70\x6c\x65\x4b\x65\x79\x73\x20\x7c\x7c\x20\x21\x61\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x29\x2c\x0a\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x69\x6e\x64\x65\x6e\x74\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x53\x74\x65\x70\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x72\x20\x3d\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6b\x65\x79\x2c\x20\x63\x74\x78\x2c\x20\x28\x29\x20\x3d\x3e\x20\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x28\x29\x20\x3d\x3e\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x21\x63\x74\x78\x2e\x69\x6e\x46\x6c\x6f\x77\x20\x26\x26\x20\x73\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x30\x32\x34\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x69\x6d\x70\x6c\x65\x4b\x65\x79\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x57\x69\x74\x68\x20\x73\x69\x6d\x70\x6c\x65\x20\x6b\x65\x79\x73\x2c\x20\x73\x69\x6e\x67\x6c\x65\x20\x6c\x69\x6e\x65\x20\x73\x63\x61\x6c\x61\x72\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x73\x70\x61\x6e\x20\x6d\x6f\x72\x65\x20\x74\x68\x61\x6e\x20\x31\x30\x32\x34\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x69\x6e\x46\x6c\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x20\x26\x26\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x20\x3d\x3d\x3d\x20\x22\x22\x20\x3f\x20\x22\x3f\x22\x20\x3a\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x3f\x20\x60\x3f\x20\x24\x7b\x73\x74\x72\x7d\x60\x20\x3a\x20\x73\x74\x72\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x20\x26\x26\x20\x21\x73\x69\x6d\x70\x6c\x65\x4b\x65\x79\x73\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x60\x3f\x20\x24\x7b\x73\x74\x72\x7d\x60\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x26\x26\x20\x21\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x73\x74\x72\x2c\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x26\x26\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x29\x0a\x20\x20\x20\x20\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x73\x74\x72\x2c\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x29\x3b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x60\x3f\x20\x24\x7b\x73\x74\x72\x7d\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x3a\x60\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x60\x24\x7b\x73\x74\x72\x7d\x3a\x60\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x73\x74\x72\x2c\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x76\x63\x62\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x76\x61\x6c\x75\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x2e\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x76\x63\x62\x20\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x63\x62\x20\x2b\x3d\x20\x60\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x73\x2c\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x29\x7d\x60\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x64\x6f\x63\x32\x2e\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x74\x78\x2e\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x21\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x41\x74\x53\x74\x61\x72\x74\x20\x3d\x20\x73\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x3b\x0a\x20\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x64\x65\x6e\x74\x53\x65\x71\x20\x26\x26\x20\x69\x6e\x64\x65\x6e\x74\x53\x74\x65\x70\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x3d\x20\x32\x20\x26\x26\x20\x21\x63\x74\x78\x2e\x69\x6e\x46\x6c\x6f\x77\x20\x26\x26\x20\x21\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x69\x73\x53\x65\x71\x28\x76\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x21\x76\x61\x6c\x75\x65\x2e\x66\x6c\x6f\x77\x20\x26\x26\x20\x21\x76\x61\x6c\x75\x65\x2e\x74\x61\x67\x20\x26\x26\x20\x21\x76\x61\x6c\x75\x65\x2e\x61\x6e\x63\x68\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x2e\x73\x75\x62\x73\x74\x72\x28\x32\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x76\x61\x6c\x75\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x53\x74\x72\x20\x3d\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x2c\x20\x28\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x2c\x20\x28\x29\x20\x3d\x3e\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x77\x73\x20\x3d\x20\x22\x20\x22\x3b\x0a\x20\x20\x69\x66\x20\x28\x76\x63\x62\x20\x7c\x7c\x20\x6b\x65\x79\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x53\x74\x72\x20\x3d\x3d\x3d\x20\x22\x22\x20\x26\x26\x20\x21\x63\x74\x78\x2e\x69\x6e\x46\x6c\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x77\x73\x20\x3d\x20\x76\x63\x62\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x3f\x20\x22\x5c\x6e\x5c\x6e\x22\x20\x3a\x20\x76\x63\x62\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x77\x73\x20\x3d\x20\x60\x24\x7b\x76\x63\x62\x7d\x0a\x24\x7b\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x7d\x60\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x65\x78\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x26\x26\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x77\x20\x3d\x20\x76\x61\x6c\x75\x65\x53\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x5b\x22\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x53\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x7b\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x66\x6c\x6f\x77\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x53\x74\x72\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x5c\x6e\x22\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x77\x73\x20\x3d\x20\x60\x0a\x24\x7b\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x7d\x60\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x53\x74\x72\x20\x3d\x3d\x3d\x20\x22\x22\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x53\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x77\x73\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x77\x73\x20\x2b\x20\x76\x61\x6c\x75\x65\x53\x74\x72\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x69\x6e\x46\x6c\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x20\x26\x26\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x26\x26\x20\x21\x76\x61\x6c\x75\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x44\x6f\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x73\x74\x72\x2c\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x26\x26\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x61\x72\x6e\x28\x6c\x6f\x67\x4c\x65\x76\x65\x6c\x2c\x20\x77\x61\x72\x6e\x69\x6e\x67\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6c\x6f\x67\x4c\x65\x76\x65\x6c\x20\x3d\x3d\x3d\x20\x22\x64\x65\x62\x75\x67\x22\x20\x7c\x7c\x20\x6c\x6f\x67\x4c\x65\x76\x65\x6c\x20\x3d\x3d\x3d\x20\x22\x77\x61\x72\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x21\x3d\x3d\x20\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x20\x26\x26\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x65\x6d\x69\x74\x57\x61\x72\x6e\x69\x6e\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x63\x65\x73\x73\x2e\x65\x6d\x69\x74\x57\x61\x72\x6e\x69\x6e\x67\x28\x77\x61\x72\x6e\x69\x6e\x67\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x77\x61\x72\x6e\x28\x77\x61\x72\x6e\x69\x6e\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x4d\x45\x52\x47\x45\x5f\x4b\x45\x59\x20\x3d\x20\x22\x3c\x3c\x22\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x64\x64\x50\x61\x69\x72\x54\x6f\x4a\x53\x4d\x61\x70\x28\x63\x74\x78\x2c\x20\x6d\x61\x70\x32\x2c\x20\x7b\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x64\x6f\x63\x2e\x73\x63\x68\x65\x6d\x61\x2e\x6d\x65\x72\x67\x65\x29\x20\x26\x26\x20\x69\x73\x4d\x65\x72\x67\x65\x4b\x65\x79\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x73\x41\x6c\x69\x61\x73\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x76\x61\x6c\x75\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x63\x74\x78\x2e\x64\x6f\x63\x29\x20\x3a\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x65\x71\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x6f\x66\x20\x76\x61\x6c\x75\x65\x2e\x69\x74\x65\x6d\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x65\x72\x67\x65\x54\x6f\x4a\x53\x4d\x61\x70\x28\x63\x74\x78\x2c\x20\x6d\x61\x70\x32\x2c\x20\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x6f\x66\x20\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x65\x72\x67\x65\x54\x6f\x4a\x53\x4d\x61\x70\x28\x63\x74\x78\x2c\x20\x6d\x61\x70\x32\x2c\x20\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x6d\x65\x72\x67\x65\x54\x6f\x4a\x53\x4d\x61\x70\x28\x63\x74\x78\x2c\x20\x6d\x61\x70\x32\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6a\x73\x4b\x65\x79\x20\x3d\x20\x74\x6f\x4a\x53\x28\x6b\x65\x79\x2c\x20\x22\x22\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x70\x32\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x73\x65\x74\x28\x6a\x73\x4b\x65\x79\x2c\x20\x74\x6f\x4a\x53\x28\x76\x61\x6c\x75\x65\x2c\x20\x6a\x73\x4b\x65\x79\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6d\x61\x70\x32\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x61\x64\x64\x28\x6a\x73\x4b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x69\x6e\x67\x4b\x65\x79\x20\x3d\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4b\x65\x79\x28\x6b\x65\x79\x2c\x20\x6a\x73\x4b\x65\x79\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6a\x73\x56\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x4a\x53\x28\x76\x61\x6c\x75\x65\x2c\x20\x73\x74\x72\x69\x6e\x67\x4b\x65\x79\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x72\x69\x6e\x67\x4b\x65\x79\x20\x69\x6e\x20\x6d\x61\x70\x32\x29\x0a\x20\x20\x20\x20\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\x6d\x61\x70\x32\x2c\x20\x73\x74\x72\x69\x6e\x67\x4b\x65\x79\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x3a\x20\x6a\x73\x56\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x69\x74\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x5b\x73\x74\x72\x69\x6e\x67\x4b\x65\x79\x5d\x20\x3d\x20\x6a\x73\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4d\x65\x72\x67\x65\x4b\x65\x79\x20\x3d\x20\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x4d\x45\x52\x47\x45\x5f\x4b\x45\x59\x20\x7c\x7c\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x4d\x45\x52\x47\x45\x5f\x4b\x45\x59\x20\x26\x26\x20\x28\x21\x6b\x65\x79\x2e\x74\x79\x70\x65\x20\x7c\x7c\x20\x6b\x65\x79\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x50\x4c\x41\x49\x4e\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x65\x72\x67\x65\x54\x6f\x4a\x53\x4d\x61\x70\x28\x63\x74\x78\x2c\x20\x6d\x61\x70\x32\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x63\x74\x78\x20\x26\x26\x20\x69\x73\x41\x6c\x69\x61\x73\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x76\x61\x6c\x75\x65\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x63\x74\x78\x2e\x64\x6f\x63\x29\x20\x3a\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x61\x70\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x0a\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x4d\x65\x72\x67\x65\x20\x73\x6f\x75\x72\x63\x65\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x6d\x61\x70\x73\x20\x6f\x72\x20\x6d\x61\x70\x20\x61\x6c\x69\x61\x73\x65\x73\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x72\x63\x4d\x61\x70\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x74\x6f\x4a\x53\x4f\x4e\x28\x6e\x75\x6c\x6c\x2c\x20\x63\x74\x78\x2c\x20\x4d\x61\x70\x29\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x32\x5d\x20\x6f\x66\x20\x73\x72\x63\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x70\x32\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6d\x61\x70\x32\x2e\x68\x61\x73\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6d\x61\x70\x32\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x61\x64\x64\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x2e\x63\x61\x6c\x6c\x28\x6d\x61\x70\x32\x2c\x20\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\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\x6d\x61\x70\x32\x2c\x20\x6b\x65\x79\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x3a\x20\x76\x61\x6c\x75\x65\x32\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x69\x74\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x75\x6d\x65\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4b\x65\x79\x28\x6b\x65\x79\x2c\x20\x6a\x73\x4b\x65\x79\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6a\x73\x4b\x65\x79\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x22\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x6a\x73\x4b\x65\x79\x20\x21\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x53\x74\x72\x69\x6e\x67\x28\x6a\x73\x4b\x65\x79\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x6b\x65\x79\x29\x20\x26\x26\x20\x63\x74\x78\x20\x26\x26\x20\x63\x74\x78\x2e\x64\x6f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x43\x74\x78\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x43\x6f\x6e\x74\x65\x78\x74\x28\x63\x74\x78\x2e\x64\x6f\x63\x2c\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x20\x20\x73\x74\x72\x43\x74\x78\x2e\x61\x6e\x63\x68\x6f\x72\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x53\x65\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x6f\x66\x20\x63\x74\x78\x2e\x61\x6e\x63\x68\x6f\x72\x73\x2e\x6b\x65\x79\x73\x28\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x43\x74\x78\x2e\x61\x6e\x63\x68\x6f\x72\x73\x2e\x61\x64\x64\x28\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x73\x74\x72\x43\x74\x78\x2e\x69\x6e\x46\x6c\x6f\x77\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x73\x74\x72\x43\x74\x78\x2e\x69\x6e\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x4b\x65\x79\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x4b\x65\x79\x20\x3d\x20\x6b\x65\x79\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x73\x74\x72\x43\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x2e\x6d\x61\x70\x4b\x65\x79\x57\x61\x72\x6e\x65\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6a\x73\x6f\x6e\x53\x74\x72\x20\x3d\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x73\x74\x72\x4b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6a\x73\x6f\x6e\x53\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x34\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6a\x73\x6f\x6e\x53\x74\x72\x20\x3d\x20\x6a\x73\x6f\x6e\x53\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x33\x36\x29\x20\x2b\x20\x27\x2e\x2e\x2e\x22\x27\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x61\x72\x6e\x28\x63\x74\x78\x2e\x64\x6f\x63\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x6f\x67\x4c\x65\x76\x65\x6c\x2c\x20\x60\x4b\x65\x79\x73\x20\x77\x69\x74\x68\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x76\x61\x6c\x75\x65\x73\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x69\x65\x64\x20\x64\x75\x65\x20\x74\x6f\x20\x4a\x53\x20\x4f\x62\x6a\x65\x63\x74\x20\x72\x65\x73\x74\x72\x69\x63\x74\x69\x6f\x6e\x73\x3a\x20\x24\x7b\x6a\x73\x6f\x6e\x53\x74\x72\x7d\x2e\x20\x53\x65\x74\x20\x6d\x61\x70\x41\x73\x4d\x61\x70\x3a\x20\x74\x72\x75\x65\x20\x74\x6f\x20\x75\x73\x65\x20\x6f\x62\x6a\x65\x63\x74\x20\x6b\x65\x79\x73\x2e\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x6d\x61\x70\x4b\x65\x79\x57\x61\x72\x6e\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x4b\x65\x79\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6a\x73\x4b\x65\x79\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x50\x61\x69\x72\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x6b\x65\x79\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x2c\x20\x76\x29\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x50\x61\x69\x72\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\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\x74\x68\x69\x73\x2c\x20\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x50\x41\x49\x52\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6b\x65\x79\x20\x3d\x20\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x3d\x20\x74\x68\x69\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x6b\x65\x79\x2e\x63\x6c\x6f\x6e\x65\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x63\x6c\x6f\x6e\x65\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x4f\x4e\x28\x5f\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x20\x3d\x20\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x6d\x61\x70\x41\x73\x4d\x61\x70\x29\x20\x3f\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x64\x64\x50\x61\x69\x72\x54\x6f\x4a\x53\x4d\x61\x70\x28\x63\x74\x78\x2c\x20\x70\x61\x69\x72\x2c\x20\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x64\x6f\x63\x29\x20\x3f\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x50\x61\x69\x72\x28\x74\x68\x69\x73\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x3a\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x2c\x20\x63\x74\x78\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x77\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x63\x74\x78\x2e\x69\x6e\x46\x6c\x6f\x77\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x66\x6c\x6f\x77\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x32\x20\x3d\x20\x66\x6c\x6f\x77\x20\x3f\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x46\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x42\x6c\x6f\x63\x6b\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x32\x28\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x2c\x20\x63\x74\x78\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x42\x6c\x6f\x63\x6b\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x69\x74\x65\x6d\x73\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x7b\x20\x62\x6c\x6f\x63\x6b\x49\x74\x65\x6d\x50\x72\x65\x66\x69\x78\x2c\x20\x66\x6c\x6f\x77\x43\x68\x61\x72\x73\x2c\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x7d\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x20\x7d\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x43\x74\x78\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x63\x74\x78\x2c\x20\x7b\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x2c\x20\x74\x79\x70\x65\x3a\x20\x6e\x75\x6c\x6c\x20\x7d\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x20\x3d\x20\x69\x74\x65\x6d\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x69\x74\x65\x6d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x26\x26\x20\x69\x74\x65\x6d\x2e\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x43\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x28\x63\x74\x78\x2c\x20\x6c\x69\x6e\x65\x73\x2c\x20\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x2c\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x20\x3d\x20\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x69\x74\x65\x6d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6b\x20\x3d\x20\x69\x73\x4e\x6f\x64\x65\x28\x69\x74\x65\x6d\x2e\x6b\x65\x79\x29\x20\x3f\x20\x69\x74\x65\x6d\x2e\x6b\x65\x79\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x26\x26\x20\x69\x6b\x2e\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x43\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x28\x63\x74\x78\x2c\x20\x6c\x69\x6e\x65\x73\x2c\x20\x69\x6b\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x2c\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x74\x72\x32\x20\x3d\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x69\x74\x65\x6d\x2c\x20\x69\x74\x65\x6d\x43\x74\x78\x2c\x20\x28\x29\x20\x3d\x3e\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x28\x29\x20\x3d\x3e\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x32\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x73\x74\x72\x32\x2c\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x26\x26\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x62\x6c\x6f\x63\x6b\x49\x74\x65\x6d\x50\x72\x65\x66\x69\x78\x20\x2b\x20\x73\x74\x72\x32\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x72\x3b\x0a\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x66\x6c\x6f\x77\x43\x68\x61\x72\x73\x2e\x73\x74\x61\x72\x74\x20\x2b\x20\x66\x6c\x6f\x77\x43\x68\x61\x72\x73\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x6c\x69\x6e\x65\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x31\x3b\x20\x69\x20\x3c\x20\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x20\x3d\x20\x6c\x69\x6e\x65\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x20\x3f\x20\x60\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x24\x7b\x6c\x69\x6e\x65\x7d\x60\x20\x3a\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x2c\x20\x69\x6e\x64\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x26\x26\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x0a\x20\x20\x20\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x28\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x46\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x69\x74\x65\x6d\x73\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x7b\x20\x66\x6c\x6f\x77\x43\x68\x61\x72\x73\x2c\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x7d\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x69\x6e\x64\x65\x6e\x74\x53\x74\x65\x70\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x20\x7d\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x20\x2b\x3d\x20\x69\x6e\x64\x65\x6e\x74\x53\x74\x65\x70\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x43\x74\x78\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x63\x74\x78\x2c\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x69\x6e\x46\x6c\x6f\x77\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x6e\x75\x6c\x6c\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6c\x69\x6e\x65\x73\x41\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x30\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x20\x3d\x20\x69\x74\x65\x6d\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x69\x74\x65\x6d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x2e\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x43\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x28\x63\x74\x78\x2c\x20\x6c\x69\x6e\x65\x73\x2c\x20\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x20\x3d\x20\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x69\x74\x65\x6d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6b\x20\x3d\x20\x69\x73\x4e\x6f\x64\x65\x28\x69\x74\x65\x6d\x2e\x6b\x65\x79\x29\x20\x3f\x20\x69\x74\x65\x6d\x2e\x6b\x65\x79\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6b\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6b\x2e\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x64\x64\x43\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x28\x63\x74\x78\x2c\x20\x6c\x69\x6e\x65\x73\x2c\x20\x69\x6b\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6b\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x76\x20\x3d\x20\x69\x73\x4e\x6f\x64\x65\x28\x69\x74\x65\x6d\x2e\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x69\x74\x65\x6d\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x76\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x76\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x20\x3d\x20\x69\x76\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x76\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x2e\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x69\x6b\x20\x26\x26\x20\x69\x6b\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x20\x3d\x20\x69\x6b\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x74\x72\x32\x20\x3d\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x69\x74\x65\x6d\x2c\x20\x69\x74\x65\x6d\x43\x74\x78\x2c\x20\x28\x29\x20\x3d\x3e\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3c\x20\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x32\x20\x2b\x3d\x20\x22\x2c\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x32\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x73\x74\x72\x32\x2c\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x20\x26\x26\x20\x28\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x6c\x69\x6e\x65\x73\x41\x74\x56\x61\x6c\x75\x65\x20\x7c\x7c\x20\x73\x74\x72\x32\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x5c\x6e\x22\x29\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x73\x74\x72\x32\x29\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x41\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x72\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x65\x6e\x64\x20\x7d\x20\x3d\x20\x66\x6c\x6f\x77\x43\x68\x61\x72\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x73\x74\x61\x72\x74\x20\x2b\x20\x65\x6e\x64\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x65\x6e\x20\x3d\x20\x6c\x69\x6e\x65\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x28\x73\x75\x6d\x2c\x20\x6c\x69\x6e\x65\x29\x20\x3d\x3e\x20\x73\x75\x6d\x20\x2b\x20\x6c\x69\x6e\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x32\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x6c\x65\x6e\x20\x3e\x20\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x2e\x6d\x61\x78\x46\x6c\x6f\x77\x53\x74\x72\x69\x6e\x67\x53\x69\x6e\x67\x6c\x65\x4c\x69\x6e\x65\x4c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x71\x4e\x65\x77\x6c\x69\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x73\x74\x61\x72\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x20\x6f\x66\x20\x6c\x69\x6e\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x20\x3f\x20\x60\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x53\x74\x65\x70\x7d\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x24\x7b\x6c\x69\x6e\x65\x7d\x60\x20\x3a\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x60\x0a\x24\x7b\x69\x6e\x64\x65\x6e\x74\x7d\x24\x7b\x65\x6e\x64\x7d\x60\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x60\x24\x7b\x73\x74\x61\x72\x74\x7d\x20\x24\x7b\x6c\x69\x6e\x65\x73\x2e\x6a\x6f\x69\x6e\x28\x22\x20\x22\x29\x7d\x20\x24\x7b\x65\x6e\x64\x7d\x60\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x74\x72\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x73\x74\x72\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x2c\x20\x69\x6e\x64\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x64\x64\x43\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x28\x7b\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x20\x7d\x20\x7d\x2c\x20\x6c\x69\x6e\x65\x73\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x26\x26\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x0a\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x5c\x6e\x2b\x2f\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x63\x20\x3d\x20\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x2c\x20\x69\x6e\x64\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x63\x2e\x74\x72\x69\x6d\x53\x74\x61\x72\x74\x28\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6e\x64\x50\x61\x69\x72\x28\x69\x74\x65\x6d\x73\x2c\x20\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x20\x3d\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6b\x65\x79\x29\x20\x3f\x20\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x6b\x65\x79\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x6f\x66\x20\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x69\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x6b\x65\x79\x20\x7c\x7c\x20\x69\x74\x2e\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x6b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x69\x74\x2e\x6b\x65\x79\x29\x20\x26\x26\x20\x69\x74\x2e\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x6b\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x59\x41\x4d\x4c\x4d\x61\x70\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x4d\x41\x50\x2c\x20\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x67\x65\x74\x20\x74\x61\x67\x4e\x61\x6d\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x6d\x61\x70\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x64\x64\x28\x70\x61\x69\x72\x2c\x20\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x5f\x70\x61\x69\x72\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x70\x61\x69\x72\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x5f\x70\x61\x69\x72\x20\x3d\x20\x70\x61\x69\x72\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x70\x61\x69\x72\x20\x7c\x7c\x20\x74\x79\x70\x65\x6f\x66\x20\x70\x61\x69\x72\x20\x21\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x7c\x7c\x20\x21\x28\x22\x6b\x65\x79\x22\x20\x69\x6e\x20\x70\x61\x69\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x5f\x70\x61\x69\x72\x20\x3d\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x70\x61\x69\x72\x2c\x20\x70\x61\x69\x72\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x5f\x70\x61\x69\x72\x20\x3d\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x70\x61\x69\x72\x2e\x6b\x65\x79\x2c\x20\x70\x61\x69\x72\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x66\x69\x6e\x64\x50\x61\x69\x72\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2c\x20\x5f\x70\x61\x69\x72\x2e\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6f\x72\x74\x45\x6e\x74\x72\x69\x65\x73\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6f\x76\x65\x72\x77\x72\x69\x74\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x4b\x65\x79\x20\x24\x7b\x5f\x70\x61\x69\x72\x2e\x6b\x65\x79\x7d\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x73\x65\x74\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x70\x72\x65\x76\x2e\x76\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x56\x61\x6c\x75\x65\x28\x5f\x70\x61\x69\x72\x2e\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x2e\x76\x61\x6c\x75\x65\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x5f\x70\x61\x69\x72\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x5f\x70\x61\x69\x72\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x6f\x72\x74\x45\x6e\x74\x72\x69\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x66\x69\x6e\x64\x49\x6e\x64\x65\x78\x28\x28\x69\x74\x65\x6d\x29\x20\x3d\x3e\x20\x73\x6f\x72\x74\x45\x6e\x74\x72\x69\x65\x73\x28\x5f\x70\x61\x69\x72\x2c\x20\x69\x74\x65\x6d\x29\x20\x3c\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x5f\x70\x61\x69\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x2c\x20\x30\x2c\x20\x5f\x70\x61\x69\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x5f\x70\x61\x69\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x66\x69\x6e\x64\x50\x61\x69\x72\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x69\x74\x29\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x6c\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x66\x69\x6e\x64\x50\x61\x69\x72\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x69\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x69\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6e\x6f\x64\x65\x29\x20\x3f\x20\x6e\x6f\x64\x65\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x21\x66\x69\x6e\x64\x50\x61\x69\x72\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x28\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x4f\x4e\x28\x5f\x2c\x20\x63\x74\x78\x2c\x20\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x54\x79\x70\x65\x20\x3f\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x28\x29\x20\x3a\x20\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x6d\x61\x70\x41\x73\x4d\x61\x70\x29\x20\x3f\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x28\x6d\x61\x70\x32\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x20\x6f\x66\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x50\x61\x69\x72\x54\x6f\x4a\x53\x4d\x61\x70\x28\x63\x74\x78\x2c\x20\x6d\x61\x70\x32\x2c\x20\x69\x74\x65\x6d\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x20\x6f\x66\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x50\x61\x69\x72\x28\x69\x74\x65\x6d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x4d\x61\x70\x20\x69\x74\x65\x6d\x73\x20\x6d\x75\x73\x74\x20\x61\x6c\x6c\x20\x62\x65\x20\x70\x61\x69\x72\x73\x3b\x20\x66\x6f\x75\x6e\x64\x20\x24\x7b\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x69\x74\x65\x6d\x29\x7d\x20\x69\x6e\x73\x74\x65\x61\x64\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x2e\x61\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x68\x61\x73\x41\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x28\x66\x61\x6c\x73\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x63\x74\x78\x2c\x20\x7b\x20\x61\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2c\x20\x63\x74\x78\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x62\x6c\x6f\x63\x6b\x49\x74\x65\x6d\x50\x72\x65\x66\x69\x78\x3a\x20\x22\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x66\x6c\x6f\x77\x43\x68\x61\x72\x73\x3a\x20\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x22\x7b\x22\x2c\x20\x65\x6e\x64\x3a\x20\x22\x7d\x22\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x3a\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x20\x7c\x7c\x20\x22\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x4d\x61\x70\x28\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x6f\x62\x6a\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6b\x65\x65\x70\x55\x6e\x64\x65\x66\x69\x6e\x65\x64\x2c\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x3a\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x4d\x61\x70\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x64\x64\x32\x20\x3d\x20\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2e\x63\x61\x6c\x6c\x28\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x29\x20\x26\x26\x20\x21\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x7c\x7c\x20\x6b\x65\x65\x70\x55\x6e\x64\x65\x66\x69\x6e\x65\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x63\x72\x65\x61\x74\x65\x50\x61\x69\x72\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x62\x6a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x5d\x20\x6f\x66\x20\x6f\x62\x6a\x29\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x32\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x62\x6a\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x6f\x62\x6a\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x6f\x62\x6a\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x61\x64\x64\x32\x28\x6b\x65\x79\x2c\x20\x6f\x62\x6a\x5b\x6b\x65\x79\x5d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x73\x63\x68\x65\x6d\x61\x32\x2e\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x73\x6f\x72\x74\x28\x73\x63\x68\x65\x6d\x61\x32\x2e\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x20\x3d\x20\x7b\x0a\x20\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x22\x6d\x61\x70\x22\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x3a\x20\x63\x72\x65\x61\x74\x65\x4d\x61\x70\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x6e\x6f\x64\x65\x43\x6c\x61\x73\x73\x3a\x20\x59\x41\x4d\x4c\x4d\x61\x70\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x6d\x61\x70\x22\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x6d\x61\x70\x32\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x61\x70\x28\x6d\x61\x70\x32\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x22\x45\x78\x70\x65\x63\x74\x65\x64\x20\x61\x20\x6d\x61\x70\x70\x69\x6e\x67\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x74\x61\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6c\x61\x73\x73\x20\x59\x41\x4d\x4c\x53\x65\x71\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x53\x45\x51\x2c\x20\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x67\x65\x74\x20\x74\x61\x67\x4e\x61\x6d\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x65\x71\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x64\x64\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x64\x78\x20\x3d\x20\x61\x73\x49\x74\x65\x6d\x49\x6e\x64\x65\x78\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x64\x78\x20\x21\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x65\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x64\x78\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x65\x6c\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x64\x78\x20\x3d\x20\x61\x73\x49\x74\x65\x6d\x49\x6e\x64\x65\x78\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x64\x78\x20\x21\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x5b\x69\x64\x78\x5d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x69\x74\x29\x20\x3f\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x69\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x64\x78\x20\x3d\x20\x61\x73\x49\x74\x65\x6d\x49\x6e\x64\x65\x78\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x64\x78\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x69\x64\x78\x20\x3c\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x64\x78\x20\x3d\x20\x61\x73\x49\x74\x65\x6d\x49\x6e\x64\x65\x78\x28\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x69\x64\x78\x20\x21\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x61\x20\x76\x61\x6c\x69\x64\x20\x69\x6e\x64\x65\x78\x2c\x20\x6e\x6f\x74\x20\x24\x7b\x6b\x65\x79\x7d\x2e\x60\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x5b\x69\x64\x78\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x70\x72\x65\x76\x29\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x56\x61\x6c\x75\x65\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x5b\x69\x64\x78\x5d\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x4f\x4e\x28\x5f\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x71\x32\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x28\x73\x65\x71\x32\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x65\x6d\x20\x6f\x66\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x70\x75\x73\x68\x28\x74\x6f\x4a\x53\x28\x69\x74\x65\x6d\x2c\x20\x53\x74\x72\x69\x6e\x67\x28\x69\x2b\x2b\x29\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x71\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2c\x20\x63\x74\x78\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x62\x6c\x6f\x63\x6b\x49\x74\x65\x6d\x50\x72\x65\x66\x69\x78\x3a\x20\x22\x2d\x20\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x66\x6c\x6f\x77\x43\x68\x61\x72\x73\x3a\x20\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x22\x5b\x22\x2c\x20\x65\x6e\x64\x3a\x20\x22\x5d\x22\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x49\x6e\x64\x65\x6e\x74\x3a\x20\x28\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x20\x7c\x7c\x20\x22\x22\x29\x20\x2b\x20\x22\x20\x20\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x73\x49\x74\x65\x6d\x49\x6e\x64\x65\x78\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x69\x64\x78\x20\x3d\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6b\x65\x79\x29\x20\x3f\x20\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x6b\x65\x79\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x64\x78\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x64\x78\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x0a\x20\x20\x20\x20\x69\x64\x78\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x28\x69\x64\x78\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x69\x64\x78\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x26\x26\x20\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x28\x69\x64\x78\x29\x20\x26\x26\x20\x69\x64\x78\x20\x3e\x3d\x20\x30\x20\x3f\x20\x69\x64\x78\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x53\x65\x71\x28\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x6f\x62\x6a\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x3a\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x71\x32\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x53\x65\x71\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x62\x6a\x20\x26\x26\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x20\x69\x6e\x20\x4f\x62\x6a\x65\x63\x74\x28\x6f\x62\x6a\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x74\x20\x6f\x66\x20\x6f\x62\x6a\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x6f\x62\x6a\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x65\x74\x20\x3f\x20\x69\x74\x20\x3a\x20\x53\x74\x72\x69\x6e\x67\x28\x69\x2b\x2b\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2e\x63\x61\x6c\x6c\x28\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x69\x74\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x71\x32\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x65\x71\x20\x3d\x20\x7b\x0a\x20\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x22\x73\x65\x71\x22\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x3a\x20\x63\x72\x65\x61\x74\x65\x53\x65\x71\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x6e\x6f\x64\x65\x43\x6c\x61\x73\x73\x3a\x20\x59\x41\x4d\x4c\x53\x65\x71\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x65\x71\x22\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x73\x65\x71\x32\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x53\x65\x71\x28\x73\x65\x71\x32\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x22\x45\x78\x70\x65\x63\x74\x65\x64\x20\x61\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x74\x61\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x71\x32\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x69\x6e\x67\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x74\x72\x22\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x69\x74\x65\x6d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x74\x78\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x20\x61\x63\x74\x75\x61\x6c\x53\x74\x72\x69\x6e\x67\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x53\x74\x72\x69\x6e\x67\x28\x69\x74\x65\x6d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6e\x75\x6c\x6c\x54\x61\x67\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x3a\x20\x28\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x6e\x75\x6c\x6c\x29\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x6e\x75\x6c\x6c\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x28\x3f\x3a\x7e\x7c\x5b\x4e\x6e\x5d\x75\x6c\x6c\x7c\x4e\x55\x4c\x4c\x29\x3f\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x6e\x75\x6c\x6c\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x28\x7b\x20\x73\x6f\x75\x72\x63\x65\x20\x7d\x2c\x20\x63\x74\x78\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x26\x26\x20\x6e\x75\x6c\x6c\x54\x61\x67\x2e\x74\x65\x73\x74\x2e\x74\x65\x73\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x3f\x20\x73\x6f\x75\x72\x63\x65\x20\x3a\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6e\x75\x6c\x6c\x53\x74\x72\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x62\x6f\x6f\x6c\x54\x61\x67\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x62\x6f\x6f\x6c\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x28\x3f\x3a\x5b\x54\x74\x5d\x72\x75\x65\x7c\x54\x52\x55\x45\x7c\x5b\x46\x66\x5d\x61\x6c\x73\x65\x7c\x46\x41\x4c\x53\x45\x29\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x73\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x74\x22\x20\x7c\x7c\x20\x73\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x54\x22\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x7b\x20\x73\x6f\x75\x72\x63\x65\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x20\x26\x26\x20\x62\x6f\x6f\x6c\x54\x61\x67\x2e\x74\x65\x73\x74\x2e\x74\x65\x73\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x76\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x74\x22\x20\x7c\x7c\x20\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x54\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x73\x76\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x74\x72\x75\x65\x53\x74\x72\x20\x3a\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x66\x61\x6c\x73\x65\x53\x74\x72\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x28\x7b\x20\x66\x6f\x72\x6d\x61\x74\x2c\x20\x6d\x69\x6e\x46\x72\x61\x63\x74\x69\x6f\x6e\x44\x69\x67\x69\x74\x73\x2c\x20\x74\x61\x67\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x69\x67\x69\x6e\x74\x22\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x53\x74\x72\x69\x6e\x67\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x75\x6d\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x76\x61\x6c\x75\x65\x20\x3a\x20\x4e\x75\x6d\x62\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x6e\x75\x6d\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x4e\x61\x4e\x28\x6e\x75\x6d\x29\x20\x3f\x20\x22\x2e\x6e\x61\x6e\x22\x20\x3a\x20\x6e\x75\x6d\x20\x3c\x20\x30\x20\x3f\x20\x22\x2d\x2e\x69\x6e\x66\x22\x20\x3a\x20\x22\x2e\x69\x6e\x66\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6e\x20\x3d\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x66\x6f\x72\x6d\x61\x74\x20\x26\x26\x20\x6d\x69\x6e\x46\x72\x61\x63\x74\x69\x6f\x6e\x44\x69\x67\x69\x74\x73\x20\x26\x26\x20\x28\x21\x74\x61\x67\x20\x7c\x7c\x20\x74\x61\x67\x20\x3d\x3d\x3d\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x29\x20\x26\x26\x20\x2f\x5e\x5c\x64\x2f\x2e\x74\x65\x73\x74\x28\x6e\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x6e\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3c\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x20\x3d\x20\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x20\x2b\x3d\x20\x22\x2e\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x64\x20\x3d\x20\x6d\x69\x6e\x46\x72\x61\x63\x74\x69\x6f\x6e\x44\x69\x67\x69\x74\x73\x20\x2d\x20\x28\x6e\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x69\x20\x2d\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x64\x2d\x2d\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x6e\x20\x2b\x3d\x20\x22\x30\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x61\x74\x4e\x61\x4e\x24\x31\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x28\x3f\x3a\x5b\x2d\x2b\x5d\x3f\x5c\x2e\x28\x3f\x3a\x69\x6e\x66\x7c\x49\x6e\x66\x7c\x49\x4e\x46\x7c\x6e\x61\x6e\x7c\x4e\x61\x4e\x7c\x4e\x41\x4e\x29\x29\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x2e\x73\x6c\x69\x63\x65\x28\x2d\x33\x29\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x20\x3d\x3d\x3d\x20\x22\x6e\x61\x6e\x22\x20\x3f\x20\x4e\x61\x4e\x20\x3a\x20\x73\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x3f\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4e\x45\x47\x41\x54\x49\x56\x45\x5f\x49\x4e\x46\x49\x4e\x49\x54\x59\x20\x3a\x20\x4e\x75\x6d\x62\x65\x72\x2e\x50\x4f\x53\x49\x54\x49\x56\x45\x5f\x49\x4e\x46\x49\x4e\x49\x54\x59\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x61\x74\x45\x78\x70\x24\x31\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x45\x58\x50\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x28\x3f\x3a\x5c\x2e\x5b\x30\x2d\x39\x5d\x2b\x7c\x5b\x30\x2d\x39\x5d\x2b\x28\x3f\x3a\x5c\x2e\x5b\x30\x2d\x39\x5d\x2a\x29\x3f\x29\x5b\x65\x45\x5d\x5b\x2d\x2b\x5d\x3f\x5b\x30\x2d\x39\x5d\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x74\x72\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x75\x6d\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x28\x6e\x6f\x64\x65\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x6e\x75\x6d\x29\x20\x3f\x20\x6e\x75\x6d\x2e\x74\x6f\x45\x78\x70\x6f\x6e\x65\x6e\x74\x69\x61\x6c\x28\x29\x20\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x61\x74\x24\x31\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x28\x3f\x3a\x5c\x2e\x5b\x30\x2d\x39\x5d\x2b\x7c\x5b\x30\x2d\x39\x5d\x2b\x5c\x2e\x5b\x30\x2d\x39\x5d\x2a\x29\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x74\x72\x29\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x74\x20\x3d\x20\x73\x74\x72\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x74\x20\x21\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x73\x74\x72\x5b\x73\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x30\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x6d\x69\x6e\x46\x72\x61\x63\x74\x69\x6f\x6e\x44\x69\x67\x69\x74\x73\x20\x3d\x20\x73\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x64\x6f\x74\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x24\x32\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x69\x67\x69\x6e\x74\x22\x20\x7c\x7c\x20\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x24\x31\x20\x3d\x20\x28\x73\x74\x72\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x72\x61\x64\x69\x78\x2c\x20\x7b\x20\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x20\x7d\x29\x20\x3d\x3e\x20\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x20\x3f\x20\x42\x69\x67\x49\x6e\x74\x28\x73\x74\x72\x29\x20\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x6f\x66\x66\x73\x65\x74\x29\x2c\x20\x72\x61\x64\x69\x78\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x74\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x24\x31\x28\x6e\x6f\x64\x65\x2c\x20\x72\x61\x64\x69\x78\x2c\x20\x70\x72\x65\x66\x69\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x24\x32\x28\x76\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x3e\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x65\x66\x69\x78\x20\x2b\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x72\x61\x64\x69\x78\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x4f\x63\x74\x24\x31\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x24\x32\x28\x76\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x3e\x3d\x20\x30\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x4f\x43\x54\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x30\x6f\x5b\x30\x2d\x37\x5d\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x6f\x70\x74\x29\x20\x3d\x3e\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x24\x31\x28\x73\x74\x72\x2c\x20\x32\x2c\x20\x38\x2c\x20\x6f\x70\x74\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x69\x6e\x74\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x24\x31\x28\x6e\x6f\x64\x65\x2c\x20\x38\x2c\x20\x22\x30\x6f\x22\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x24\x31\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x24\x32\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x5b\x30\x2d\x39\x5d\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x6f\x70\x74\x29\x20\x3d\x3e\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x24\x31\x28\x73\x74\x72\x2c\x20\x30\x2c\x20\x31\x30\x2c\x20\x6f\x70\x74\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x48\x65\x78\x24\x31\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x24\x32\x28\x76\x61\x6c\x75\x65\x29\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x3e\x3d\x20\x30\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x48\x45\x58\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x30\x78\x5b\x30\x2d\x39\x61\x2d\x66\x41\x2d\x46\x5d\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x6f\x70\x74\x29\x20\x3d\x3e\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x24\x31\x28\x73\x74\x72\x2c\x20\x32\x2c\x20\x31\x36\x2c\x20\x6f\x70\x74\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x69\x6e\x74\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x24\x31\x28\x6e\x6f\x64\x65\x2c\x20\x31\x36\x2c\x20\x22\x30\x78\x22\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x63\x68\x65\x6d\x61\x24\x32\x20\x3d\x20\x5b\x0a\x20\x20\x6d\x61\x70\x2c\x0a\x20\x20\x73\x65\x71\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x6e\x75\x6c\x6c\x54\x61\x67\x2c\x0a\x20\x20\x62\x6f\x6f\x6c\x54\x61\x67\x2c\x0a\x20\x20\x69\x6e\x74\x4f\x63\x74\x24\x31\x2c\x0a\x20\x20\x69\x6e\x74\x24\x31\x2c\x0a\x20\x20\x69\x6e\x74\x48\x65\x78\x24\x31\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x4e\x61\x4e\x24\x31\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x45\x78\x70\x24\x31\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x24\x31\x0a\x5d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x24\x31\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x69\x67\x69\x6e\x74\x22\x20\x7c\x7c\x20\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4a\x53\x4f\x4e\x20\x3d\x20\x28\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x3d\x3e\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6a\x73\x6f\x6e\x53\x63\x61\x6c\x61\x72\x73\x20\x3d\x20\x5b\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x2c\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x74\x72\x22\x2c\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x2c\x0a\x20\x20\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4a\x53\x4f\x4e\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x3a\x20\x28\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x6e\x75\x6c\x6c\x29\x2c\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x6e\x75\x6c\x6c\x22\x2c\x0a\x20\x20\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x6e\x75\x6c\x6c\x24\x2f\x2c\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x29\x20\x3d\x3e\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4a\x53\x4f\x4e\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x2c\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x62\x6f\x6f\x6c\x22\x2c\x0a\x20\x20\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x74\x72\x75\x65\x7c\x66\x61\x6c\x73\x65\x24\x2f\x2c\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x20\x3d\x3d\x3d\x20\x22\x74\x72\x75\x65\x22\x2c\x0a\x20\x20\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4a\x53\x4f\x4e\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x24\x31\x2c\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x2d\x3f\x28\x3f\x3a\x30\x7c\x5b\x31\x2d\x39\x5d\x5b\x30\x2d\x39\x5d\x2a\x29\x24\x2f\x2c\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x7b\x20\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x20\x7d\x29\x20\x3d\x3e\x20\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x20\x3f\x20\x42\x69\x67\x49\x6e\x74\x28\x73\x74\x72\x29\x20\x3a\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x74\x72\x2c\x20\x31\x30\x29\x2c\x0a\x20\x20\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x28\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x3d\x3e\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x24\x31\x28\x76\x61\x6c\x75\x65\x29\x20\x3f\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x29\x20\x3a\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x7b\x0a\x20\x20\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x2c\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x2c\x0a\x20\x20\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x2d\x3f\x28\x3f\x3a\x30\x7c\x5b\x31\x2d\x39\x5d\x5b\x30\x2d\x39\x5d\x2a\x29\x28\x3f\x3a\x5c\x2e\x5b\x30\x2d\x39\x5d\x2a\x29\x3f\x28\x3f\x3a\x5b\x65\x45\x5d\x5b\x2d\x2b\x5d\x3f\x5b\x30\x2d\x39\x5d\x2b\x29\x3f\x24\x2f\x2c\x0a\x20\x20\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x74\x72\x29\x2c\x0a\x20\x20\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4a\x53\x4f\x4e\x0a\x20\x20\x7d\x0a\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6a\x73\x6f\x6e\x45\x72\x72\x6f\x72\x20\x3d\x20\x7b\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x60\x55\x6e\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x70\x6c\x61\x69\x6e\x20\x73\x63\x61\x6c\x61\x72\x20\x24\x7b\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x73\x74\x72\x29\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x63\x68\x65\x6d\x61\x24\x31\x20\x3d\x20\x5b\x6d\x61\x70\x2c\x20\x73\x65\x71\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x6a\x73\x6f\x6e\x53\x63\x61\x6c\x61\x72\x73\x2c\x20\x6a\x73\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x62\x69\x6e\x61\x72\x79\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x55\x69\x6e\x74\x38\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x62\x69\x6e\x61\x72\x79\x22\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x73\x72\x63\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x42\x75\x66\x66\x65\x72\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x42\x75\x66\x66\x65\x72\x2e\x66\x72\x6f\x6d\x28\x73\x72\x63\x2c\x20\x22\x62\x61\x73\x65\x36\x34\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x74\x6f\x62\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x20\x3d\x20\x61\x74\x6f\x62\x28\x73\x72\x63\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x5c\x6e\x5c\x72\x5d\x2f\x67\x2c\x20\x22\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x75\x66\x66\x65\x72\x32\x20\x3d\x20\x6e\x65\x77\x20\x55\x69\x6e\x74\x38\x41\x72\x72\x61\x79\x28\x73\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x73\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x75\x66\x66\x65\x72\x32\x5b\x69\x5d\x20\x3d\x20\x73\x74\x72\x2e\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74\x28\x69\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x75\x66\x66\x65\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x22\x54\x68\x69\x73\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x72\x65\x61\x64\x69\x6e\x67\x20\x62\x69\x6e\x61\x72\x79\x20\x74\x61\x67\x73\x3b\x20\x65\x69\x74\x68\x65\x72\x20\x42\x75\x66\x66\x65\x72\x20\x6f\x72\x20\x61\x74\x6f\x62\x20\x69\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x72\x63\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x74\x79\x70\x65\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x75\x66\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x74\x72\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x42\x75\x66\x66\x65\x72\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x62\x75\x66\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x42\x75\x66\x66\x65\x72\x20\x3f\x20\x62\x75\x66\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x22\x62\x61\x73\x65\x36\x34\x22\x29\x20\x3a\x20\x42\x75\x66\x66\x65\x72\x2e\x66\x72\x6f\x6d\x28\x62\x75\x66\x2e\x62\x75\x66\x66\x65\x72\x29\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x22\x62\x61\x73\x65\x36\x34\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x74\x6f\x61\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x62\x75\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x20\x2b\x3d\x20\x53\x74\x72\x69\x6e\x67\x2e\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65\x28\x62\x75\x66\x5b\x69\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x62\x74\x6f\x61\x28\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x54\x68\x69\x73\x20\x65\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x77\x72\x69\x74\x69\x6e\x67\x20\x62\x69\x6e\x61\x72\x79\x20\x74\x61\x67\x73\x3b\x20\x65\x69\x74\x68\x65\x72\x20\x42\x75\x66\x66\x65\x72\x20\x6f\x72\x20\x62\x74\x6f\x61\x20\x69\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x79\x70\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x20\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x44\x4f\x55\x42\x4c\x45\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x20\x2d\x20\x63\x74\x78\x2e\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6d\x69\x6e\x43\x6f\x6e\x74\x65\x6e\x74\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x4d\x61\x74\x68\x2e\x63\x65\x69\x6c\x28\x73\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2f\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x41\x72\x72\x61\x79\x28\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x2c\x20\x6f\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6e\x3b\x20\x2b\x2b\x69\x2c\x20\x6f\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x5b\x69\x5d\x20\x3d\x20\x73\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x28\x6f\x2c\x20\x6c\x69\x6e\x65\x57\x69\x64\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x6c\x69\x6e\x65\x73\x2e\x6a\x6f\x69\x6e\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x20\x3f\x20\x22\x5c\x6e\x22\x20\x3a\x20\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x53\x74\x72\x69\x6e\x67\x28\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x74\x79\x70\x65\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x73\x74\x72\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x61\x69\x72\x73\x28\x73\x65\x71\x32\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x53\x65\x71\x28\x73\x65\x71\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x74\x65\x6d\x20\x3d\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x69\x74\x65\x6d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4d\x61\x70\x28\x69\x74\x65\x6d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x22\x45\x61\x63\x68\x20\x70\x61\x69\x72\x20\x6d\x75\x73\x74\x20\x68\x61\x76\x65\x20\x69\x74\x73\x20\x6f\x77\x6e\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x20\x3d\x20\x69\x74\x65\x6d\x2e\x69\x74\x65\x6d\x73\x5b\x30\x5d\x20\x7c\x7c\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x6e\x75\x6c\x6c\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x69\x72\x2e\x6b\x65\x79\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x70\x61\x69\x72\x2e\x6b\x65\x79\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x3f\x20\x60\x24\x7b\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x7d\x0a\x24\x7b\x70\x61\x69\x72\x2e\x6b\x65\x79\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x7d\x60\x20\x3a\x20\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6e\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x70\x61\x69\x72\x2e\x76\x61\x6c\x75\x65\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x70\x61\x69\x72\x2e\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6e\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x63\x6e\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3f\x20\x60\x24\x7b\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x7d\x0a\x24\x7b\x63\x6e\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x7d\x60\x20\x3a\x20\x69\x74\x65\x6d\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x20\x3d\x20\x70\x61\x69\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x5b\x69\x5d\x20\x3d\x20\x69\x73\x50\x61\x69\x72\x28\x69\x74\x65\x6d\x29\x20\x3f\x20\x69\x74\x65\x6d\x20\x3a\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x69\x74\x65\x6d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x22\x45\x78\x70\x65\x63\x74\x65\x64\x20\x61\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x74\x61\x67\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x71\x32\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x72\x65\x61\x74\x65\x50\x61\x69\x72\x73\x28\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x3a\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x73\x32\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x53\x65\x71\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x70\x61\x69\x72\x73\x32\x2e\x74\x61\x67\x20\x3d\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x70\x61\x69\x72\x73\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x26\x26\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x20\x69\x6e\x20\x4f\x62\x6a\x65\x63\x74\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x29\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x74\x20\x6f\x66\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2e\x63\x61\x6c\x6c\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x53\x74\x72\x69\x6e\x67\x28\x69\x2b\x2b\x29\x2c\x20\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x69\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x69\x74\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x74\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x5b\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x5d\x20\x74\x75\x70\x6c\x65\x3a\x20\x24\x7b\x69\x74\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x20\x26\x26\x20\x69\x74\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x69\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x6b\x65\x79\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x74\x5b\x6b\x65\x79\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x54\x79\x70\x65\x45\x72\x72\x6f\x72\x28\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x7b\x20\x6b\x65\x79\x3a\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x74\x75\x70\x6c\x65\x3a\x20\x24\x7b\x69\x74\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x69\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x69\x72\x73\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x63\x72\x65\x61\x74\x65\x50\x61\x69\x72\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x69\x72\x73\x32\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x73\x20\x3d\x20\x7b\x0a\x20\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x22\x73\x65\x71\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x70\x61\x69\x72\x73\x22\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x61\x69\x72\x73\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x3a\x20\x63\x72\x65\x61\x74\x65\x50\x61\x69\x72\x73\x0a\x7d\x3b\x0a\x63\x6c\x61\x73\x73\x20\x59\x41\x4d\x4c\x4f\x4d\x61\x70\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x59\x41\x4d\x4c\x53\x65\x71\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x20\x3d\x20\x59\x41\x4d\x4c\x4d\x61\x70\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x61\x64\x64\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x6c\x65\x74\x65\x20\x3d\x20\x59\x41\x4d\x4c\x4d\x61\x70\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x64\x65\x6c\x65\x74\x65\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x20\x3d\x20\x59\x41\x4d\x4c\x4d\x61\x70\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x67\x65\x74\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x68\x61\x73\x20\x3d\x20\x59\x41\x4d\x4c\x4d\x61\x70\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x68\x61\x73\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x20\x3d\x20\x59\x41\x4d\x4c\x4d\x61\x70\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x65\x74\x2e\x62\x69\x6e\x64\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x20\x3d\x20\x59\x41\x4d\x4c\x4f\x4d\x61\x70\x2e\x74\x61\x67\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x4f\x4e\x28\x5f\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x75\x70\x65\x72\x2e\x74\x6f\x4a\x53\x4f\x4e\x28\x5f\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x63\x74\x78\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x6f\x6e\x43\x72\x65\x61\x74\x65\x28\x6d\x61\x70\x32\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x20\x6f\x66\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x70\x61\x69\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x74\x6f\x4a\x53\x28\x70\x61\x69\x72\x2e\x6b\x65\x79\x2c\x20\x22\x22\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x4a\x53\x28\x70\x61\x69\x72\x2e\x76\x61\x6c\x75\x65\x2c\x20\x6b\x65\x79\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x20\x3d\x20\x74\x6f\x4a\x53\x28\x70\x61\x69\x72\x2c\x20\x22\x22\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x70\x32\x2e\x68\x61\x73\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x4f\x72\x64\x65\x72\x65\x64\x20\x6d\x61\x70\x73\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x69\x6e\x63\x6c\x75\x64\x65\x20\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x20\x6b\x65\x79\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x59\x41\x4d\x4c\x4f\x4d\x61\x70\x2e\x74\x61\x67\x20\x3d\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x6f\x6d\x61\x70\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x6f\x6d\x61\x70\x20\x3d\x20\x7b\x0a\x20\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x22\x73\x65\x71\x22\x2c\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4d\x61\x70\x2c\x0a\x20\x20\x6e\x6f\x64\x65\x43\x6c\x61\x73\x73\x3a\x20\x59\x41\x4d\x4c\x4f\x4d\x61\x70\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x6f\x6d\x61\x70\x22\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x73\x65\x71\x32\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x73\x32\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x61\x69\x72\x73\x28\x73\x65\x71\x32\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x65\x6e\x4b\x65\x79\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6b\x65\x79\x20\x7d\x20\x6f\x66\x20\x70\x61\x69\x72\x73\x32\x2e\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x65\x6e\x4b\x65\x79\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x60\x4f\x72\x64\x65\x72\x65\x64\x20\x6d\x61\x70\x73\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x69\x6e\x63\x6c\x75\x64\x65\x20\x64\x75\x70\x6c\x69\x63\x61\x74\x65\x20\x6b\x65\x79\x73\x3a\x20\x24\x7b\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x65\x6e\x4b\x65\x79\x73\x2e\x70\x75\x73\x68\x28\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x6e\x65\x77\x20\x59\x41\x4d\x4c\x4f\x4d\x61\x70\x28\x29\x2c\x20\x70\x61\x69\x72\x73\x32\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x73\x32\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x50\x61\x69\x72\x73\x28\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6d\x61\x70\x32\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x4f\x4d\x61\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x6f\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x20\x3d\x20\x70\x61\x69\x72\x73\x32\x2e\x69\x74\x65\x6d\x73\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x6d\x61\x70\x32\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x6f\x6f\x6c\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x73\x6f\x75\x72\x63\x65\x20\x7d\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x6f\x6f\x6c\x4f\x62\x6a\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x74\x72\x75\x65\x54\x61\x67\x20\x3a\x20\x66\x61\x6c\x73\x65\x54\x61\x67\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x20\x26\x26\x20\x62\x6f\x6f\x6c\x4f\x62\x6a\x2e\x74\x65\x73\x74\x2e\x74\x65\x73\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x74\x72\x75\x65\x53\x74\x72\x20\x3a\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x66\x61\x6c\x73\x65\x53\x74\x72\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x74\x72\x75\x65\x54\x61\x67\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x62\x6f\x6f\x6c\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x28\x3f\x3a\x59\x7c\x79\x7c\x5b\x59\x79\x5d\x65\x73\x7c\x59\x45\x53\x7c\x5b\x54\x74\x5d\x72\x75\x65\x7c\x54\x52\x55\x45\x7c\x5b\x4f\x6f\x5d\x6e\x7c\x4f\x4e\x29\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x74\x72\x75\x65\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x62\x6f\x6f\x6c\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x61\x6c\x73\x65\x54\x61\x67\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x62\x6f\x6f\x6c\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x28\x3f\x3a\x4e\x7c\x6e\x7c\x5b\x4e\x6e\x5d\x6f\x7c\x4e\x4f\x7c\x5b\x46\x66\x5d\x61\x6c\x73\x65\x7c\x46\x41\x4c\x53\x45\x7c\x5b\x4f\x6f\x5d\x66\x66\x7c\x4f\x46\x46\x29\x24\x2f\x69\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x66\x61\x6c\x73\x65\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x62\x6f\x6f\x6c\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x61\x74\x4e\x61\x4e\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x5c\x2e\x28\x3f\x3a\x69\x6e\x66\x7c\x49\x6e\x66\x7c\x49\x4e\x46\x7c\x6e\x61\x6e\x7c\x4e\x61\x4e\x7c\x4e\x41\x4e\x29\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x73\x74\x72\x2e\x73\x6c\x69\x63\x65\x28\x2d\x33\x29\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x20\x3d\x3d\x3d\x20\x22\x6e\x61\x6e\x22\x20\x3f\x20\x4e\x61\x4e\x20\x3a\x20\x73\x74\x72\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x3f\x20\x4e\x75\x6d\x62\x65\x72\x2e\x4e\x45\x47\x41\x54\x49\x56\x45\x5f\x49\x4e\x46\x49\x4e\x49\x54\x59\x20\x3a\x20\x4e\x75\x6d\x62\x65\x72\x2e\x50\x4f\x53\x49\x54\x49\x56\x45\x5f\x49\x4e\x46\x49\x4e\x49\x54\x59\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x61\x74\x45\x78\x70\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x45\x58\x50\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x28\x3f\x3a\x5b\x30\x2d\x39\x5d\x5b\x30\x2d\x39\x5f\x5d\x2a\x29\x3f\x28\x3f\x3a\x5c\x2e\x5b\x30\x2d\x39\x5f\x5d\x2a\x29\x3f\x5b\x65\x45\x5d\x5b\x2d\x2b\x5d\x3f\x5b\x30\x2d\x39\x5d\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x74\x72\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5f\x2f\x67\x2c\x20\x22\x22\x29\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x75\x6d\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x28\x6e\x6f\x64\x65\x2e\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x6e\x75\x6d\x29\x20\x3f\x20\x6e\x75\x6d\x2e\x74\x6f\x45\x78\x70\x6f\x6e\x65\x6e\x74\x69\x61\x6c\x28\x29\x20\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x61\x74\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x28\x3f\x3a\x5b\x30\x2d\x39\x5d\x5b\x30\x2d\x39\x5f\x5d\x2a\x29\x3f\x5c\x2e\x5b\x30\x2d\x39\x5f\x5d\x2a\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x73\x74\x72\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5f\x2f\x67\x2c\x20\x22\x22\x29\x29\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x74\x20\x3d\x20\x73\x74\x72\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x74\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x20\x3d\x20\x73\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x64\x6f\x74\x20\x2b\x20\x31\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5f\x2f\x67\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x5b\x66\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x30\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x6d\x69\x6e\x46\x72\x61\x63\x74\x69\x6f\x6e\x44\x69\x67\x69\x74\x73\x20\x3d\x20\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x69\x67\x69\x6e\x74\x22\x20\x7c\x7c\x20\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x72\x61\x64\x69\x78\x2c\x20\x7b\x20\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x20\x7d\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x69\x67\x6e\x20\x3d\x20\x73\x74\x72\x5b\x30\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x7c\x7c\x20\x73\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x2b\x22\x29\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x73\x74\x72\x20\x3d\x20\x73\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x6f\x66\x66\x73\x65\x74\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5f\x2f\x67\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x72\x61\x64\x69\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x60\x30\x62\x24\x7b\x73\x74\x72\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x38\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x60\x30\x6f\x24\x7b\x73\x74\x72\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x31\x36\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x20\x3d\x20\x60\x30\x78\x24\x7b\x73\x74\x72\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x32\x20\x3d\x20\x42\x69\x67\x49\x6e\x74\x28\x73\x74\x72\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x3f\x20\x42\x69\x67\x49\x6e\x74\x28\x2d\x31\x29\x20\x2a\x20\x6e\x32\x20\x3a\x20\x6e\x32\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x73\x74\x72\x2c\x20\x72\x61\x64\x69\x78\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x3f\x20\x2d\x31\x20\x2a\x20\x6e\x20\x3a\x20\x6e\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x74\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6e\x6f\x64\x65\x2c\x20\x72\x61\x64\x69\x78\x2c\x20\x70\x72\x65\x66\x69\x78\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x28\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x72\x20\x3d\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x72\x61\x64\x69\x78\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x61\x6c\x75\x65\x20\x3c\x20\x30\x20\x3f\x20\x22\x2d\x22\x20\x2b\x20\x70\x72\x65\x66\x69\x78\x20\x2b\x20\x73\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x28\x31\x29\x20\x3a\x20\x70\x72\x65\x66\x69\x78\x20\x2b\x20\x73\x74\x72\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x42\x69\x6e\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x42\x49\x4e\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x30\x62\x5b\x30\x2d\x31\x5f\x5d\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x6f\x70\x74\x29\x20\x3d\x3e\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x2c\x20\x32\x2c\x20\x32\x2c\x20\x6f\x70\x74\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x69\x6e\x74\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6e\x6f\x64\x65\x2c\x20\x32\x2c\x20\x22\x30\x62\x22\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x4f\x63\x74\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x4f\x43\x54\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x30\x5b\x30\x2d\x37\x5f\x5d\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x6f\x70\x74\x29\x20\x3d\x3e\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x2c\x20\x31\x2c\x20\x38\x2c\x20\x6f\x70\x74\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x69\x6e\x74\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6e\x6f\x64\x65\x2c\x20\x38\x2c\x20\x22\x30\x22\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x5b\x30\x2d\x39\x5d\x5b\x30\x2d\x39\x5f\x5d\x2a\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x6f\x70\x74\x29\x20\x3d\x3e\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x2c\x20\x30\x2c\x20\x31\x30\x2c\x20\x6f\x70\x74\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x48\x65\x78\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x69\x6e\x74\x49\x64\x65\x6e\x74\x69\x66\x79\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x48\x45\x58\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x30\x78\x5b\x30\x2d\x39\x61\x2d\x66\x41\x2d\x46\x5f\x5d\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x6f\x70\x74\x29\x20\x3d\x3e\x20\x69\x6e\x74\x52\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x2c\x20\x32\x2c\x20\x31\x36\x2c\x20\x6f\x70\x74\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x28\x6e\x6f\x64\x65\x29\x20\x3d\x3e\x20\x69\x6e\x74\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6e\x6f\x64\x65\x2c\x20\x31\x36\x2c\x20\x22\x30\x78\x22\x29\x0a\x7d\x3b\x0a\x63\x6c\x61\x73\x73\x20\x59\x41\x4d\x4c\x53\x65\x74\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x59\x41\x4d\x4c\x4d\x61\x70\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x20\x3d\x20\x59\x41\x4d\x4c\x53\x65\x74\x2e\x74\x61\x67\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x64\x64\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x61\x69\x72\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x69\x72\x20\x3d\x20\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x6b\x65\x79\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x26\x26\x20\x22\x6b\x65\x79\x22\x20\x69\x6e\x20\x6b\x65\x79\x20\x26\x26\x20\x22\x76\x61\x6c\x75\x65\x22\x20\x69\x6e\x20\x6b\x65\x79\x20\x26\x26\x20\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x69\x72\x20\x3d\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x65\x79\x2e\x6b\x65\x79\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x69\x72\x20\x3d\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x65\x79\x2c\x20\x6e\x75\x6c\x6c\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x66\x69\x6e\x64\x50\x61\x69\x72\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2c\x20\x70\x61\x69\x72\x2e\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x65\x76\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x70\x61\x69\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x6b\x65\x65\x70\x50\x61\x69\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x20\x3d\x20\x66\x69\x6e\x64\x50\x61\x69\x72\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x6b\x65\x65\x70\x50\x61\x69\x72\x20\x26\x26\x20\x69\x73\x50\x61\x69\x72\x28\x70\x61\x69\x72\x29\x20\x3f\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x70\x61\x69\x72\x2e\x6b\x65\x79\x29\x20\x3f\x20\x70\x61\x69\x72\x2e\x6b\x65\x79\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x70\x61\x69\x72\x2e\x6b\x65\x79\x20\x3a\x20\x70\x61\x69\x72\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x62\x6f\x6f\x6c\x65\x61\x6e\x20\x76\x61\x6c\x75\x65\x20\x66\x6f\x72\x20\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x69\x6e\x20\x61\x20\x59\x41\x4d\x4c\x20\x73\x65\x74\x2c\x20\x6e\x6f\x74\x20\x24\x7b\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x66\x69\x6e\x64\x50\x61\x69\x72\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2c\x20\x6b\x65\x79\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x20\x26\x26\x20\x21\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x70\x72\x65\x76\x29\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x70\x72\x65\x76\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x65\x79\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x4f\x4e\x28\x5f\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x75\x70\x65\x72\x2e\x74\x6f\x4a\x53\x4f\x4e\x28\x5f\x2c\x20\x63\x74\x78\x2c\x20\x53\x65\x74\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x63\x74\x78\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x74\x78\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x68\x61\x73\x41\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x28\x74\x72\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x75\x70\x65\x72\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x63\x74\x78\x2c\x20\x7b\x20\x61\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x3a\x20\x74\x72\x75\x65\x20\x7d\x29\x2c\x20\x6f\x6e\x43\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x53\x65\x74\x20\x69\x74\x65\x6d\x73\x20\x6d\x75\x73\x74\x20\x61\x6c\x6c\x20\x68\x61\x76\x65\x20\x6e\x75\x6c\x6c\x20\x76\x61\x6c\x75\x65\x73\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x59\x41\x4d\x4c\x53\x65\x74\x2e\x74\x61\x67\x20\x3d\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x65\x74\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x20\x3d\x20\x7b\x0a\x20\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x3a\x20\x22\x6d\x61\x70\x22\x2c\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x65\x74\x2c\x0a\x20\x20\x6e\x6f\x64\x65\x43\x6c\x61\x73\x73\x3a\x20\x59\x41\x4d\x4c\x53\x65\x74\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x65\x74\x22\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x6d\x61\x70\x32\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x61\x70\x28\x6d\x61\x70\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x70\x32\x2e\x68\x61\x73\x41\x6c\x6c\x4e\x75\x6c\x6c\x56\x61\x6c\x75\x65\x73\x28\x74\x72\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x6e\x65\x77\x20\x59\x41\x4d\x4c\x53\x65\x74\x28\x29\x2c\x20\x6d\x61\x70\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x22\x53\x65\x74\x20\x69\x74\x65\x6d\x73\x20\x6d\x75\x73\x74\x20\x61\x6c\x6c\x20\x68\x61\x76\x65\x20\x6e\x75\x6c\x6c\x20\x76\x61\x6c\x75\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x22\x45\x78\x70\x65\x63\x74\x65\x64\x20\x61\x20\x6d\x61\x70\x70\x69\x6e\x67\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x74\x61\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x63\x74\x78\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x3a\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x7d\x20\x3d\x20\x63\x74\x78\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x74\x32\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x53\x65\x74\x28\x73\x63\x68\x65\x6d\x61\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x20\x26\x26\x20\x53\x79\x6d\x62\x6f\x6c\x2e\x69\x74\x65\x72\x61\x74\x6f\x72\x20\x69\x6e\x20\x4f\x62\x6a\x65\x63\x74\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x69\x74\x65\x72\x61\x62\x6c\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2e\x63\x61\x6c\x6c\x28\x69\x74\x65\x72\x61\x62\x6c\x65\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x63\x72\x65\x61\x74\x65\x50\x61\x69\x72\x28\x76\x61\x6c\x75\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x32\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x53\x65\x78\x61\x67\x65\x73\x69\x6d\x61\x6c\x28\x73\x74\x72\x2c\x20\x61\x73\x42\x69\x67\x49\x6e\x74\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x69\x67\x6e\x20\x3d\x20\x73\x74\x72\x5b\x30\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x74\x73\x20\x3d\x20\x73\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x7c\x7c\x20\x73\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x2b\x22\x20\x3f\x20\x73\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x20\x3a\x20\x73\x74\x72\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x75\x6d\x20\x3d\x20\x28\x6e\x29\x20\x3d\x3e\x20\x61\x73\x42\x69\x67\x49\x6e\x74\x20\x3f\x20\x42\x69\x67\x49\x6e\x74\x28\x6e\x29\x20\x3a\x20\x4e\x75\x6d\x62\x65\x72\x28\x6e\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x70\x61\x72\x74\x73\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5f\x2f\x67\x2c\x20\x22\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x22\x3a\x22\x29\x2e\x72\x65\x64\x75\x63\x65\x28\x28\x72\x65\x73\x32\x2c\x20\x70\x32\x29\x20\x3d\x3e\x20\x72\x65\x73\x32\x20\x2a\x20\x6e\x75\x6d\x28\x36\x30\x29\x20\x2b\x20\x6e\x75\x6d\x28\x70\x32\x29\x2c\x20\x6e\x75\x6d\x28\x30\x29\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x67\x6e\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x3f\x20\x6e\x75\x6d\x28\x2d\x31\x29\x20\x2a\x20\x72\x65\x73\x20\x3a\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x53\x65\x78\x61\x67\x65\x73\x69\x6d\x61\x6c\x28\x6e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x3d\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6e\x75\x6d\x20\x3d\x20\x28\x6e\x29\x20\x3d\x3e\x20\x6e\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x69\x67\x69\x6e\x74\x22\x29\x0a\x20\x20\x20\x20\x6e\x75\x6d\x20\x3d\x20\x28\x6e\x29\x20\x3d\x3e\x20\x42\x69\x67\x49\x6e\x74\x28\x6e\x29\x3b\x0a\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x4e\x61\x4e\x28\x76\x61\x6c\x75\x65\x29\x20\x7c\x7c\x20\x21\x69\x73\x46\x69\x6e\x69\x74\x65\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x4e\x75\x6d\x62\x65\x72\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x69\x67\x6e\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3c\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x69\x67\x6e\x20\x3d\x20\x22\x2d\x22\x3b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2a\x3d\x20\x6e\x75\x6d\x28\x2d\x31\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x36\x30\x20\x3d\x20\x6e\x75\x6d\x28\x36\x30\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x74\x73\x20\x3d\x20\x5b\x76\x61\x6c\x75\x65\x20\x25\x20\x5f\x36\x30\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3c\x20\x36\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x70\x61\x72\x74\x73\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x30\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x20\x2d\x20\x70\x61\x72\x74\x73\x5b\x30\x5d\x29\x20\x2f\x20\x5f\x36\x30\x3b\x0a\x20\x20\x20\x20\x70\x61\x72\x74\x73\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x76\x61\x6c\x75\x65\x20\x25\x20\x5f\x36\x30\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3e\x3d\x20\x36\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x28\x76\x61\x6c\x75\x65\x20\x2d\x20\x70\x61\x72\x74\x73\x5b\x30\x5d\x29\x20\x2f\x20\x5f\x36\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x61\x72\x74\x73\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x69\x67\x6e\x20\x2b\x20\x70\x61\x72\x74\x73\x2e\x6d\x61\x70\x28\x28\x6e\x29\x20\x3d\x3e\x20\x6e\x20\x3c\x20\x31\x30\x20\x3f\x20\x22\x30\x22\x20\x2b\x20\x53\x74\x72\x69\x6e\x67\x28\x6e\x29\x20\x3a\x20\x53\x74\x72\x69\x6e\x67\x28\x6e\x29\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x3a\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x30\x30\x30\x30\x30\x30\x5c\x64\x2a\x24\x2f\x2c\x20\x22\x22\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x74\x54\x69\x6d\x65\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x62\x69\x67\x69\x6e\x74\x22\x20\x7c\x7c\x20\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x28\x76\x61\x6c\x75\x65\x29\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x69\x6e\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x54\x49\x4d\x45\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x5b\x30\x2d\x39\x5d\x5b\x30\x2d\x39\x5f\x5d\x2a\x28\x3f\x3a\x3a\x5b\x30\x2d\x35\x5d\x3f\x5b\x30\x2d\x39\x5d\x29\x2b\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x7b\x20\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x20\x7d\x29\x20\x3d\x3e\x20\x70\x61\x72\x73\x65\x53\x65\x78\x61\x67\x65\x73\x69\x6d\x61\x6c\x28\x73\x74\x72\x2c\x20\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x53\x65\x78\x61\x67\x65\x73\x69\x6d\x61\x6c\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x66\x6c\x6f\x61\x74\x54\x69\x6d\x65\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x66\x6c\x6f\x61\x74\x22\x2c\x0a\x20\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x22\x54\x49\x4d\x45\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x2f\x5e\x5b\x2d\x2b\x5d\x3f\x5b\x30\x2d\x39\x5d\x5b\x30\x2d\x39\x5f\x5d\x2a\x28\x3f\x3a\x3a\x5b\x30\x2d\x35\x5d\x3f\x5b\x30\x2d\x39\x5d\x29\x2b\x5c\x2e\x5b\x30\x2d\x39\x5f\x5d\x2a\x24\x2f\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x3a\x20\x28\x73\x74\x72\x29\x20\x3d\x3e\x20\x70\x61\x72\x73\x65\x53\x65\x78\x61\x67\x65\x73\x69\x6d\x61\x6c\x28\x73\x74\x72\x2c\x20\x66\x61\x6c\x73\x65\x29\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x53\x65\x78\x61\x67\x65\x73\x69\x6d\x61\x6c\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x3d\x20\x7b\x0a\x20\x20\x69\x64\x65\x6e\x74\x69\x66\x79\x3a\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x44\x61\x74\x65\x2c\x0a\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x74\x61\x67\x3a\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x22\x2c\x0a\x20\x20\x74\x65\x73\x74\x3a\x20\x52\x65\x67\x45\x78\x70\x28\x22\x5e\x28\x5b\x30\x2d\x39\x5d\x7b\x34\x7d\x29\x2d\x28\x5b\x30\x2d\x39\x5d\x7b\x31\x2c\x32\x7d\x29\x2d\x28\x5b\x30\x2d\x39\x5d\x7b\x31\x2c\x32\x7d\x29\x28\x3f\x3a\x28\x3f\x3a\x74\x7c\x54\x7c\x5b\x20\x5c\x5c\x74\x5d\x2b\x29\x28\x5b\x30\x2d\x39\x5d\x7b\x31\x2c\x32\x7d\x29\x3a\x28\x5b\x30\x2d\x39\x5d\x7b\x31\x2c\x32\x7d\x29\x3a\x28\x5b\x30\x2d\x39\x5d\x7b\x31\x2c\x32\x7d\x28\x5c\x5c\x2e\x5b\x30\x2d\x39\x5d\x2b\x29\x3f\x29\x28\x3f\x3a\x5b\x20\x5c\x5c\x74\x5d\x2a\x28\x5a\x7c\x5b\x2d\x2b\x5d\x5b\x30\x31\x32\x5d\x3f\x5b\x30\x2d\x39\x5d\x28\x3f\x3a\x3a\x5b\x30\x2d\x39\x5d\x7b\x32\x7d\x29\x3f\x29\x29\x3f\x29\x3f\x24\x22\x29\x2c\x0a\x20\x20\x72\x65\x73\x6f\x6c\x76\x65\x28\x73\x74\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x73\x74\x72\x2e\x6d\x61\x74\x63\x68\x28\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x2e\x74\x65\x73\x74\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6d\x61\x74\x63\x68\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x21\x21\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x65\x78\x70\x65\x63\x74\x73\x20\x61\x20\x64\x61\x74\x65\x2c\x20\x73\x74\x61\x72\x74\x69\x6e\x67\x20\x77\x69\x74\x68\x20\x79\x79\x79\x79\x2d\x6d\x6d\x2d\x64\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x2c\x20\x79\x65\x61\x72\x2c\x20\x6d\x6f\x6e\x74\x68\x2c\x20\x64\x61\x79\x2c\x20\x68\x6f\x75\x72\x2c\x20\x6d\x69\x6e\x75\x74\x65\x2c\x20\x73\x65\x63\x6f\x6e\x64\x5d\x20\x3d\x20\x6d\x61\x74\x63\x68\x2e\x6d\x61\x70\x28\x4e\x75\x6d\x62\x65\x72\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x69\x6c\x6c\x69\x73\x65\x63\x20\x3d\x20\x6d\x61\x74\x63\x68\x5b\x37\x5d\x20\x3f\x20\x4e\x75\x6d\x62\x65\x72\x28\x28\x6d\x61\x74\x63\x68\x5b\x37\x5d\x20\x2b\x20\x22\x30\x30\x22\x29\x2e\x73\x75\x62\x73\x74\x72\x28\x31\x2c\x20\x33\x29\x29\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x64\x61\x74\x65\x20\x3d\x20\x44\x61\x74\x65\x2e\x55\x54\x43\x28\x79\x65\x61\x72\x2c\x20\x6d\x6f\x6e\x74\x68\x20\x2d\x20\x31\x2c\x20\x64\x61\x79\x2c\x20\x68\x6f\x75\x72\x20\x7c\x7c\x20\x30\x2c\x20\x6d\x69\x6e\x75\x74\x65\x20\x7c\x7c\x20\x30\x2c\x20\x73\x65\x63\x6f\x6e\x64\x20\x7c\x7c\x20\x30\x2c\x20\x6d\x69\x6c\x6c\x69\x73\x65\x63\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x7a\x20\x3d\x20\x6d\x61\x74\x63\x68\x5b\x38\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x7a\x20\x26\x26\x20\x74\x7a\x20\x21\x3d\x3d\x20\x22\x5a\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x64\x20\x3d\x20\x70\x61\x72\x73\x65\x53\x65\x78\x61\x67\x65\x73\x69\x6d\x61\x6c\x28\x74\x7a\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4d\x61\x74\x68\x2e\x61\x62\x73\x28\x64\x29\x20\x3c\x20\x33\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x20\x2a\x3d\x20\x36\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x61\x74\x65\x20\x2d\x3d\x20\x36\x65\x34\x20\x2a\x20\x64\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x64\x61\x74\x65\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x3a\x20\x28\x7b\x20\x76\x61\x6c\x75\x65\x20\x7d\x29\x20\x3d\x3e\x20\x76\x61\x6c\x75\x65\x2e\x74\x6f\x49\x53\x4f\x53\x74\x72\x69\x6e\x67\x28\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x28\x28\x54\x30\x30\x3a\x30\x30\x29\x3f\x3a\x30\x30\x29\x3f\x5c\x2e\x30\x30\x30\x5a\x24\x2f\x2c\x20\x22\x22\x29\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x63\x68\x65\x6d\x61\x20\x3d\x20\x5b\x0a\x20\x20\x6d\x61\x70\x2c\x0a\x20\x20\x73\x65\x71\x2c\x0a\x20\x20\x73\x74\x72\x69\x6e\x67\x2c\x0a\x20\x20\x6e\x75\x6c\x6c\x54\x61\x67\x2c\x0a\x20\x20\x74\x72\x75\x65\x54\x61\x67\x2c\x0a\x20\x20\x66\x61\x6c\x73\x65\x54\x61\x67\x2c\x0a\x20\x20\x69\x6e\x74\x42\x69\x6e\x2c\x0a\x20\x20\x69\x6e\x74\x4f\x63\x74\x2c\x0a\x20\x20\x69\x6e\x74\x2c\x0a\x20\x20\x69\x6e\x74\x48\x65\x78\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x4e\x61\x4e\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x45\x78\x70\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x2c\x0a\x20\x20\x62\x69\x6e\x61\x72\x79\x2c\x0a\x20\x20\x6f\x6d\x61\x70\x2c\x0a\x20\x20\x70\x61\x69\x72\x73\x2c\x0a\x20\x20\x73\x65\x74\x2c\x0a\x20\x20\x69\x6e\x74\x54\x69\x6d\x65\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x54\x69\x6d\x65\x2c\x0a\x20\x20\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x0a\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x73\x63\x68\x65\x6d\x61\x73\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x5b\x0a\x20\x20\x5b\x22\x63\x6f\x72\x65\x22\x2c\x20\x73\x63\x68\x65\x6d\x61\x24\x32\x5d\x2c\x0a\x20\x20\x5b\x22\x66\x61\x69\x6c\x73\x61\x66\x65\x22\x2c\x20\x5b\x6d\x61\x70\x2c\x20\x73\x65\x71\x2c\x20\x73\x74\x72\x69\x6e\x67\x5d\x5d\x2c\x0a\x20\x20\x5b\x22\x6a\x73\x6f\x6e\x22\x2c\x20\x73\x63\x68\x65\x6d\x61\x24\x31\x5d\x2c\x0a\x20\x20\x5b\x22\x79\x61\x6d\x6c\x31\x31\x22\x2c\x20\x73\x63\x68\x65\x6d\x61\x5d\x2c\x0a\x20\x20\x5b\x22\x79\x61\x6d\x6c\x2d\x31\x2e\x31\x22\x2c\x20\x73\x63\x68\x65\x6d\x61\x5d\x0a\x5d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x73\x42\x79\x4e\x61\x6d\x65\x20\x3d\x20\x7b\x0a\x20\x20\x62\x69\x6e\x61\x72\x79\x2c\x0a\x20\x20\x62\x6f\x6f\x6c\x3a\x20\x62\x6f\x6f\x6c\x54\x61\x67\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x3a\x20\x66\x6c\x6f\x61\x74\x24\x31\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x45\x78\x70\x3a\x20\x66\x6c\x6f\x61\x74\x45\x78\x70\x24\x31\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x4e\x61\x4e\x3a\x20\x66\x6c\x6f\x61\x74\x4e\x61\x4e\x24\x31\x2c\x0a\x20\x20\x66\x6c\x6f\x61\x74\x54\x69\x6d\x65\x2c\x0a\x20\x20\x69\x6e\x74\x3a\x20\x69\x6e\x74\x24\x31\x2c\x0a\x20\x20\x69\x6e\x74\x48\x65\x78\x3a\x20\x69\x6e\x74\x48\x65\x78\x24\x31\x2c\x0a\x20\x20\x69\x6e\x74\x4f\x63\x74\x3a\x20\x69\x6e\x74\x4f\x63\x74\x24\x31\x2c\x0a\x20\x20\x69\x6e\x74\x54\x69\x6d\x65\x2c\x0a\x20\x20\x6d\x61\x70\x2c\x0a\x20\x20\x6e\x75\x6c\x6c\x3a\x20\x6e\x75\x6c\x6c\x54\x61\x67\x2c\x0a\x20\x20\x6f\x6d\x61\x70\x2c\x0a\x20\x20\x70\x61\x69\x72\x73\x2c\x0a\x20\x20\x73\x65\x71\x2c\x0a\x20\x20\x73\x65\x74\x2c\x0a\x20\x20\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x63\x6f\x72\x65\x4b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x20\x3d\x20\x7b\x0a\x20\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x62\x69\x6e\x61\x72\x79\x22\x3a\x20\x62\x69\x6e\x61\x72\x79\x2c\x0a\x20\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x6f\x6d\x61\x70\x22\x3a\x20\x6f\x6d\x61\x70\x2c\x0a\x20\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x70\x61\x69\x72\x73\x22\x3a\x20\x70\x61\x69\x72\x73\x2c\x0a\x20\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x65\x74\x22\x3a\x20\x73\x65\x74\x2c\x0a\x20\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x22\x3a\x20\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x54\x61\x67\x73\x28\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x2c\x20\x73\x63\x68\x65\x6d\x61\x4e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x74\x61\x67\x73\x20\x3d\x20\x73\x63\x68\x65\x6d\x61\x73\x2e\x67\x65\x74\x28\x73\x63\x68\x65\x6d\x61\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x61\x67\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x73\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x73\x63\x68\x65\x6d\x61\x73\x2e\x6b\x65\x79\x73\x28\x29\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x22\x79\x61\x6d\x6c\x31\x31\x22\x29\x2e\x6d\x61\x70\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6b\x65\x79\x29\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x2c\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x73\x63\x68\x65\x6d\x61\x20\x22\x24\x7b\x73\x63\x68\x65\x6d\x61\x4e\x61\x6d\x65\x7d\x22\x3b\x20\x75\x73\x65\x20\x6f\x6e\x65\x20\x6f\x66\x20\x24\x7b\x6b\x65\x79\x73\x7d\x20\x6f\x72\x20\x64\x65\x66\x69\x6e\x65\x20\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x20\x61\x72\x72\x61\x79\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x20\x6f\x66\x20\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x61\x67\x73\x20\x3d\x20\x74\x61\x67\x73\x2e\x63\x6f\x6e\x63\x61\x74\x28\x74\x61\x67\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x61\x67\x73\x20\x3d\x20\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x28\x74\x61\x67\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x73\x2e\x6d\x61\x70\x28\x28\x74\x61\x67\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x74\x61\x67\x20\x21\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x4f\x62\x6a\x20\x3d\x20\x74\x61\x67\x73\x42\x79\x4e\x61\x6d\x65\x5b\x74\x61\x67\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x67\x4f\x62\x6a\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x4f\x62\x6a\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x74\x61\x67\x73\x42\x79\x4e\x61\x6d\x65\x29\x2e\x6d\x61\x70\x28\x28\x6b\x65\x79\x29\x20\x3d\x3e\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6b\x65\x79\x29\x29\x2e\x6a\x6f\x69\x6e\x28\x22\x2c\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x63\x75\x73\x74\x6f\x6d\x20\x74\x61\x67\x20\x22\x24\x7b\x74\x61\x67\x7d\x22\x3b\x20\x75\x73\x65\x20\x6f\x6e\x65\x20\x6f\x66\x20\x24\x7b\x6b\x65\x79\x73\x7d\x60\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x42\x79\x4b\x65\x79\x20\x3d\x20\x28\x61\x2c\x20\x62\x29\x20\x3d\x3e\x20\x61\x2e\x6b\x65\x79\x20\x3c\x20\x62\x2e\x6b\x65\x79\x20\x3f\x20\x2d\x31\x20\x3a\x20\x61\x2e\x6b\x65\x79\x20\x3e\x20\x62\x2e\x6b\x65\x79\x20\x3f\x20\x31\x20\x3a\x20\x30\x3b\x0a\x63\x6c\x61\x73\x73\x20\x53\x63\x68\x65\x6d\x61\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x7b\x20\x63\x6f\x6d\x70\x61\x74\x2c\x20\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x2c\x20\x6d\x65\x72\x67\x65\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x4b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x2c\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x2c\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x44\x65\x66\x61\x75\x6c\x74\x73\x20\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6d\x70\x61\x74\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x6f\x6d\x70\x61\x74\x29\x20\x3f\x20\x67\x65\x74\x54\x61\x67\x73\x28\x63\x6f\x6d\x70\x61\x74\x2c\x20\x22\x63\x6f\x6d\x70\x61\x74\x22\x29\x20\x3a\x20\x63\x6f\x6d\x70\x61\x74\x20\x3f\x20\x67\x65\x74\x54\x61\x67\x73\x28\x6e\x75\x6c\x6c\x2c\x20\x63\x6f\x6d\x70\x61\x74\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x65\x72\x67\x65\x20\x3d\x20\x21\x21\x6d\x65\x72\x67\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x63\x68\x65\x6d\x61\x32\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x26\x26\x20\x73\x63\x68\x65\x6d\x61\x32\x20\x7c\x7c\x20\x22\x63\x6f\x72\x65\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x4b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x20\x3f\x20\x63\x6f\x72\x65\x4b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x20\x3d\x20\x67\x65\x74\x54\x61\x67\x73\x28\x63\x75\x73\x74\x6f\x6d\x54\x61\x67\x73\x2c\x20\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x4f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x44\x65\x66\x61\x75\x6c\x74\x73\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x44\x65\x66\x61\x75\x6c\x74\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x44\x65\x66\x61\x75\x6c\x74\x73\x20\x3a\x20\x6e\x75\x6c\x6c\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\x74\x68\x69\x73\x2c\x20\x4d\x41\x50\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x6d\x61\x70\x20\x7d\x29\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\x74\x68\x69\x73\x2c\x20\x53\x43\x41\x4c\x41\x52\x24\x31\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x73\x74\x72\x69\x6e\x67\x20\x7d\x29\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\x74\x68\x69\x73\x2c\x20\x53\x45\x51\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x73\x65\x71\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x20\x3a\x20\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x20\x3f\x20\x73\x6f\x72\x74\x4d\x61\x70\x45\x6e\x74\x72\x69\x65\x73\x42\x79\x4b\x65\x79\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x70\x79\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x53\x63\x68\x65\x6d\x61\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2c\x20\x4f\x62\x6a\x65\x63\x74\x2e\x67\x65\x74\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x44\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x73\x28\x74\x68\x69\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x74\x61\x67\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x74\x61\x67\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x70\x79\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x64\x6f\x63\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x20\x26\x26\x20\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x69\x72\x20\x3d\x20\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x64\x6f\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x69\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x64\x69\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x68\x61\x73\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x6f\x63\x53\x74\x61\x72\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x68\x61\x73\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x68\x61\x73\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x2d\x2d\x2d\x22\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x78\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x53\x74\x72\x69\x6e\x67\x69\x66\x79\x43\x6f\x6e\x74\x65\x78\x74\x28\x64\x6f\x63\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x20\x7d\x20\x3d\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x29\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x73\x2c\x20\x22\x22\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6e\x74\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x6f\x64\x65\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x20\x26\x26\x20\x68\x61\x73\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x73\x2c\x20\x22\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x66\x6f\x72\x63\x65\x42\x6c\x6f\x63\x6b\x49\x6e\x64\x65\x6e\x74\x20\x3d\x20\x21\x21\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x63\x6f\x6e\x74\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x28\x29\x20\x3d\x3e\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x62\x6f\x64\x79\x20\x3d\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2c\x20\x63\x74\x78\x2c\x20\x28\x29\x20\x3d\x3e\x20\x63\x6f\x6e\x74\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x2c\x20\x6f\x6e\x43\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x62\x6f\x64\x79\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x62\x6f\x64\x79\x2c\x20\x22\x22\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6e\x74\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x28\x62\x6f\x64\x79\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x7c\x22\x20\x7c\x7c\x20\x62\x6f\x64\x79\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x3e\x22\x29\x20\x26\x26\x20\x6c\x69\x6e\x65\x73\x5b\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x2d\x2d\x2d\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x5b\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x20\x60\x2d\x2d\x2d\x20\x24\x7b\x62\x6f\x64\x79\x7d\x60\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x62\x6f\x64\x79\x29\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2c\x20\x63\x74\x78\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x28\x5f\x61\x20\x3d\x20\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x64\x6f\x63\x45\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x5c\x6e\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x2e\x2e\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x73\x2c\x20\x22\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x60\x2e\x2e\x2e\x20\x24\x7b\x63\x73\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x2e\x2e\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x64\x63\x20\x3d\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x63\x20\x26\x26\x20\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x64\x63\x20\x3d\x20\x64\x63\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x5c\x6e\x2b\x2f\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x21\x63\x68\x6f\x6d\x70\x4b\x65\x65\x70\x20\x7c\x7c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x26\x26\x20\x6c\x69\x6e\x65\x73\x5b\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x21\x3d\x3d\x20\x22\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x22\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x69\x6e\x64\x65\x6e\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x74\x72\x69\x6e\x67\x28\x64\x63\x29\x2c\x20\x22\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x69\x6e\x65\x73\x2e\x6a\x6f\x69\x6e\x28\x22\x5c\x6e\x22\x29\x20\x2b\x20\x22\x5c\x6e\x22\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x70\x70\x6c\x79\x52\x65\x76\x69\x76\x65\x72\x28\x72\x65\x76\x69\x76\x65\x72\x2c\x20\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x61\x6c\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x76\x61\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x2c\x20\x6c\x65\x6e\x20\x3d\x20\x76\x61\x6c\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x3c\x20\x6c\x65\x6e\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x30\x20\x3d\x20\x76\x61\x6c\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x31\x20\x3d\x20\x61\x70\x70\x6c\x79\x52\x65\x76\x69\x76\x65\x72\x28\x72\x65\x76\x69\x76\x65\x72\x2c\x20\x76\x61\x6c\x2c\x20\x53\x74\x72\x69\x6e\x67\x28\x69\x29\x2c\x20\x76\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x31\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x76\x61\x6c\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x31\x20\x21\x3d\x3d\x20\x76\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x5b\x69\x5d\x20\x3d\x20\x76\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4d\x61\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x20\x6f\x66\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x76\x61\x6c\x2e\x6b\x65\x79\x73\x28\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x30\x20\x3d\x20\x76\x61\x6c\x2e\x67\x65\x74\x28\x6b\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x31\x20\x3d\x20\x61\x70\x70\x6c\x79\x52\x65\x76\x69\x76\x65\x72\x28\x72\x65\x76\x69\x76\x65\x72\x2c\x20\x76\x61\x6c\x2c\x20\x6b\x2c\x20\x76\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x31\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x2e\x64\x65\x6c\x65\x74\x65\x28\x6b\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x31\x20\x21\x3d\x3d\x20\x76\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x2e\x73\x65\x74\x28\x6b\x2c\x20\x76\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x76\x30\x20\x6f\x66\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x76\x61\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x31\x20\x3d\x20\x61\x70\x70\x6c\x79\x52\x65\x76\x69\x76\x65\x72\x28\x72\x65\x76\x69\x76\x65\x72\x2c\x20\x76\x61\x6c\x2c\x20\x76\x30\x2c\x20\x76\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x31\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x2e\x64\x65\x6c\x65\x74\x65\x28\x76\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x31\x20\x21\x3d\x3d\x20\x76\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x2e\x64\x65\x6c\x65\x74\x65\x28\x76\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x2e\x61\x64\x64\x28\x76\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x2c\x20\x76\x30\x5d\x20\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x2e\x65\x6e\x74\x72\x69\x65\x73\x28\x76\x61\x6c\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x31\x20\x3d\x20\x61\x70\x70\x6c\x79\x52\x65\x76\x69\x76\x65\x72\x28\x72\x65\x76\x69\x76\x65\x72\x2c\x20\x76\x61\x6c\x2c\x20\x6b\x2c\x20\x76\x30\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x31\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x76\x61\x6c\x5b\x6b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x31\x20\x21\x3d\x3d\x20\x76\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x5b\x6b\x5d\x20\x3d\x20\x76\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x76\x69\x76\x65\x72\x2e\x63\x61\x6c\x6c\x28\x6f\x62\x6a\x2c\x20\x6b\x65\x79\x2c\x20\x76\x61\x6c\x29\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x44\x6f\x63\x75\x6d\x65\x6e\x74\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x76\x61\x6c\x75\x65\x2c\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x20\x3d\x20\x5b\x5d\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\x74\x68\x69\x73\x2c\x20\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x2c\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x44\x4f\x43\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x5f\x72\x65\x70\x6c\x61\x63\x65\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x7c\x7c\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x5f\x72\x65\x70\x6c\x61\x63\x65\x72\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x74\x41\x73\x42\x69\x67\x49\x6e\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6b\x65\x65\x70\x53\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6c\x6f\x67\x4c\x65\x76\x65\x6c\x3a\x20\x22\x77\x61\x72\x6e\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x74\x74\x79\x45\x72\x72\x6f\x72\x73\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x69\x63\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x75\x6e\x69\x71\x75\x65\x4b\x65\x79\x73\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x22\x31\x2e\x32\x22\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6f\x70\x74\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x7b\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x20\x7d\x20\x3d\x20\x6f\x70\x74\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x61\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x79\x61\x6d\x6c\x2e\x65\x78\x70\x6c\x69\x63\x69\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x79\x61\x6d\x6c\x2e\x76\x65\x72\x73\x69\x6f\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x28\x7b\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x53\x63\x68\x65\x6d\x61\x28\x76\x65\x72\x73\x69\x6f\x6e\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x2c\x20\x5f\x72\x65\x70\x6c\x61\x63\x65\x72\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6c\x6f\x6e\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x70\x79\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x63\x72\x65\x61\x74\x65\x28\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x5b\x4e\x4f\x44\x45\x5f\x54\x59\x50\x45\x5d\x3a\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x44\x4f\x43\x20\x7d\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x65\x72\x72\x6f\x72\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x63\x6c\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x73\x63\x68\x65\x6d\x61\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x2e\x63\x6c\x6f\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x69\x73\x4e\x6f\x64\x65\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x63\x6c\x6f\x6e\x65\x28\x63\x6f\x70\x79\x2e\x73\x63\x68\x65\x6d\x61\x29\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x72\x61\x6e\x67\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x70\x79\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x61\x6e\x67\x65\x2e\x73\x6c\x69\x63\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x70\x79\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x64\x64\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x73\x73\x65\x72\x74\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x61\x64\x64\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x64\x64\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x73\x73\x65\x72\x74\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x61\x64\x64\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x41\x6c\x69\x61\x73\x28\x6e\x6f\x64\x65\x2c\x20\x6e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x4e\x61\x6d\x65\x73\x28\x74\x68\x69\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x21\x6e\x61\x6d\x65\x20\x7c\x7c\x20\x70\x72\x65\x76\x2e\x68\x61\x73\x28\x6e\x61\x6d\x65\x29\x20\x3f\x20\x66\x69\x6e\x64\x4e\x65\x77\x41\x6e\x63\x68\x6f\x72\x28\x6e\x61\x6d\x65\x20\x7c\x7c\x20\x22\x61\x22\x2c\x20\x70\x72\x65\x76\x29\x20\x3a\x20\x6e\x61\x6d\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x41\x6c\x69\x61\x73\x28\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x2c\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x5f\x72\x65\x70\x6c\x61\x63\x65\x72\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2e\x63\x61\x6c\x6c\x28\x7b\x20\x22\x22\x3a\x20\x76\x61\x6c\x75\x65\x20\x7d\x2c\x20\x22\x22\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x5f\x72\x65\x70\x6c\x61\x63\x65\x72\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x54\x6f\x53\x74\x72\x20\x3d\x20\x28\x76\x29\x20\x3d\x3e\x20\x74\x79\x70\x65\x6f\x66\x20\x76\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x7c\x7c\x20\x76\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x53\x74\x72\x69\x6e\x67\x20\x7c\x7c\x20\x76\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4e\x75\x6d\x62\x65\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x73\x53\x74\x72\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2e\x66\x69\x6c\x74\x65\x72\x28\x6b\x65\x79\x54\x6f\x53\x74\x72\x29\x2e\x6d\x61\x70\x28\x53\x74\x72\x69\x6e\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x73\x53\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x2e\x63\x6f\x6e\x63\x61\x74\x28\x61\x73\x53\x74\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x5f\x72\x65\x70\x6c\x61\x63\x65\x72\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x32\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x61\x6c\x69\x61\x73\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x73\x2c\x20\x61\x6e\x63\x68\x6f\x72\x50\x72\x65\x66\x69\x78\x2c\x20\x66\x6c\x6f\x77\x2c\x20\x6b\x65\x65\x70\x55\x6e\x64\x65\x66\x69\x6e\x65\x64\x2c\x20\x6f\x6e\x54\x61\x67\x4f\x62\x6a\x2c\x20\x74\x61\x67\x20\x7d\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x2c\x20\x73\x65\x74\x41\x6e\x63\x68\x6f\x72\x73\x2c\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x20\x7d\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x41\x6e\x63\x68\x6f\x72\x73\x28\x74\x68\x69\x73\x2c\x20\x61\x6e\x63\x68\x6f\x72\x50\x72\x65\x66\x69\x78\x20\x7c\x7c\x20\x22\x61\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x78\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x6c\x69\x61\x73\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x73\x3a\x20\x61\x6c\x69\x61\x73\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x73\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x61\x6c\x69\x61\x73\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x61\x6c\x69\x61\x73\x44\x75\x70\x6c\x69\x63\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x73\x20\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6b\x65\x65\x70\x55\x6e\x64\x65\x66\x69\x6e\x65\x64\x3a\x20\x6b\x65\x65\x70\x55\x6e\x64\x65\x66\x69\x6e\x65\x64\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6b\x65\x65\x70\x55\x6e\x64\x65\x66\x69\x6e\x65\x64\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6b\x65\x65\x70\x55\x6e\x64\x65\x66\x69\x6e\x65\x64\x20\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x54\x61\x67\x4f\x62\x6a\x2c\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x70\x6c\x61\x63\x65\x72\x3a\x20\x5f\x72\x65\x70\x6c\x61\x63\x65\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x4f\x62\x6a\x65\x63\x74\x73\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x2c\x20\x74\x61\x67\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x66\x6c\x6f\x77\x20\x26\x26\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x6e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x66\x6c\x6f\x77\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x73\x65\x74\x41\x6e\x63\x68\x6f\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x50\x61\x69\x72\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x6b\x65\x79\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x72\x65\x61\x74\x65\x4e\x6f\x64\x65\x28\x76\x61\x6c\x75\x65\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x2c\x20\x76\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x73\x73\x65\x72\x74\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x64\x65\x6c\x65\x74\x65\x28\x6b\x65\x79\x29\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x64\x65\x6c\x65\x74\x65\x49\x6e\x28\x70\x61\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x70\x74\x79\x50\x61\x74\x68\x28\x70\x61\x74\x68\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\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\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x73\x73\x65\x72\x74\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x64\x65\x6c\x65\x74\x65\x49\x6e\x28\x70\x61\x74\x68\x29\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x67\x65\x74\x28\x6b\x65\x79\x2c\x20\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x29\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x70\x74\x79\x50\x61\x74\x68\x28\x70\x61\x74\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x21\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x76\x61\x6c\x75\x65\x20\x3a\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x67\x65\x74\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x6b\x65\x65\x70\x53\x63\x61\x6c\x61\x72\x29\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x68\x61\x73\x28\x6b\x65\x79\x29\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x68\x61\x73\x49\x6e\x28\x70\x61\x74\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x70\x74\x79\x50\x61\x74\x68\x28\x70\x61\x74\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x3f\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x68\x61\x73\x49\x6e\x28\x70\x61\x74\x68\x29\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x46\x72\x6f\x6d\x50\x61\x74\x68\x28\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x2c\x20\x5b\x6b\x65\x79\x5d\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x73\x73\x65\x72\x74\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x73\x65\x74\x28\x6b\x65\x79\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x70\x74\x79\x50\x61\x74\x68\x28\x70\x61\x74\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x46\x72\x6f\x6d\x50\x61\x74\x68\x28\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x2c\x20\x41\x72\x72\x61\x79\x2e\x66\x72\x6f\x6d\x28\x70\x61\x74\x68\x29\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x73\x73\x65\x72\x74\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x73\x65\x74\x49\x6e\x28\x70\x61\x74\x68\x2c\x20\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x53\x63\x68\x65\x6d\x61\x28\x76\x65\x72\x73\x69\x6f\x6e\x32\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x20\x3d\x20\x53\x74\x72\x69\x6e\x67\x28\x76\x65\x72\x73\x69\x6f\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6f\x70\x74\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x76\x65\x72\x73\x69\x6f\x6e\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x31\x2e\x31\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x79\x61\x6d\x6c\x2e\x76\x65\x72\x73\x69\x6f\x6e\x20\x3d\x20\x22\x31\x2e\x31\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x28\x7b\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x22\x31\x2e\x31\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x20\x3d\x20\x7b\x20\x6d\x65\x72\x67\x65\x3a\x20\x74\x72\x75\x65\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x4b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x22\x79\x61\x6d\x6c\x2d\x31\x2e\x31\x22\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x31\x2e\x32\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x78\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x79\x61\x6d\x6c\x2e\x76\x65\x72\x73\x69\x6f\x6e\x20\x3d\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x28\x7b\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x76\x65\x72\x73\x69\x6f\x6e\x32\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x20\x3d\x20\x7b\x20\x6d\x65\x72\x67\x65\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x72\x65\x73\x6f\x6c\x76\x65\x4b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x3a\x20\x74\x72\x75\x65\x2c\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x22\x63\x6f\x72\x65\x22\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x6e\x75\x6c\x6c\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x76\x20\x3d\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x76\x65\x72\x73\x69\x6f\x6e\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x27\x31\x2e\x31\x27\x2c\x20\x27\x31\x2e\x32\x27\x20\x6f\x72\x20\x6e\x75\x6c\x6c\x20\x61\x73\x20\x66\x69\x72\x73\x74\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x2c\x20\x62\x75\x74\x20\x66\x6f\x75\x6e\x64\x3a\x20\x24\x7b\x73\x76\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x63\x68\x65\x6d\x61\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x63\x68\x65\x6d\x61\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x70\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x63\x68\x65\x6d\x61\x20\x3d\x20\x6e\x65\x77\x20\x53\x63\x68\x65\x6d\x61\x28\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x6f\x70\x74\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x57\x69\x74\x68\x20\x61\x20\x6e\x75\x6c\x6c\x20\x59\x41\x4d\x4c\x20\x76\x65\x72\x73\x69\x6f\x6e\x2c\x20\x74\x68\x65\x20\x7b\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x53\x63\x68\x65\x6d\x61\x20\x7d\x20\x6f\x70\x74\x69\x6f\x6e\x20\x69\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64\x60\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x28\x7b\x20\x6a\x73\x6f\x6e\x2c\x20\x6a\x73\x6f\x6e\x41\x72\x67\x2c\x20\x6d\x61\x70\x41\x73\x4d\x61\x70\x2c\x20\x6d\x61\x78\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x2c\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x2c\x20\x72\x65\x76\x69\x76\x65\x72\x20\x7d\x20\x3d\x20\x7b\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x78\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x73\x3a\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x6e\x65\x77\x20\x4d\x61\x70\x28\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x3a\x20\x74\x68\x69\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x6b\x65\x65\x70\x3a\x20\x21\x6a\x73\x6f\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x41\x73\x4d\x61\x70\x3a\x20\x6d\x61\x70\x41\x73\x4d\x61\x70\x20\x3d\x3d\x3d\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x4b\x65\x79\x57\x61\x72\x6e\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x78\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x3a\x20\x74\x79\x70\x65\x6f\x66\x20\x6d\x61\x78\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x6d\x61\x78\x41\x6c\x69\x61\x73\x43\x6f\x75\x6e\x74\x20\x3a\x20\x31\x30\x30\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x74\x6f\x4a\x53\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2c\x20\x6a\x73\x6f\x6e\x41\x72\x67\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6a\x73\x6f\x6e\x41\x72\x67\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6a\x73\x6f\x6e\x41\x72\x67\x20\x3a\x20\x22\x22\x2c\x20\x63\x74\x78\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x7b\x20\x63\x6f\x75\x6e\x74\x2c\x20\x72\x65\x73\x3a\x20\x72\x65\x73\x32\x20\x7d\x20\x6f\x66\x20\x63\x74\x78\x2e\x61\x6e\x63\x68\x6f\x72\x73\x2e\x76\x61\x6c\x75\x65\x73\x28\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x28\x72\x65\x73\x32\x2c\x20\x63\x6f\x75\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x76\x69\x76\x65\x72\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x61\x70\x70\x6c\x79\x52\x65\x76\x69\x76\x65\x72\x28\x72\x65\x76\x69\x76\x65\x72\x2c\x20\x7b\x20\x22\x22\x3a\x20\x72\x65\x73\x20\x7d\x2c\x20\x22\x22\x2c\x20\x72\x65\x73\x29\x20\x3a\x20\x72\x65\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4a\x53\x4f\x4e\x28\x6a\x73\x6f\x6e\x41\x72\x67\x2c\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x74\x6f\x4a\x53\x28\x7b\x20\x6a\x73\x6f\x6e\x3a\x20\x74\x72\x75\x65\x2c\x20\x6a\x73\x6f\x6e\x41\x72\x67\x2c\x20\x6d\x61\x70\x41\x73\x4d\x61\x70\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x6e\x41\x6e\x63\x68\x6f\x72\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x53\x74\x72\x69\x6e\x67\x28\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x44\x6f\x63\x75\x6d\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x65\x72\x72\x6f\x72\x73\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x69\x65\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x22\x69\x6e\x64\x65\x6e\x74\x22\x20\x69\x6e\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x26\x26\x20\x28\x21\x4e\x75\x6d\x62\x65\x72\x2e\x69\x73\x49\x6e\x74\x65\x67\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x69\x6e\x64\x65\x6e\x74\x29\x20\x7c\x7c\x20\x4e\x75\x6d\x62\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x69\x6e\x64\x65\x6e\x74\x29\x20\x3c\x3d\x20\x30\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x20\x3d\x20\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x69\x6e\x64\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x22\x69\x6e\x64\x65\x6e\x74\x22\x20\x6f\x70\x74\x69\x6f\x6e\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x20\x70\x6f\x73\x69\x74\x69\x76\x65\x20\x69\x6e\x74\x65\x67\x65\x72\x2c\x20\x6e\x6f\x74\x20\x24\x7b\x73\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x74\x68\x69\x73\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x73\x73\x65\x72\x74\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x63\x6f\x6e\x74\x65\x6e\x74\x73\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x45\x78\x70\x65\x63\x74\x65\x64\x20\x61\x20\x59\x41\x4d\x4c\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x61\x73\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x22\x29\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x59\x41\x4d\x4c\x45\x72\x72\x6f\x72\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x45\x72\x72\x6f\x72\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x6e\x61\x6d\x65\x2c\x20\x70\x6f\x73\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x20\x3d\x20\x6e\x61\x6d\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x64\x65\x20\x3d\x20\x63\x6f\x64\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x65\x73\x73\x61\x67\x65\x20\x3d\x20\x6d\x65\x73\x73\x61\x67\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x70\x6f\x73\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x59\x41\x4d\x4c\x50\x61\x72\x73\x65\x45\x72\x72\x6f\x72\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x59\x41\x4d\x4c\x45\x72\x72\x6f\x72\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x70\x6f\x73\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x22\x59\x41\x4d\x4c\x50\x61\x72\x73\x65\x45\x72\x72\x6f\x72\x22\x2c\x20\x70\x6f\x73\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x59\x41\x4d\x4c\x57\x61\x72\x6e\x69\x6e\x67\x20\x65\x78\x74\x65\x6e\x64\x73\x20\x59\x41\x4d\x4c\x45\x72\x72\x6f\x72\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x70\x6f\x73\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x75\x70\x65\x72\x28\x22\x59\x41\x4d\x4c\x57\x61\x72\x6e\x69\x6e\x67\x22\x2c\x20\x70\x6f\x73\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x74\x74\x69\x66\x79\x45\x72\x72\x6f\x72\x20\x3d\x20\x28\x73\x72\x63\x2c\x20\x6c\x63\x29\x20\x3d\x3e\x20\x28\x65\x72\x72\x6f\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x65\x72\x72\x6f\x72\x2e\x70\x6f\x73\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x65\x72\x72\x6f\x72\x2e\x6c\x69\x6e\x65\x50\x6f\x73\x20\x3d\x20\x65\x72\x72\x6f\x72\x2e\x70\x6f\x73\x2e\x6d\x61\x70\x28\x28\x70\x6f\x73\x29\x20\x3d\x3e\x20\x6c\x63\x2e\x6c\x69\x6e\x65\x50\x6f\x73\x28\x70\x6f\x73\x29\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6c\x69\x6e\x65\x2c\x20\x63\x6f\x6c\x20\x7d\x20\x3d\x20\x65\x72\x72\x6f\x72\x2e\x6c\x69\x6e\x65\x50\x6f\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x65\x72\x72\x6f\x72\x2e\x6d\x65\x73\x73\x61\x67\x65\x20\x2b\x3d\x20\x60\x20\x61\x74\x20\x6c\x69\x6e\x65\x20\x24\x7b\x6c\x69\x6e\x65\x7d\x2c\x20\x63\x6f\x6c\x75\x6d\x6e\x20\x24\x7b\x63\x6f\x6c\x7d\x60\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x69\x20\x3d\x20\x63\x6f\x6c\x20\x2d\x20\x31\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6c\x69\x6e\x65\x53\x74\x72\x20\x3d\x20\x73\x72\x63\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x6c\x63\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x5b\x6c\x69\x6e\x65\x20\x2d\x20\x31\x5d\x2c\x20\x6c\x63\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x5b\x6c\x69\x6e\x65\x5d\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5b\x5c\x6e\x5c\x72\x5d\x2b\x24\x2f\x2c\x20\x22\x22\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x69\x20\x3e\x3d\x20\x36\x30\x20\x26\x26\x20\x6c\x69\x6e\x65\x53\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x38\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x72\x69\x6d\x53\x74\x61\x72\x74\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x63\x69\x20\x2d\x20\x33\x39\x2c\x20\x6c\x69\x6e\x65\x53\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x37\x39\x29\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x53\x74\x72\x20\x3d\x20\x22\x5c\x75\x32\x30\x32\x36\x22\x20\x2b\x20\x6c\x69\x6e\x65\x53\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x74\x72\x69\x6d\x53\x74\x61\x72\x74\x29\x3b\x0a\x20\x20\x20\x20\x63\x69\x20\x2d\x3d\x20\x74\x72\x69\x6d\x53\x74\x61\x72\x74\x20\x2d\x20\x31\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x53\x74\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x38\x30\x29\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x53\x74\x72\x20\x3d\x20\x6c\x69\x6e\x65\x53\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x37\x39\x29\x20\x2b\x20\x22\x5c\x75\x32\x30\x32\x36\x22\x3b\x0a\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x20\x3e\x20\x31\x20\x26\x26\x20\x2f\x5e\x20\x2a\x24\x2f\x2e\x74\x65\x73\x74\x28\x6c\x69\x6e\x65\x53\x74\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x63\x69\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x73\x72\x63\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x6c\x63\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x5b\x6c\x69\x6e\x65\x20\x2d\x20\x32\x5d\x2c\x20\x6c\x63\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x5b\x6c\x69\x6e\x65\x20\x2d\x20\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x38\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x20\x3d\x20\x70\x72\x65\x76\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x37\x39\x29\x20\x2b\x20\x22\x5c\x75\x32\x30\x32\x36\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x53\x74\x72\x20\x3d\x20\x70\x72\x65\x76\x20\x2b\x20\x6c\x69\x6e\x65\x53\x74\x72\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x2f\x5b\x5e\x20\x5d\x2f\x2e\x74\x65\x73\x74\x28\x6c\x69\x6e\x65\x53\x74\x72\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x6f\x75\x6e\x74\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x65\x72\x72\x6f\x72\x2e\x6c\x69\x6e\x65\x50\x6f\x73\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x20\x26\x26\x20\x65\x6e\x64\x2e\x6c\x69\x6e\x65\x20\x3d\x3d\x3d\x20\x6c\x69\x6e\x65\x20\x26\x26\x20\x65\x6e\x64\x2e\x63\x6f\x6c\x20\x3e\x20\x63\x6f\x6c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x75\x6e\x74\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x69\x6e\x28\x65\x6e\x64\x2e\x63\x6f\x6c\x20\x2d\x20\x63\x6f\x6c\x2c\x20\x38\x30\x20\x2d\x20\x63\x69\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x3d\x20\x22\x20\x22\x2e\x72\x65\x70\x65\x61\x74\x28\x63\x69\x29\x20\x2b\x20\x22\x5e\x22\x2e\x72\x65\x70\x65\x61\x74\x28\x63\x6f\x75\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x2e\x6d\x65\x73\x73\x61\x67\x65\x20\x2b\x3d\x20\x60\x3a\x0a\x0a\x24\x7b\x6c\x69\x6e\x65\x53\x74\x72\x7d\x0a\x24\x7b\x70\x6f\x69\x6e\x74\x65\x72\x7d\x0a\x60\x3b\x0a\x20\x20\x7d\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x73\x28\x74\x6f\x6b\x65\x6e\x73\x2c\x20\x7b\x20\x66\x6c\x6f\x77\x2c\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x2c\x20\x6e\x65\x78\x74\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x20\x7d\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x65\x70\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x41\x66\x74\x65\x72\x50\x72\x6f\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x71\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x6c\x65\x74\x20\x74\x61\x67\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6d\x6d\x61\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x6c\x65\x74\x20\x66\x6f\x75\x6e\x64\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x74\x6f\x6b\x65\x6e\x20\x6f\x66\x20\x74\x6f\x6b\x65\x6e\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x71\x53\x70\x61\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x73\x70\x61\x63\x65\x22\x20\x26\x26\x20\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x20\x26\x26\x20\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x6f\x6d\x6d\x61\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x54\x61\x67\x73\x20\x61\x6e\x64\x20\x61\x6e\x63\x68\x6f\x72\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x70\x61\x72\x61\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x74\x6f\x6b\x65\x6e\x20\x62\x79\x20\x77\x68\x69\x74\x65\x20\x73\x70\x61\x63\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x71\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x66\x6c\x6f\x77\x20\x26\x26\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x26\x26\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x21\x3d\x3d\x20\x22\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x22\x20\x26\x26\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x42\x5f\x41\x53\x5f\x49\x4e\x44\x45\x4e\x54\x22\x2c\x20\x22\x54\x61\x62\x73\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x61\x73\x20\x69\x6e\x64\x65\x6e\x74\x61\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x68\x61\x73\x53\x70\x61\x63\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x43\x6f\x6d\x6d\x65\x6e\x74\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x70\x61\x72\x61\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x6f\x74\x68\x65\x72\x20\x74\x6f\x6b\x65\x6e\x73\x20\x62\x79\x20\x77\x68\x69\x74\x65\x20\x73\x70\x61\x63\x65\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x62\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x20\x7c\x7c\x20\x22\x20\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x63\x62\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x65\x70\x20\x2b\x20\x63\x62\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x65\x70\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x53\x65\x70\x20\x2b\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x20\x7c\x7c\x20\x74\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x41\x66\x74\x65\x72\x50\x72\x6f\x70\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6e\x63\x68\x6f\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x4d\x55\x4c\x54\x49\x50\x4c\x45\x5f\x41\x4e\x43\x48\x4f\x52\x53\x22\x2c\x20\x22\x41\x20\x6e\x6f\x64\x65\x20\x63\x61\x6e\x20\x68\x61\x76\x65\x20\x61\x74\x20\x6d\x6f\x73\x74\x20\x6f\x6e\x65\x20\x61\x6e\x63\x68\x6f\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2e\x65\x6e\x64\x73\x57\x69\x74\x68\x28\x22\x3a\x22\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x2c\x20\x22\x42\x41\x44\x5f\x41\x4c\x49\x41\x53\x22\x2c\x20\x22\x41\x6e\x63\x68\x6f\x72\x20\x65\x6e\x64\x69\x6e\x67\x20\x69\x6e\x20\x3a\x20\x69\x73\x20\x61\x6d\x62\x69\x67\x75\x6f\x75\x73\x22\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x61\x72\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x71\x53\x70\x61\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x74\x61\x67\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x4d\x55\x4c\x54\x49\x50\x4c\x45\x5f\x54\x41\x47\x53\x22\x2c\x20\x22\x41\x20\x6e\x6f\x64\x65\x20\x63\x61\x6e\x20\x68\x61\x76\x65\x20\x61\x74\x20\x6d\x6f\x73\x74\x20\x6f\x6e\x65\x20\x74\x61\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x67\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x61\x72\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x71\x53\x70\x61\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x20\x7c\x7c\x20\x74\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x42\x41\x44\x5f\x50\x52\x4f\x50\x5f\x4f\x52\x44\x45\x52\x22\x2c\x20\x60\x41\x6e\x63\x68\x6f\x72\x73\x20\x61\x6e\x64\x20\x74\x61\x67\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x24\x7b\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x7d\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x6f\x75\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x24\x7b\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x7d\x20\x69\x6e\x20\x24\x7b\x66\x6c\x6f\x77\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x66\x6c\x6f\x77\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x66\x6c\x6f\x77\x20\x3a\x20\x22\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x75\x6e\x64\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x61\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x6c\x6f\x77\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x2c\x20\x69\x6e\x20\x24\x7b\x66\x6c\x6f\x77\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x61\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\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\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x24\x7b\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x7d\x20\x74\x6f\x6b\x65\x6e\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x4e\x65\x77\x6c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x73\x5b\x74\x6f\x6b\x65\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x6c\x61\x73\x74\x20\x3f\x20\x6c\x61\x73\x74\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x6c\x61\x73\x74\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x71\x53\x70\x61\x63\x65\x20\x26\x26\x20\x6e\x65\x78\x74\x20\x26\x26\x20\x6e\x65\x78\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x73\x70\x61\x63\x65\x22\x20\x26\x26\x20\x6e\x65\x78\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x20\x26\x26\x20\x6e\x65\x78\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x6f\x6d\x6d\x61\x22\x20\x26\x26\x20\x28\x6e\x65\x78\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x20\x7c\x7c\x20\x6e\x65\x78\x74\x2e\x73\x6f\x75\x72\x63\x65\x20\x21\x3d\x3d\x20\x22\x22\x29\x29\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6e\x65\x78\x74\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x54\x61\x67\x73\x20\x61\x6e\x64\x20\x61\x6e\x63\x68\x6f\x72\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x70\x61\x72\x61\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x6e\x65\x78\x74\x20\x74\x6f\x6b\x65\x6e\x20\x62\x79\x20\x77\x68\x69\x74\x65\x20\x73\x70\x61\x63\x65\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6d\x6d\x61\x2c\x0a\x20\x20\x20\x20\x66\x6f\x75\x6e\x64\x2c\x0a\x20\x20\x20\x20\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x2c\x0a\x20\x20\x20\x20\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x41\x66\x74\x65\x72\x50\x72\x6f\x70\x2c\x0a\x20\x20\x20\x20\x61\x6e\x63\x68\x6f\x72\x2c\x0a\x20\x20\x20\x20\x74\x61\x67\x2c\x0a\x20\x20\x20\x20\x65\x6e\x64\x2c\x0a\x20\x20\x20\x20\x73\x74\x61\x72\x74\x3a\x20\x73\x74\x61\x72\x74\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x73\x74\x61\x72\x74\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x73\x74\x61\x72\x74\x20\x3a\x20\x65\x6e\x64\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x4e\x65\x77\x6c\x69\x6e\x65\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x6b\x65\x79\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6b\x65\x79\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6c\x69\x61\x73\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x2e\x73\x6f\x75\x72\x63\x65\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x22\x5c\x6e\x22\x29\x29\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\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x2e\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x73\x74\x20\x6f\x66\x20\x6b\x65\x79\x2e\x65\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x29\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x6f\x66\x20\x6b\x65\x79\x2e\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x73\x74\x20\x6f\x66\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x29\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\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x73\x74\x20\x6f\x66\x20\x69\x74\x2e\x73\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x29\x0a\x20\x20\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\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x61\x69\x6e\x73\x4e\x65\x77\x6c\x69\x6e\x65\x28\x69\x74\x2e\x6b\x65\x79\x29\x20\x7c\x7c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x4e\x65\x77\x6c\x69\x6e\x65\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x29\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6c\x6f\x77\x49\x6e\x64\x65\x6e\x74\x43\x68\x65\x63\x6b\x28\x69\x6e\x64\x65\x6e\x74\x2c\x20\x66\x63\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x28\x66\x63\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x66\x63\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x66\x63\x2e\x74\x79\x70\x65\x29\x20\x3d\x3d\x3d\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x66\x63\x2e\x65\x6e\x64\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x69\x6e\x64\x65\x6e\x74\x20\x26\x26\x20\x28\x65\x6e\x64\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x5d\x22\x20\x7c\x7c\x20\x65\x6e\x64\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x7d\x22\x29\x20\x26\x26\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x4e\x65\x77\x6c\x69\x6e\x65\x28\x66\x63\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x22\x46\x6c\x6f\x77\x20\x65\x6e\x64\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x73\x68\x6f\x75\x6c\x64\x20\x62\x65\x20\x6d\x6f\x72\x65\x20\x69\x6e\x64\x65\x6e\x74\x65\x64\x20\x74\x68\x61\x6e\x20\x70\x61\x72\x65\x6e\x74\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x65\x6e\x64\x2c\x20\x22\x42\x41\x44\x5f\x49\x4e\x44\x45\x4e\x54\x22\x2c\x20\x6d\x73\x67\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6d\x61\x70\x49\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x74\x78\x2c\x20\x69\x74\x65\x6d\x73\x2c\x20\x73\x65\x61\x72\x63\x68\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x75\x6e\x69\x71\x75\x65\x4b\x65\x79\x73\x20\x7d\x20\x3d\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x69\x66\x20\x28\x75\x6e\x69\x71\x75\x65\x4b\x65\x79\x73\x20\x3d\x3d\x3d\x20\x66\x61\x6c\x73\x65\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x45\x71\x75\x61\x6c\x20\x3d\x20\x74\x79\x70\x65\x6f\x66\x20\x75\x6e\x69\x71\x75\x65\x4b\x65\x79\x73\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x3f\x20\x75\x6e\x69\x71\x75\x65\x4b\x65\x79\x73\x20\x3a\x20\x28\x61\x2c\x20\x62\x29\x20\x3d\x3e\x20\x61\x20\x3d\x3d\x3d\x20\x62\x20\x7c\x7c\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x61\x29\x20\x26\x26\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x62\x29\x20\x26\x26\x20\x61\x2e\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x62\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x21\x28\x61\x2e\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x22\x3c\x3c\x22\x20\x26\x26\x20\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2e\x6d\x65\x72\x67\x65\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x74\x65\x6d\x73\x2e\x73\x6f\x6d\x65\x28\x28\x70\x61\x69\x72\x29\x20\x3d\x3e\x20\x69\x73\x45\x71\x75\x61\x6c\x28\x70\x61\x69\x72\x2e\x6b\x65\x79\x2c\x20\x73\x65\x61\x72\x63\x68\x29\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x43\x6f\x6c\x4d\x73\x67\x20\x3d\x20\x22\x41\x6c\x6c\x20\x6d\x61\x70\x70\x69\x6e\x67\x20\x69\x74\x65\x6d\x73\x20\x6d\x75\x73\x74\x20\x73\x74\x61\x72\x74\x20\x61\x74\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x63\x6f\x6c\x75\x6d\x6e\x22\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x42\x6c\x6f\x63\x6b\x4d\x61\x70\x28\x7b\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x2c\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x62\x6d\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x4d\x61\x70\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x61\x74\x52\x6f\x6f\x74\x29\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x61\x74\x52\x6f\x6f\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x62\x6d\x2e\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6c\x6c\x49\x74\x65\x6d\x20\x6f\x66\x20\x62\x6d\x2e\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x6b\x65\x79\x2c\x20\x73\x65\x70\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x3d\x20\x63\x6f\x6c\x6c\x49\x74\x65\x6d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x50\x72\x6f\x70\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x73\x28\x73\x74\x61\x72\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x3a\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x3a\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6b\x65\x79\x20\x3a\x20\x73\x65\x70\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x73\x65\x70\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x73\x65\x70\x5b\x30\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x20\x3d\x20\x21\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x42\x4c\x4f\x43\x4b\x5f\x41\x53\x5f\x49\x4d\x50\x4c\x49\x43\x49\x54\x5f\x4b\x45\x59\x22\x2c\x20\x22\x41\x20\x62\x6c\x6f\x63\x6b\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x6d\x61\x79\x20\x6e\x6f\x74\x20\x62\x65\x20\x75\x73\x65\x64\x20\x61\x73\x20\x61\x6e\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x20\x6d\x61\x70\x20\x6b\x65\x79\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x22\x69\x6e\x64\x65\x6e\x74\x22\x20\x69\x6e\x20\x6b\x65\x79\x20\x26\x26\x20\x6b\x65\x79\x2e\x69\x6e\x64\x65\x6e\x74\x20\x21\x3d\x3d\x20\x62\x6d\x2e\x69\x6e\x64\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x42\x41\x44\x5f\x49\x4e\x44\x45\x4e\x54\x22\x2c\x20\x73\x74\x61\x72\x74\x43\x6f\x6c\x4d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x61\x6e\x63\x68\x6f\x72\x20\x26\x26\x20\x21\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x74\x61\x67\x20\x26\x26\x20\x21\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x70\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x20\x2b\x20\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x41\x66\x74\x65\x72\x50\x72\x6f\x70\x20\x7c\x7c\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x4e\x65\x77\x6c\x69\x6e\x65\x28\x6b\x65\x79\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6b\x65\x79\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6b\x65\x79\x20\x3a\x20\x73\x74\x61\x72\x74\x5b\x73\x74\x61\x72\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2c\x20\x22\x4d\x55\x4c\x54\x49\x4c\x49\x4e\x45\x5f\x49\x4d\x50\x4c\x49\x43\x49\x54\x5f\x4b\x45\x59\x22\x2c\x20\x22\x49\x6d\x70\x6c\x69\x63\x69\x74\x20\x6b\x65\x79\x73\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x62\x65\x20\x6f\x6e\x20\x61\x20\x73\x69\x6e\x67\x6c\x65\x20\x6c\x69\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x28\x28\x5f\x61\x20\x3d\x20\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x69\x6e\x64\x65\x6e\x74\x29\x20\x21\x3d\x3d\x20\x62\x6d\x2e\x69\x6e\x64\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x42\x41\x44\x5f\x49\x4e\x44\x45\x4e\x54\x22\x2c\x20\x73\x74\x61\x72\x74\x43\x6f\x6c\x4d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x53\x74\x61\x72\x74\x20\x3d\x20\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x4e\x6f\x64\x65\x20\x3d\x20\x6b\x65\x79\x20\x3f\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x6b\x65\x79\x2c\x20\x6b\x65\x79\x50\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x6b\x65\x79\x53\x74\x61\x72\x74\x2c\x20\x73\x74\x61\x72\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x6b\x65\x79\x50\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2e\x63\x6f\x6d\x70\x61\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x6c\x6f\x77\x49\x6e\x64\x65\x6e\x74\x43\x68\x65\x63\x6b\x28\x62\x6d\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x20\x6b\x65\x79\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x70\x49\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x74\x78\x2c\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2c\x20\x6b\x65\x79\x4e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6b\x65\x79\x53\x74\x61\x72\x74\x2c\x20\x22\x44\x55\x50\x4c\x49\x43\x41\x54\x45\x5f\x4b\x45\x59\x22\x2c\x20\x22\x4d\x61\x70\x20\x6b\x65\x79\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x75\x6e\x69\x71\x75\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x73\x28\x73\x65\x70\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x73\x65\x70\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x73\x65\x70\x20\x3a\x20\x5b\x5d\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x3a\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x3a\x20\x76\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x5b\x32\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x3a\x20\x21\x6b\x65\x79\x20\x7c\x7c\x20\x6b\x65\x79\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x76\x61\x6c\x75\x65\x2e\x74\x79\x70\x65\x29\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x20\x26\x26\x20\x21\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x42\x4c\x4f\x43\x4b\x5f\x41\x53\x5f\x49\x4d\x50\x4c\x49\x43\x49\x54\x5f\x4b\x45\x59\x22\x2c\x20\x22\x4e\x65\x73\x74\x65\x64\x20\x6d\x61\x70\x70\x69\x6e\x67\x73\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x69\x6e\x20\x63\x6f\x6d\x70\x61\x63\x74\x20\x6d\x61\x70\x70\x69\x6e\x67\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x72\x69\x63\x74\x20\x26\x26\x20\x6b\x65\x79\x50\x72\x6f\x70\x73\x2e\x73\x74\x61\x72\x74\x20\x3c\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x2e\x6f\x66\x66\x73\x65\x74\x20\x2d\x20\x31\x30\x32\x34\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x2c\x20\x22\x4b\x45\x59\x5f\x4f\x56\x45\x52\x5f\x31\x30\x32\x34\x5f\x43\x48\x41\x52\x53\x22\x2c\x20\x22\x54\x68\x65\x20\x3a\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x74\x20\x6d\x6f\x73\x74\x20\x31\x30\x32\x34\x20\x63\x68\x61\x72\x73\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x73\x74\x61\x72\x74\x20\x6f\x66\x20\x61\x6e\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x20\x62\x6c\x6f\x63\x6b\x20\x6d\x61\x70\x70\x69\x6e\x67\x20\x6b\x65\x79\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x65\x70\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2e\x63\x6f\x6d\x70\x61\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6c\x6f\x77\x49\x6e\x64\x65\x6e\x74\x43\x68\x65\x63\x6b\x28\x62\x6d\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x5b\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x20\x3d\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x65\x79\x4e\x6f\x64\x65\x2c\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6b\x65\x65\x70\x53\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x69\x72\x2e\x73\x72\x63\x54\x6f\x6b\x65\x6e\x20\x3d\x20\x63\x6f\x6c\x6c\x49\x74\x65\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x70\x61\x69\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6d\x70\x6c\x69\x63\x69\x74\x4b\x65\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x49\x6d\x70\x6c\x69\x63\x69\x74\x20\x6d\x61\x70\x20\x6b\x65\x79\x73\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x62\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x65\x64\x20\x62\x79\x20\x6d\x61\x70\x20\x76\x61\x6c\x75\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x20\x2b\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x20\x3d\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x65\x79\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6b\x65\x65\x70\x53\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x69\x72\x2e\x73\x72\x63\x54\x6f\x6b\x65\x6e\x20\x3d\x20\x63\x6f\x6c\x6c\x49\x74\x65\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x70\x61\x69\x72\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x6d\x61\x70\x32\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x5b\x62\x6d\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x6f\x66\x66\x73\x65\x74\x5d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6d\x61\x70\x32\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x42\x6c\x6f\x63\x6b\x53\x65\x71\x28\x7b\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x2c\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x62\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x71\x32\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x53\x65\x71\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x61\x74\x52\x6f\x6f\x74\x29\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x61\x74\x52\x6f\x6f\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x62\x73\x2e\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x6f\x66\x20\x62\x73\x2e\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x73\x28\x73\x74\x61\x72\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x3a\x20\x22\x73\x65\x71\x2d\x69\x74\x65\x6d\x2d\x69\x6e\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x3a\x20\x76\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x70\x72\x6f\x70\x73\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x61\x6e\x63\x68\x6f\x72\x20\x7c\x7c\x20\x70\x72\x6f\x70\x73\x2e\x74\x61\x67\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x42\x41\x44\x5f\x49\x4e\x44\x45\x4e\x54\x22\x2c\x20\x22\x41\x6c\x6c\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x69\x74\x65\x6d\x73\x20\x6d\x75\x73\x74\x20\x73\x74\x61\x72\x74\x20\x61\x74\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x63\x6f\x6c\x75\x6d\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x53\x65\x71\x75\x65\x6e\x63\x65\x20\x69\x74\x65\x6d\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x2d\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x74\x61\x72\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2e\x63\x6f\x6d\x70\x61\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x6c\x6f\x77\x49\x6e\x64\x65\x6e\x74\x43\x68\x65\x63\x6b\x28\x62\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x6e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x5b\x32\x5d\x3b\x0a\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x6e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x71\x32\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x5b\x62\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x6f\x66\x66\x73\x65\x74\x5d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x71\x32\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x45\x6e\x64\x28\x65\x6e\x64\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x72\x65\x71\x53\x70\x61\x63\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x65\x70\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x74\x6f\x6b\x65\x6e\x20\x6f\x66\x20\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x6f\x75\x72\x63\x65\x2c\x20\x74\x79\x70\x65\x20\x7d\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x71\x53\x70\x61\x63\x65\x20\x26\x26\x20\x21\x68\x61\x73\x53\x70\x61\x63\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x43\x6f\x6d\x6d\x65\x6e\x74\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x70\x61\x72\x61\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x6f\x74\x68\x65\x72\x20\x74\x6f\x6b\x65\x6e\x73\x20\x62\x79\x20\x77\x68\x69\x74\x65\x20\x73\x70\x61\x63\x65\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x62\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x20\x7c\x7c\x20\x22\x20\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x63\x62\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x73\x65\x70\x20\x2b\x20\x63\x62\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x22\x3b\x0a\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x2b\x3d\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x24\x7b\x74\x79\x70\x65\x7d\x20\x61\x74\x20\x6e\x6f\x64\x65\x20\x65\x6e\x64\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6f\x66\x66\x73\x65\x74\x20\x7d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x62\x6c\x6f\x63\x6b\x4d\x73\x67\x20\x3d\x20\x22\x42\x6c\x6f\x63\x6b\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x20\x61\x72\x65\x20\x6e\x6f\x74\x20\x61\x6c\x6c\x6f\x77\x65\x64\x20\x77\x69\x74\x68\x69\x6e\x20\x66\x6c\x6f\x77\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x73\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x42\x6c\x6f\x63\x6b\x20\x3d\x20\x28\x74\x6f\x6b\x65\x6e\x29\x20\x3d\x3e\x20\x74\x6f\x6b\x65\x6e\x20\x26\x26\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x20\x7c\x7c\x20\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x46\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x7b\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x2c\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x20\x7d\x2c\x20\x63\x74\x78\x2c\x20\x66\x63\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x73\x4d\x61\x70\x32\x20\x3d\x20\x66\x63\x2e\x73\x74\x61\x72\x74\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x7b\x22\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x63\x4e\x61\x6d\x65\x20\x3d\x20\x69\x73\x4d\x61\x70\x32\x20\x3f\x20\x22\x66\x6c\x6f\x77\x20\x6d\x61\x70\x22\x20\x3a\x20\x22\x66\x6c\x6f\x77\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x22\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6c\x6c\x20\x3d\x20\x69\x73\x4d\x61\x70\x32\x20\x3f\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x4d\x61\x70\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x29\x20\x3a\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x53\x65\x71\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x29\x3b\x0a\x20\x20\x63\x6f\x6c\x6c\x2e\x66\x6c\x6f\x77\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x74\x52\x6f\x6f\x74\x20\x3d\x20\x63\x74\x78\x2e\x61\x74\x52\x6f\x6f\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x74\x52\x6f\x6f\x74\x29\x0a\x20\x20\x20\x20\x63\x74\x78\x2e\x61\x74\x52\x6f\x6f\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x66\x63\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x66\x63\x2e\x73\x74\x61\x72\x74\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6c\x6c\x49\x74\x65\x6d\x20\x3d\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x6b\x65\x79\x2c\x20\x73\x65\x70\x2c\x20\x76\x61\x6c\x75\x65\x20\x7d\x20\x3d\x20\x63\x6f\x6c\x6c\x49\x74\x65\x6d\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x73\x28\x73\x74\x61\x72\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x6c\x6f\x77\x3a\x20\x66\x63\x4e\x61\x6d\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x3a\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x3a\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x6b\x65\x79\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x6b\x65\x79\x20\x3a\x20\x73\x65\x70\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x73\x65\x70\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x73\x65\x70\x5b\x30\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x3a\x20\x66\x61\x6c\x73\x65\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x6f\x70\x73\x2e\x61\x6e\x63\x68\x6f\x72\x20\x26\x26\x20\x21\x70\x72\x6f\x70\x73\x2e\x74\x61\x67\x20\x26\x26\x20\x21\x73\x65\x70\x20\x26\x26\x20\x21\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x61\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x2c\x20\x69\x6e\x20\x24\x7b\x66\x63\x4e\x61\x6d\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x20\x3c\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x70\x72\x6f\x70\x73\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x65\x6d\x70\x74\x79\x20\x69\x74\x65\x6d\x20\x69\x6e\x20\x24\x7b\x66\x63\x4e\x61\x6d\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6c\x6c\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x20\x2b\x20\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x70\x72\x6f\x70\x73\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x61\x70\x32\x20\x26\x26\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x72\x69\x63\x74\x20\x26\x26\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x4e\x65\x77\x6c\x69\x6e\x65\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6b\x65\x79\x2c\x20\x22\x4d\x55\x4c\x54\x49\x4c\x49\x4e\x45\x5f\x49\x4d\x50\x4c\x49\x43\x49\x54\x5f\x4b\x45\x59\x22\x2c\x20\x22\x49\x6d\x70\x6c\x69\x63\x69\x74\x20\x6b\x65\x79\x73\x20\x6f\x66\x20\x66\x6c\x6f\x77\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x70\x61\x69\x72\x73\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x62\x65\x20\x6f\x6e\x20\x61\x20\x73\x69\x6e\x67\x6c\x65\x20\x6c\x69\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x61\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x2c\x20\x69\x6e\x20\x24\x7b\x66\x63\x4e\x61\x6d\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x61\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x70\x72\x6f\x70\x73\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x60\x4d\x69\x73\x73\x69\x6e\x67\x20\x2c\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x24\x7b\x66\x63\x4e\x61\x6d\x65\x7d\x20\x69\x74\x65\x6d\x73\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x72\x65\x76\x49\x74\x65\x6d\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x6f\x6f\x70\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x73\x74\x20\x6f\x66\x20\x73\x74\x61\x72\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x73\x74\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x61\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\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\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x49\x74\x65\x6d\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x73\x74\x2e\x73\x6f\x75\x72\x63\x65\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\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x20\x6c\x6f\x6f\x70\x3b\x0a\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\x62\x72\x65\x61\x6b\x20\x6c\x6f\x6f\x70\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x49\x74\x65\x6d\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x63\x6f\x6c\x6c\x2e\x69\x74\x65\x6d\x73\x5b\x63\x6f\x6c\x6c\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x70\x72\x65\x76\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x70\x72\x65\x76\x2e\x76\x61\x6c\x75\x65\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x70\x72\x65\x76\x2e\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x20\x2b\x20\x70\x72\x65\x76\x49\x74\x65\x6d\x43\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x70\x72\x65\x76\x49\x74\x65\x6d\x43\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x70\x72\x65\x76\x49\x74\x65\x6d\x43\x6f\x6d\x6d\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x61\x70\x32\x20\x26\x26\x20\x21\x73\x65\x70\x20\x26\x26\x20\x21\x70\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x70\x72\x6f\x70\x73\x2e\x65\x6e\x64\x2c\x20\x73\x65\x70\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x5b\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x42\x6c\x6f\x63\x6b\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x2c\x20\x22\x42\x4c\x4f\x43\x4b\x5f\x49\x4e\x5f\x46\x4c\x4f\x57\x22\x2c\x20\x62\x6c\x6f\x63\x6b\x4d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x53\x74\x61\x72\x74\x20\x3d\x20\x70\x72\x6f\x70\x73\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x4e\x6f\x64\x65\x20\x3d\x20\x6b\x65\x79\x20\x3f\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x6b\x65\x79\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x6b\x65\x79\x53\x74\x61\x72\x74\x2c\x20\x73\x74\x61\x72\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x42\x6c\x6f\x63\x6b\x28\x6b\x65\x79\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x2c\x20\x22\x42\x4c\x4f\x43\x4b\x5f\x49\x4e\x5f\x46\x4c\x4f\x57\x22\x2c\x20\x62\x6c\x6f\x63\x6b\x4d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x73\x28\x73\x65\x70\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x73\x65\x70\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x73\x65\x70\x20\x3a\x20\x5b\x5d\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6c\x6f\x77\x3a\x20\x66\x63\x4e\x61\x6d\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x3a\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x3a\x20\x76\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x5b\x32\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x3a\x20\x66\x61\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x73\x4d\x61\x70\x32\x20\x26\x26\x20\x21\x70\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x20\x26\x26\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x72\x69\x63\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x73\x74\x20\x6f\x66\x20\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x20\x3d\x3d\x3d\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x29\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\x20\x20\x69\x66\x20\x28\x73\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x73\x74\x2c\x20\x22\x4d\x55\x4c\x54\x49\x4c\x49\x4e\x45\x5f\x49\x4d\x50\x4c\x49\x43\x49\x54\x5f\x4b\x45\x59\x22\x2c\x20\x22\x49\x6d\x70\x6c\x69\x63\x69\x74\x20\x6b\x65\x79\x73\x20\x6f\x66\x20\x66\x6c\x6f\x77\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x70\x61\x69\x72\x73\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x62\x65\x20\x6f\x6e\x20\x61\x20\x73\x69\x6e\x67\x6c\x65\x20\x6c\x69\x6e\x65\x22\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\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\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x73\x74\x61\x72\x74\x20\x3c\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x2e\x6f\x66\x66\x73\x65\x74\x20\x2d\x20\x31\x30\x32\x34\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x2c\x20\x22\x4b\x45\x59\x5f\x4f\x56\x45\x52\x5f\x31\x30\x32\x34\x5f\x43\x48\x41\x52\x53\x22\x2c\x20\x22\x54\x68\x65\x20\x3a\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x61\x74\x20\x6d\x6f\x73\x74\x20\x31\x30\x32\x34\x20\x63\x68\x61\x72\x73\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x73\x74\x61\x72\x74\x20\x6f\x66\x20\x61\x6e\x20\x69\x6d\x70\x6c\x69\x63\x69\x74\x20\x66\x6c\x6f\x77\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x6b\x65\x79\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x22\x73\x6f\x75\x72\x63\x65\x22\x20\x69\x6e\x20\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x2e\x73\x6f\x75\x72\x63\x65\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x2e\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x3a\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x76\x61\x6c\x75\x65\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x60\x4d\x69\x73\x73\x69\x6e\x67\x20\x73\x70\x61\x63\x65\x20\x61\x66\x74\x65\x72\x20\x3a\x20\x69\x6e\x20\x24\x7b\x66\x63\x4e\x61\x6d\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x60\x4d\x69\x73\x73\x69\x6e\x67\x20\x2c\x20\x6f\x72\x20\x3a\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x24\x7b\x66\x63\x4e\x61\x6d\x65\x7d\x20\x69\x74\x65\x6d\x73\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x20\x3f\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x32\x28\x63\x74\x78\x2c\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x65\x6e\x64\x2c\x20\x73\x65\x70\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x42\x6c\x6f\x63\x6b\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x2c\x20\x22\x42\x4c\x4f\x43\x4b\x5f\x49\x4e\x5f\x46\x4c\x4f\x57\x22\x2c\x20\x62\x6c\x6f\x63\x6b\x4d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x20\x2b\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x4e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x69\x72\x20\x3d\x20\x6e\x65\x77\x20\x50\x61\x69\x72\x28\x6b\x65\x79\x4e\x6f\x64\x65\x2c\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6b\x65\x65\x70\x53\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x69\x72\x2e\x73\x72\x63\x54\x6f\x6b\x65\x6e\x20\x3d\x20\x63\x6f\x6c\x6c\x49\x74\x65\x6d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x4d\x61\x70\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x63\x6f\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x70\x49\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x74\x78\x2c\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2c\x20\x6b\x65\x79\x4e\x6f\x64\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6b\x65\x79\x53\x74\x61\x72\x74\x2c\x20\x22\x44\x55\x50\x4c\x49\x43\x41\x54\x45\x5f\x4b\x45\x59\x22\x2c\x20\x22\x4d\x61\x70\x20\x6b\x65\x79\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x75\x6e\x69\x71\x75\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x70\x61\x69\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x4d\x61\x70\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x66\x6c\x6f\x77\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x70\x61\x69\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x6d\x61\x70\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x20\x3f\x20\x76\x61\x6c\x75\x65\x4e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x5b\x32\x5d\x20\x3a\x20\x76\x61\x6c\x75\x65\x50\x72\x6f\x70\x73\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x70\x65\x63\x74\x65\x64\x45\x6e\x64\x20\x3d\x20\x69\x73\x4d\x61\x70\x32\x20\x3f\x20\x22\x7d\x22\x20\x3a\x20\x22\x5d\x22\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x63\x65\x2c\x20\x2e\x2e\x2e\x65\x65\x5d\x20\x3d\x20\x66\x63\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x65\x50\x6f\x73\x20\x3d\x20\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x65\x20\x26\x26\x20\x63\x65\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x65\x78\x70\x65\x63\x74\x65\x64\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x63\x65\x50\x6f\x73\x20\x3d\x20\x63\x65\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x63\x65\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x61\x6d\x65\x20\x3d\x20\x66\x63\x4e\x61\x6d\x65\x5b\x30\x5d\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x20\x2b\x20\x66\x63\x4e\x61\x6d\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x61\x74\x52\x6f\x6f\x74\x20\x3f\x20\x60\x24\x7b\x6e\x61\x6d\x65\x7d\x20\x6d\x75\x73\x74\x20\x65\x6e\x64\x20\x77\x69\x74\x68\x20\x61\x20\x24\x7b\x65\x78\x70\x65\x63\x74\x65\x64\x45\x6e\x64\x7d\x60\x20\x3a\x20\x60\x24\x7b\x6e\x61\x6d\x65\x7d\x20\x69\x6e\x20\x62\x6c\x6f\x63\x6b\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x75\x66\x66\x69\x63\x69\x65\x6e\x74\x6c\x79\x20\x69\x6e\x64\x65\x6e\x74\x65\x64\x20\x61\x6e\x64\x20\x65\x6e\x64\x20\x77\x69\x74\x68\x20\x61\x20\x24\x7b\x65\x78\x70\x65\x63\x74\x65\x64\x45\x6e\x64\x7d\x60\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x61\x74\x52\x6f\x6f\x74\x20\x3f\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x20\x3a\x20\x22\x42\x41\x44\x5f\x49\x4e\x44\x45\x4e\x54\x22\x2c\x20\x6d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x65\x20\x26\x26\x20\x63\x65\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x21\x3d\x3d\x20\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x65\x65\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x63\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x65\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x45\x6e\x64\x28\x65\x65\x2c\x20\x63\x65\x50\x6f\x73\x2c\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6c\x6c\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x20\x2b\x20\x65\x6e\x64\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x65\x6e\x64\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x5b\x66\x63\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x63\x65\x50\x6f\x73\x2c\x20\x65\x6e\x64\x2e\x6f\x66\x66\x73\x65\x74\x5d\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x5b\x66\x63\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x63\x65\x50\x6f\x73\x2c\x20\x63\x65\x50\x6f\x73\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6c\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x6f\x73\x65\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x43\x4e\x32\x2c\x20\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6c\x6c\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x42\x6c\x6f\x63\x6b\x4d\x61\x70\x28\x43\x4e\x32\x2c\x20\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x42\x6c\x6f\x63\x6b\x53\x65\x71\x28\x43\x4e\x32\x2c\x20\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x46\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x43\x4e\x32\x2c\x20\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x54\x6f\x6b\x65\x6e\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6c\x6c\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x20\x63\x74\x78\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x74\x61\x67\x4e\x61\x6d\x65\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2c\x20\x28\x6d\x73\x67\x29\x20\x3d\x3e\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x47\x5f\x52\x45\x53\x4f\x4c\x56\x45\x5f\x46\x41\x49\x4c\x45\x44\x22\x2c\x20\x6d\x73\x67\x29\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x4e\x61\x6d\x65\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6c\x6c\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x43\x6f\x6c\x6c\x20\x3d\x20\x63\x6f\x6c\x6c\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x22\x21\x22\x20\x7c\x7c\x20\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x43\x6f\x6c\x6c\x2e\x74\x61\x67\x4e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x74\x61\x67\x20\x3d\x20\x43\x6f\x6c\x6c\x2e\x74\x61\x67\x4e\x61\x6d\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x70\x54\x79\x70\x65\x20\x3d\x20\x69\x73\x4d\x61\x70\x28\x63\x6f\x6c\x6c\x29\x20\x3f\x20\x22\x6d\x61\x70\x22\x20\x3a\x20\x22\x73\x65\x71\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x74\x61\x67\x20\x3d\x20\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2e\x74\x61\x67\x73\x2e\x66\x69\x6e\x64\x28\x28\x74\x29\x20\x3d\x3e\x20\x74\x2e\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x65\x78\x70\x54\x79\x70\x65\x20\x26\x26\x20\x74\x2e\x74\x61\x67\x20\x3d\x3d\x3d\x20\x74\x61\x67\x4e\x61\x6d\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x74\x20\x3d\x20\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2e\x6b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x5b\x74\x61\x67\x4e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6b\x74\x20\x26\x26\x20\x6b\x74\x2e\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x3d\x3d\x3d\x20\x65\x78\x70\x54\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2e\x74\x61\x67\x73\x2e\x70\x75\x73\x68\x28\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x6b\x74\x2c\x20\x7b\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x61\x67\x20\x3d\x20\x6b\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x47\x5f\x52\x45\x53\x4f\x4c\x56\x45\x5f\x46\x41\x49\x4c\x45\x44\x22\x2c\x20\x60\x55\x6e\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x74\x61\x67\x3a\x20\x24\x7b\x74\x61\x67\x4e\x61\x6d\x65\x7d\x60\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6c\x6c\x2e\x74\x61\x67\x20\x3d\x20\x74\x61\x67\x4e\x61\x6d\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x6f\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x74\x61\x67\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x63\x6f\x6c\x6c\x2c\x20\x28\x6d\x73\x67\x29\x20\x3d\x3e\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x47\x5f\x52\x45\x53\x4f\x4c\x56\x45\x5f\x46\x41\x49\x4c\x45\x44\x22\x2c\x20\x6d\x73\x67\x29\x2c\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x69\x73\x4e\x6f\x64\x65\x28\x72\x65\x73\x29\x20\x3f\x20\x72\x65\x73\x20\x3a\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x72\x65\x73\x29\x3b\x0a\x20\x20\x6e\x6f\x64\x65\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x63\x6f\x6c\x6c\x2e\x72\x61\x6e\x67\x65\x3b\x0a\x20\x20\x6e\x6f\x64\x65\x2e\x74\x61\x67\x20\x3d\x20\x74\x61\x67\x4e\x61\x6d\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x61\x67\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x74\x61\x67\x2e\x66\x6f\x72\x6d\x61\x74\x29\x0a\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x66\x6f\x72\x6d\x61\x74\x20\x3d\x20\x74\x61\x67\x2e\x66\x6f\x72\x6d\x61\x74\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x28\x73\x63\x61\x6c\x61\x72\x2c\x20\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x73\x63\x61\x6c\x61\x72\x2e\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3d\x20\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x48\x65\x61\x64\x65\x72\x28\x73\x63\x61\x6c\x61\x72\x2c\x20\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x68\x65\x61\x64\x65\x72\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x22\x22\x2c\x20\x74\x79\x70\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3a\x20\x22\x22\x2c\x20\x72\x61\x6e\x67\x65\x3a\x20\x5b\x73\x74\x61\x72\x74\x2c\x20\x73\x74\x61\x72\x74\x2c\x20\x73\x74\x61\x72\x74\x5d\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x79\x70\x65\x20\x3d\x20\x68\x65\x61\x64\x65\x72\x2e\x6d\x6f\x64\x65\x20\x3d\x3d\x3d\x20\x22\x3e\x22\x20\x3f\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x46\x4f\x4c\x44\x45\x44\x20\x3a\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x73\x20\x3d\x20\x73\x63\x61\x6c\x61\x72\x2e\x73\x6f\x75\x72\x63\x65\x20\x3f\x20\x73\x70\x6c\x69\x74\x4c\x69\x6e\x65\x73\x28\x73\x63\x61\x6c\x61\x72\x2e\x73\x6f\x75\x72\x63\x65\x29\x20\x3a\x20\x5b\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x68\x6f\x6d\x70\x53\x74\x61\x72\x74\x20\x3d\x20\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x69\x20\x3e\x3d\x20\x30\x3b\x20\x2d\x2d\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x6c\x69\x6e\x65\x73\x5b\x69\x5d\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x22\x20\x7c\x7c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x6f\x6d\x70\x53\x74\x61\x72\x74\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x68\x6f\x6d\x70\x53\x74\x61\x72\x74\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x32\x20\x3d\x20\x68\x65\x61\x64\x65\x72\x2e\x63\x68\x6f\x6d\x70\x20\x3d\x3d\x3d\x20\x22\x2b\x22\x20\x26\x26\x20\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x3f\x20\x22\x5c\x6e\x22\x2e\x72\x65\x70\x65\x61\x74\x28\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x31\x2c\x20\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x29\x29\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x32\x20\x3d\x20\x73\x74\x61\x72\x74\x20\x2b\x20\x68\x65\x61\x64\x65\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x61\x6c\x61\x72\x2e\x73\x6f\x75\x72\x63\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x32\x20\x2b\x3d\x20\x73\x63\x61\x6c\x61\x72\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x76\x61\x6c\x75\x65\x3a\x20\x76\x61\x6c\x75\x65\x32\x2c\x20\x74\x79\x70\x65\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3a\x20\x68\x65\x61\x64\x65\x72\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x72\x61\x6e\x67\x65\x3a\x20\x5b\x73\x74\x61\x72\x74\x2c\x20\x65\x6e\x64\x32\x2c\x20\x65\x6e\x64\x32\x5d\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x20\x3d\x20\x73\x63\x61\x6c\x61\x72\x2e\x69\x6e\x64\x65\x6e\x74\x20\x2b\x20\x68\x65\x61\x64\x65\x72\x2e\x69\x6e\x64\x65\x6e\x74\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x73\x63\x61\x6c\x61\x72\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x68\x65\x61\x64\x65\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6e\x74\x65\x6e\x74\x53\x74\x61\x72\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x68\x6f\x6d\x70\x53\x74\x61\x72\x74\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x69\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x5d\x20\x3d\x20\x6c\x69\x6e\x65\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x22\x20\x7c\x7c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x20\x3d\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x3d\x20\x22\x42\x6c\x6f\x63\x6b\x20\x73\x63\x61\x6c\x61\x72\x73\x20\x77\x69\x74\x68\x20\x6d\x6f\x72\x65\x2d\x69\x6e\x64\x65\x6e\x74\x65\x64\x20\x6c\x65\x61\x64\x69\x6e\x67\x20\x65\x6d\x70\x74\x79\x20\x6c\x69\x6e\x65\x73\x20\x6d\x75\x73\x74\x20\x75\x73\x65\x20\x61\x6e\x20\x65\x78\x70\x6c\x69\x63\x69\x74\x20\x69\x6e\x64\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x20\x3d\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x6e\x74\x53\x74\x61\x72\x74\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x63\x6f\x6e\x74\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x69\x20\x3e\x3d\x20\x63\x68\x6f\x6d\x70\x53\x74\x61\x72\x74\x3b\x20\x2d\x2d\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x73\x5b\x69\x5d\x5b\x30\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x6f\x6d\x70\x53\x74\x61\x72\x74\x20\x3d\x20\x69\x20\x2b\x20\x31\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x65\x70\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x70\x72\x65\x76\x4d\x6f\x72\x65\x49\x6e\x64\x65\x6e\x74\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x53\x74\x61\x72\x74\x3b\x20\x2b\x2b\x69\x29\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x6c\x69\x6e\x65\x73\x5b\x69\x5d\x5b\x30\x5d\x2e\x73\x6c\x69\x63\x65\x28\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x29\x20\x2b\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x63\x6f\x6e\x74\x65\x6e\x74\x53\x74\x61\x72\x74\x3b\x20\x69\x20\x3c\x20\x63\x68\x6f\x6d\x70\x53\x74\x61\x72\x74\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x5b\x69\x6e\x64\x65\x6e\x74\x2c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x5d\x20\x3d\x20\x6c\x69\x6e\x65\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x63\x6f\x6e\x74\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x72\x6c\x66\x20\x3d\x20\x63\x6f\x6e\x74\x65\x6e\x74\x5b\x63\x6f\x6e\x74\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x72\x6c\x66\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x20\x63\x6f\x6e\x74\x65\x6e\x74\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x65\x6e\x74\x20\x26\x26\x20\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3c\x20\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x72\x63\x20\x3d\x20\x68\x65\x61\x64\x65\x72\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3f\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x20\x69\x6e\x64\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x22\x20\x3a\x20\x22\x66\x69\x72\x73\x74\x20\x6c\x69\x6e\x65\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x3d\x20\x60\x42\x6c\x6f\x63\x6b\x20\x73\x63\x61\x6c\x61\x72\x20\x6c\x69\x6e\x65\x73\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x62\x65\x20\x6c\x65\x73\x73\x20\x69\x6e\x64\x65\x6e\x74\x65\x64\x20\x74\x68\x61\x6e\x20\x74\x68\x65\x69\x72\x20\x24\x7b\x73\x72\x63\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x20\x2d\x20\x63\x6f\x6e\x74\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x28\x63\x72\x6c\x66\x20\x3f\x20\x32\x20\x3a\x20\x31\x29\x2c\x20\x22\x42\x41\x44\x5f\x49\x4e\x44\x45\x4e\x54\x22\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x42\x4c\x4f\x43\x4b\x5f\x4c\x49\x54\x45\x52\x41\x4c\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x73\x65\x70\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x2e\x73\x6c\x69\x63\x65\x28\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x29\x20\x2b\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x6e\x64\x65\x6e\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x20\x7c\x7c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x70\x20\x3d\x3d\x3d\x20\x22\x20\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x21\x70\x72\x65\x76\x4d\x6f\x72\x65\x49\x6e\x64\x65\x6e\x74\x65\x64\x20\x26\x26\x20\x73\x65\x70\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x5c\x6e\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x73\x65\x70\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x2e\x73\x6c\x69\x63\x65\x28\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x29\x20\x2b\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x4d\x6f\x72\x65\x49\x6e\x64\x65\x6e\x74\x65\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x6f\x6e\x74\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x70\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x73\x65\x70\x20\x2b\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x20\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x70\x72\x65\x76\x4d\x6f\x72\x65\x49\x6e\x64\x65\x6e\x74\x65\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x68\x65\x61\x64\x65\x72\x2e\x63\x68\x6f\x6d\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x63\x68\x6f\x6d\x70\x53\x74\x61\x72\x74\x3b\x20\x69\x20\x3c\x20\x6c\x69\x6e\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x20\x2b\x20\x6c\x69\x6e\x65\x73\x5b\x69\x5d\x5b\x30\x5d\x2e\x73\x6c\x69\x63\x65\x28\x74\x72\x69\x6d\x49\x6e\x64\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x5b\x76\x61\x6c\x75\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x21\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x73\x74\x61\x72\x74\x20\x2b\x20\x68\x65\x61\x64\x65\x72\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x73\x63\x61\x6c\x61\x72\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x74\x79\x70\x65\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3a\x20\x68\x65\x61\x64\x65\x72\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x72\x61\x6e\x67\x65\x3a\x20\x5b\x73\x74\x61\x72\x74\x2c\x20\x65\x6e\x64\x2c\x20\x65\x6e\x64\x5d\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x48\x65\x61\x64\x65\x72\x28\x7b\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x70\x72\x6f\x70\x73\x20\x7d\x2c\x20\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x5b\x30\x5d\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x2d\x68\x65\x61\x64\x65\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x70\x72\x6f\x70\x73\x5b\x30\x5d\x2c\x20\x22\x49\x4d\x50\x4f\x53\x53\x49\x42\x4c\x45\x22\x2c\x20\x22\x42\x6c\x6f\x63\x6b\x20\x73\x63\x61\x6c\x61\x72\x20\x68\x65\x61\x64\x65\x72\x20\x6e\x6f\x74\x20\x66\x6f\x75\x6e\x64\x22\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x6f\x75\x72\x63\x65\x20\x7d\x20\x3d\x20\x70\x72\x6f\x70\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x6f\x64\x65\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x68\x6f\x6d\x70\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x65\x72\x72\x6f\x72\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x31\x3b\x20\x69\x20\x3c\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x6f\x6d\x70\x20\x26\x26\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x2b\x22\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x6f\x6d\x70\x20\x3d\x20\x63\x68\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x28\x63\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x64\x65\x6e\x74\x20\x26\x26\x20\x6e\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x65\x72\x72\x6f\x72\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x20\x3d\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x69\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x65\x72\x72\x6f\x72\x20\x21\x3d\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x65\x72\x72\x6f\x72\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x42\x6c\x6f\x63\x6b\x20\x73\x63\x61\x6c\x61\x72\x20\x68\x65\x61\x64\x65\x72\x20\x69\x6e\x63\x6c\x75\x64\x65\x73\x20\x65\x78\x74\x72\x61\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x3a\x20\x24\x7b\x73\x6f\x75\x72\x63\x65\x7d\x60\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x31\x3b\x20\x69\x20\x3c\x20\x70\x72\x6f\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x6b\x65\x6e\x20\x3d\x20\x70\x72\x6f\x70\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x53\x70\x61\x63\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x6e\x67\x74\x68\x20\x2b\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x72\x69\x63\x74\x20\x26\x26\x20\x21\x68\x61\x73\x53\x70\x61\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x3d\x20\x22\x43\x6f\x6d\x6d\x65\x6e\x74\x73\x20\x6d\x75\x73\x74\x20\x62\x65\x20\x73\x65\x70\x61\x72\x61\x74\x65\x64\x20\x66\x72\x6f\x6d\x20\x6f\x74\x68\x65\x72\x20\x74\x6f\x6b\x65\x6e\x73\x20\x62\x79\x20\x77\x68\x69\x74\x65\x20\x73\x70\x61\x63\x65\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x73\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x6e\x67\x74\x68\x20\x2b\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x72\x72\x6f\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x74\x6f\x6b\x65\x6e\x2e\x6d\x65\x73\x73\x61\x67\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x6e\x67\x74\x68\x20\x2b\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x3d\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x74\x6f\x6b\x65\x6e\x20\x69\x6e\x20\x62\x6c\x6f\x63\x6b\x20\x73\x63\x61\x6c\x61\x72\x20\x68\x65\x61\x64\x65\x72\x3a\x20\x24\x7b\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x73\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x73\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x74\x73\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x6e\x67\x74\x68\x20\x2b\x3d\x20\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6d\x6f\x64\x65\x2c\x20\x69\x6e\x64\x65\x6e\x74\x2c\x20\x63\x68\x6f\x6d\x70\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x6c\x65\x6e\x67\x74\x68\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x70\x6c\x69\x74\x4c\x69\x6e\x65\x73\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x70\x6c\x69\x74\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x6e\x28\x20\x2a\x29\x2f\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x69\x72\x73\x74\x20\x3d\x20\x73\x70\x6c\x69\x74\x5b\x30\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x20\x3d\x20\x66\x69\x72\x73\x74\x2e\x6d\x61\x74\x63\x68\x28\x2f\x5e\x28\x20\x2a\x29\x2f\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x30\x20\x3d\x20\x28\x6d\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6d\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x6d\x5b\x31\x5d\x29\x20\x3f\x20\x5b\x6d\x5b\x31\x5d\x2c\x20\x66\x69\x72\x73\x74\x2e\x73\x6c\x69\x63\x65\x28\x6d\x5b\x31\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x29\x5d\x20\x3a\x20\x5b\x22\x22\x2c\x20\x66\x69\x72\x73\x74\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x73\x20\x3d\x20\x5b\x6c\x69\x6e\x65\x30\x5d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x31\x3b\x20\x69\x20\x3c\x20\x73\x70\x6c\x69\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x2b\x3d\x20\x32\x29\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x73\x2e\x70\x75\x73\x68\x28\x5b\x73\x70\x6c\x69\x74\x5b\x69\x5d\x2c\x20\x73\x70\x6c\x69\x74\x5b\x69\x20\x2b\x20\x31\x5d\x5d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6c\x69\x6e\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x72\x65\x73\x6f\x6c\x76\x65\x46\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x28\x73\x63\x61\x6c\x61\x72\x2c\x20\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x74\x79\x70\x65\x2c\x20\x73\x6f\x75\x72\x63\x65\x2c\x20\x65\x6e\x64\x20\x7d\x20\x3d\x20\x73\x63\x61\x6c\x61\x72\x3b\x0a\x20\x20\x6c\x65\x74\x20\x5f\x74\x79\x70\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x20\x3d\x20\x28\x72\x65\x6c\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x73\x67\x29\x20\x3d\x3e\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x72\x65\x6c\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x73\x67\x29\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x5f\x74\x79\x70\x65\x20\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x50\x4c\x41\x49\x4e\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x70\x6c\x61\x69\x6e\x56\x61\x6c\x75\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x5f\x74\x79\x70\x65\x20\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x53\x49\x4e\x47\x4c\x45\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x64\x56\x61\x6c\x75\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x5f\x74\x79\x70\x65\x20\x3d\x20\x53\x63\x61\x6c\x61\x72\x2e\x51\x55\x4f\x54\x45\x5f\x44\x4f\x55\x42\x4c\x45\x3b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x20\x3d\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x56\x61\x6c\x75\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x5f\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x73\x63\x61\x6c\x61\x72\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x45\x78\x70\x65\x63\x74\x65\x64\x20\x61\x20\x66\x6c\x6f\x77\x20\x73\x63\x61\x6c\x61\x72\x20\x76\x61\x6c\x75\x65\x2c\x20\x62\x75\x74\x20\x66\x6f\x75\x6e\x64\x3a\x20\x24\x7b\x74\x79\x70\x65\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x3a\x20\x22\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x6e\x75\x6c\x6c\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3a\x20\x22\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x61\x6e\x67\x65\x3a\x20\x5b\x6f\x66\x66\x73\x65\x74\x2c\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x5d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x45\x6e\x64\x20\x3d\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x45\x6e\x64\x28\x65\x6e\x64\x2c\x20\x76\x61\x6c\x75\x65\x45\x6e\x64\x2c\x20\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x6c\x75\x65\x2c\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x5f\x74\x79\x70\x65\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3a\x20\x72\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x72\x61\x6e\x67\x65\x3a\x20\x5b\x6f\x66\x66\x73\x65\x74\x2c\x20\x76\x61\x6c\x75\x65\x45\x6e\x64\x2c\x20\x72\x65\x2e\x6f\x66\x66\x73\x65\x74\x5d\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x6c\x61\x69\x6e\x56\x61\x6c\x75\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x62\x61\x64\x43\x68\x61\x72\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x09\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x62\x61\x64\x43\x68\x61\x72\x20\x3d\x20\x22\x61\x20\x74\x61\x62\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2c\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x62\x61\x64\x43\x68\x61\x72\x20\x3d\x20\x22\x66\x6c\x6f\x77\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x2c\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x25\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x62\x61\x64\x43\x68\x61\x72\x20\x3d\x20\x22\x64\x69\x72\x65\x63\x74\x69\x76\x65\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x25\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7c\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x3e\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x62\x61\x64\x43\x68\x61\x72\x20\x3d\x20\x60\x62\x6c\x6f\x63\x6b\x20\x73\x63\x61\x6c\x61\x72\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x24\x7b\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x40\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x60\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x62\x61\x64\x43\x68\x61\x72\x20\x3d\x20\x60\x72\x65\x73\x65\x72\x76\x65\x64\x20\x63\x68\x61\x72\x61\x63\x74\x65\x72\x20\x24\x7b\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x62\x61\x64\x43\x68\x61\x72\x29\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x30\x2c\x20\x22\x42\x41\x44\x5f\x53\x43\x41\x4c\x41\x52\x5f\x53\x54\x41\x52\x54\x22\x2c\x20\x60\x50\x6c\x61\x69\x6e\x20\x76\x61\x6c\x75\x65\x20\x63\x61\x6e\x6e\x6f\x74\x20\x73\x74\x61\x72\x74\x20\x77\x69\x74\x68\x20\x24\x7b\x62\x61\x64\x43\x68\x61\x72\x7d\x60\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6f\x6c\x64\x4c\x69\x6e\x65\x73\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x73\x69\x6e\x67\x6c\x65\x51\x75\x6f\x74\x65\x64\x56\x61\x6c\x75\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x21\x3d\x3d\x20\x22\x27\x22\x20\x7c\x7c\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x29\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x4d\x69\x73\x73\x69\x6e\x67\x20\x63\x6c\x6f\x73\x69\x6e\x67\x20\x27\x71\x75\x6f\x74\x65\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x6f\x6c\x64\x4c\x69\x6e\x65\x73\x28\x73\x6f\x75\x72\x63\x65\x2e\x73\x6c\x69\x63\x65\x28\x31\x2c\x20\x2d\x31\x29\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x27\x27\x2f\x67\x2c\x20\x22\x27\x22\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x6c\x64\x4c\x69\x6e\x65\x73\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x6c\x65\x74\x20\x66\x69\x72\x73\x74\x2c\x20\x6c\x69\x6e\x65\x3b\x0a\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x66\x69\x72\x73\x74\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x28\x2e\x2a\x3f\x29\x28\x3f\x3c\x21\x5b\x20\x09\x5d\x29\x5b\x20\x09\x5d\x2a\x5c\x72\x3f\x5c\x6e\x22\x2c\x20\x22\x73\x79\x22\x29\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x5b\x20\x09\x5d\x2a\x28\x2e\x2a\x3f\x29\x28\x3f\x3a\x28\x3f\x3c\x21\x5b\x20\x09\x5d\x29\x5b\x20\x09\x5d\x2a\x29\x3f\x5c\x72\x3f\x5c\x6e\x22\x2c\x20\x22\x73\x79\x22\x29\x3b\x0a\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x5f\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x69\x72\x73\x74\x20\x3d\x20\x2f\x28\x2e\x2a\x3f\x29\x5b\x20\x5c\x74\x5d\x2a\x5c\x72\x3f\x5c\x6e\x2f\x73\x79\x3b\x0a\x20\x20\x20\x20\x6c\x69\x6e\x65\x20\x3d\x20\x2f\x5b\x20\x5c\x74\x5d\x2a\x28\x2e\x2a\x3f\x29\x5b\x20\x5c\x74\x5d\x2a\x5c\x72\x3f\x5c\x6e\x2f\x73\x79\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6c\x65\x74\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x66\x69\x72\x73\x74\x2e\x65\x78\x65\x63\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x6d\x61\x74\x63\x68\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x20\x3d\x20\x6d\x61\x74\x63\x68\x5b\x31\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x65\x70\x20\x3d\x20\x22\x20\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x70\x6f\x73\x20\x3d\x20\x66\x69\x72\x73\x74\x2e\x6c\x61\x73\x74\x49\x6e\x64\x65\x78\x3b\x0a\x20\x20\x6c\x69\x6e\x65\x2e\x6c\x61\x73\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x70\x6f\x73\x3b\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6d\x61\x74\x63\x68\x20\x3d\x20\x6c\x69\x6e\x65\x2e\x65\x78\x65\x63\x28\x73\x6f\x75\x72\x63\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6d\x61\x74\x63\x68\x5b\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x65\x70\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x73\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x73\x65\x70\x20\x2b\x20\x6d\x61\x74\x63\x68\x5b\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x22\x20\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x70\x6f\x73\x20\x3d\x20\x6c\x69\x6e\x65\x2e\x6c\x61\x73\x74\x49\x6e\x64\x65\x78\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x20\x3d\x20\x2f\x5b\x20\x5c\x74\x5d\x2a\x28\x2e\x2a\x29\x2f\x73\x79\x3b\x0a\x20\x20\x6c\x61\x73\x74\x2e\x6c\x61\x73\x74\x49\x6e\x64\x65\x78\x20\x3d\x20\x70\x6f\x73\x3b\x0a\x20\x20\x6d\x61\x74\x63\x68\x20\x3d\x20\x6c\x61\x73\x74\x2e\x65\x78\x65\x63\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x20\x2b\x20\x73\x65\x70\x20\x2b\x20\x28\x28\x5f\x61\x20\x3d\x20\x6d\x61\x74\x63\x68\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6d\x61\x74\x63\x68\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x6d\x61\x74\x63\x68\x5b\x31\x5d\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x22\x22\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x64\x6f\x75\x62\x6c\x65\x51\x75\x6f\x74\x65\x64\x56\x61\x6c\x75\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x72\x65\x73\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x31\x3b\x20\x69\x20\x3c\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x20\x26\x26\x20\x73\x6f\x75\x72\x63\x65\x5b\x69\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x66\x6f\x6c\x64\x2c\x20\x6f\x66\x66\x73\x65\x74\x20\x7d\x20\x3d\x20\x66\x6f\x6c\x64\x4e\x65\x77\x6c\x69\x6e\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x69\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x66\x6f\x6c\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x20\x3d\x20\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x5c\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x63\x20\x3d\x20\x65\x73\x63\x61\x70\x65\x43\x6f\x64\x65\x73\x5b\x6e\x65\x78\x74\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x63\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x63\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x2b\x2b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x20\x26\x26\x20\x73\x6f\x75\x72\x63\x65\x5b\x69\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x2b\x2b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x2b\x2b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x78\x22\x20\x7c\x7c\x20\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x75\x22\x20\x7c\x7c\x20\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x55\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x7b\x20\x78\x3a\x20\x32\x2c\x20\x75\x3a\x20\x34\x2c\x20\x55\x3a\x20\x38\x20\x7d\x5b\x6e\x65\x78\x74\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x70\x61\x72\x73\x65\x43\x68\x61\x72\x43\x6f\x64\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x69\x20\x2b\x20\x31\x2c\x20\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x28\x69\x20\x2d\x20\x31\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x69\x20\x2d\x20\x31\x2c\x20\x22\x42\x41\x44\x5f\x44\x51\x5f\x45\x53\x43\x41\x50\x45\x22\x2c\x20\x60\x49\x6e\x76\x61\x6c\x69\x64\x20\x65\x73\x63\x61\x70\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x24\x7b\x72\x61\x77\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x72\x61\x77\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x77\x73\x53\x74\x61\x72\x74\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x2b\x2b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x21\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x26\x26\x20\x21\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x20\x26\x26\x20\x73\x6f\x75\x72\x63\x65\x5b\x69\x20\x2b\x20\x32\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x69\x20\x3e\x20\x77\x73\x53\x74\x61\x72\x74\x20\x3f\x20\x73\x6f\x75\x72\x63\x65\x2e\x73\x6c\x69\x63\x65\x28\x77\x73\x53\x74\x61\x72\x74\x2c\x20\x69\x20\x2b\x20\x31\x29\x20\x3a\x20\x63\x68\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x73\x20\x2b\x3d\x20\x63\x68\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x21\x3d\x3d\x20\x27\x22\x27\x20\x7c\x7c\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x31\x29\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x27\x4d\x69\x73\x73\x69\x6e\x67\x20\x63\x6c\x6f\x73\x69\x6e\x67\x20\x22\x71\x75\x6f\x74\x65\x27\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x65\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x6c\x64\x4e\x65\x77\x6c\x69\x6e\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6f\x66\x66\x73\x65\x74\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x66\x6f\x6c\x64\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x68\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x09\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x20\x26\x26\x20\x73\x6f\x75\x72\x63\x65\x5b\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x32\x5d\x20\x21\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x6c\x64\x20\x2b\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x5b\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x21\x66\x6f\x6c\x64\x29\x0a\x20\x20\x20\x20\x66\x6f\x6c\x64\x20\x3d\x20\x22\x20\x22\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x66\x6f\x6c\x64\x2c\x20\x6f\x66\x66\x73\x65\x74\x20\x7d\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x65\x73\x63\x61\x70\x65\x43\x6f\x64\x65\x73\x20\x3d\x20\x7b\x0a\x20\x20\x22\x30\x22\x3a\x20\x22\x5c\x30\x22\x2c\x0a\x20\x20\x61\x3a\x20\x22\x5c\x78\x30\x37\x22\x2c\x0a\x20\x20\x62\x3a\x20\x22\x5c\x62\x22\x2c\x0a\x20\x20\x65\x3a\x20\x22\x5c\x78\x31\x42\x22\x2c\x0a\x20\x20\x66\x3a\x20\x22\x5c\x66\x22\x2c\x0a\x20\x20\x6e\x3a\x20\x22\x5c\x6e\x22\x2c\x0a\x20\x20\x72\x3a\x20\x22\x5c\x72\x22\x2c\x0a\x20\x20\x74\x3a\x20\x22\x09\x22\x2c\x0a\x20\x20\x76\x3a\x20\x22\x5c\x76\x22\x2c\x0a\x20\x20\x4e\x3a\x20\x22\x5c\x78\x38\x35\x22\x2c\x0a\x20\x20\x5f\x3a\x20\x22\x5c\x78\x41\x30\x22\x2c\x0a\x20\x20\x4c\x3a\x20\x22\x5c\x75\x32\x30\x32\x38\x22\x2c\x0a\x20\x20\x50\x3a\x20\x22\x5c\x75\x32\x30\x32\x39\x22\x2c\x0a\x20\x20\x22\x20\x22\x3a\x20\x22\x20\x22\x2c\x0a\x20\x20\x27\x22\x27\x3a\x20\x27\x22\x27\x2c\x0a\x20\x20\x22\x2f\x22\x3a\x20\x22\x2f\x22\x2c\x0a\x20\x20\x22\x5c\x5c\x22\x3a\x20\x22\x5c\x5c\x22\x2c\x0a\x20\x20\x22\x09\x22\x3a\x20\x22\x09\x22\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x43\x68\x61\x72\x43\x6f\x64\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x6c\x65\x6e\x67\x74\x68\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x63\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x6b\x20\x3d\x20\x63\x63\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x6c\x65\x6e\x67\x74\x68\x20\x26\x26\x20\x2f\x5e\x5b\x30\x2d\x39\x61\x2d\x66\x41\x2d\x46\x5d\x2b\x24\x2f\x2e\x74\x65\x73\x74\x28\x63\x63\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x64\x65\x20\x3d\x20\x6f\x6b\x20\x3f\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x63\x63\x2c\x20\x31\x36\x29\x20\x3a\x20\x4e\x61\x4e\x3b\x0a\x20\x20\x69\x66\x20\x28\x69\x73\x4e\x61\x4e\x28\x63\x6f\x64\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x28\x6f\x66\x66\x73\x65\x74\x20\x2d\x20\x32\x2c\x20\x6c\x65\x6e\x67\x74\x68\x20\x2b\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x20\x2d\x20\x32\x2c\x20\x22\x42\x41\x44\x5f\x44\x51\x5f\x45\x53\x43\x41\x50\x45\x22\x2c\x20\x60\x49\x6e\x76\x61\x6c\x69\x64\x20\x65\x73\x63\x61\x70\x65\x20\x73\x65\x71\x75\x65\x6e\x63\x65\x20\x24\x7b\x72\x61\x77\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x72\x61\x77\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x53\x74\x72\x69\x6e\x67\x2e\x66\x72\x6f\x6d\x43\x6f\x64\x65\x50\x6f\x69\x6e\x74\x28\x63\x6f\x64\x65\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x6f\x73\x65\x53\x63\x61\x6c\x61\x72\x28\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x76\x61\x6c\x75\x65\x2c\x20\x74\x79\x70\x65\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x72\x61\x6e\x67\x65\x20\x7d\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x20\x3f\x20\x72\x65\x73\x6f\x6c\x76\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x72\x65\x73\x6f\x6c\x76\x65\x46\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x20\x3f\x20\x63\x74\x78\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x74\x61\x67\x4e\x61\x6d\x65\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2c\x20\x28\x6d\x73\x67\x29\x20\x3d\x3e\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x47\x5f\x52\x45\x53\x4f\x4c\x56\x45\x5f\x46\x41\x49\x4c\x45\x44\x22\x2c\x20\x6d\x73\x67\x29\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x20\x3d\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x20\x26\x26\x20\x74\x61\x67\x4e\x61\x6d\x65\x20\x3f\x20\x66\x69\x6e\x64\x53\x63\x61\x6c\x61\x72\x54\x61\x67\x42\x79\x4e\x61\x6d\x65\x28\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x74\x61\x67\x4e\x61\x6d\x65\x2c\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x20\x3f\x20\x66\x69\x6e\x64\x53\x63\x61\x6c\x61\x72\x54\x61\x67\x42\x79\x54\x65\x73\x74\x28\x63\x74\x78\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x63\x74\x78\x2e\x73\x63\x68\x65\x6d\x61\x5b\x53\x43\x41\x4c\x41\x52\x24\x31\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x73\x63\x61\x6c\x61\x72\x3b\x0a\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x73\x20\x3d\x20\x74\x61\x67\x2e\x72\x65\x73\x6f\x6c\x76\x65\x28\x76\x61\x6c\x75\x65\x2c\x20\x28\x6d\x73\x67\x29\x20\x3d\x3e\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x20\x3a\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x47\x5f\x52\x45\x53\x4f\x4c\x56\x45\x5f\x46\x41\x49\x4c\x45\x44\x22\x2c\x20\x6d\x73\x67\x29\x2c\x20\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x73\x63\x61\x6c\x61\x72\x20\x3d\x20\x69\x73\x53\x63\x61\x6c\x61\x72\x28\x72\x65\x73\x29\x20\x3f\x20\x72\x65\x73\x20\x3a\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x72\x65\x73\x29\x3b\x0a\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x65\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x65\x72\x72\x6f\x72\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x45\x72\x72\x6f\x72\x20\x3f\x20\x65\x72\x72\x6f\x72\x2e\x6d\x65\x73\x73\x61\x67\x65\x20\x3a\x20\x53\x74\x72\x69\x6e\x67\x28\x65\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x20\x3a\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x47\x5f\x52\x45\x53\x4f\x4c\x56\x45\x5f\x46\x41\x49\x4c\x45\x44\x22\x2c\x20\x6d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x73\x63\x61\x6c\x61\x72\x20\x3d\x20\x6e\x65\x77\x20\x53\x63\x61\x6c\x61\x72\x28\x76\x61\x6c\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x63\x61\x6c\x61\x72\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x72\x61\x6e\x67\x65\x3b\x0a\x20\x20\x73\x63\x61\x6c\x61\x72\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x76\x61\x6c\x75\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x29\x0a\x20\x20\x20\x20\x73\x63\x61\x6c\x61\x72\x2e\x74\x79\x70\x65\x20\x3d\x20\x74\x79\x70\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x4e\x61\x6d\x65\x29\x0a\x20\x20\x20\x20\x73\x63\x61\x6c\x61\x72\x2e\x74\x61\x67\x20\x3d\x20\x74\x61\x67\x4e\x61\x6d\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x2e\x66\x6f\x72\x6d\x61\x74\x29\x0a\x20\x20\x20\x20\x73\x63\x61\x6c\x61\x72\x2e\x66\x6f\x72\x6d\x61\x74\x20\x3d\x20\x74\x61\x67\x2e\x66\x6f\x72\x6d\x61\x74\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x73\x63\x61\x6c\x61\x72\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x63\x61\x6c\x61\x72\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6e\x64\x53\x63\x61\x6c\x61\x72\x54\x61\x67\x42\x79\x4e\x61\x6d\x65\x28\x73\x63\x68\x65\x6d\x61\x32\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x74\x61\x67\x4e\x61\x6d\x65\x2c\x20\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x61\x67\x4e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x22\x21\x22\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x63\x68\x65\x6d\x61\x32\x5b\x53\x43\x41\x4c\x41\x52\x24\x31\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x74\x63\x68\x57\x69\x74\x68\x54\x65\x73\x74\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x20\x6f\x66\x20\x73\x63\x68\x65\x6d\x61\x32\x2e\x74\x61\x67\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x61\x67\x2e\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x26\x26\x20\x74\x61\x67\x2e\x74\x61\x67\x20\x3d\x3d\x3d\x20\x74\x61\x67\x4e\x61\x6d\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x67\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x26\x26\x20\x74\x61\x67\x2e\x74\x65\x73\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x74\x63\x68\x57\x69\x74\x68\x54\x65\x73\x74\x2e\x70\x75\x73\x68\x28\x74\x61\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x20\x6f\x66\x20\x6d\x61\x74\x63\x68\x57\x69\x74\x68\x54\x65\x73\x74\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x28\x5f\x61\x20\x3d\x20\x74\x61\x67\x2e\x74\x65\x73\x74\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x74\x20\x3d\x20\x73\x63\x68\x65\x6d\x61\x32\x2e\x6b\x6e\x6f\x77\x6e\x54\x61\x67\x73\x5b\x74\x61\x67\x4e\x61\x6d\x65\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x6b\x74\x20\x26\x26\x20\x21\x6b\x74\x2e\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x63\x68\x65\x6d\x61\x32\x2e\x74\x61\x67\x73\x2e\x70\x75\x73\x68\x28\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x7d\x2c\x20\x6b\x74\x2c\x20\x7b\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x66\x61\x6c\x73\x65\x2c\x20\x74\x65\x73\x74\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x29\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6b\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x61\x67\x54\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x47\x5f\x52\x45\x53\x4f\x4c\x56\x45\x5f\x46\x41\x49\x4c\x45\x44\x22\x2c\x20\x60\x55\x6e\x72\x65\x73\x6f\x6c\x76\x65\x64\x20\x74\x61\x67\x3a\x20\x24\x7b\x74\x61\x67\x4e\x61\x6d\x65\x7d\x60\x2c\x20\x74\x61\x67\x4e\x61\x6d\x65\x20\x21\x3d\x3d\x20\x22\x74\x61\x67\x3a\x79\x61\x6d\x6c\x2e\x6f\x72\x67\x2c\x32\x30\x30\x32\x3a\x73\x74\x72\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x63\x68\x65\x6d\x61\x32\x5b\x53\x43\x41\x4c\x41\x52\x24\x31\x5d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6e\x64\x53\x63\x61\x6c\x61\x72\x54\x61\x67\x42\x79\x54\x65\x73\x74\x28\x7b\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2c\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x73\x63\x68\x65\x6d\x61\x32\x20\x7d\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x20\x3d\x20\x73\x63\x68\x65\x6d\x61\x32\x2e\x74\x61\x67\x73\x2e\x66\x69\x6e\x64\x28\x28\x74\x61\x67\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x32\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x32\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x26\x26\x20\x28\x28\x5f\x61\x32\x20\x3d\x20\x74\x61\x67\x32\x2e\x74\x65\x73\x74\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x32\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x3b\x0a\x20\x20\x7d\x29\x20\x7c\x7c\x20\x73\x63\x68\x65\x6d\x61\x32\x5b\x53\x43\x41\x4c\x41\x52\x24\x31\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x63\x68\x65\x6d\x61\x32\x2e\x63\x6f\x6d\x70\x61\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x70\x61\x74\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x73\x63\x68\x65\x6d\x61\x32\x2e\x63\x6f\x6d\x70\x61\x74\x2e\x66\x69\x6e\x64\x28\x28\x74\x61\x67\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x32\x2e\x64\x65\x66\x61\x75\x6c\x74\x20\x26\x26\x20\x28\x28\x5f\x61\x32\x20\x3d\x20\x74\x61\x67\x32\x2e\x74\x65\x73\x74\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x32\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x32\x2e\x74\x65\x73\x74\x28\x76\x61\x6c\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x73\x63\x68\x65\x6d\x61\x32\x5b\x53\x43\x41\x4c\x41\x52\x24\x31\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x67\x2e\x74\x61\x67\x20\x21\x3d\x3d\x20\x63\x6f\x6d\x70\x61\x74\x2e\x74\x61\x67\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x73\x20\x3d\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x74\x61\x67\x53\x74\x72\x69\x6e\x67\x28\x74\x61\x67\x2e\x74\x61\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x74\x61\x67\x53\x74\x72\x69\x6e\x67\x28\x63\x6f\x6d\x70\x61\x74\x2e\x74\x61\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x60\x56\x61\x6c\x75\x65\x20\x6d\x61\x79\x20\x62\x65\x20\x70\x61\x72\x73\x65\x64\x20\x61\x73\x20\x65\x69\x74\x68\x65\x72\x20\x24\x7b\x74\x73\x7d\x20\x6f\x72\x20\x24\x7b\x63\x73\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x54\x41\x47\x5f\x52\x45\x53\x4f\x4c\x56\x45\x5f\x46\x41\x49\x4c\x45\x44\x22\x2c\x20\x6d\x73\x67\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x67\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x65\x6d\x70\x74\x79\x53\x63\x61\x6c\x61\x72\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x62\x65\x66\x6f\x72\x65\x2c\x20\x70\x6f\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x62\x65\x66\x6f\x72\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x6f\x73\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x70\x6f\x73\x20\x3d\x20\x62\x65\x66\x6f\x72\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x70\x6f\x73\x20\x2d\x20\x31\x3b\x20\x69\x20\x3e\x3d\x20\x30\x3b\x20\x2d\x2d\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x74\x20\x3d\x20\x62\x65\x66\x6f\x72\x65\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x73\x74\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x2d\x3d\x20\x73\x74\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x74\x20\x3d\x20\x62\x65\x66\x6f\x72\x65\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x28\x73\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x73\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x73\x74\x2e\x74\x79\x70\x65\x29\x20\x3d\x3d\x3d\x20\x22\x73\x70\x61\x63\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x73\x74\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x20\x3d\x20\x62\x65\x66\x6f\x72\x65\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x66\x66\x73\x65\x74\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x43\x4e\x20\x3d\x20\x7b\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x2c\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x20\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x28\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x74\x61\x67\x20\x7d\x20\x3d\x20\x70\x72\x6f\x70\x73\x3b\x0a\x20\x20\x6c\x65\x74\x20\x6e\x6f\x64\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x69\x73\x53\x72\x63\x54\x6f\x6b\x65\x6e\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6c\x69\x61\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x73\x65\x41\x6c\x69\x61\x73\x28\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x20\x7c\x7c\x20\x74\x61\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x41\x4c\x49\x41\x53\x5f\x50\x52\x4f\x50\x53\x22\x2c\x20\x22\x41\x6e\x20\x61\x6c\x69\x61\x73\x20\x6e\x6f\x64\x65\x20\x6d\x75\x73\x74\x20\x6e\x6f\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x61\x6e\x79\x20\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x73\x65\x53\x63\x61\x6c\x61\x72\x28\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x74\x61\x67\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x2e\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x73\x65\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x43\x4e\x2c\x20\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x74\x61\x67\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x2e\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x65\x72\x72\x6f\x72\x22\x20\x3f\x20\x74\x6f\x6b\x65\x6e\x2e\x6d\x65\x73\x73\x61\x67\x65\x20\x3a\x20\x60\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x74\x6f\x6b\x65\x6e\x20\x28\x74\x79\x70\x65\x3a\x20\x24\x7b\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x7d\x29\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x28\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x76\x6f\x69\x64\x20\x30\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x73\x53\x72\x63\x54\x6f\x6b\x65\x6e\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x20\x26\x26\x20\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x3d\x3d\x20\x22\x22\x29\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x61\x6e\x63\x68\x6f\x72\x2c\x20\x22\x42\x41\x44\x5f\x41\x4c\x49\x41\x53\x22\x2c\x20\x22\x41\x6e\x63\x68\x6f\x72\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x72\x69\x6e\x67\x22\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x20\x26\x26\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x63\x74\x78\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6b\x65\x65\x70\x53\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x73\x20\x26\x26\x20\x69\x73\x53\x72\x63\x54\x6f\x6b\x65\x6e\x29\x0a\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x73\x72\x63\x54\x6f\x6b\x65\x6e\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x28\x63\x74\x78\x2c\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x62\x65\x66\x6f\x72\x65\x2c\x20\x70\x6f\x73\x2c\x20\x7b\x20\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x2c\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x61\x6e\x63\x68\x6f\x72\x2c\x20\x74\x61\x67\x20\x7d\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x6b\x65\x6e\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x2c\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x65\x6d\x70\x74\x79\x53\x63\x61\x6c\x61\x72\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x62\x65\x66\x6f\x72\x65\x2c\x20\x70\x6f\x73\x29\x2c\x0a\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x2d\x31\x2c\x0a\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x22\x22\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6f\x64\x65\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x73\x65\x53\x63\x61\x6c\x61\x72\x28\x63\x74\x78\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x74\x61\x67\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x6e\x63\x68\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x20\x61\x6e\x63\x68\x6f\x72\x2e\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6f\x64\x65\x2e\x61\x6e\x63\x68\x6f\x72\x20\x3d\x3d\x3d\x20\x22\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x61\x6e\x63\x68\x6f\x72\x2c\x20\x22\x42\x41\x44\x5f\x41\x4c\x49\x41\x53\x22\x2c\x20\x22\x41\x6e\x63\x68\x6f\x72\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x72\x69\x6e\x67\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x29\x0a\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x73\x70\x61\x63\x65\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x6e\x6f\x64\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x6f\x64\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x6f\x73\x65\x41\x6c\x69\x61\x73\x28\x7b\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x7d\x2c\x20\x7b\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x6f\x75\x72\x63\x65\x2c\x20\x65\x6e\x64\x20\x7d\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x6c\x69\x61\x73\x20\x3d\x20\x6e\x65\x77\x20\x41\x6c\x69\x61\x73\x28\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x6c\x69\x61\x73\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x22\x29\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x22\x42\x41\x44\x5f\x41\x4c\x49\x41\x53\x22\x2c\x20\x22\x41\x6c\x69\x61\x73\x20\x63\x61\x6e\x6e\x6f\x74\x20\x62\x65\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x72\x69\x6e\x67\x22\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x61\x6c\x69\x61\x73\x2e\x73\x6f\x75\x72\x63\x65\x2e\x65\x6e\x64\x73\x57\x69\x74\x68\x28\x22\x3a\x22\x29\x29\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x2c\x20\x22\x42\x41\x44\x5f\x41\x4c\x49\x41\x53\x22\x2c\x20\x22\x41\x6c\x69\x61\x73\x20\x65\x6e\x64\x69\x6e\x67\x20\x69\x6e\x20\x3a\x20\x69\x73\x20\x61\x6d\x62\x69\x67\x75\x6f\x75\x73\x22\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x61\x6c\x75\x65\x45\x6e\x64\x20\x3d\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x45\x6e\x64\x28\x65\x6e\x64\x2c\x20\x76\x61\x6c\x75\x65\x45\x6e\x64\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x72\x69\x63\x74\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x61\x6c\x69\x61\x73\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x5b\x6f\x66\x66\x73\x65\x74\x2c\x20\x76\x61\x6c\x75\x65\x45\x6e\x64\x2c\x20\x72\x65\x2e\x6f\x66\x66\x73\x65\x74\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x61\x6c\x69\x61\x73\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x72\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x6c\x69\x61\x73\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x6f\x6d\x70\x6f\x73\x65\x44\x6f\x63\x28\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2c\x20\x7b\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x74\x61\x72\x74\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x65\x6e\x64\x20\x7d\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x7d\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x70\x74\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x74\x78\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x61\x74\x52\x6f\x6f\x74\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3a\x20\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2c\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x64\x6f\x63\x32\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x73\x63\x68\x65\x6d\x61\x3a\x20\x64\x6f\x63\x32\x2e\x73\x63\x68\x65\x6d\x61\x0a\x20\x20\x7d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x6f\x70\x73\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x50\x72\x6f\x70\x73\x28\x73\x74\x61\x72\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x3a\x20\x22\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x22\x2c\x0a\x20\x20\x20\x20\x6e\x65\x78\x74\x3a\x20\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x76\x61\x6c\x75\x65\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x61\x6c\x75\x65\x20\x3a\x20\x65\x6e\x64\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x65\x6e\x64\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x65\x6e\x64\x5b\x30\x5d\x2c\x0a\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x2c\x0a\x20\x20\x20\x20\x73\x74\x61\x72\x74\x4f\x6e\x4e\x65\x77\x6c\x69\x6e\x65\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x70\x72\x6f\x70\x73\x2e\x66\x6f\x75\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x6f\x63\x53\x74\x61\x72\x74\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x28\x76\x61\x6c\x75\x65\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x20\x7c\x7c\x20\x76\x61\x6c\x75\x65\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x29\x20\x26\x26\x20\x21\x70\x72\x6f\x70\x73\x2e\x68\x61\x73\x4e\x65\x77\x6c\x69\x6e\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x6f\x6e\x45\x72\x72\x6f\x72\x28\x70\x72\x6f\x70\x73\x2e\x65\x6e\x64\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x42\x6c\x6f\x63\x6b\x20\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x20\x63\x61\x6e\x6e\x6f\x74\x20\x73\x74\x61\x72\x74\x20\x6f\x6e\x20\x73\x61\x6d\x65\x20\x6c\x69\x6e\x65\x20\x77\x69\x74\x68\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2d\x65\x6e\x64\x20\x6d\x61\x72\x6b\x65\x72\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x20\x3d\x20\x76\x61\x6c\x75\x65\x20\x3f\x20\x63\x6f\x6d\x70\x6f\x73\x65\x4e\x6f\x64\x65\x28\x63\x74\x78\x2c\x20\x76\x61\x6c\x75\x65\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x20\x3a\x20\x63\x6f\x6d\x70\x6f\x73\x65\x45\x6d\x70\x74\x79\x4e\x6f\x64\x65\x28\x63\x74\x78\x2c\x20\x70\x72\x6f\x70\x73\x2e\x65\x6e\x64\x2c\x20\x73\x74\x61\x72\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x70\x72\x6f\x70\x73\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x74\x65\x6e\x74\x45\x6e\x64\x20\x3d\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e\x72\x61\x6e\x67\x65\x5b\x32\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x65\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x45\x6e\x64\x28\x65\x6e\x64\x2c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x45\x6e\x64\x2c\x20\x66\x61\x6c\x73\x65\x2c\x20\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x72\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x72\x65\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x64\x6f\x63\x32\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x5b\x6f\x66\x66\x73\x65\x74\x2c\x20\x63\x6f\x6e\x74\x65\x6e\x74\x45\x6e\x64\x2c\x20\x72\x65\x2e\x6f\x66\x66\x73\x65\x74\x5d\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x63\x32\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x45\x72\x72\x6f\x72\x50\x6f\x73\x28\x73\x72\x63\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x73\x72\x63\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x73\x72\x63\x2c\x20\x73\x72\x63\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x73\x72\x63\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x72\x63\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x32\x20\x3f\x20\x73\x72\x63\x20\x3a\x20\x5b\x73\x72\x63\x5b\x30\x5d\x2c\x20\x73\x72\x63\x5b\x31\x5d\x5d\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x6f\x75\x72\x63\x65\x20\x7d\x20\x3d\x20\x73\x72\x63\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x6f\x66\x66\x73\x65\x74\x2c\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x73\x6f\x75\x72\x63\x65\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3a\x20\x31\x29\x5d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x50\x72\x65\x6c\x75\x64\x65\x28\x70\x72\x65\x6c\x75\x64\x65\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x6c\x65\x74\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x6c\x65\x74\x20\x61\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x6c\x65\x74\x20\x61\x66\x74\x65\x72\x45\x6d\x70\x74\x79\x4c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x70\x72\x65\x6c\x75\x64\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x70\x72\x65\x6c\x75\x64\x65\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x23\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x2b\x3d\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x22\x22\x20\x3f\x20\x22\x22\x20\x3a\x20\x61\x66\x74\x65\x72\x45\x6d\x70\x74\x79\x4c\x69\x6e\x65\x20\x3f\x20\x22\x5c\x6e\x5c\x6e\x22\x20\x3a\x20\x22\x5c\x6e\x22\x29\x20\x2b\x20\x28\x73\x6f\x75\x72\x63\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x20\x7c\x7c\x20\x22\x20\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x66\x74\x65\x72\x45\x6d\x70\x74\x79\x4c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x25\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x28\x5f\x61\x20\x3d\x20\x70\x72\x65\x6c\x75\x64\x65\x5b\x69\x20\x2b\x20\x31\x5d\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x5b\x30\x5d\x29\x20\x21\x3d\x3d\x20\x22\x23\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x66\x74\x65\x72\x45\x6d\x70\x74\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x74\x43\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x61\x66\x74\x65\x72\x45\x6d\x70\x74\x79\x4c\x69\x6e\x65\x20\x7d\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x43\x6f\x6d\x70\x6f\x73\x65\x72\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x6c\x75\x64\x65\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x45\x72\x72\x6f\x72\x20\x3d\x20\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x2c\x20\x77\x61\x72\x6e\x69\x6e\x67\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x6f\x73\x20\x3d\x20\x67\x65\x74\x45\x72\x72\x6f\x72\x50\x6f\x73\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x77\x61\x72\x6e\x69\x6e\x67\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x2e\x70\x75\x73\x68\x28\x6e\x65\x77\x20\x59\x41\x4d\x4c\x57\x61\x72\x6e\x69\x6e\x67\x28\x70\x6f\x73\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x2e\x70\x75\x73\x68\x28\x6e\x65\x77\x20\x59\x41\x4d\x4c\x50\x61\x72\x73\x65\x45\x72\x72\x6f\x72\x28\x70\x6f\x73\x2c\x20\x63\x6f\x64\x65\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x6e\x65\x77\x20\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x28\x7b\x20\x76\x65\x72\x73\x69\x6f\x6e\x3a\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x76\x65\x72\x73\x69\x6f\x6e\x20\x7c\x7c\x20\x22\x31\x2e\x32\x22\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x64\x65\x63\x6f\x72\x61\x74\x65\x28\x64\x6f\x63\x32\x2c\x20\x61\x66\x74\x65\x72\x44\x6f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x20\x61\x66\x74\x65\x72\x45\x6d\x70\x74\x79\x4c\x69\x6e\x65\x20\x7d\x20\x3d\x20\x70\x61\x72\x73\x65\x50\x72\x65\x6c\x75\x64\x65\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x6c\x75\x64\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x63\x20\x3d\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x66\x74\x65\x72\x44\x6f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3f\x20\x60\x24\x7b\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x7d\x0a\x24\x7b\x63\x6f\x6d\x6d\x65\x6e\x74\x7d\x60\x20\x3a\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x66\x74\x65\x72\x45\x6d\x70\x74\x79\x4c\x69\x6e\x65\x20\x7c\x7c\x20\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x6f\x63\x53\x74\x61\x72\x74\x20\x7c\x7c\x20\x21\x64\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x64\x63\x29\x20\x26\x26\x20\x21\x64\x63\x2e\x66\x6c\x6f\x77\x20\x26\x26\x20\x64\x63\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x74\x20\x3d\x20\x64\x63\x2e\x69\x74\x65\x6d\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x50\x61\x69\x72\x28\x69\x74\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x20\x3d\x20\x69\x74\x2e\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x62\x20\x3d\x20\x69\x74\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x63\x62\x20\x3f\x20\x60\x24\x7b\x63\x6f\x6d\x6d\x65\x6e\x74\x7d\x0a\x24\x7b\x63\x62\x7d\x60\x20\x3a\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x62\x20\x3d\x20\x64\x63\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x63\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x42\x65\x66\x6f\x72\x65\x20\x3d\x20\x63\x62\x20\x3f\x20\x60\x24\x7b\x63\x6f\x6d\x6d\x65\x6e\x74\x7d\x0a\x24\x7b\x63\x62\x7d\x60\x20\x3a\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x61\x66\x74\x65\x72\x44\x6f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x64\x6f\x63\x32\x2e\x65\x72\x72\x6f\x72\x73\x2c\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x64\x6f\x63\x32\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x2c\x20\x74\x68\x69\x73\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x65\x72\x72\x6f\x72\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x6c\x75\x64\x65\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x74\x72\x65\x61\x6d\x49\x6e\x66\x6f\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6d\x6d\x65\x6e\x74\x3a\x20\x70\x61\x72\x73\x65\x50\x72\x65\x6c\x75\x64\x65\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x6c\x75\x64\x65\x29\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x73\x3a\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x77\x61\x72\x6e\x69\x6e\x67\x73\x3a\x20\x74\x68\x69\x73\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x63\x6f\x6d\x70\x6f\x73\x65\x28\x74\x6f\x6b\x65\x6e\x73\x2c\x20\x66\x6f\x72\x63\x65\x44\x6f\x63\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x6e\x64\x4f\x66\x66\x73\x65\x74\x20\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x74\x6f\x6b\x65\x6e\x20\x6f\x66\x20\x74\x6f\x6b\x65\x6e\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x6e\x65\x78\x74\x28\x74\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x65\x6e\x64\x28\x66\x6f\x72\x63\x65\x44\x6f\x63\x2c\x20\x65\x6e\x64\x4f\x66\x66\x73\x65\x74\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x6e\x65\x78\x74\x28\x74\x6f\x6b\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x69\x72\x65\x63\x74\x69\x76\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x61\x64\x64\x28\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2c\x20\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x2c\x20\x77\x61\x72\x6e\x69\x6e\x67\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x6f\x73\x20\x3d\x20\x67\x65\x74\x45\x72\x72\x6f\x72\x50\x6f\x73\x28\x74\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6f\x73\x5b\x30\x5d\x20\x2b\x3d\x20\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x45\x72\x72\x6f\x72\x28\x70\x6f\x73\x2c\x20\x22\x42\x41\x44\x5f\x44\x49\x52\x45\x43\x54\x49\x56\x45\x22\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x2c\x20\x77\x61\x72\x6e\x69\x6e\x67\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\x70\x72\x65\x6c\x75\x64\x65\x2e\x70\x75\x73\x68\x28\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x63\x32\x20\x3d\x20\x63\x6f\x6d\x70\x6f\x73\x65\x44\x6f\x63\x28\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2c\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x74\x68\x69\x73\x2e\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x26\x26\x20\x21\x64\x6f\x63\x32\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x6f\x63\x53\x74\x61\x72\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x45\x72\x72\x6f\x72\x28\x74\x6f\x6b\x65\x6e\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x4d\x69\x73\x73\x69\x6e\x67\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2d\x65\x6e\x64\x2f\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x6c\x69\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x63\x6f\x72\x61\x74\x65\x28\x64\x6f\x63\x32\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x6f\x63\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x20\x3d\x20\x64\x6f\x63\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x79\x74\x65\x2d\x6f\x72\x64\x65\x72\x2d\x6d\x61\x72\x6b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x72\x65\x6c\x75\x64\x65\x2e\x70\x75\x73\x68\x28\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x72\x72\x6f\x72\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x20\x3f\x20\x60\x24\x7b\x74\x6f\x6b\x65\x6e\x2e\x6d\x65\x73\x73\x61\x67\x65\x7d\x3a\x20\x24\x7b\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x29\x7d\x60\x20\x3a\x20\x74\x6f\x6b\x65\x6e\x2e\x6d\x65\x73\x73\x61\x67\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x72\x72\x6f\x72\x20\x3d\x20\x6e\x65\x77\x20\x59\x41\x4d\x4c\x50\x61\x72\x73\x65\x45\x72\x72\x6f\x72\x28\x67\x65\x74\x45\x72\x72\x6f\x72\x50\x6f\x73\x28\x74\x6f\x6b\x65\x6e\x29\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x6d\x73\x67\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x7c\x7c\x20\x21\x74\x68\x69\x73\x2e\x64\x6f\x63\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x2e\x70\x75\x73\x68\x28\x65\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x2e\x65\x72\x72\x6f\x72\x73\x2e\x70\x75\x73\x68\x28\x65\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x65\x6e\x64\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x64\x6f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x73\x67\x20\x3d\x20\x22\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x64\x6f\x63\x2d\x65\x6e\x64\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x70\x72\x65\x63\x65\x64\x69\x6e\x67\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x2e\x70\x75\x73\x68\x28\x6e\x65\x77\x20\x59\x41\x4d\x4c\x50\x61\x72\x73\x65\x45\x72\x72\x6f\x72\x28\x67\x65\x74\x45\x72\x72\x6f\x72\x50\x6f\x73\x28\x74\x6f\x6b\x65\x6e\x29\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x6d\x73\x67\x29\x29\x3b\x0a\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\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2e\x64\x6f\x63\x45\x6e\x64\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x45\x6e\x64\x28\x74\x6f\x6b\x65\x6e\x2e\x65\x6e\x64\x2c\x20\x74\x6f\x6b\x65\x6e\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x74\x6f\x6b\x65\x6e\x2e\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x74\x72\x69\x63\x74\x2c\x20\x74\x68\x69\x73\x2e\x6f\x6e\x45\x72\x72\x6f\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x63\x6f\x72\x61\x74\x65\x28\x74\x68\x69\x73\x2e\x64\x6f\x63\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x63\x20\x3d\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x20\x3d\x20\x64\x63\x20\x3f\x20\x60\x24\x7b\x64\x63\x7d\x0a\x24\x7b\x65\x6e\x64\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\x7d\x60\x20\x3a\x20\x65\x6e\x64\x2e\x63\x6f\x6d\x6d\x65\x6e\x74\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\x64\x6f\x63\x2e\x72\x61\x6e\x67\x65\x5b\x32\x5d\x20\x3d\x20\x65\x6e\x64\x2e\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x73\x2e\x70\x75\x73\x68\x28\x6e\x65\x77\x20\x59\x41\x4d\x4c\x50\x61\x72\x73\x65\x45\x72\x72\x6f\x72\x28\x67\x65\x74\x45\x72\x72\x6f\x72\x50\x6f\x73\x28\x74\x6f\x6b\x65\x6e\x29\x2c\x20\x22\x55\x4e\x45\x58\x50\x45\x43\x54\x45\x44\x5f\x54\x4f\x4b\x45\x4e\x22\x2c\x20\x60\x55\x6e\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x74\x6f\x6b\x65\x6e\x20\x24\x7b\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x7d\x60\x29\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x65\x6e\x64\x28\x66\x6f\x72\x63\x65\x44\x6f\x63\x20\x3d\x20\x66\x61\x6c\x73\x65\x2c\x20\x65\x6e\x64\x4f\x66\x66\x73\x65\x74\x20\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x64\x6f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x63\x6f\x72\x61\x74\x65\x28\x74\x68\x69\x73\x2e\x64\x6f\x63\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x66\x6f\x72\x63\x65\x44\x6f\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6f\x70\x74\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x3a\x20\x74\x68\x69\x73\x2e\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x7d\x2c\x20\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x63\x32\x20\x3d\x20\x6e\x65\x77\x20\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x76\x6f\x69\x64\x20\x30\x2c\x20\x6f\x70\x74\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x44\x69\x72\x65\x63\x74\x69\x76\x65\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x45\x72\x72\x6f\x72\x28\x65\x6e\x64\x4f\x66\x66\x73\x65\x74\x2c\x20\x22\x4d\x49\x53\x53\x49\x4e\x47\x5f\x43\x48\x41\x52\x22\x2c\x20\x22\x4d\x69\x73\x73\x69\x6e\x67\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x2d\x65\x6e\x64\x20\x69\x6e\x64\x69\x63\x61\x74\x6f\x72\x20\x6c\x69\x6e\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x72\x61\x6e\x67\x65\x20\x3d\x20\x5b\x30\x2c\x20\x65\x6e\x64\x4f\x66\x66\x73\x65\x74\x2c\x20\x65\x6e\x64\x4f\x66\x66\x73\x65\x74\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x63\x6f\x72\x61\x74\x65\x28\x64\x6f\x63\x32\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x64\x6f\x63\x32\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x42\x4f\x4d\x20\x3d\x20\x22\x5c\x75\x46\x45\x46\x46\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x44\x4f\x43\x55\x4d\x45\x4e\x54\x20\x3d\x20\x22\x02\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x46\x4c\x4f\x57\x5f\x45\x4e\x44\x20\x3d\x20\x22\x18\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x53\x43\x41\x4c\x41\x52\x20\x3d\x20\x22\x1f\x22\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x74\x6f\x6b\x65\x6e\x54\x79\x70\x65\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x42\x4f\x4d\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x62\x79\x74\x65\x2d\x6f\x72\x64\x65\x72\x2d\x6d\x61\x72\x6b\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x44\x4f\x43\x55\x4d\x45\x4e\x54\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x6f\x63\x2d\x6d\x6f\x64\x65\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x46\x4c\x4f\x57\x5f\x45\x4e\x44\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x2d\x65\x72\x72\x6f\x72\x2d\x65\x6e\x64\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x53\x43\x41\x4c\x41\x52\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2d\x2d\x2d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2e\x2e\x2e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x6f\x63\x2d\x65\x6e\x64\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5c\x6e\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5c\x72\x5c\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x73\x65\x71\x2d\x69\x74\x65\x6d\x2d\x69\x6e\x64\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x3f\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x3a\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x2d\x6d\x61\x70\x2d\x73\x74\x61\x72\x74\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x2d\x6d\x61\x70\x2d\x65\x6e\x64\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x2d\x73\x65\x71\x2d\x73\x74\x61\x72\x74\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x2d\x73\x65\x71\x2d\x65\x6e\x64\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2c\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x63\x6f\x6d\x6d\x61\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x20\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x09\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x73\x70\x61\x63\x65\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x23\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x25\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x69\x72\x65\x63\x74\x69\x76\x65\x2d\x6c\x69\x6e\x65\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2a\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x61\x6c\x69\x61\x73\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x26\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x61\x6e\x63\x68\x6f\x72\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x21\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x74\x61\x67\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x27\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x27\x22\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7c\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x3e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x2d\x68\x65\x61\x64\x65\x72\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x45\x6d\x70\x74\x79\x28\x63\x68\x29\x20\x7b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x76\x6f\x69\x64\x20\x30\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x20\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5c\x6e\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5c\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x09\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x68\x65\x78\x44\x69\x67\x69\x74\x73\x20\x3d\x20\x22\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x41\x42\x43\x44\x45\x46\x61\x62\x63\x64\x65\x66\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x74\x61\x67\x43\x68\x61\x72\x73\x20\x3d\x20\x22\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x2d\x23\x3b\x2f\x3f\x3a\x40\x26\x3d\x2b\x24\x5f\x2e\x21\x7e\x2a\x27\x28\x29\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x76\x61\x6c\x69\x64\x46\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x43\x68\x61\x72\x73\x20\x3d\x20\x22\x2c\x5b\x5d\x7b\x7d\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x6e\x76\x61\x6c\x69\x64\x41\x6e\x63\x68\x6f\x72\x43\x68\x61\x72\x73\x20\x3d\x20\x22\x20\x2c\x5b\x5d\x7b\x7d\x5c\x6e\x5c\x72\x09\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x22\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x69\x73\x4e\x6f\x74\x41\x6e\x63\x68\x6f\x72\x43\x68\x61\x72\x20\x3d\x20\x28\x63\x68\x29\x20\x3d\x3e\x20\x21\x63\x68\x20\x7c\x7c\x20\x69\x6e\x76\x61\x6c\x69\x64\x41\x6e\x63\x68\x6f\x72\x43\x68\x61\x72\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x68\x29\x3b\x0a\x63\x6c\x61\x73\x73\x20\x4c\x65\x78\x65\x72\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x49\x6e\x64\x65\x6e\x74\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x4b\x65\x65\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x45\x6e\x64\x50\x6f\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x65\x78\x74\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x6c\x65\x78\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x69\x6e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x20\x3f\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x20\x2b\x20\x73\x6f\x75\x72\x63\x65\x20\x3a\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x45\x6e\x64\x50\x6f\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x20\x3d\x20\x21\x69\x6e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x74\x68\x69\x73\x2e\x6e\x65\x78\x74\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x22\x73\x74\x72\x65\x61\x6d\x22\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x65\x78\x74\x20\x26\x26\x20\x28\x69\x6e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x68\x61\x73\x43\x68\x61\x72\x73\x28\x31\x29\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x4e\x65\x78\x74\x28\x6e\x65\x78\x74\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x74\x4c\x69\x6e\x65\x45\x6e\x64\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x23\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x68\x61\x72\x41\x74\x28\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2b\x20\x6e\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x53\x63\x61\x6c\x61\x72\x28\x6f\x66\x66\x73\x65\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x6f\x66\x66\x73\x65\x74\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2b\x2b\x69\x6e\x64\x65\x6e\x74\x20\x2b\x20\x6f\x66\x66\x73\x65\x74\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x6e\x64\x65\x6e\x74\x20\x2b\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x7c\x7c\x20\x21\x6e\x65\x78\x74\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x7c\x7c\x20\x69\x6e\x64\x65\x6e\x74\x20\x3e\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x7c\x7c\x20\x21\x63\x68\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x20\x3f\x20\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x20\x3a\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x2e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x75\x62\x73\x74\x72\x28\x6f\x66\x66\x73\x65\x74\x2c\x20\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x64\x74\x20\x3d\x3d\x3d\x20\x22\x2d\x2d\x2d\x22\x20\x7c\x7c\x20\x64\x74\x20\x3d\x3d\x3d\x20\x22\x2e\x2e\x2e\x22\x29\x20\x26\x26\x20\x69\x73\x45\x6d\x70\x74\x79\x28\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x33\x5d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x66\x66\x73\x65\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x4c\x69\x6e\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x45\x6e\x64\x50\x6f\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x6e\x64\x20\x21\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x7c\x7c\x20\x65\x6e\x64\x20\x21\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x65\x6e\x64\x20\x3c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x45\x6e\x64\x50\x6f\x73\x20\x3d\x20\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x20\x3f\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x65\x6e\x64\x20\x2d\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x2d\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x20\x65\x6e\x64\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x68\x61\x73\x43\x68\x61\x72\x73\x28\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2b\x20\x6e\x20\x3c\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x65\x74\x4e\x65\x78\x74\x28\x73\x74\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x45\x6e\x64\x50\x6f\x73\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x65\x78\x74\x20\x3d\x20\x73\x74\x61\x74\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x70\x65\x65\x6b\x28\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x75\x62\x73\x74\x72\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x20\x6e\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x4e\x65\x78\x74\x28\x6e\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6e\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x74\x72\x65\x61\x6d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x53\x74\x72\x65\x61\x6d\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6c\x69\x6e\x65\x2d\x73\x74\x61\x72\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x4c\x69\x6e\x65\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x74\x61\x72\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x46\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x51\x75\x6f\x74\x65\x64\x53\x63\x61\x6c\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x70\x6c\x61\x69\x6e\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x50\x6c\x61\x69\x6e\x53\x63\x61\x6c\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x53\x74\x72\x65\x61\x6d\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6c\x69\x6e\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x73\x74\x72\x65\x61\x6d\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x42\x4f\x4d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x69\x6e\x65\x20\x3d\x20\x6c\x69\x6e\x65\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x25\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x64\x69\x72\x45\x6e\x64\x20\x3d\x20\x6c\x69\x6e\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x6c\x69\x6e\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x23\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x73\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x6c\x69\x6e\x65\x5b\x63\x73\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x45\x6e\x64\x20\x3d\x20\x63\x73\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x6c\x69\x6e\x65\x5b\x64\x69\x72\x45\x6e\x64\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x69\x72\x45\x6e\x64\x20\x2d\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x64\x69\x72\x45\x6e\x64\x29\x29\x20\x2b\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x6c\x69\x6e\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x4e\x65\x77\x6c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x73\x74\x72\x65\x61\x6d\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x4c\x69\x6e\x65\x45\x6e\x64\x28\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x70\x20\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x6c\x69\x6e\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x73\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x4e\x65\x77\x6c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x73\x74\x72\x65\x61\x6d\x22\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x44\x4f\x43\x55\x4d\x45\x4e\x54\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x4c\x69\x6e\x65\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x4c\x69\x6e\x65\x53\x74\x61\x72\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x6c\x69\x6e\x65\x2d\x73\x74\x61\x72\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x2e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x68\x61\x73\x43\x68\x61\x72\x73\x28\x34\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x6c\x69\x6e\x65\x2d\x73\x74\x61\x72\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x65\x65\x6b\x28\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x20\x3d\x3d\x3d\x20\x22\x2d\x2d\x2d\x22\x20\x26\x26\x20\x69\x73\x45\x6d\x70\x74\x79\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x33\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x6f\x63\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x20\x3d\x3d\x3d\x20\x22\x2e\x2e\x2e\x22\x20\x26\x26\x20\x69\x73\x45\x6d\x70\x74\x79\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x33\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x33\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x73\x74\x72\x65\x61\x6d\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x3e\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x26\x26\x20\x21\x69\x73\x45\x6d\x70\x74\x79\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x31\x29\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x74\x61\x72\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x5b\x63\x68\x30\x2c\x20\x63\x68\x31\x5d\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x65\x65\x6b\x28\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x31\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x74\x61\x72\x74\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x28\x63\x68\x30\x20\x3d\x3d\x3d\x20\x22\x2d\x22\x20\x7c\x7c\x20\x63\x68\x30\x20\x3d\x3d\x3d\x20\x22\x3f\x22\x20\x7c\x7c\x20\x63\x68\x30\x20\x3d\x3d\x3d\x20\x22\x3a\x22\x29\x20\x26\x26\x20\x69\x73\x45\x6d\x70\x74\x79\x28\x63\x68\x31\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x29\x20\x2b\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x2b\x3d\x20\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x6f\x63\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x64\x6f\x63\x22\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x20\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x49\x6e\x64\x69\x63\x61\x74\x6f\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6c\x69\x6e\x65\x5b\x6e\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x23\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x6c\x69\x6e\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x76\x6f\x69\x64\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x4e\x65\x77\x6c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x4c\x69\x6e\x65\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x6f\x63\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2a\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x55\x6e\x74\x69\x6c\x28\x69\x73\x4e\x6f\x74\x41\x6e\x63\x68\x6f\x72\x43\x68\x61\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x64\x6f\x63\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x27\x22\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x27\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x51\x75\x6f\x74\x65\x64\x53\x63\x61\x6c\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7c\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x3e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x20\x2b\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x48\x65\x61\x64\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x20\x2b\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x6c\x69\x6e\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x4e\x65\x77\x6c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x50\x6c\x61\x69\x6e\x53\x63\x61\x6c\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x46\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x6c\x2c\x20\x73\x70\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x64\x6f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x6c\x20\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x4e\x65\x77\x6c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6c\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x20\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x3d\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x73\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x70\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x70\x20\x2b\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x6c\x20\x2b\x20\x73\x70\x20\x3e\x20\x30\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x67\x65\x74\x4c\x69\x6e\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x6e\x65\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x66\x6c\x6f\x77\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x64\x65\x6e\x74\x20\x21\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x69\x6e\x64\x65\x6e\x74\x20\x3c\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x26\x26\x20\x6c\x69\x6e\x65\x5b\x30\x5d\x20\x21\x3d\x3d\x20\x22\x23\x22\x20\x7c\x7c\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x30\x20\x26\x26\x20\x28\x6c\x69\x6e\x65\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x22\x2d\x2d\x2d\x22\x29\x20\x7c\x7c\x20\x6c\x69\x6e\x65\x2e\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68\x28\x22\x2e\x2e\x2e\x22\x29\x29\x20\x26\x26\x20\x69\x73\x45\x6d\x70\x74\x79\x28\x6c\x69\x6e\x65\x5b\x33\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x74\x46\x6c\x6f\x77\x45\x6e\x64\x4d\x61\x72\x6b\x65\x72\x20\x3d\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x2d\x20\x31\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x3d\x3d\x3d\x20\x31\x20\x26\x26\x20\x28\x6c\x69\x6e\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x5d\x22\x20\x7c\x7c\x20\x6c\x69\x6e\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x7d\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x61\x74\x46\x6c\x6f\x77\x45\x6e\x64\x4d\x61\x72\x6b\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x46\x4c\x4f\x57\x5f\x45\x4e\x44\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x4c\x69\x6e\x65\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6c\x69\x6e\x65\x5b\x6e\x5d\x20\x3d\x3d\x3d\x20\x22\x2c\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6e\x20\x2b\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6e\x20\x2b\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x6e\x20\x2b\x3d\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x49\x6e\x64\x69\x63\x61\x74\x6f\x72\x73\x28\x29\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6c\x69\x6e\x65\x5b\x6e\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x76\x6f\x69\x64\x20\x30\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x23\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x6c\x69\x6e\x65\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x7d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x2d\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x3f\x20\x22\x66\x6c\x6f\x77\x22\x20\x3a\x20\x22\x64\x6f\x63\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2a\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x55\x6e\x74\x69\x6c\x28\x69\x73\x4e\x6f\x74\x41\x6e\x63\x68\x6f\x72\x43\x68\x61\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x27\x22\x27\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x27\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x51\x75\x6f\x74\x65\x64\x53\x63\x61\x6c\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x3a\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x7c\x7c\x20\x69\x73\x45\x6d\x70\x74\x79\x28\x6e\x65\x78\x74\x29\x20\x7c\x7c\x20\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x2c\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x22\x66\x6c\x6f\x77\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x50\x6c\x61\x69\x6e\x53\x63\x61\x6c\x61\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x51\x75\x6f\x74\x65\x64\x53\x63\x61\x6c\x61\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x71\x75\x6f\x74\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x71\x75\x6f\x74\x65\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x71\x75\x6f\x74\x65\x20\x3d\x3d\x3d\x20\x22\x27\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x65\x6e\x64\x20\x21\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x65\x6e\x64\x20\x2b\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x27\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x27\x22\x2c\x20\x65\x6e\x64\x20\x2b\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x65\x6e\x64\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x65\x6e\x64\x20\x2d\x20\x31\x20\x2d\x20\x6e\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x5c\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x20\x25\x20\x32\x20\x3d\x3d\x3d\x20\x30\x29\x0a\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\x65\x6e\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x27\x22\x27\x2c\x20\x65\x6e\x64\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x71\x62\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x65\x6e\x64\x29\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x6c\x20\x3d\x20\x71\x62\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x2c\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6c\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x6c\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x69\x6e\x75\x65\x53\x63\x61\x6c\x61\x72\x28\x6e\x6c\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x73\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x0a\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\x6e\x6c\x20\x3d\x20\x71\x62\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x2c\x20\x63\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6c\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x6e\x6c\x20\x2d\x20\x28\x71\x62\x5b\x6e\x6c\x20\x2d\x20\x31\x5d\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x20\x3f\x20\x32\x20\x3a\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6e\x64\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x54\x6f\x49\x6e\x64\x65\x78\x28\x65\x6e\x64\x20\x2b\x20\x31\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x3f\x20\x22\x66\x6c\x6f\x77\x22\x20\x3a\x20\x22\x64\x6f\x63\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x48\x65\x61\x64\x65\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x49\x6e\x64\x65\x6e\x74\x20\x3d\x20\x2d\x31\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x4b\x65\x65\x70\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x72\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x2b\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x4b\x65\x65\x70\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x20\x3e\x20\x22\x30\x22\x20\x26\x26\x20\x63\x68\x20\x3c\x3d\x20\x22\x39\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x49\x6e\x64\x65\x6e\x74\x20\x3d\x20\x4e\x75\x6d\x62\x65\x72\x28\x63\x68\x29\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x20\x21\x3d\x3d\x20\x22\x2d\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x55\x6e\x74\x69\x6c\x28\x28\x63\x68\x29\x20\x3d\x3e\x20\x69\x73\x45\x6d\x70\x74\x79\x28\x63\x68\x29\x20\x7c\x7c\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x23\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x42\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x3b\x0a\x20\x20\x20\x20\x6c\x6f\x6f\x70\x3a\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x3b\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x5d\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x20\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5c\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6c\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x5c\x72\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x6e\x65\x78\x74\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\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\x7d\x0a\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\x62\x72\x65\x61\x6b\x20\x6c\x6f\x6f\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x64\x65\x6e\x74\x20\x3e\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x49\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x3d\x20\x69\x6e\x64\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x2b\x3d\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x49\x6e\x64\x65\x6e\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x69\x6e\x75\x65\x53\x63\x61\x6c\x61\x72\x28\x6e\x6c\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x73\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x0a\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\x6e\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x2c\x20\x63\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x6c\x20\x21\x3d\x3d\x20\x2d\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6c\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x4b\x65\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x6e\x6c\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x32\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2d\x2d\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x43\x68\x61\x72\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x32\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x63\x68\x32\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x32\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2d\x2d\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x32\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x20\x26\x26\x20\x69\x20\x3e\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x26\x26\x20\x69\x20\x2b\x20\x31\x20\x2b\x20\x69\x6e\x64\x65\x6e\x74\x20\x3e\x20\x6c\x61\x73\x74\x43\x68\x61\x72\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6c\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x53\x43\x41\x4c\x41\x52\x3b\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x54\x6f\x49\x6e\x64\x65\x78\x28\x6e\x6c\x20\x2b\x20\x31\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x61\x72\x73\x65\x4c\x69\x6e\x65\x53\x74\x61\x72\x74\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x50\x6c\x61\x69\x6e\x53\x63\x61\x6c\x61\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x46\x6c\x6f\x77\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x3e\x20\x30\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x65\x6e\x64\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2b\x2b\x69\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x3a\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x70\x74\x79\x28\x6e\x65\x78\x74\x29\x20\x7c\x7c\x20\x69\x6e\x46\x6c\x6f\x77\x20\x26\x26\x20\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x2c\x22\x29\x0a\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\x65\x6e\x64\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x70\x74\x79\x28\x63\x68\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x2b\x3d\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x22\x5c\x6e\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x20\x2b\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x65\x78\x74\x20\x3d\x3d\x3d\x20\x22\x23\x22\x20\x7c\x7c\x20\x69\x6e\x46\x6c\x6f\x77\x20\x26\x26\x20\x69\x6e\x76\x61\x6c\x69\x64\x46\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x43\x68\x61\x72\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x6e\x65\x78\x74\x29\x29\x0a\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\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x69\x6e\x75\x65\x53\x63\x61\x6c\x61\x72\x28\x69\x20\x2b\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x73\x20\x3d\x3d\x3d\x20\x2d\x31\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x20\x3d\x20\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\x69\x2c\x20\x63\x73\x20\x2d\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x46\x6c\x6f\x77\x20\x26\x26\x20\x69\x6e\x76\x61\x6c\x69\x64\x46\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x43\x68\x61\x72\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x68\x29\x29\x0a\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\x65\x6e\x64\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x63\x68\x20\x26\x26\x20\x21\x74\x68\x69\x73\x2e\x61\x74\x45\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x65\x74\x4e\x65\x78\x74\x28\x22\x70\x6c\x61\x69\x6e\x2d\x73\x63\x61\x6c\x61\x72\x22\x29\x3b\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x53\x43\x41\x4c\x41\x52\x3b\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x54\x6f\x49\x6e\x64\x65\x78\x28\x65\x6e\x64\x20\x2b\x20\x31\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x6e\x46\x6c\x6f\x77\x20\x3f\x20\x22\x66\x6c\x6f\x77\x22\x20\x3a\x20\x22\x64\x6f\x63\x22\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x75\x62\x73\x74\x72\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x20\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2b\x3d\x20\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x75\x73\x68\x54\x6f\x49\x6e\x64\x65\x78\x28\x69\x2c\x20\x61\x6c\x6c\x6f\x77\x45\x6d\x70\x74\x79\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x6c\x69\x63\x65\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x20\x69\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2b\x3d\x20\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x6c\x6c\x6f\x77\x45\x6d\x70\x74\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x75\x73\x68\x49\x6e\x64\x69\x63\x61\x74\x6f\x72\x73\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x21\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x54\x61\x67\x28\x29\x29\x20\x2b\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x29\x20\x2b\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x49\x6e\x64\x69\x63\x61\x74\x6f\x72\x73\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x26\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x55\x6e\x74\x69\x6c\x28\x69\x73\x4e\x6f\x74\x41\x6e\x63\x68\x6f\x72\x43\x68\x61\x72\x29\x29\x20\x2b\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x29\x20\x2b\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x49\x6e\x64\x69\x63\x61\x74\x6f\x72\x73\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x2d\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x3f\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x3a\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x46\x6c\x6f\x77\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4c\x65\x76\x65\x6c\x20\x3e\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x31\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x45\x6d\x70\x74\x79\x28\x63\x68\x31\x29\x20\x7c\x7c\x20\x69\x6e\x46\x6c\x6f\x77\x20\x26\x26\x20\x69\x6e\x76\x61\x6c\x69\x64\x46\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x43\x68\x61\x72\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x68\x31\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x46\x6c\x6f\x77\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x4e\x65\x78\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x56\x61\x6c\x75\x65\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x4b\x65\x79\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x29\x20\x2b\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x74\x72\x75\x65\x29\x29\x20\x2b\x20\x28\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x49\x6e\x64\x69\x63\x61\x74\x6f\x72\x73\x28\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x75\x73\x68\x54\x61\x67\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x31\x29\x20\x3d\x3d\x3d\x20\x22\x3c\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2b\x20\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x21\x69\x73\x45\x6d\x70\x74\x79\x28\x63\x68\x29\x20\x26\x26\x20\x63\x68\x20\x21\x3d\x3d\x20\x22\x3e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x54\x6f\x49\x6e\x64\x65\x78\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x3e\x22\x20\x3f\x20\x69\x20\x2b\x20\x31\x20\x3a\x20\x69\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x67\x43\x68\x61\x72\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x63\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x25\x22\x20\x26\x26\x20\x68\x65\x78\x44\x69\x67\x69\x74\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x20\x2b\x20\x31\x5d\x29\x20\x26\x26\x20\x68\x65\x78\x44\x69\x67\x69\x74\x73\x2e\x69\x6e\x63\x6c\x75\x64\x65\x73\x28\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x20\x2b\x20\x32\x5d\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x20\x2b\x3d\x20\x33\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x54\x6f\x49\x6e\x64\x65\x78\x28\x69\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x75\x73\x68\x4e\x65\x77\x6c\x69\x6e\x65\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x74\x68\x69\x73\x2e\x70\x6f\x73\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x5c\x72\x22\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x41\x74\x28\x31\x29\x20\x3d\x3d\x3d\x20\x22\x5c\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x43\x6f\x75\x6e\x74\x28\x32\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x75\x73\x68\x53\x70\x61\x63\x65\x73\x28\x61\x6c\x6c\x6f\x77\x54\x61\x62\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x2d\x20\x31\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x3b\x0a\x20\x20\x20\x20\x64\x6f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x77\x68\x69\x6c\x65\x20\x28\x63\x68\x20\x3d\x3d\x3d\x20\x22\x20\x22\x20\x7c\x7c\x20\x61\x6c\x6c\x6f\x77\x54\x61\x62\x73\x20\x26\x26\x20\x63\x68\x20\x3d\x3d\x3d\x20\x22\x09\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x20\x3d\x20\x69\x20\x2d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x2e\x73\x75\x62\x73\x74\x72\x28\x74\x68\x69\x73\x2e\x70\x6f\x73\x2c\x20\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x20\x3d\x20\x69\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x75\x73\x68\x55\x6e\x74\x69\x6c\x28\x74\x65\x73\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x6f\x73\x3b\x0a\x20\x20\x20\x20\x6c\x65\x74\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x21\x74\x65\x73\x74\x28\x63\x68\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x62\x75\x66\x66\x65\x72\x5b\x2b\x2b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x54\x6f\x49\x6e\x64\x65\x78\x28\x69\x2c\x20\x66\x61\x6c\x73\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x4c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x64\x64\x4e\x65\x77\x4c\x69\x6e\x65\x20\x3d\x20\x28\x6f\x66\x66\x73\x65\x74\x29\x20\x3d\x3e\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x2e\x70\x75\x73\x68\x28\x6f\x66\x66\x73\x65\x74\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x50\x6f\x73\x20\x3d\x20\x28\x6f\x66\x66\x73\x65\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6c\x6f\x77\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x68\x69\x67\x68\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6c\x6f\x77\x20\x3c\x20\x68\x69\x67\x68\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x69\x64\x20\x3d\x20\x6c\x6f\x77\x20\x2b\x20\x68\x69\x67\x68\x20\x3e\x3e\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x5b\x6d\x69\x64\x5d\x20\x3c\x20\x6f\x66\x66\x73\x65\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x6f\x77\x20\x3d\x20\x6d\x69\x64\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x67\x68\x20\x3d\x20\x6d\x69\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x5b\x6c\x6f\x77\x5d\x20\x3d\x3d\x3d\x20\x6f\x66\x66\x73\x65\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6c\x69\x6e\x65\x3a\x20\x6c\x6f\x77\x20\x2b\x20\x31\x2c\x20\x63\x6f\x6c\x3a\x20\x31\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x6f\x77\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6c\x69\x6e\x65\x3a\x20\x30\x2c\x20\x63\x6f\x6c\x3a\x20\x6f\x66\x66\x73\x65\x74\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x53\x74\x61\x72\x74\x73\x5b\x6c\x6f\x77\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6c\x69\x6e\x65\x3a\x20\x6c\x6f\x77\x2c\x20\x63\x6f\x6c\x3a\x20\x6f\x66\x66\x73\x65\x74\x20\x2d\x20\x73\x74\x61\x72\x74\x20\x2b\x20\x31\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x6c\x69\x73\x74\x2c\x20\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6c\x69\x73\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x69\x73\x74\x5b\x69\x5d\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x74\x79\x70\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x6e\x64\x4e\x6f\x6e\x45\x6d\x70\x74\x79\x49\x6e\x64\x65\x78\x28\x6c\x69\x73\x74\x29\x20\x7b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x6c\x69\x73\x74\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6c\x69\x73\x74\x5b\x69\x5d\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x69\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x2d\x31\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x73\x46\x6c\x6f\x77\x54\x6f\x6b\x65\x6e\x28\x74\x6f\x6b\x65\x6e\x29\x20\x7b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x6f\x6b\x65\x6e\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x74\x6f\x6b\x65\x6e\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6c\x69\x61\x73\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x28\x70\x61\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x70\x61\x72\x65\x6e\x74\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x65\x6e\x74\x2e\x73\x74\x61\x72\x74\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x70\x61\x72\x65\x6e\x74\x2e\x69\x74\x65\x6d\x73\x5b\x70\x61\x72\x65\x6e\x74\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x5f\x61\x20\x3d\x20\x69\x74\x2e\x73\x65\x70\x29\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x5f\x61\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x5f\x61\x20\x3a\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x61\x72\x65\x6e\x74\x2e\x69\x74\x65\x6d\x73\x5b\x70\x61\x72\x65\x6e\x74\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2e\x73\x74\x61\x72\x74\x3b\x0a\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x74\x46\x69\x72\x73\x74\x4b\x65\x79\x53\x74\x61\x72\x74\x50\x72\x6f\x70\x73\x28\x70\x72\x65\x76\x29\x20\x7b\x0a\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x69\x66\x20\x28\x70\x72\x65\x76\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5d\x3b\x0a\x20\x20\x6c\x65\x74\x20\x69\x20\x3d\x20\x70\x72\x65\x76\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x6c\x6f\x6f\x70\x3a\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x2d\x2d\x69\x20\x3e\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x70\x72\x65\x76\x5b\x69\x5d\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x71\x2d\x69\x74\x65\x6d\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x20\x6c\x6f\x6f\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x28\x28\x5f\x61\x20\x3d\x20\x70\x72\x65\x76\x5b\x2b\x2b\x69\x5d\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x74\x79\x70\x65\x29\x20\x3d\x3d\x3d\x20\x22\x73\x70\x61\x63\x65\x22\x29\x20\x7b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x70\x72\x65\x76\x2e\x73\x70\x6c\x69\x63\x65\x28\x69\x2c\x20\x70\x72\x65\x76\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x69\x78\x46\x6c\x6f\x77\x53\x65\x71\x49\x74\x65\x6d\x73\x28\x66\x63\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x66\x63\x2e\x73\x74\x61\x72\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x66\x6c\x6f\x77\x2d\x73\x65\x71\x2d\x73\x74\x61\x72\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x6f\x66\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x20\x26\x26\x20\x21\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x21\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x29\x20\x26\x26\x20\x21\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x65\x70\x2c\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x6b\x65\x79\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x69\x74\x2e\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x69\x74\x2e\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x73\x46\x6c\x6f\x77\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x2e\x65\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x2e\x65\x6e\x64\x2c\x20\x69\x74\x2e\x73\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x2e\x65\x6e\x64\x20\x3d\x20\x69\x74\x2e\x73\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x69\x74\x2e\x73\x65\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x69\x74\x2e\x73\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x50\x61\x72\x73\x65\x72\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x77\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x53\x63\x61\x6c\x61\x72\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x65\x78\x65\x72\x20\x3d\x20\x6e\x65\x77\x20\x4c\x65\x78\x65\x72\x28\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x20\x3d\x20\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x61\x72\x73\x65\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x69\x6e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x28\x30\x29\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6c\x65\x78\x65\x6d\x65\x20\x6f\x66\x20\x74\x68\x69\x73\x2e\x6c\x65\x78\x65\x72\x2e\x6c\x65\x78\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x69\x6e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x6e\x65\x78\x74\x28\x6c\x65\x78\x65\x6d\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x6e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x65\x6e\x64\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x6e\x65\x78\x74\x28\x73\x6f\x75\x72\x63\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x53\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x53\x63\x61\x6c\x61\x72\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x79\x70\x65\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x54\x79\x70\x65\x28\x73\x6f\x75\x72\x63\x65\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x3d\x20\x60\x4e\x6f\x74\x20\x61\x20\x59\x41\x4d\x4c\x20\x74\x6f\x6b\x65\x6e\x3a\x20\x24\x7b\x73\x6f\x75\x72\x63\x65\x7d\x60\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x65\x72\x72\x6f\x72\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x2c\x20\x73\x6f\x75\x72\x63\x65\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x77\x4c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x53\x63\x61\x6c\x61\x72\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x20\x74\x79\x70\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x77\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x28\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x77\x4c\x69\x6e\x65\x20\x26\x26\x20\x73\x6f\x75\x72\x63\x65\x5b\x30\x5d\x20\x3d\x3d\x3d\x20\x22\x20\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x2b\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x71\x2d\x69\x74\x65\x6d\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x77\x4c\x69\x6e\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x2b\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x6d\x6f\x64\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x65\x72\x72\x6f\x72\x2d\x65\x6e\x64\x22\x3a\x0a\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\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x77\x4c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x3d\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x65\x6e\x64\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x67\x65\x74\x20\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x73\x74\x65\x70\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x70\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x65\x65\x6b\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x63\x2d\x65\x6e\x64\x22\x20\x26\x26\x20\x28\x21\x74\x6f\x70\x20\x7c\x7c\x20\x74\x6f\x70\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x6f\x63\x2d\x65\x6e\x64\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x64\x6f\x63\x2d\x65\x6e\x64\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x6f\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x72\x65\x61\x6d\x28\x29\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x6f\x70\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x28\x74\x6f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6c\x69\x61\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x63\x61\x6c\x61\x72\x28\x74\x6f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x28\x74\x6f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x4d\x61\x70\x28\x74\x6f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x62\x6c\x6f\x63\x6b\x53\x65\x71\x75\x65\x6e\x63\x65\x28\x74\x6f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x74\x6f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x65\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6e\x64\x28\x74\x6f\x70\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x70\x65\x65\x6b\x28\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x5b\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x6e\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x70\x6f\x70\x28\x65\x72\x72\x6f\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x6b\x65\x6e\x20\x3d\x20\x65\x72\x72\x6f\x72\x20\x21\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x26\x26\x20\x65\x72\x72\x6f\x72\x20\x21\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x65\x72\x72\x6f\x72\x20\x3a\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x6f\x6b\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x3d\x20\x22\x54\x72\x69\x65\x64\x20\x74\x6f\x20\x70\x6f\x70\x20\x61\x6e\x20\x65\x6d\x70\x74\x79\x20\x73\x74\x61\x63\x6b\x22\x3b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x65\x72\x72\x6f\x72\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x22\x22\x2c\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x6f\x70\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x65\x65\x6b\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x22\x69\x6e\x64\x65\x6e\x74\x22\x20\x69\x6e\x20\x74\x6f\x70\x20\x3f\x20\x74\x6f\x70\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x74\x6f\x70\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x78\x46\x6c\x6f\x77\x53\x65\x71\x49\x74\x65\x6d\x73\x28\x74\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x6f\x70\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x70\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x70\x2e\x70\x72\x6f\x70\x73\x2e\x70\x75\x73\x68\x28\x74\x6f\x6b\x65\x6e\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x5b\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x5d\x2c\x20\x6b\x65\x79\x3a\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x73\x65\x70\x3a\x20\x5b\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\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\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x69\x74\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x73\x65\x70\x3a\x20\x5b\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x21\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\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\x20\x20\x7d\x0a\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x5b\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x5d\x2c\x20\x76\x61\x6c\x75\x65\x3a\x20\x74\x6f\x6b\x65\x6e\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\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\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x5b\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x20\x7c\x7c\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x5d\x2c\x20\x6b\x65\x79\x3a\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x73\x65\x70\x3a\x20\x5b\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x69\x74\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x74\x6f\x6b\x65\x6e\x2c\x20\x73\x65\x70\x3a\x20\x5b\x5d\x20\x7d\x29\x3b\x0a\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\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x74\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x74\x6f\x70\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x20\x7c\x7c\x20\x74\x6f\x70\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x20\x7c\x7c\x20\x74\x6f\x70\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x29\x20\x26\x26\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x20\x7c\x7c\x20\x74\x6f\x6b\x65\x6e\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x20\x3d\x20\x74\x6f\x6b\x65\x6e\x2e\x69\x74\x65\x6d\x73\x5b\x74\x6f\x6b\x65\x6e\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6c\x61\x73\x74\x20\x26\x26\x20\x21\x6c\x61\x73\x74\x2e\x73\x65\x70\x20\x26\x26\x20\x21\x6c\x61\x73\x74\x2e\x76\x61\x6c\x75\x65\x20\x26\x26\x20\x6c\x61\x73\x74\x2e\x73\x74\x61\x72\x74\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x20\x26\x26\x20\x66\x69\x6e\x64\x4e\x6f\x6e\x45\x6d\x70\x74\x79\x49\x6e\x64\x65\x78\x28\x6c\x61\x73\x74\x2e\x73\x74\x61\x72\x74\x29\x20\x3d\x3d\x3d\x20\x2d\x31\x20\x26\x26\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x30\x20\x7c\x7c\x20\x6c\x61\x73\x74\x2e\x73\x74\x61\x72\x74\x2e\x65\x76\x65\x72\x79\x28\x28\x73\x74\x29\x20\x3d\x3e\x20\x73\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x20\x7c\x7c\x20\x73\x74\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3c\x20\x74\x6f\x6b\x65\x6e\x2e\x69\x6e\x64\x65\x6e\x74\x29\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x6f\x70\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x70\x2e\x65\x6e\x64\x20\x3d\x20\x6c\x61\x73\x74\x2e\x73\x74\x61\x72\x74\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x70\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x6c\x61\x73\x74\x2e\x73\x74\x61\x72\x74\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x2e\x69\x74\x65\x6d\x73\x2e\x73\x70\x6c\x69\x63\x65\x28\x2d\x31\x2c\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x73\x74\x72\x65\x61\x6d\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x69\x72\x65\x63\x74\x69\x76\x65\x2d\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x22\x64\x69\x72\x65\x63\x74\x69\x76\x65\x22\x2c\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x79\x74\x65\x2d\x6f\x72\x64\x65\x72\x2d\x6d\x61\x72\x6b\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x6d\x6f\x64\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x63\x32\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x5d\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\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x64\x6f\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x65\x72\x72\x6f\x72\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x6d\x65\x73\x73\x61\x67\x65\x3a\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x24\x7b\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x7d\x20\x74\x6f\x6b\x65\x6e\x20\x69\x6e\x20\x59\x41\x4d\x4c\x20\x73\x74\x72\x65\x61\x6d\x60\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x28\x64\x6f\x63\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x45\x6e\x64\x28\x64\x6f\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x6e\x64\x4e\x6f\x6e\x45\x6d\x70\x74\x79\x49\x6e\x64\x65\x78\x28\x64\x6f\x63\x32\x2e\x73\x74\x61\x72\x74\x29\x20\x21\x3d\x3d\x20\x2d\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6e\x63\x68\x6f\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x74\x61\x67\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x76\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x42\x6c\x6f\x63\x6b\x56\x61\x6c\x75\x65\x28\x64\x6f\x63\x32\x29\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x62\x76\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x62\x76\x29\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x65\x72\x72\x6f\x72\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x65\x73\x73\x61\x67\x65\x3a\x20\x60\x55\x6e\x65\x78\x70\x65\x63\x74\x65\x64\x20\x24\x7b\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x7d\x20\x74\x6f\x6b\x65\x6e\x20\x69\x6e\x20\x59\x41\x4d\x4c\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x60\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x73\x63\x61\x6c\x61\x72\x28\x73\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x67\x65\x74\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x28\x74\x68\x69\x73\x2e\x70\x65\x65\x6b\x28\x32\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x67\x65\x74\x46\x69\x72\x73\x74\x4b\x65\x79\x53\x74\x61\x72\x74\x50\x72\x6f\x70\x73\x28\x70\x72\x65\x76\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x63\x61\x6c\x61\x72\x2e\x65\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x73\x63\x61\x6c\x61\x72\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x73\x63\x61\x6c\x61\x72\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x20\x3d\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x73\x63\x61\x6c\x61\x72\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x73\x63\x61\x6c\x61\x72\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x6b\x65\x79\x3a\x20\x73\x63\x61\x6c\x61\x72\x2c\x20\x73\x65\x70\x20\x7d\x5d\x0a\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x5b\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x20\x6d\x61\x70\x32\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x45\x6e\x64\x28\x73\x63\x61\x6c\x61\x72\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x62\x6c\x6f\x63\x6b\x53\x63\x61\x6c\x61\x72\x28\x73\x63\x61\x6c\x61\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x63\x61\x6c\x61\x72\x2e\x70\x72\x6f\x70\x73\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x63\x61\x6c\x61\x72\x2e\x73\x6f\x75\x72\x63\x65\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x61\x74\x4e\x65\x77\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x29\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x6c\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x28\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x6e\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x2c\x20\x6e\x6c\x29\x20\x2b\x20\x31\x3b\x0a\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\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x62\x6c\x6f\x63\x6b\x4d\x61\x70\x28\x6d\x61\x70\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x5b\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x22\x65\x6e\x64\x22\x20\x69\x6e\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x3f\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x2e\x65\x6e\x64\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x6e\x64\x29\x20\x3f\x20\x65\x6e\x64\x5b\x65\x6e\x64\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x6c\x61\x73\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6c\x61\x73\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x6c\x61\x73\x74\x2e\x74\x79\x70\x65\x29\x20\x3d\x3d\x3d\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x65\x6e\x64\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x65\x6e\x64\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x49\x6e\x64\x65\x6e\x74\x65\x64\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x6d\x61\x70\x32\x2e\x69\x6e\x64\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x5b\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x70\x72\x65\x76\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x70\x72\x65\x76\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x70\x72\x65\x76\x2e\x76\x61\x6c\x75\x65\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x6e\x64\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x65\x6e\x64\x2c\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3e\x3d\x20\x6d\x61\x70\x32\x2e\x69\x6e\x64\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x61\x74\x4e\x65\x78\x74\x49\x74\x65\x6d\x20\x3d\x20\x21\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x6d\x61\x70\x32\x2e\x69\x6e\x64\x65\x6e\x74\x20\x26\x26\x20\x69\x74\x2e\x73\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x74\x4e\x65\x78\x74\x49\x74\x65\x6d\x20\x26\x26\x20\x69\x74\x2e\x73\x65\x70\x20\x26\x26\x20\x21\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6e\x6c\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x69\x74\x2e\x73\x65\x70\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x2b\x2b\x69\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x20\x3d\x20\x69\x74\x2e\x73\x65\x70\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x73\x74\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6c\x2e\x70\x75\x73\x68\x28\x69\x29\x3b\x0a\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\x61\x63\x65\x22\x3a\x0a\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\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\x74\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3e\x20\x6d\x61\x70\x32\x2e\x69\x6e\x64\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6c\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x30\x3b\x0a\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\x6e\x6c\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6e\x6c\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x3d\x20\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x69\x74\x2e\x73\x65\x70\x2e\x73\x70\x6c\x69\x63\x65\x28\x6e\x6c\x5b\x31\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6e\x63\x68\x6f\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x74\x61\x67\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x74\x4e\x65\x78\x74\x49\x74\x65\x6d\x20\x7c\x7c\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\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\x63\x61\x73\x65\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x2e\x73\x65\x70\x20\x26\x26\x20\x21\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x61\x74\x4e\x65\x78\x74\x49\x74\x65\x6d\x20\x7c\x7c\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\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\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x5d\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x2e\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x69\x74\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x32\x20\x3d\x20\x67\x65\x74\x46\x69\x72\x73\x74\x4b\x65\x79\x53\x74\x61\x72\x74\x50\x72\x6f\x70\x73\x28\x69\x74\x2e\x73\x74\x61\x72\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\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x73\x74\x61\x72\x74\x32\x2c\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x5d\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x5d\x2c\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x65\x70\x2c\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x5d\x0a\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\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x73\x46\x6c\x6f\x77\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x6b\x65\x79\x29\x20\x26\x26\x20\x21\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x65\x70\x2c\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x32\x20\x3d\x20\x67\x65\x74\x46\x69\x72\x73\x74\x4b\x65\x79\x53\x74\x61\x72\x74\x50\x72\x6f\x70\x73\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6b\x65\x79\x20\x3d\x20\x69\x74\x2e\x6b\x65\x79\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x70\x20\x3d\x20\x69\x74\x2e\x73\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x6c\x65\x74\x65\x20\x69\x74\x2e\x6b\x65\x79\x2c\x20\x64\x65\x6c\x65\x74\x65\x20\x69\x74\x2e\x73\x65\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x73\x74\x61\x72\x74\x32\x2c\x20\x6b\x65\x79\x2c\x20\x73\x65\x70\x20\x7d\x5d\x0a\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\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x73\x74\x61\x72\x74\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\x69\x74\x2e\x73\x65\x70\x20\x3d\x20\x69\x74\x2e\x73\x65\x70\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x74\x61\x72\x74\x2c\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\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\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x2e\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x69\x74\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x7c\x7c\x20\x61\x74\x4e\x65\x78\x74\x49\x74\x65\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x65\x70\x2c\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x5d\x2c\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x5d\x0a\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\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x61\x6c\x69\x61\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x74\x4e\x65\x78\x74\x49\x74\x65\x6d\x20\x7c\x7c\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x6b\x65\x79\x3a\x20\x66\x73\x2c\x20\x73\x65\x70\x3a\x20\x5b\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x66\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x69\x74\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x66\x73\x2c\x20\x73\x65\x70\x3a\x20\x5b\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\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\x64\x65\x66\x61\x75\x6c\x74\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x76\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x42\x6c\x6f\x63\x6b\x56\x61\x6c\x75\x65\x28\x6d\x61\x70\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x76\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x61\x74\x4e\x65\x78\x74\x49\x74\x65\x6d\x20\x26\x26\x20\x62\x76\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x20\x26\x26\x20\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x70\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x20\x7d\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\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x62\x76\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\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x62\x6c\x6f\x63\x6b\x53\x65\x71\x75\x65\x6e\x63\x65\x28\x73\x65\x71\x32\x29\x20\x7b\x0a\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x5b\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x22\x65\x6e\x64\x22\x20\x69\x6e\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x3f\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x2e\x65\x6e\x64\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x61\x73\x74\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x6e\x64\x29\x20\x3f\x20\x65\x6e\x64\x5b\x65\x6e\x64\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3a\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x28\x6c\x61\x73\x74\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6c\x61\x73\x74\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x6c\x61\x73\x74\x2e\x74\x79\x70\x65\x29\x20\x3d\x3d\x3d\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x65\x6e\x64\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x65\x6e\x64\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\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\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x61\x74\x49\x6e\x64\x65\x6e\x74\x65\x64\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x73\x65\x71\x32\x2e\x69\x6e\x64\x65\x6e\x74\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x5b\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x32\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x6e\x64\x20\x3d\x20\x28\x5f\x61\x20\x3d\x20\x70\x72\x65\x76\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x70\x72\x65\x76\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x70\x72\x65\x76\x2e\x76\x61\x6c\x75\x65\x29\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x5f\x61\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x65\x6e\x64\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x65\x6e\x64\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x65\x6e\x64\x2c\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\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\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6e\x63\x68\x6f\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x74\x61\x67\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3c\x3d\x20\x73\x65\x71\x32\x2e\x69\x6e\x64\x65\x6e\x74\x29\x0a\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\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x71\x2d\x69\x74\x65\x6d\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x21\x3d\x3d\x20\x73\x65\x71\x32\x2e\x69\x6e\x64\x65\x6e\x74\x29\x0a\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\x69\x66\x20\x28\x69\x74\x2e\x76\x61\x6c\x75\x65\x20\x7c\x7c\x20\x69\x6e\x63\x6c\x75\x64\x65\x73\x54\x6f\x6b\x65\x6e\x28\x69\x74\x2e\x73\x74\x61\x72\x74\x2c\x20\x22\x73\x65\x71\x2d\x69\x74\x65\x6d\x2d\x69\x6e\x64\x22\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x71\x32\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3e\x20\x73\x65\x71\x32\x2e\x69\x6e\x64\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x76\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x42\x6c\x6f\x63\x6b\x56\x61\x6c\x75\x65\x28\x73\x65\x71\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x76\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x62\x76\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x66\x6c\x6f\x77\x43\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x28\x66\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x74\x20\x3d\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x5b\x66\x63\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x66\x6c\x6f\x77\x2d\x65\x72\x72\x6f\x72\x2d\x65\x6e\x64\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x74\x6f\x70\x3b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x70\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x65\x65\x6b\x28\x31\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x77\x68\x69\x6c\x65\x20\x28\x74\x6f\x70\x20\x26\x26\x20\x74\x6f\x70\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x66\x63\x2e\x65\x6e\x64\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x61\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x20\x7c\x7c\x20\x69\x74\x2e\x73\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x20\x7c\x7c\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x5d\x2c\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x69\x74\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6e\x63\x68\x6f\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x74\x61\x67\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x20\x7c\x7c\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x2e\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\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\x63\x61\x73\x65\x20\x22\x61\x6c\x69\x61\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x73\x20\x3d\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x69\x74\x20\x7c\x7c\x20\x69\x74\x2e\x76\x61\x6c\x75\x65\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x63\x2e\x69\x74\x65\x6d\x73\x2e\x70\x75\x73\x68\x28\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x5d\x2c\x20\x6b\x65\x79\x3a\x20\x66\x73\x2c\x20\x73\x65\x70\x3a\x20\x5b\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x69\x74\x2e\x73\x65\x70\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x66\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x69\x74\x2c\x20\x7b\x20\x6b\x65\x79\x3a\x20\x66\x73\x2c\x20\x73\x65\x70\x3a\x20\x5b\x5d\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x6d\x61\x70\x2d\x65\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x73\x65\x71\x2d\x65\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x63\x2e\x65\x6e\x64\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x76\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x42\x6c\x6f\x63\x6b\x56\x61\x6c\x75\x65\x28\x66\x63\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x76\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x70\x75\x73\x68\x28\x62\x76\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x65\x6e\x74\x20\x3d\x20\x74\x68\x69\x73\x2e\x70\x65\x65\x6b\x28\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x65\x6e\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x20\x26\x26\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x20\x26\x26\x20\x70\x61\x72\x65\x6e\x74\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3d\x3d\x3d\x20\x66\x63\x2e\x69\x6e\x64\x65\x6e\x74\x20\x7c\x7c\x20\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x20\x26\x26\x20\x21\x70\x61\x72\x65\x6e\x74\x2e\x69\x74\x65\x6d\x73\x5b\x70\x61\x72\x65\x6e\x74\x2e\x69\x74\x65\x6d\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x2e\x73\x65\x70\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x20\x26\x26\x20\x70\x61\x72\x65\x6e\x74\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x67\x65\x74\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x28\x70\x61\x72\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x67\x65\x74\x46\x69\x72\x73\x74\x4b\x65\x79\x53\x74\x61\x72\x74\x50\x72\x6f\x70\x73\x28\x70\x72\x65\x76\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x78\x46\x6c\x6f\x77\x53\x65\x71\x49\x74\x65\x6d\x73\x28\x66\x63\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x70\x20\x3d\x20\x66\x63\x2e\x65\x6e\x64\x2e\x73\x70\x6c\x69\x63\x65\x28\x31\x2c\x20\x66\x63\x2e\x65\x6e\x64\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x70\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x61\x70\x32\x20\x3d\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x66\x63\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x66\x63\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x6b\x65\x79\x3a\x20\x66\x63\x2c\x20\x73\x65\x70\x20\x7d\x5d\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\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x5b\x74\x68\x69\x73\x2e\x73\x74\x61\x63\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x20\x3d\x20\x6d\x61\x70\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x6c\x69\x6e\x65\x45\x6e\x64\x28\x66\x63\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x66\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x28\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x6c\x65\x74\x20\x6e\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x29\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x77\x68\x69\x6c\x65\x20\x28\x6e\x6c\x20\x21\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4e\x65\x77\x4c\x69\x6e\x65\x28\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x20\x2b\x20\x6e\x6c\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x6c\x20\x3d\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x5c\x6e\x22\x2c\x20\x6e\x6c\x29\x20\x2b\x20\x31\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x0a\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x73\x74\x61\x72\x74\x42\x6c\x6f\x63\x6b\x56\x61\x6c\x75\x65\x28\x70\x61\x72\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x61\x6c\x69\x61\x73\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x69\x6e\x67\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x75\x62\x6c\x65\x2d\x71\x75\x6f\x74\x65\x64\x2d\x73\x63\x61\x6c\x61\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x6c\x6f\x77\x53\x63\x61\x6c\x61\x72\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x2d\x68\x65\x61\x64\x65\x72\x22\x3a\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\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x63\x61\x6c\x61\x72\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x75\x72\x63\x65\x3a\x20\x22\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x6d\x61\x70\x2d\x73\x74\x61\x72\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x73\x65\x71\x2d\x73\x74\x61\x72\x74\x22\x3a\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\x74\x79\x70\x65\x3a\x20\x22\x66\x6c\x6f\x77\x2d\x63\x6f\x6c\x6c\x65\x63\x74\x69\x6f\x6e\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x3a\x20\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x64\x3a\x20\x5b\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x65\x71\x2d\x69\x74\x65\x6d\x2d\x69\x6e\x64\x22\x3a\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\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x73\x65\x71\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x65\x78\x70\x6c\x69\x63\x69\x74\x2d\x6b\x65\x79\x2d\x69\x6e\x64\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x67\x65\x74\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x28\x70\x61\x72\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x67\x65\x74\x46\x69\x72\x73\x74\x4b\x65\x79\x53\x74\x61\x72\x74\x50\x72\x6f\x70\x73\x28\x70\x72\x65\x76\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x61\x72\x74\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\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\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x20\x7d\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x76\x20\x3d\x20\x67\x65\x74\x50\x72\x65\x76\x50\x72\x6f\x70\x73\x28\x70\x61\x72\x65\x6e\x74\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x74\x61\x72\x74\x20\x3d\x20\x67\x65\x74\x46\x69\x72\x73\x74\x4b\x65\x79\x53\x74\x61\x72\x74\x50\x72\x6f\x70\x73\x28\x70\x72\x65\x76\x29\x3b\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\x74\x79\x70\x65\x3a\x20\x22\x62\x6c\x6f\x63\x6b\x2d\x6d\x61\x70\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3a\x20\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x6e\x74\x3a\x20\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6d\x73\x3a\x20\x5b\x7b\x20\x73\x74\x61\x72\x74\x2c\x20\x6b\x65\x79\x3a\x20\x6e\x75\x6c\x6c\x2c\x20\x73\x65\x70\x3a\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x20\x7d\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x61\x74\x49\x6e\x64\x65\x6e\x74\x65\x64\x43\x6f\x6d\x6d\x65\x6e\x74\x28\x73\x74\x61\x72\x74\x2c\x20\x69\x6e\x64\x65\x6e\x74\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x69\x6e\x64\x65\x6e\x74\x20\x3c\x3d\x20\x69\x6e\x64\x65\x6e\x74\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x74\x61\x72\x74\x2e\x65\x76\x65\x72\x79\x28\x28\x73\x74\x29\x20\x3d\x3e\x20\x73\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x20\x7c\x7c\x20\x73\x74\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x73\x70\x61\x63\x65\x22\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6e\x64\x28\x64\x6f\x63\x45\x6e\x64\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x21\x3d\x3d\x20\x22\x64\x6f\x63\x2d\x6d\x6f\x64\x65\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x45\x6e\x64\x2e\x65\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x45\x6e\x64\x2e\x65\x6e\x64\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x45\x6e\x64\x2e\x65\x6e\x64\x20\x3d\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x2a\x6c\x69\x6e\x65\x45\x6e\x64\x28\x74\x6f\x6b\x65\x6e\x29\x20\x7b\x0a\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x61\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x73\x74\x61\x72\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x64\x6f\x63\x2d\x65\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x73\x65\x71\x2d\x65\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x66\x6c\x6f\x77\x2d\x6d\x61\x70\x2d\x65\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6d\x61\x70\x2d\x76\x61\x6c\x75\x65\x2d\x69\x6e\x64\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x73\x74\x65\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6f\x6e\x4b\x65\x79\x4c\x69\x6e\x65\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x70\x61\x63\x65\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x63\x6f\x6d\x6d\x65\x6e\x74\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x6f\x6b\x65\x6e\x2e\x65\x6e\x64\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x2e\x65\x6e\x64\x2e\x70\x75\x73\x68\x28\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6b\x65\x6e\x2e\x65\x6e\x64\x20\x3d\x20\x5b\x74\x68\x69\x73\x2e\x73\x6f\x75\x72\x63\x65\x54\x6f\x6b\x65\x6e\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x20\x3d\x3d\x3d\x20\x22\x6e\x65\x77\x6c\x69\x6e\x65\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x79\x69\x65\x6c\x64\x2a\x20\x74\x68\x69\x73\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x72\x65\x74\x74\x79\x45\x72\x72\x6f\x72\x73\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x70\x72\x65\x74\x74\x79\x45\x72\x72\x6f\x72\x73\x20\x21\x3d\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x20\x3d\x20\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x20\x7c\x7c\x20\x70\x72\x65\x74\x74\x79\x45\x72\x72\x6f\x72\x73\x20\x26\x26\x20\x6e\x65\x77\x20\x4c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x28\x29\x20\x7c\x7c\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x20\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x2c\x20\x70\x72\x65\x74\x74\x79\x45\x72\x72\x6f\x72\x73\x20\x7d\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x7b\x7d\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x2c\x20\x70\x72\x65\x74\x74\x79\x45\x72\x72\x6f\x72\x73\x20\x7d\x20\x3d\x20\x70\x61\x72\x73\x65\x4f\x70\x74\x69\x6f\x6e\x73\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x72\x73\x65\x72\x20\x3d\x20\x6e\x65\x77\x20\x50\x61\x72\x73\x65\x72\x28\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x7c\x7c\x20\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x2e\x61\x64\x64\x4e\x65\x77\x4c\x69\x6e\x65\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6d\x70\x6f\x73\x65\x72\x20\x3d\x20\x6e\x65\x77\x20\x43\x6f\x6d\x70\x6f\x73\x65\x72\x28\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x6c\x65\x74\x20\x64\x6f\x63\x32\x20\x3d\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x5f\x64\x6f\x63\x20\x6f\x66\x20\x63\x6f\x6d\x70\x6f\x73\x65\x72\x2e\x63\x6f\x6d\x70\x6f\x73\x65\x28\x70\x61\x72\x73\x65\x72\x2e\x70\x61\x72\x73\x65\x28\x73\x6f\x75\x72\x63\x65\x29\x2c\x20\x74\x72\x75\x65\x2c\x20\x73\x6f\x75\x72\x63\x65\x2e\x6c\x65\x6e\x67\x74\x68\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x21\x64\x6f\x63\x32\x29\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x20\x3d\x20\x5f\x64\x6f\x63\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x6f\x67\x4c\x65\x76\x65\x6c\x20\x21\x3d\x3d\x20\x22\x73\x69\x6c\x65\x6e\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x65\x72\x72\x6f\x72\x73\x2e\x70\x75\x73\x68\x28\x6e\x65\x77\x20\x59\x41\x4d\x4c\x50\x61\x72\x73\x65\x45\x72\x72\x6f\x72\x28\x5f\x64\x6f\x63\x2e\x72\x61\x6e\x67\x65\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x20\x32\x29\x2c\x20\x22\x4d\x55\x4c\x54\x49\x50\x4c\x45\x5f\x44\x4f\x43\x53\x22\x2c\x20\x22\x53\x6f\x75\x72\x63\x65\x20\x63\x6f\x6e\x74\x61\x69\x6e\x73\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x73\x3b\x20\x70\x6c\x65\x61\x73\x65\x20\x75\x73\x65\x20\x59\x41\x4d\x4c\x2e\x70\x61\x72\x73\x65\x41\x6c\x6c\x44\x6f\x63\x75\x6d\x65\x6e\x74\x73\x28\x29\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x70\x72\x65\x74\x74\x79\x45\x72\x72\x6f\x72\x73\x20\x26\x26\x20\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x65\x72\x72\x6f\x72\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x70\x72\x65\x74\x74\x69\x66\x79\x45\x72\x72\x6f\x72\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x29\x29\x3b\x0a\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x70\x72\x65\x74\x74\x69\x66\x79\x45\x72\x72\x6f\x72\x28\x73\x6f\x75\x72\x63\x65\x2c\x20\x6c\x69\x6e\x65\x43\x6f\x75\x6e\x74\x65\x72\x29\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x63\x32\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x70\x61\x72\x73\x65\x28\x73\x72\x63\x2c\x20\x72\x65\x76\x69\x76\x65\x72\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x6c\x65\x74\x20\x5f\x72\x65\x76\x69\x76\x65\x72\x20\x3d\x20\x76\x6f\x69\x64\x20\x30\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x76\x69\x76\x65\x72\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x72\x65\x76\x69\x76\x65\x72\x20\x3d\x20\x72\x65\x76\x69\x76\x65\x72\x3b\x0a\x20\x20\x7d\x20\x65\x6c\x73\x65\x20\x69\x66\x20\x28\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x20\x26\x26\x20\x72\x65\x76\x69\x76\x65\x72\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x72\x65\x76\x69\x76\x65\x72\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x20\x3d\x20\x72\x65\x76\x69\x76\x65\x72\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x6f\x63\x32\x20\x3d\x20\x70\x61\x72\x73\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x28\x73\x72\x63\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x21\x64\x6f\x63\x32\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x64\x6f\x63\x32\x2e\x77\x61\x72\x6e\x69\x6e\x67\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x77\x61\x72\x6e\x69\x6e\x67\x29\x20\x3d\x3e\x20\x77\x61\x72\x6e\x28\x64\x6f\x63\x32\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x6f\x67\x4c\x65\x76\x65\x6c\x2c\x20\x77\x61\x72\x6e\x69\x6e\x67\x29\x29\x3b\x0a\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x65\x72\x72\x6f\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x6f\x63\x32\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6c\x6f\x67\x4c\x65\x76\x65\x6c\x20\x21\x3d\x3d\x20\x22\x73\x69\x6c\x65\x6e\x74\x22\x29\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x64\x6f\x63\x32\x2e\x65\x72\x72\x6f\x72\x73\x5b\x30\x5d\x3b\x0a\x20\x20\x20\x20\x65\x6c\x73\x65\x0a\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x32\x2e\x65\x72\x72\x6f\x72\x73\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x6f\x63\x32\x2e\x74\x6f\x4a\x53\x28\x4f\x62\x6a\x65\x63\x74\x2e\x61\x73\x73\x69\x67\x6e\x28\x7b\x20\x72\x65\x76\x69\x76\x65\x72\x3a\x20\x5f\x72\x65\x76\x69\x76\x65\x72\x20\x7d\x2c\x20\x6f\x70\x74\x69\x6f\x6e\x73\x29\x29\x3b\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x6d\x61\x78\x55\x6e\x69\x78\x54\x53\x49\x6e\x53\x65\x63\x6f\x6e\x64\x73\x20\x3d\x20\x39\x39\x39\x39\x39\x39\x39\x39\x39\x39\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x50\x61\x72\x73\x65\x44\x61\x74\x65\x28\x64\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x64\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x44\x61\x74\x65\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x64\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x64\x20\x3e\x20\x6d\x61\x78\x55\x6e\x69\x78\x54\x53\x49\x6e\x53\x65\x63\x6f\x6e\x64\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x64\x29\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x64\x20\x2a\x20\x31\x65\x33\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x64\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x50\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x28\x76\x2c\x20\x69\x73\x49\x6e\x74\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x21\x76\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x76\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x76\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x28\x69\x73\x49\x6e\x74\x20\x3f\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x76\x29\x20\x3a\x20\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x76\x29\x29\x20\x7c\x7c\x20\x30\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x6f\x2c\x20\x74\x79\x70\x65\x4f\x72\x43\x66\x67\x20\x3d\x20\x7b\x7d\x2c\x20\x63\x68\x69\x6c\x64\x20\x3d\x20\x66\x61\x6c\x73\x65\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x6f\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x6f\x2e\x74\x6f\x4f\x62\x6a\x65\x63\x74\x20\x3d\x3d\x3d\x20\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x20\x26\x26\x20\x63\x68\x69\x6c\x64\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x2e\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x3b\x0a\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x74\x79\x70\x65\x6f\x66\x20\x6f\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x4f\x72\x43\x66\x67\x20\x3d\x3d\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x20\x3f\x20\x50\x61\x72\x73\x65\x4e\x75\x6d\x62\x65\x72\x28\x6f\x29\x20\x3a\x20\x6f\x3b\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x3a\x0a\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x6f\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x44\x61\x74\x65\x29\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x4f\x72\x43\x66\x67\x20\x3d\x3d\x3d\x20\x22\x73\x74\x72\x69\x6e\x67\x22\x20\x3f\x20\x6f\x2e\x74\x6f\x49\x53\x4f\x53\x74\x72\x69\x6e\x67\x28\x29\x20\x3a\x20\x4d\x61\x74\x68\x2e\x66\x6c\x6f\x6f\x72\x28\x6f\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x20\x2f\x20\x31\x65\x33\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x69\x66\x20\x28\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x6f\x29\x29\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x2e\x6d\x61\x70\x28\x28\x76\x29\x20\x3d\x3e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x76\x2c\x20\x74\x79\x70\x65\x4f\x72\x43\x66\x67\x2c\x20\x74\x72\x75\x65\x29\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x6b\x20\x6f\x66\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x6f\x29\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x76\x20\x3d\x20\x6f\x5b\x6b\x5d\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x20\x3d\x3d\x3d\x20\x76\x6f\x69\x64\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x76\x20\x3d\x3d\x3d\x20\x6e\x75\x6c\x6c\x29\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x64\x5b\x6b\x5d\x20\x3d\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x76\x2c\x20\x74\x79\x70\x65\x4f\x72\x43\x66\x67\x5b\x6b\x5d\x20\x7c\x7c\x20\x7b\x7d\x2c\x20\x74\x72\x75\x65\x29\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x64\x3b\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x43\x68\x61\x72\x74\x44\x69\x73\x70\x6c\x61\x79\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x66\x75\x6c\x6c\x57\x69\x64\x74\x68\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x64\x61\x74\x61\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x66\x75\x6c\x6c\x57\x69\x64\x74\x68\x20\x3d\x20\x22\x66\x75\x6c\x6c\x57\x69\x64\x74\x68\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x66\x75\x6c\x6c\x57\x69\x64\x74\x68\x20\x3a\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x66\x67\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x74\x68\x69\x73\x2c\x20\x63\x66\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x43\x68\x61\x72\x74\x24\x31\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x6e\x61\x6d\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x70\x61\x63\x6b\x61\x67\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x6d\x65\x74\x72\x69\x63\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x64\x61\x74\x61\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x20\x3d\x20\x22\x6e\x61\x6d\x65\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x6e\x61\x6d\x65\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x3d\x20\x22\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x70\x61\x63\x6b\x61\x67\x65\x20\x3d\x20\x22\x70\x61\x63\x6b\x61\x67\x65\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x70\x61\x63\x6b\x61\x67\x65\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x20\x3d\x20\x22\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6d\x65\x74\x72\x69\x63\x73\x20\x3d\x20\x22\x6d\x65\x74\x72\x69\x63\x73\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x6d\x65\x74\x72\x69\x63\x73\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x3d\x20\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x6e\x65\x77\x20\x43\x68\x61\x72\x74\x44\x69\x73\x70\x6c\x61\x79\x28\x64\x2e\x64\x69\x73\x70\x6c\x61\x79\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x66\x67\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x74\x68\x69\x73\x2c\x20\x63\x66\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x24\x31\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x6e\x61\x6d\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x63\x68\x61\x72\x74\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x64\x61\x74\x61\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x20\x3d\x20\x22\x6e\x61\x6d\x65\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x6e\x61\x6d\x65\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x3d\x20\x22\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x73\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x64\x2e\x63\x68\x61\x72\x74\x73\x29\x20\x3f\x20\x64\x2e\x63\x68\x61\x72\x74\x73\x2e\x6d\x61\x70\x28\x28\x76\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x43\x68\x61\x72\x74\x24\x31\x28\x76\x29\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x66\x67\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x74\x68\x69\x73\x2c\x20\x63\x66\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x43\x6f\x6e\x66\x69\x67\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x74\x69\x74\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x72\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x46\x69\x6c\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x63\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x64\x61\x74\x61\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x74\x69\x74\x6c\x65\x20\x3d\x20\x22\x74\x69\x74\x6c\x65\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x74\x69\x74\x6c\x65\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x3d\x20\x22\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x72\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x20\x3d\x20\x22\x72\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x72\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x46\x69\x6c\x65\x20\x3d\x20\x22\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x46\x69\x6c\x65\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x46\x69\x6c\x65\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x73\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x64\x2e\x63\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x73\x29\x20\x3f\x20\x64\x2e\x63\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x73\x2e\x6d\x61\x70\x28\x28\x76\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x24\x31\x28\x76\x29\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x66\x67\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x74\x68\x69\x73\x2c\x20\x63\x66\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x4d\x65\x6d\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x42\x79\x74\x65\x73\x50\x65\x72\x4f\x70\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x41\x6c\x6c\x6f\x63\x73\x50\x65\x72\x4f\x70\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x4d\x42\x50\x65\x72\x53\x65\x63\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x64\x61\x74\x61\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x42\x79\x74\x65\x73\x50\x65\x72\x4f\x70\x20\x3d\x20\x22\x42\x79\x74\x65\x73\x50\x65\x72\x4f\x70\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x42\x79\x74\x65\x73\x50\x65\x72\x4f\x70\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x41\x6c\x6c\x6f\x63\x73\x50\x65\x72\x4f\x70\x20\x3d\x20\x22\x41\x6c\x6c\x6f\x63\x73\x50\x65\x72\x4f\x70\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x41\x6c\x6c\x6f\x63\x73\x50\x65\x72\x4f\x70\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x4d\x42\x50\x65\x72\x53\x65\x63\x20\x3d\x20\x22\x4d\x42\x50\x65\x72\x53\x65\x63\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x4d\x42\x50\x65\x72\x53\x65\x63\x20\x3a\x20\x30\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x66\x67\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x63\x66\x67\x2e\x42\x79\x74\x65\x73\x50\x65\x72\x4f\x70\x20\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x63\x66\x67\x2e\x41\x6c\x6c\x6f\x63\x73\x50\x65\x72\x4f\x70\x20\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x63\x66\x67\x2e\x4d\x42\x50\x65\x72\x53\x65\x63\x20\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x74\x68\x69\x73\x2c\x20\x63\x66\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x4e\x61\x6d\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x52\x75\x6e\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x4e\x73\x50\x65\x72\x4f\x70\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x4d\x65\x6d\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x43\x75\x73\x74\x6f\x6d\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x64\x61\x74\x61\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x4e\x61\x6d\x65\x20\x3d\x20\x22\x4e\x61\x6d\x65\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x4e\x61\x6d\x65\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x52\x75\x6e\x73\x20\x3d\x20\x22\x52\x75\x6e\x73\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x52\x75\x6e\x73\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x4e\x73\x50\x65\x72\x4f\x70\x20\x3d\x20\x22\x4e\x73\x50\x65\x72\x4f\x70\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x4e\x73\x50\x65\x72\x4f\x70\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x4d\x65\x6d\x20\x3d\x20\x6e\x65\x77\x20\x4d\x65\x6d\x28\x64\x2e\x4d\x65\x6d\x29\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x43\x75\x73\x74\x6f\x6d\x20\x3d\x20\x22\x43\x75\x73\x74\x6f\x6d\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x43\x75\x73\x74\x6f\x6d\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x66\x67\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x63\x66\x67\x2e\x52\x75\x6e\x73\x20\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x63\x66\x67\x2e\x4e\x73\x50\x65\x72\x4f\x70\x20\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x74\x68\x69\x73\x2c\x20\x63\x66\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x53\x75\x69\x74\x65\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x47\x6f\x6f\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x47\x6f\x61\x72\x63\x68\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x50\x6b\x67\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x64\x61\x74\x61\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x47\x6f\x6f\x73\x20\x3d\x20\x22\x47\x6f\x6f\x73\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x47\x6f\x6f\x73\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x47\x6f\x61\x72\x63\x68\x20\x3d\x20\x22\x47\x6f\x61\x72\x63\x68\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x47\x6f\x61\x72\x63\x68\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x50\x6b\x67\x20\x3d\x20\x22\x50\x6b\x67\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x50\x6b\x67\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x64\x2e\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x29\x20\x3f\x20\x64\x2e\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x2e\x6d\x61\x70\x28\x28\x76\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x28\x76\x29\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x66\x67\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x74\x68\x69\x73\x2c\x20\x63\x66\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6c\x61\x73\x73\x20\x52\x75\x6e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x64\x61\x74\x61\x29\x20\x7b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x56\x65\x72\x73\x69\x6f\x6e\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x44\x61\x74\x65\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x54\x61\x67\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x5f\x5f\x70\x75\x62\x6c\x69\x63\x46\x69\x65\x6c\x64\x28\x74\x68\x69\x73\x2c\x20\x22\x53\x75\x69\x74\x65\x73\x22\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x64\x61\x74\x61\x20\x26\x26\x20\x74\x79\x70\x65\x6f\x66\x20\x64\x61\x74\x61\x20\x3d\x3d\x3d\x20\x22\x6f\x62\x6a\x65\x63\x74\x22\x20\x3f\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x64\x61\x74\x61\x29\x20\x3a\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x56\x65\x72\x73\x69\x6f\x6e\x20\x3d\x20\x22\x56\x65\x72\x73\x69\x6f\x6e\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x56\x65\x72\x73\x69\x6f\x6e\x20\x3a\x20\x22\x22\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x44\x61\x74\x65\x20\x3d\x20\x22\x44\x61\x74\x65\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x44\x61\x74\x65\x20\x3a\x20\x30\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x54\x61\x67\x73\x20\x3d\x20\x22\x54\x61\x67\x73\x22\x20\x69\x6e\x20\x64\x20\x3f\x20\x64\x2e\x54\x61\x67\x73\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x53\x75\x69\x74\x65\x73\x20\x3d\x20\x41\x72\x72\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x64\x2e\x53\x75\x69\x74\x65\x73\x29\x20\x3f\x20\x64\x2e\x53\x75\x69\x74\x65\x73\x2e\x6d\x61\x70\x28\x28\x76\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x53\x75\x69\x74\x65\x28\x76\x29\x29\x20\x3a\x20\x6e\x75\x6c\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x74\x6f\x4f\x62\x6a\x65\x63\x74\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x66\x67\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x63\x66\x67\x2e\x44\x61\x74\x65\x20\x3d\x20\x22\x6e\x75\x6d\x62\x65\x72\x22\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x54\x6f\x4f\x62\x6a\x65\x63\x74\x28\x74\x68\x69\x73\x2c\x20\x63\x66\x67\x29\x3b\x0a\x20\x20\x7d\x0a\x7d\x0a\x63\x6f\x6e\x73\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x4d\x65\x74\x72\x69\x63\x73\x20\x3d\x20\x7b\x0a\x20\x20\x5b\x22\x4e\x73\x50\x65\x72\x4f\x70\x22\x5d\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x5b\x22\x4d\x65\x6d\x2e\x42\x79\x74\x65\x73\x50\x65\x72\x4f\x70\x22\x5d\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x5b\x22\x4d\x65\x6d\x2e\x41\x6c\x6c\x6f\x63\x73\x50\x65\x72\x4f\x70\x22\x5d\x3a\x20\x74\x72\x75\x65\x0a\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x74\x65\x72\x61\x74\x65\x53\x75\x69\x74\x65\x73\x28\x72\x75\x6e\x73\x2c\x20\x66\x75\x6e\x63\x29\x20\x7b\x0a\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x72\x49\x44\x20\x3d\x20\x30\x3b\x20\x72\x49\x44\x20\x3c\x20\x72\x75\x6e\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x72\x49\x44\x20\x2b\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x75\x6e\x20\x3d\x20\x72\x75\x6e\x73\x5b\x72\x49\x44\x5d\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x73\x49\x44\x20\x3d\x20\x30\x3b\x20\x73\x49\x44\x20\x3c\x20\x72\x75\x6e\x2e\x53\x75\x69\x74\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x73\x49\x44\x20\x2b\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x28\x72\x75\x6e\x2e\x53\x75\x69\x74\x65\x73\x5b\x73\x49\x44\x5d\x2c\x20\x72\x75\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x74\x65\x72\x61\x74\x65\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x28\x72\x75\x6e\x73\x2c\x20\x66\x75\x6e\x63\x2c\x20\x70\x6b\x67\x29\x20\x7b\x0a\x20\x20\x69\x74\x65\x72\x61\x74\x65\x53\x75\x69\x74\x65\x73\x28\x72\x75\x6e\x73\x2c\x20\x28\x73\x75\x69\x74\x65\x2c\x20\x72\x75\x6e\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x69\x66\x20\x28\x70\x6b\x67\x20\x26\x26\x20\x21\x70\x6b\x67\x2e\x74\x65\x73\x74\x28\x73\x75\x69\x74\x65\x2e\x50\x6b\x67\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x62\x49\x44\x20\x3d\x20\x30\x3b\x20\x62\x49\x44\x20\x3c\x20\x73\x75\x69\x74\x65\x2e\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x62\x49\x44\x20\x2b\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x28\x73\x75\x69\x74\x65\x2e\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x5b\x62\x49\x44\x5d\x2c\x20\x73\x75\x69\x74\x65\x2c\x20\x72\x75\x6e\x29\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x65\x6e\x63\x68\x4e\x61\x6d\x65\x28\x62\x29\x20\x7b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5e\x28\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x29\x2f\x2c\x20\x22\x22\x29\x3b\x0a\x7d\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x72\x75\x6e\x73\x2c\x20\x70\x6b\x67\x2c\x20\x62\x65\x6e\x63\x68\x65\x73\x2c\x20\x6d\x65\x74\x72\x69\x63\x73\x20\x3d\x20\x64\x65\x66\x61\x75\x6c\x74\x4d\x65\x74\x72\x69\x63\x73\x29\x20\x7b\x0a\x20\x20\x69\x66\x20\x28\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x6d\x65\x74\x72\x69\x63\x73\x29\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x6d\x65\x74\x72\x69\x63\x73\x20\x3d\x20\x64\x65\x66\x61\x75\x6c\x74\x4d\x65\x74\x72\x69\x63\x73\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x74\x72\x69\x63\x4b\x65\x79\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x6d\x65\x74\x72\x69\x63\x73\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x28\x6d\x29\x20\x3d\x3e\x20\x6d\x65\x74\x72\x69\x63\x73\x5b\x6d\x5d\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x69\x6e\x64\x65\x78\x20\x3d\x20\x6d\x65\x74\x72\x69\x63\x4b\x65\x79\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x28\x61\x63\x63\x2c\x20\x63\x75\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x61\x63\x63\x5b\x63\x75\x72\x5d\x20\x3d\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x63\x63\x3b\x0a\x20\x20\x7d\x2c\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x78\x61\x78\x69\x73\x20\x3d\x20\x6d\x65\x74\x72\x69\x63\x4b\x65\x79\x73\x2e\x72\x65\x64\x75\x63\x65\x28\x28\x61\x63\x63\x2c\x20\x63\x75\x72\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x61\x63\x63\x5b\x63\x75\x72\x5d\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x63\x63\x3b\x0a\x20\x20\x7d\x2c\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x69\x74\x65\x72\x61\x74\x65\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x28\x72\x75\x6e\x73\x2c\x20\x28\x62\x65\x6e\x63\x68\x2c\x20\x5f\x2c\x20\x72\x75\x6e\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x69\x20\x3d\x20\x30\x3b\x20\x69\x20\x3c\x20\x62\x65\x6e\x63\x68\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x69\x20\x2b\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x65\x6e\x63\x68\x4d\x61\x74\x63\x68\x20\x3d\x20\x62\x65\x6e\x63\x68\x65\x73\x5b\x69\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x62\x65\x6e\x63\x68\x4d\x61\x74\x63\x68\x2e\x74\x65\x73\x74\x28\x62\x65\x6e\x63\x68\x2e\x4e\x61\x6d\x65\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x20\x28\x6c\x65\x74\x20\x6d\x49\x44\x20\x3d\x20\x30\x3b\x20\x6d\x49\x44\x20\x3c\x20\x6d\x65\x74\x72\x69\x63\x4b\x65\x79\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x20\x6d\x49\x44\x20\x2b\x3d\x20\x31\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x6d\x65\x74\x72\x69\x63\x20\x3d\x20\x6d\x65\x74\x72\x69\x63\x4b\x65\x79\x73\x5b\x6d\x49\x44\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x20\x3d\x20\x69\x6e\x64\x65\x78\x5b\x6d\x65\x74\x72\x69\x63\x5d\x2e\x66\x69\x6c\x74\x65\x72\x28\x28\x76\x29\x20\x3d\x3e\x20\x76\x2e\x6e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x62\x65\x6e\x63\x68\x4e\x61\x6d\x65\x28\x62\x65\x6e\x63\x68\x2e\x4e\x61\x6d\x65\x29\x29\x2e\x70\x6f\x70\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x65\x78\x69\x73\x74\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x64\x65\x78\x5b\x6d\x65\x74\x72\x69\x63\x5d\x2e\x70\x75\x73\x68\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x3a\x20\x62\x65\x6e\x63\x68\x4e\x61\x6d\x65\x28\x62\x65\x6e\x63\x68\x2e\x4e\x61\x6d\x65\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x61\x74\x61\x3a\x20\x5b\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x65\x78\x69\x73\x74\x69\x6e\x67\x53\x65\x72\x69\x65\x73\x20\x7c\x7c\x20\x69\x6e\x64\x65\x78\x5b\x6d\x65\x74\x72\x69\x63\x5d\x5b\x69\x6e\x64\x65\x78\x5b\x6d\x65\x74\x72\x69\x63\x5d\x2e\x6c\x65\x6e\x67\x74\x68\x20\x2d\x20\x31\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x75\x73\x68\x20\x3d\x20\x28\x79\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x72\x69\x65\x73\x2e\x64\x61\x74\x61\x2e\x70\x75\x73\x68\x28\x7b\x20\x78\x3a\x20\x72\x75\x6e\x2e\x44\x61\x74\x65\x2c\x20\x79\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x61\x78\x69\x73\x5b\x6d\x65\x74\x72\x69\x63\x5d\x5b\x72\x75\x6e\x2e\x44\x61\x74\x65\x5d\x20\x3d\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\x73\x77\x69\x74\x63\x68\x20\x28\x6d\x65\x74\x72\x69\x63\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4e\x73\x50\x65\x72\x4f\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x75\x73\x68\x28\x62\x65\x6e\x63\x68\x2e\x4e\x73\x50\x65\x72\x4f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4d\x65\x6d\x2e\x41\x6c\x6c\x6f\x63\x73\x50\x65\x72\x4f\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x75\x73\x68\x28\x62\x65\x6e\x63\x68\x2e\x4d\x65\x6d\x2e\x41\x6c\x6c\x6f\x63\x73\x50\x65\x72\x4f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4d\x65\x6d\x2e\x42\x79\x74\x65\x73\x50\x65\x72\x4f\x70\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x75\x73\x68\x28\x62\x65\x6e\x63\x68\x2e\x4d\x65\x6d\x2e\x42\x79\x74\x65\x73\x50\x65\x72\x4f\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x22\x4d\x65\x6d\x2e\x4d\x42\x50\x65\x72\x53\x65\x63\x22\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x75\x73\x68\x28\x62\x65\x6e\x63\x68\x2e\x4d\x65\x6d\x2e\x4d\x42\x50\x65\x72\x53\x65\x63\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6c\x74\x3a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x65\x6e\x63\x68\x2e\x43\x75\x73\x74\x6f\x6d\x20\x26\x26\x20\x6d\x65\x74\x72\x69\x63\x20\x69\x6e\x20\x62\x65\x6e\x63\x68\x2e\x43\x75\x73\x74\x6f\x6d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x75\x73\x68\x28\x62\x65\x6e\x63\x68\x2e\x43\x75\x73\x74\x6f\x6d\x5b\x6d\x65\x74\x72\x69\x63\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x20\x70\x6b\x67\x29\x3b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x78\x61\x78\x69\x73\x41\x72\x72\x61\x79\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x6d\x65\x74\x72\x69\x63\x4b\x65\x79\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6d\x65\x74\x72\x69\x63\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x78\x61\x78\x69\x73\x41\x72\x72\x61\x79\x73\x5b\x6d\x65\x74\x72\x69\x63\x5d\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x78\x61\x78\x69\x73\x5b\x6d\x65\x74\x72\x69\x63\x5d\x29\x2e\x6d\x61\x70\x28\x28\x6b\x29\x20\x3d\x3e\x20\x70\x61\x72\x73\x65\x49\x6e\x74\x28\x6b\x29\x29\x3b\x0a\x20\x20\x20\x20\x78\x61\x78\x69\x73\x41\x72\x72\x61\x79\x73\x5b\x6d\x65\x74\x72\x69\x63\x5d\x2e\x73\x6f\x72\x74\x28\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x6d\x65\x74\x72\x69\x63\x4b\x65\x79\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x6d\x65\x74\x72\x69\x63\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x72\x69\x65\x73\x58\x20\x3d\x20\x69\x6e\x64\x65\x78\x5b\x6d\x65\x74\x72\x69\x63\x5d\x2e\x72\x65\x64\x75\x63\x65\x28\x28\x61\x63\x63\x2c\x20\x73\x65\x72\x69\x65\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x61\x63\x63\x5b\x73\x65\x72\x69\x65\x73\x2e\x6e\x61\x6d\x65\x20\x7c\x7c\x20\x22\x3f\x22\x5d\x20\x3d\x20\x73\x65\x72\x69\x65\x73\x2e\x64\x61\x74\x61\x2e\x72\x65\x64\x75\x63\x65\x28\x28\x61\x63\x63\x32\x2c\x20\x70\x6f\x69\x6e\x74\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x63\x32\x5b\x70\x6f\x69\x6e\x74\x2e\x78\x5d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x63\x63\x32\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x63\x63\x3b\x0a\x20\x20\x20\x20\x7d\x2c\x20\x7b\x7d\x29\x3b\x0a\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x73\x65\x72\x69\x65\x73\x58\x29\x3b\x0a\x20\x20\x20\x20\x78\x61\x78\x69\x73\x41\x72\x72\x61\x79\x73\x5b\x6d\x65\x74\x72\x69\x63\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x78\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x65\x72\x69\x65\x73\x4e\x61\x6d\x65\x73\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x73\x65\x72\x69\x65\x73\x58\x5b\x73\x5d\x5b\x78\x5d\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x28\x5f\x61\x20\x3d\x20\x69\x6e\x64\x65\x78\x5b\x6d\x65\x74\x72\x69\x63\x5d\x2e\x66\x69\x6c\x74\x65\x72\x28\x28\x73\x65\x72\x69\x65\x73\x29\x20\x3d\x3e\x20\x73\x65\x72\x69\x65\x73\x2e\x6e\x61\x6d\x65\x20\x3d\x3d\x3d\x20\x73\x29\x2e\x70\x6f\x70\x28\x29\x29\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x64\x61\x74\x61\x2e\x70\x75\x73\x68\x28\x7b\x20\x78\x2c\x20\x79\x3a\x20\x6e\x75\x6c\x6c\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x69\x6e\x64\x65\x78\x5b\x6d\x65\x74\x72\x69\x63\x5d\x2e\x66\x6f\x72\x45\x61\x63\x68\x28\x28\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x73\x2e\x64\x61\x74\x61\x2e\x73\x6f\x72\x74\x28\x28\x70\x31\x2c\x20\x70\x32\x29\x20\x3d\x3e\x20\x70\x31\x2e\x78\x20\x3c\x20\x70\x32\x2e\x78\x20\x3f\x20\x2d\x31\x20\x3a\x20\x31\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x7d\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x7b\x0a\x20\x20\x20\x20\x63\x68\x61\x72\x74\x73\x3a\x20\x69\x6e\x64\x65\x78\x2c\x0a\x20\x20\x20\x20\x78\x61\x78\x69\x73\x3a\x20\x78\x61\x78\x69\x73\x41\x72\x72\x61\x79\x73\x0a\x20\x20\x7d\x3b\x0a\x7d\x0a\x76\x61\x72\x20\x43\x68\x61\x72\x74\x5f\x76\x75\x65\x5f\x76\x75\x65\x5f\x74\x79\x70\x65\x5f\x73\x74\x79\x6c\x65\x5f\x69\x6e\x64\x65\x78\x5f\x30\x5f\x6c\x61\x6e\x67\x20\x3d\x20\x22\x22\x3b\x0a\x76\x61\x72\x20\x5f\x65\x78\x70\x6f\x72\x74\x5f\x73\x66\x63\x20\x3d\x20\x28\x73\x66\x63\x2c\x20\x70\x72\x6f\x70\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3d\x20\x73\x66\x63\x2e\x5f\x5f\x76\x63\x63\x4f\x70\x74\x73\x20\x7c\x7c\x20\x73\x66\x63\x3b\x0a\x20\x20\x66\x6f\x72\x20\x28\x63\x6f\x6e\x73\x74\x20\x5b\x6b\x65\x79\x2c\x20\x76\x61\x6c\x5d\x20\x6f\x66\x20\x70\x72\x6f\x70\x73\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x5b\x6b\x65\x79\x5d\x20\x3d\x20\x76\x61\x6c\x3b\x0a\x20\x20\x7d\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x61\x72\x67\x65\x74\x3b\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x73\x66\x63\x5f\x6d\x61\x69\x6e\x24\x32\x20\x3d\x20\x64\x65\x66\x69\x6e\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x7b\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\x4c\x69\x6e\x65\x43\x68\x61\x72\x74\x22\x2c\x0a\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x70\x6f\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x4f\x62\x6a\x65\x63\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x72\x75\x6e\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x64\x61\x74\x61\x3a\x20\x28\x29\x20\x3d\x3e\x20\x28\x7b\x20\x65\x72\x72\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x20\x7d\x29\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x3a\x20\x7b\x0a\x20\x20\x20\x20\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x7c\x7c\x20\x60\x22\x50\x61\x63\x6b\x61\x67\x65\x22\x3a\x20\x22\x24\x7b\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x61\x63\x6b\x61\x67\x65\x7d\x22\x2c\x20\x22\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x22\x3a\x20\x24\x7b\x4a\x53\x4f\x4e\x2e\x73\x74\x72\x69\x6e\x67\x69\x66\x79\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x29\x7d\x60\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x6d\x65\x74\x68\x6f\x64\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x43\x68\x61\x72\x74\x73\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x5f\x61\x3b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x6b\x67\x4d\x61\x74\x63\x68\x65\x72\x20\x3d\x20\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x70\x61\x63\x6b\x61\x67\x65\x20\x7c\x7c\x20\x22\x2e\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x65\x6e\x63\x68\x4d\x61\x74\x63\x68\x65\x72\x73\x20\x3d\x20\x28\x28\x5f\x61\x20\x3d\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x29\x20\x3d\x3d\x20\x6e\x75\x6c\x6c\x20\x3f\x20\x76\x6f\x69\x64\x20\x30\x20\x3a\x20\x5f\x61\x2e\x6d\x61\x70\x28\x28\x62\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x62\x20\x7c\x7c\x20\x22\x2e\x22\x29\x29\x29\x20\x7c\x7c\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x65\x6e\x63\x68\x4d\x61\x74\x63\x68\x65\x72\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x3d\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x6e\x63\x68\x4d\x61\x74\x63\x68\x65\x72\x73\x2e\x70\x75\x73\x68\x28\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x2e\x22\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x65\x72\x69\x65\x73\x20\x3d\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x53\x65\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2e\x72\x75\x6e\x73\x2c\x20\x70\x6b\x67\x4d\x61\x74\x63\x68\x65\x72\x2c\x20\x62\x65\x6e\x63\x68\x4d\x61\x74\x63\x68\x65\x72\x73\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6d\x65\x74\x72\x69\x63\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x6c\x6f\x67\x28\x60\x63\x68\x61\x72\x74\x20\x24\x7b\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6e\x61\x6d\x65\x7d\x60\x2c\x20\x73\x65\x72\x69\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x73\x65\x72\x69\x65\x73\x2e\x63\x68\x61\x72\x74\x73\x29\x2e\x6d\x61\x70\x28\x28\x6d\x29\x20\x3d\x3e\x20\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x65\x74\x72\x69\x63\x3a\x20\x6d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x6c\x69\x6e\x65\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x65\x6e\x74\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6d\x61\x72\x6b\x65\x72\x43\x6c\x69\x63\x6b\x3a\x20\x28\x65\x76\x65\x6e\x74\x2c\x20\x63\x68\x61\x72\x74\x43\x6f\x6e\x74\x65\x78\x74\x2c\x20\x63\x6f\x6e\x66\x69\x67\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2e\x72\x65\x70\x6f\x29\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\x20\x20\x63\x6f\x6e\x73\x74\x20\x7b\x20\x64\x61\x74\x61\x50\x6f\x69\x6e\x74\x49\x6e\x64\x65\x78\x3a\x20\x78\x20\x7d\x20\x3d\x20\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x50\x61\x72\x73\x65\x44\x61\x74\x65\x28\x73\x65\x72\x69\x65\x73\x2e\x78\x61\x78\x69\x73\x5b\x6d\x5d\x5b\x78\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x75\x6e\x73\x2e\x66\x69\x6e\x64\x28\x28\x72\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x50\x61\x72\x73\x65\x44\x61\x74\x65\x28\x72\x32\x2e\x44\x61\x74\x65\x29\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x20\x3d\x3d\x3d\x20\x64\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x3b\x0a\x20\x20\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\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x29\x0a\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\x6f\x70\x65\x6e\x28\x60\x24\x7b\x74\x68\x69\x73\x2e\x72\x65\x70\x6f\x7d\x2f\x63\x6f\x6d\x6d\x69\x74\x2f\x24\x7b\x72\x2e\x56\x65\x72\x73\x69\x6f\x6e\x7d\x60\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\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6f\x6c\x62\x61\x72\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6f\x6c\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7a\x6f\x6f\x6d\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\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\x3a\x20\x66\x61\x6c\x73\x65\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\x7d\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\x72\x65\x73\x70\x6f\x6e\x73\x69\x76\x65\x3a\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x3a\x20\x37\x36\x39\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x33\x30\x30\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x61\x74\x61\x4c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\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\x78\x61\x78\x69\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x22\x63\x61\x74\x65\x67\x6f\x72\x79\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x74\x65\x67\x6f\x72\x69\x65\x73\x3a\x20\x73\x65\x72\x69\x65\x73\x2e\x78\x61\x78\x69\x73\x5b\x6d\x5d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x6f\x72\x74\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x66\x61\x6c\x73\x65\x20\x7d\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6c\x61\x62\x65\x6c\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x68\x6f\x77\x3a\x20\x66\x61\x6c\x73\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x72\x3a\x20\x28\x64\x61\x74\x65\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x64\x20\x3d\x20\x50\x61\x72\x73\x65\x44\x61\x74\x65\x28\x64\x61\x74\x65\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x20\x3d\x20\x74\x68\x69\x73\x2e\x72\x75\x6e\x73\x2e\x66\x69\x6e\x64\x28\x28\x72\x32\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x50\x61\x72\x73\x65\x44\x61\x74\x65\x28\x72\x32\x2e\x44\x61\x74\x65\x29\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x20\x3d\x3d\x3d\x20\x64\x2e\x76\x61\x6c\x75\x65\x4f\x66\x28\x29\x3b\x0a\x20\x20\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\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x64\x20\x3d\x20\x60\x24\x7b\x64\x2e\x74\x6f\x44\x61\x74\x65\x53\x74\x72\x69\x6e\x67\x28\x29\x7d\x20\x24\x7b\x28\x22\x30\x22\x20\x2b\x20\x64\x2e\x67\x65\x74\x48\x6f\x75\x72\x73\x28\x29\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x7d\x3a\x24\x7b\x28\x22\x30\x22\x20\x2b\x20\x64\x2e\x67\x65\x74\x4d\x69\x6e\x75\x74\x65\x73\x28\x29\x29\x2e\x73\x6c\x69\x63\x65\x28\x2d\x32\x29\x7d\x60\x3b\x0a\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\x72\x20\x26\x26\x20\x72\x2e\x56\x65\x72\x73\x69\x6f\x6e\x20\x3f\x20\x60\x24\x7b\x66\x6f\x72\x6d\x61\x74\x74\x65\x64\x7d\x20\x28\x24\x7b\x72\x2e\x56\x65\x72\x73\x69\x6f\x6e\x2e\x73\x75\x62\x73\x74\x72\x69\x6e\x67\x28\x30\x2c\x20\x39\x29\x7d\x29\x60\x20\x3a\x20\x66\x6f\x72\x6d\x61\x74\x74\x65\x64\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\x7d\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\x74\x6f\x6f\x6c\x74\x69\x70\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x68\x61\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x6e\x44\x61\x74\x61\x73\x65\x74\x48\x6f\x76\x65\x72\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x67\x68\x6c\x69\x67\x68\x74\x44\x61\x74\x61\x53\x65\x72\x69\x65\x73\x3a\x20\x74\x72\x75\x65\x0a\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\x66\x69\x78\x65\x64\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6e\x61\x62\x6c\x65\x64\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x20\x22\x74\x6f\x70\x4c\x65\x66\x74\x22\x0a\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\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x73\x65\x72\x69\x65\x73\x2e\x63\x68\x61\x72\x74\x73\x5b\x6d\x5d\x2e\x6d\x61\x70\x28\x28\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x2e\x64\x61\x74\x61\x20\x3d\x20\x73\x2e\x64\x61\x74\x61\x2e\x6d\x61\x70\x28\x28\x70\x32\x29\x20\x3d\x3e\x20\x70\x32\x2e\x79\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x20\x7c\x7c\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x65\x72\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x65\x72\x72\x6f\x72\x28\x60\x63\x68\x61\x72\x74\x20\x24\x7b\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6e\x61\x6d\x65\x7d\x60\x2c\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2c\x20\x65\x72\x72\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x5d\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x31\x24\x32\x20\x3d\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x63\x68\x61\x72\x74\x22\x20\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x32\x24\x32\x20\x3d\x20\x5b\x22\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x22\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x33\x24\x31\x20\x3d\x20\x7b\x20\x6b\x65\x79\x3a\x20\x30\x20\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x34\x24\x31\x20\x3d\x20\x7b\x0a\x20\x20\x6b\x65\x79\x3a\x20\x31\x2c\x0a\x20\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x63\x68\x61\x72\x74\x2d\x73\x65\x74\x22\x0a\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x35\x24\x31\x20\x3d\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x63\x68\x61\x72\x74\x2d\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x22\x20\x7d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x5f\x73\x66\x63\x5f\x72\x65\x6e\x64\x65\x72\x24\x32\x28\x5f\x63\x74\x78\x2c\x20\x5f\x63\x61\x63\x68\x65\x2c\x20\x24\x70\x72\x6f\x70\x73\x2c\x20\x24\x73\x65\x74\x75\x70\x2c\x20\x24\x64\x61\x74\x61\x2c\x20\x24\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x22\x61\x70\x65\x78\x63\x68\x61\x72\x74\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x31\x24\x32\x2c\x20\x5b\x0a\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x68\x33\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x6f\x44\x69\x73\x70\x6c\x61\x79\x53\x74\x72\x69\x6e\x67\x28\x5f\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x6e\x61\x6d\x65\x29\x2c\x20\x31\x29\x2c\x0a\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x70\x22\x2c\x20\x7b\x20\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3a\x20\x5f\x63\x74\x78\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x7d\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x38\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x32\x24\x32\x29\x2c\x0a\x20\x20\x20\x20\x5f\x63\x74\x78\x2e\x65\x72\x72\x6f\x72\x20\x3f\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x33\x24\x31\x2c\x20\x74\x6f\x44\x69\x73\x70\x6c\x61\x79\x53\x74\x72\x69\x6e\x67\x28\x5f\x63\x74\x78\x2e\x65\x72\x72\x6f\x72\x29\x2c\x20\x31\x29\x29\x20\x3a\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x34\x24\x31\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x74\x72\x75\x65\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x46\x72\x61\x67\x6d\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x65\x6e\x64\x65\x72\x4c\x69\x73\x74\x28\x5f\x63\x74\x78\x2e\x67\x65\x6e\x65\x72\x61\x74\x65\x43\x68\x61\x72\x74\x73\x28\x29\x2c\x20\x28\x63\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x3a\x20\x6e\x6f\x72\x6d\x61\x6c\x69\x7a\x65\x43\x6c\x61\x73\x73\x28\x5b\x22\x6d\x65\x74\x72\x69\x63\x22\x2c\x20\x7b\x20\x22\x66\x75\x6c\x6c\x2d\x77\x69\x64\x74\x68\x22\x3a\x20\x5f\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x26\x26\x20\x5f\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x69\x73\x70\x6c\x61\x79\x2e\x66\x75\x6c\x6c\x57\x69\x64\x74\x68\x20\x7d\x5d\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x3a\x20\x63\x2e\x6d\x65\x74\x72\x69\x63\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x68\x35\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x6f\x44\x69\x73\x70\x6c\x61\x79\x53\x74\x72\x69\x6e\x67\x28\x63\x2e\x6d\x65\x74\x72\x69\x63\x29\x2c\x20\x31\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x35\x24\x31\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x5f\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x61\x70\x65\x78\x63\x68\x61\x72\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x70\x74\x69\x6f\x6e\x73\x3a\x20\x63\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x72\x69\x65\x73\x3a\x20\x63\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x65\x72\x69\x65\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x5f\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x69\x73\x70\x6c\x61\x79\x20\x26\x26\x20\x5f\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x69\x73\x70\x6c\x61\x79\x2e\x66\x75\x6c\x6c\x57\x69\x64\x74\x68\x20\x3f\x20\x33\x30\x30\x20\x3a\x20\x22\x61\x75\x74\x6f\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x38\x2c\x20\x5b\x22\x6f\x70\x74\x69\x6f\x6e\x73\x22\x2c\x20\x22\x73\x65\x72\x69\x65\x73\x22\x2c\x20\x22\x68\x65\x69\x67\x68\x74\x22\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5d\x2c\x20\x32\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x31\x32\x38\x29\x29\x0a\x20\x20\x20\x20\x5d\x29\x29\x0a\x20\x20\x5d\x29\x3b\x0a\x7d\x0a\x76\x61\x72\x20\x43\x68\x61\x72\x74\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x5f\x65\x78\x70\x6f\x72\x74\x5f\x73\x66\x63\x28\x5f\x73\x66\x63\x5f\x6d\x61\x69\x6e\x24\x32\x2c\x20\x5b\x5b\x22\x72\x65\x6e\x64\x65\x72\x22\x2c\x20\x5f\x73\x66\x63\x5f\x72\x65\x6e\x64\x65\x72\x24\x32\x5d\x5d\x29\x3b\x0a\x76\x61\x72\x20\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x5f\x76\x75\x65\x5f\x76\x75\x65\x5f\x74\x79\x70\x65\x5f\x73\x74\x79\x6c\x65\x5f\x69\x6e\x64\x65\x78\x5f\x30\x5f\x6c\x61\x6e\x67\x20\x3d\x20\x22\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x73\x66\x63\x5f\x6d\x61\x69\x6e\x24\x31\x20\x3d\x20\x64\x65\x66\x69\x6e\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x7b\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x22\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x43\x68\x61\x72\x74\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x70\x72\x6f\x70\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x72\x65\x70\x6f\x3a\x20\x7b\x20\x74\x79\x70\x65\x3a\x20\x53\x74\x72\x69\x6e\x67\x2c\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x20\x7d\x2c\x0a\x20\x20\x20\x20\x67\x72\x6f\x75\x70\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x4f\x62\x6a\x65\x63\x74\x2c\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x7d\x2c\x0a\x20\x20\x20\x20\x72\x75\x6e\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x79\x70\x65\x3a\x20\x41\x72\x72\x61\x79\x2c\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3a\x20\x74\x72\x75\x65\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x31\x24\x31\x20\x3d\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x63\x68\x61\x72\x74\x2d\x67\x72\x6f\x75\x70\x22\x20\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x32\x24\x31\x20\x3d\x20\x5b\x22\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x22\x5d\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x5f\x73\x66\x63\x5f\x72\x65\x6e\x64\x65\x72\x24\x31\x28\x5f\x63\x74\x78\x2c\x20\x5f\x63\x61\x63\x68\x65\x2c\x20\x24\x70\x72\x6f\x70\x73\x2c\x20\x24\x73\x65\x74\x75\x70\x2c\x20\x24\x64\x61\x74\x61\x2c\x20\x24\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x43\x68\x61\x72\x74\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x22\x43\x68\x61\x72\x74\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x31\x24\x31\x2c\x20\x5b\x0a\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x68\x32\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x6f\x44\x69\x73\x70\x6c\x61\x79\x53\x74\x72\x69\x6e\x67\x28\x5f\x63\x74\x78\x2e\x67\x72\x6f\x75\x70\x2e\x6e\x61\x6d\x65\x29\x2c\x20\x31\x29\x2c\x0a\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x70\x22\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3a\x20\x5f\x63\x74\x78\x2e\x67\x72\x6f\x75\x70\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\x7d\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x38\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x32\x24\x31\x29\x2c\x0a\x20\x20\x20\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x74\x72\x75\x65\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x46\x72\x61\x67\x6d\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x65\x6e\x64\x65\x72\x4c\x69\x73\x74\x28\x5f\x63\x74\x78\x2e\x67\x72\x6f\x75\x70\x2e\x63\x68\x61\x72\x74\x73\x2c\x20\x28\x63\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x3a\x20\x63\x2e\x6e\x61\x6d\x65\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x63\x68\x61\x72\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x5f\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x43\x68\x61\x72\x74\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x3a\x20\x63\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x75\x6e\x73\x3a\x20\x5f\x63\x74\x78\x2e\x72\x75\x6e\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x70\x6f\x3a\x20\x5f\x63\x74\x78\x2e\x72\x65\x70\x6f\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x38\x2c\x20\x5b\x22\x63\x6f\x6e\x66\x69\x67\x22\x2c\x20\x22\x72\x75\x6e\x73\x22\x2c\x20\x22\x72\x65\x70\x6f\x22\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x5d\x29\x3b\x0a\x20\x20\x20\x20\x7d\x29\x2c\x20\x31\x32\x38\x29\x29\x0a\x20\x20\x5d\x29\x3b\x0a\x7d\x0a\x76\x61\x72\x20\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x5f\x65\x78\x70\x6f\x72\x74\x5f\x73\x66\x63\x28\x5f\x73\x66\x63\x5f\x6d\x61\x69\x6e\x24\x31\x2c\x20\x5b\x5b\x22\x72\x65\x6e\x64\x65\x72\x22\x2c\x20\x5f\x73\x66\x63\x5f\x72\x65\x6e\x64\x65\x72\x24\x31\x5d\x5d\x29\x3b\x0a\x76\x61\x72\x20\x41\x70\x70\x5f\x76\x75\x65\x5f\x76\x75\x65\x5f\x74\x79\x70\x65\x5f\x73\x74\x79\x6c\x65\x5f\x69\x6e\x64\x65\x78\x5f\x30\x5f\x6c\x61\x6e\x67\x20\x3d\x20\x22\x22\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x73\x66\x63\x5f\x6d\x61\x69\x6e\x20\x3d\x20\x64\x65\x66\x69\x6e\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x7b\x0a\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\x41\x70\x70\x22\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x64\x61\x74\x61\x3a\x20\x28\x29\x20\x3d\x3e\x20\x28\x7b\x0a\x20\x20\x20\x20\x6c\x6f\x61\x64\x69\x6e\x67\x3a\x20\x74\x72\x75\x65\x2c\x0a\x20\x20\x20\x20\x63\x6f\x6e\x66\x69\x67\x3a\x20\x6e\x65\x77\x20\x43\x6f\x6e\x66\x69\x67\x28\x29\x2c\x0a\x20\x20\x20\x20\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x3a\x20\x5b\x5d\x2c\x0a\x20\x20\x20\x20\x65\x72\x72\x6f\x72\x3a\x20\x76\x6f\x69\x64\x20\x30\x0a\x20\x20\x7d\x29\x2c\x0a\x20\x20\x63\x6f\x6d\x70\x75\x74\x65\x64\x3a\x20\x7b\x0a\x20\x20\x20\x20\x67\x72\x6f\x75\x70\x73\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x73\x20\x26\x26\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x63\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x73\x75\x69\x74\x65\x73\x20\x3d\x20\x7b\x7d\x3b\x0a\x20\x20\x20\x20\x20\x20\x69\x74\x65\x72\x61\x74\x65\x53\x75\x69\x74\x65\x73\x28\x74\x68\x69\x73\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x2c\x20\x28\x73\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x73\x75\x69\x74\x65\x73\x5b\x73\x2e\x50\x6b\x67\x5d\x20\x3d\x20\x74\x72\x75\x65\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x70\x61\x63\x6b\x61\x67\x65\x73\x20\x3d\x20\x4f\x62\x6a\x65\x63\x74\x2e\x6b\x65\x79\x73\x28\x73\x75\x69\x74\x65\x73\x29\x2e\x73\x6f\x72\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x6c\x6f\x67\x28\x22\x6e\x6f\x20\x63\x68\x61\x72\x74\x20\x67\x72\x6f\x75\x70\x73\x20\x63\x6f\x6e\x66\x69\x67\x75\x72\x65\x64\x20\x2d\x20\x64\x65\x74\x65\x63\x74\x65\x64\x20\x70\x61\x63\x6b\x61\x67\x65\x73\x22\x2c\x20\x70\x61\x63\x6b\x61\x67\x65\x73\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x20\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x24\x31\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x3a\x20\x22\x42\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x20\x62\x79\x20\x70\x61\x63\x6b\x61\x67\x65\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3a\x20\x22\x41\x6c\x6c\x20\x64\x65\x74\x65\x63\x74\x65\x64\x20\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x2c\x20\x67\x72\x6f\x75\x70\x65\x64\x20\x62\x79\x20\x50\x61\x63\x6b\x61\x67\x65\x22\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x68\x61\x72\x74\x73\x3a\x20\x70\x61\x63\x6b\x61\x67\x65\x73\x2e\x6d\x61\x70\x28\x28\x70\x6b\x67\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x43\x68\x61\x72\x74\x24\x31\x28\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x61\x6d\x65\x3a\x20\x70\x6b\x67\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x63\x6b\x61\x67\x65\x3a\x20\x60\x5e\x24\x7b\x70\x6b\x67\x7d\x24\x60\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x3a\x20\x5b\x5d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x29\x0a\x20\x20\x20\x20\x20\x20\x5d\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x63\x72\x65\x61\x74\x65\x64\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x6f\x61\x64\x28\x29\x3b\x0a\x20\x20\x7d\x2c\x0a\x20\x20\x6d\x65\x74\x68\x6f\x64\x73\x3a\x20\x7b\x0a\x20\x20\x20\x20\x61\x73\x79\x6e\x63\x20\x6c\x6f\x61\x64\x28\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x74\x72\x79\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x66\x69\x67\x52\x65\x73\x70\x20\x3d\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x22\x2e\x2f\x67\x6f\x62\x65\x6e\x63\x68\x64\x61\x74\x61\x2d\x77\x65\x62\x2e\x79\x6d\x6c\x22\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x63\x6f\x6e\x66\x69\x67\x52\x65\x73\x70\x2e\x73\x74\x61\x74\x75\x73\x20\x3e\x20\x34\x30\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x65\x72\x72\x6f\x72\x28\x63\x6f\x6e\x66\x69\x67\x52\x65\x73\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x24\x7b\x63\x6f\x6e\x66\x69\x67\x52\x65\x73\x70\x2e\x73\x74\x61\x74\x75\x73\x7d\x3a\x20\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x6c\x6f\x61\x64\x20\x63\x6f\x6e\x66\x69\x67\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x61\x77\x20\x3d\x20\x61\x77\x61\x69\x74\x20\x63\x6f\x6e\x66\x69\x67\x52\x65\x73\x70\x2e\x74\x65\x78\x74\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x6c\x6f\x67\x28\x72\x61\x77\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x63\x6f\x6e\x66\x69\x67\x20\x3d\x20\x6e\x65\x77\x20\x43\x6f\x6e\x66\x69\x67\x28\x70\x61\x72\x73\x65\x28\x72\x61\x77\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x52\x65\x73\x70\x20\x3d\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x60\x2e\x2f\x24\x7b\x63\x6f\x6e\x66\x69\x67\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x46\x69\x6c\x65\x20\x7c\x7c\x20\x22\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x2e\x6a\x73\x6f\x6e\x22\x7d\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x52\x65\x73\x70\x2e\x73\x74\x61\x74\x75\x73\x20\x3e\x20\x34\x30\x30\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x65\x72\x72\x6f\x72\x28\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x52\x65\x73\x70\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x72\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x60\x24\x7b\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x52\x65\x73\x70\x2e\x73\x74\x61\x74\x75\x73\x7d\x3a\x20\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x6c\x6f\x61\x64\x20\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x60\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x74\x20\x72\x75\x6e\x73\x20\x3d\x20\x61\x77\x61\x69\x74\x20\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x52\x65\x73\x70\x2e\x6a\x73\x6f\x6e\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x20\x3d\x20\x72\x75\x6e\x73\x2e\x6d\x61\x70\x28\x28\x72\x29\x20\x3d\x3e\x20\x6e\x65\x77\x20\x52\x75\x6e\x28\x72\x29\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x63\x6f\x6e\x66\x69\x67\x20\x3d\x20\x63\x6f\x6e\x66\x69\x67\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x73\x6f\x6c\x65\x2e\x6c\x6f\x67\x28\x22\x64\x61\x74\x61\x20\x6c\x6f\x61\x64\x65\x64\x22\x2c\x20\x7b\x20\x63\x6f\x6e\x66\x69\x67\x2c\x20\x72\x75\x6e\x73\x3a\x20\x74\x68\x69\x73\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x2e\x6c\x65\x6e\x67\x74\x68\x20\x7d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x20\x63\x61\x74\x63\x68\x20\x28\x65\x72\x72\x29\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x65\x72\x72\x6f\x72\x20\x3d\x20\x65\x72\x72\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x0a\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2e\x6c\x6f\x61\x64\x69\x6e\x67\x20\x3d\x20\x66\x61\x6c\x73\x65\x3b\x0a\x20\x20\x20\x20\x7d\x0a\x20\x20\x7d\x0a\x7d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x31\x20\x3d\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x61\x70\x70\x22\x20\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x32\x20\x3d\x20\x7b\x20\x6b\x65\x79\x3a\x20\x30\x20\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x33\x20\x3d\x20\x7b\x20\x6b\x65\x79\x3a\x20\x31\x20\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x34\x20\x3d\x20\x7b\x20\x6b\x65\x79\x3a\x20\x32\x20\x7d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x35\x20\x3d\x20\x5b\x22\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x22\x5d\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x36\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x64\x69\x76\x22\x2c\x20\x7b\x20\x63\x6c\x61\x73\x73\x3a\x20\x22\x66\x6f\x6f\x74\x65\x72\x22\x20\x7d\x2c\x20\x5b\x0a\x20\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x70\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x5b\x0a\x20\x20\x20\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x56\x4e\x6f\x64\x65\x28\x22\x20\x67\x65\x6e\x65\x72\x61\x74\x65\x64\x20\x75\x73\x69\x6e\x67\x20\x22\x29\x2c\x0a\x20\x20\x20\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x61\x22\x2c\x20\x7b\x20\x68\x72\x65\x66\x3a\x20\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x62\x6f\x62\x68\x65\x61\x64\x78\x69\x2e\x64\x65\x76\x2f\x72\x2f\x67\x6f\x62\x65\x6e\x63\x68\x64\x61\x74\x61\x22\x20\x7d\x2c\x20\x22\x67\x6f\x62\x65\x6e\x63\x68\x64\x61\x74\x61\x22\x29\x0a\x20\x20\x5d\x29\x0a\x5d\x2c\x20\x2d\x31\x29\x3b\x0a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x5f\x73\x66\x63\x5f\x72\x65\x6e\x64\x65\x72\x28\x5f\x63\x74\x78\x2c\x20\x5f\x63\x61\x63\x68\x65\x2c\x20\x24\x70\x72\x6f\x70\x73\x2c\x20\x24\x73\x65\x74\x75\x70\x2c\x20\x24\x64\x61\x74\x61\x2c\x20\x24\x6f\x70\x74\x69\x6f\x6e\x73\x29\x20\x7b\x0a\x20\x20\x63\x6f\x6e\x73\x74\x20\x5f\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x20\x3d\x20\x72\x65\x73\x6f\x6c\x76\x65\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x28\x22\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x22\x29\x3b\x0a\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x31\x2c\x20\x5b\x0a\x20\x20\x20\x20\x5f\x63\x74\x78\x2e\x6c\x6f\x61\x64\x69\x6e\x67\x20\x3f\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x32\x2c\x20\x22\x6c\x6f\x61\x64\x69\x6e\x67\x2e\x2e\x2e\x22\x29\x29\x20\x3a\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x56\x4e\x6f\x64\x65\x28\x22\x22\x2c\x20\x74\x72\x75\x65\x29\x2c\x0a\x20\x20\x20\x20\x5f\x63\x74\x78\x2e\x65\x72\x72\x6f\x72\x20\x3f\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x33\x2c\x20\x74\x6f\x44\x69\x73\x70\x6c\x61\x79\x53\x74\x72\x69\x6e\x67\x28\x5f\x63\x74\x78\x2e\x65\x72\x72\x6f\x72\x29\x2c\x20\x31\x29\x29\x20\x3a\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x56\x4e\x6f\x64\x65\x28\x22\x22\x2c\x20\x74\x72\x75\x65\x29\x2c\x0a\x20\x20\x20\x20\x21\x5f\x63\x74\x78\x2e\x6c\x6f\x61\x64\x69\x6e\x67\x20\x26\x26\x20\x21\x5f\x63\x74\x78\x2e\x65\x72\x72\x6f\x72\x20\x3f\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x34\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x68\x31\x22\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x74\x6f\x44\x69\x73\x70\x6c\x61\x79\x53\x74\x72\x69\x6e\x67\x28\x5f\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x74\x69\x74\x6c\x65\x29\x2c\x20\x31\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x42\x61\x73\x65\x56\x4e\x6f\x64\x65\x28\x22\x68\x33\x22\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3a\x20\x5f\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x0a\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x38\x2c\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x35\x29\x2c\x0a\x20\x20\x20\x20\x20\x20\x28\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x74\x72\x75\x65\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x46\x72\x61\x67\x6d\x65\x6e\x74\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x72\x65\x6e\x64\x65\x72\x4c\x69\x73\x74\x28\x5f\x63\x74\x78\x2e\x67\x72\x6f\x75\x70\x73\x2c\x20\x28\x67\x29\x20\x3d\x3e\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x20\x6f\x70\x65\x6e\x42\x6c\x6f\x63\x6b\x28\x29\x2c\x20\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x42\x6c\x6f\x63\x6b\x28\x22\x64\x69\x76\x22\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6b\x65\x79\x3a\x20\x67\x2e\x6e\x61\x6d\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x5b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x65\x61\x74\x65\x56\x4e\x6f\x64\x65\x28\x5f\x63\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\x5f\x43\x68\x61\x72\x74\x47\x72\x6f\x75\x70\x2c\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x72\x6f\x75\x70\x3a\x20\x67\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x75\x6e\x73\x3a\x20\x5f\x63\x74\x78\x2e\x62\x65\x6e\x63\x68\x6d\x61\x72\x6b\x73\x2c\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x70\x6f\x3a\x20\x5f\x63\x74\x78\x2e\x63\x6f\x6e\x66\x69\x67\x2e\x72\x65\x70\x6f\x73\x69\x74\x6f\x72\x79\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7d\x2c\x20\x6e\x75\x6c\x6c\x2c\x20\x38\x2c\x20\x5b\x22\x67\x72\x6f\x75\x70\x22\x2c\x20\x22\x72\x75\x6e\x73\x22\x2c\x20\x22\x72\x65\x70\x6f\x22\x5d\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x5d\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x7d\x29\x2c\x20\x31\x32\x38\x29\x29\x0a\x20\x20\x20\x20\x5d\x29\x29\x20\x3a\x20\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\x6e\x74\x56\x4e\x6f\x64\x65\x28\x22\x22\x2c\x20\x74\x72\x75\x65\x29\x2c\x0a\x20\x20\x20\x20\x5f\x68\x6f\x69\x73\x74\x65\x64\x5f\x36\x0a\x20\x20\x5d\x29\x3b\x0a\x7d\x0a\x76\x61\x72\x20\x41\x70\x70\x20\x3d\x20\x2f\x2a\x20\x40\x5f\x5f\x50\x55\x52\x45\x5f\x5f\x20\x2a\x2f\x20\x5f\x65\x78\x70\x6f\x72\x74\x5f\x73\x66\x63\x28\x5f\x73\x66\x63\x5f\x6d\x61\x69\x6e\x2c\x20\x5b\x5b\x22\x72\x65\x6e\x64\x65\x72\x22\x2c\x20\x5f\x73\x66\x63\x5f\x72\x65\x6e\x64\x65\x72\x5d\x5d\x29\x3b\x0a\x63\x6f\x6e\x73\x74\x20\x61\x70\x70\x20\x3d\x20\x63\x72\x65\x61\x74\x65\x41\x70\x70\x28\x41\x70\x70\x29\x3b\x0a\x61\x70\x70\x2e\x75\x73\x65\x28\x56\x75\x65\x41\x70\x65\x78\x43\x68\x61\x72\x74\x73\x29\x3b\x0a\x61\x70\x70\x2e\x6d\x6f\x75\x6e\x74\x28\x22\x23\x61\x70\x70\x22\x29\x3b\x0a")

FileAssetsIndex0d65f568Js is "/assets/index.0d65f568.js"

View Source
var FileAssetsIndexF1d9c68dCSS = []byte("\x2f\x2a\x20\x42\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x73\x20\x2d\x20\x73\x6f\x75\x72\x63\x65\x64\x20\x66\x72\x6f\x6d\x20\x68\x74\x74\x70\x73\x3a\x2f\x2f\x62\x75\x6c\x6d\x61\x2e\x69\x6f\x2f\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x2f\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x2f\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x2f\x20\x2a\x2f\x0a\x2e\x63\x68\x61\x72\x74\x20\x2e\x63\x68\x61\x72\x74\x2d\x73\x65\x74\x20\x7b\x0a\x20\x20\x64\x69\x73\x70\x6c\x61\x79\x3a\x20\x66\x6c\x65\x78\x3b\x0a\x20\x20\x66\x6c\x65\x78\x2d\x77\x72\x61\x70\x3a\x20\x77\x72\x61\x70\x3b\x0a\x20\x20\x6a\x75\x73\x74\x69\x66\x79\x2d\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x20\x73\x70\x61\x63\x65\x2d\x61\x72\x6f\x75\x6e\x64\x3b\x0a\x7d\x0a\x2e\x63\x68\x61\x72\x74\x20\x2e\x63\x68\x61\x72\x74\x2d\x73\x65\x74\x20\x2e\x6d\x65\x74\x72\x69\x63\x20\x7b\x0a\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x33\x33\x25\x3b\x0a\x7d\x0a\x40\x6d\x65\x64\x69\x61\x20\x28\x6d\x61\x78\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x34\x30\x38\x70\x78\x29\x20\x7b\x0a\x2e\x63\x68\x61\x72\x74\x20\x2e\x63\x68\x61\x72\x74\x2d\x73\x65\x74\x20\x2e\x6d\x65\x74\x72\x69\x63\x20\x7b\x0a\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x35\x30\x25\x3b\x0a\x7d\x0a\x7d\x0a\x40\x6d\x65\x64\x69\x61\x20\x28\x6d\x61\x78\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x30\x32\x34\x70\x78\x29\x20\x7b\x0a\x2e\x63\x68\x61\x72\x74\x20\x2e\x63\x68\x61\x72\x74\x2d\x73\x65\x74\x20\x2e\x6d\x65\x74\x72\x69\x63\x20\x7b\x0a\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x30\x30\x25\x3b\x0a\x7d\x0a\x7d\x0a\x2e\x63\x68\x61\x72\x74\x20\x2e\x63\x68\x61\x72\x74\x2d\x73\x65\x74\x20\x2e\x6d\x65\x74\x72\x69\x63\x2e\x66\x75\x6c\x6c\x2d\x77\x69\x64\x74\x68\x20\x7b\x0a\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x38\x30\x25\x3b\x0a\x7d\x0a\x40\x6d\x65\x64\x69\x61\x20\x28\x6d\x61\x78\x2d\x77\x69\x64\x74\x68\x3a\x20\x31\x30\x32\x34\x70\x78\x29\x20\x7b\x0a\x2e\x63\x68\x61\x72\x74\x20\x2e\x63\x68\x61\x72\x74\x2d\x73\x65\x74\x20\x2e\x6d\x65\x74\x72\x69\x63\x2e\x66\x75\x6c\x6c\x2d\x77\x69\x64\x74\x68\x20\x7b\x0a\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\x31\x30\x30\x25\x3b\x0a\x7d\x0a\x7d\x2f\x2a\x20\x42\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x73\x20\x2d\x20\x73\x6f\x75\x72\x63\x65\x64\x20\x66\x72\x6f\x6d\x20\x68\x74\x74\x70\x73\x3a\x2f\x2f\x62\x75\x6c\x6d\x61\x2e\x69\x6f\x2f\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x2f\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x2f\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x2f\x20\x2a\x2f\x0a\x2e\x63\x68\x61\x72\x74\x2d\x67\x72\x6f\x75\x70\x20\x7b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x36\x34\x70\x78\x3b\x0a\x7d\x0a\x2e\x63\x68\x61\x72\x74\x2d\x67\x72\x6f\x75\x70\x20\x2e\x63\x68\x61\x72\x74\x20\x7b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x33\x32\x70\x78\x3b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x33\x32\x70\x78\x3b\x0a\x7d\x2f\x2a\x20\x42\x72\x65\x61\x6b\x70\x6f\x69\x6e\x74\x73\x20\x2d\x20\x73\x6f\x75\x72\x63\x65\x64\x20\x66\x72\x6f\x6d\x20\x68\x74\x74\x70\x73\x3a\x2f\x2f\x62\x75\x6c\x6d\x61\x2e\x69\x6f\x2f\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x2f\x63\x75\x73\x74\x6f\x6d\x69\x7a\x65\x2f\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x2f\x20\x2a\x2f\x0a\x2e\x61\x70\x70\x20\x7b\x0a\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x6c\x65\x66\x74\x3a\x20\x33\x32\x70\x78\x3b\x0a\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x72\x69\x67\x68\x74\x3a\x20\x33\x32\x70\x78\x3b\x0a\x20\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\x22\x46\x69\x72\x61\x20\x43\x6f\x64\x65\x22\x2c\x20\x6d\x6f\x6e\x6f\x73\x70\x61\x63\x65\x3b\x0a\x20\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x0a\x7d\x0a\x2e\x61\x70\x70\x20\x2e\x66\x6f\x6f\x74\x65\x72\x20\x7b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x36\x34\x70\x78\x3b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x36\x34\x70\x78\x3b\x0a\x7d")

FileAssetsIndexF1d9c68dCSS is "/assets/index.f1d9c68d.css"

View Source
var FileIndexHTML = []byte("\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x68\x74\x6d\x6c\x3e\x0a\x3c\x68\x74\x6d\x6c\x20\x6c\x61\x6e\x67\x3d\x22\x65\x6e\x22\x3e\x0a\x20\x20\x3c\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x63\x68\x61\x72\x73\x65\x74\x3d\x22\x75\x74\x66\x2d\x38\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x68\x74\x74\x70\x2d\x65\x71\x75\x69\x76\x3d\x22\x58\x2d\x55\x41\x2d\x43\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x22\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x49\x45\x3d\x65\x64\x67\x65\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x6e\x61\x6d\x65\x3d\x22\x76\x69\x65\x77\x70\x6f\x72\x74\x22\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x77\x69\x64\x74\x68\x3d\x64\x65\x76\x69\x63\x65\x2d\x77\x69\x64\x74\x68\x2c\x69\x6e\x69\x74\x69\x61\x6c\x2d\x73\x63\x61\x6c\x65\x3d\x31\x2e\x30\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x6b\x20\x72\x65\x6c\x3d\x22\x69\x63\x6f\x6e\x22\x20\x68\x72\x65\x66\x3d\x22\x2f\x66\x61\x76\x69\x63\x6f\x6e\x2e\x69\x63\x6f\x22\x3e\x0a\x20\x20\x20\x20\x3c\x74\x69\x74\x6c\x65\x3e\x7b\x7b\x2e\x54\x69\x74\x6c\x65\x7d\x7d\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x0a\x20\x20\x20\x20\x7b\x7b\x2e\x48\x65\x61\x64\x65\x72\x7d\x7d\x0a\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x6b\x20\x72\x65\x6c\x3d\x22\x73\x74\x79\x6c\x65\x73\x68\x65\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x63\x73\x73\x22\x20\x68\x72\x65\x66\x3d\x22\x2e\x2f\x6f\x76\x65\x72\x72\x69\x64\x65\x73\x2e\x63\x73\x73\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x6b\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x66\x6f\x6e\x74\x73\x2e\x67\x6f\x6f\x67\x6c\x65\x61\x70\x69\x73\x2e\x63\x6f\x6d\x2f\x63\x73\x73\x32\x3f\x66\x61\x6d\x69\x6c\x79\x3d\x46\x69\x72\x61\x2b\x43\x6f\x64\x65\x3a\x77\x67\x68\x74\x40\x33\x30\x30\x3b\x34\x30\x30\x3b\x37\x30\x30\x26\x64\x69\x73\x70\x6c\x61\x79\x3d\x73\x77\x61\x70\x22\x20\x72\x65\x6c\x3d\x22\x73\x74\x79\x6c\x65\x73\x68\x65\x65\x74\x22\x3e\x0a\x20\x20\x20\x20\x3c\x73\x63\x72\x69\x70\x74\x20\x74\x79\x70\x65\x3d\x22\x6d\x6f\x64\x75\x6c\x65\x22\x20\x63\x72\x6f\x73\x73\x6f\x72\x69\x67\x69\x6e\x20\x73\x72\x63\x3d\x22\x2e\x2f\x61\x73\x73\x65\x74\x73\x2f\x69\x6e\x64\x65\x78\x2e\x30\x64\x36\x35\x66\x35\x36\x38\x2e\x6a\x73\x22\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x6b\x20\x72\x65\x6c\x3d\x22\x73\x74\x79\x6c\x65\x73\x68\x65\x65\x74\x22\x20\x68\x72\x65\x66\x3d\x22\x2e\x2f\x61\x73\x73\x65\x74\x73\x2f\x69\x6e\x64\x65\x78\x2e\x66\x31\x64\x39\x63\x36\x38\x64\x2e\x63\x73\x73\x22\x3e\x0a\x20\x20\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x20\x20\x3c\x62\x6f\x64\x79\x3e\x0a\x20\x20\x20\x20\x3c\x6e\x6f\x73\x63\x72\x69\x70\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x72\x6f\x6e\x67\x3e\x57\x65\x27\x72\x65\x20\x73\x6f\x72\x72\x79\x20\x62\x75\x74\x20\x7b\x7b\x2e\x54\x69\x74\x6c\x65\x7d\x7d\x20\x64\x6f\x65\x73\x6e\x27\x74\x20\x77\x6f\x72\x6b\x20\x70\x72\x6f\x70\x65\x72\x6c\x79\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x4a\x61\x76\x61\x53\x63\x72\x69\x70\x74\x20\x65\x6e\x61\x62\x6c\x65\x64\x2e\x20\x50\x6c\x65\x61\x73\x65\x20\x65\x6e\x61\x62\x6c\x65\x20\x69\x74\x20\x74\x6f\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x2e\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6e\x6f\x73\x63\x72\x69\x70\x74\x3e\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x69\x64\x3d\x22\x61\x70\x70\x22\x3e\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x3c\x21\x2d\x2d\x20\x62\x75\x69\x6c\x74\x20\x66\x69\x6c\x65\x73\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x61\x75\x74\x6f\x20\x69\x6e\x6a\x65\x63\x74\x65\x64\x20\x2d\x2d\x3e\x0a\x20\x20\x3c\x2f\x62\x6f\x64\x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a")

FileIndexHTML is "/index.html"

View Source
var FileOverridesCSS = []byte("\x2f\x2a\x20\x70\x6c\x61\x63\x65\x20\x79\x6f\x75\x72\x20\x6f\x77\x6e\x20\x73\x74\x79\x6c\x65\x73\x20\x68\x65\x72\x65\x20\x2a\x2f")

FileOverridesCSS is "/overrides.css"

Functions

func DefaultConfigPath

func DefaultConfigPath(dir string) string

DefaultConfigPath generates the gobenchdata-web configuration path

func GenerateApp

func GenerateApp(dir string, it TemplateIndexHTML) error

GenerateApp dumps the web app template into the provided directory

func GenerateConfig

func GenerateConfig(dir string, defaultConfig Config, override bool) error

GenerateConfig generates configuration for the web app

func ListenAndServe

func ListenAndServe(addr string, config Config, it TemplateIndexHTML) error

ListenAndServe serves the web app on the given address

func LoadDefaults

func LoadDefaults(dir string, flags Flags) (*Config, *TemplateIndexHTML)

LoadDefaults loads reasonable defaults from a combination of flags and existing configuration

func ReadFile

func ReadFile(path string) ([]byte, error)

ReadFile is adapTed from ioutil

func WalkDirs

func WalkDirs(name string, includeDirsInList bool, files ...string) ([]string, error)

WalkDirs looks for files in the given dir and returns a list of files in it usage for all files in the b0x: WalkDirs("", false)

func WriteFile

func WriteFile(filename string, data []byte, perm os.FileMode) error

WriteFile is adapTed from ioutil

Types

type Chart

type Chart struct {
	Name        string        `json:"name" yaml:"name"`
	Description template.HTML `json:"description" yaml:"description"`

	// Regex matcher when looking for benchmarks
	Package string `json:"package" yaml:"package"`

	// Regex matchers - each matcher will be treated as a series
	Benchmarks []string `json:"benchmarks" yaml:"benchmarks"`

	// empty for all, otherwise fill
	// builtins: 'NsPerOp' | 'Mem.BytesPerOp' | 'Mem.AllocsPerOp' | 'Mem.MBPerSec'
	// each metric is charted in a separate subchart
	Metrics map[string]bool `json:"metrics" yaml:"metrics"`

	Display *ChartDisplay `json:"display" yaml:"display"`
}

Chart describes a chart

type ChartDisplay

type ChartDisplay struct {
	FullWidth bool `json:"fullWidth" yaml:"fullWidth"`
}

ChartDisplay configures how the charts are rendered

type ChartGroup

type ChartGroup struct {
	Name        string        `json:"name" yaml:"name"`
	Description template.HTML `json:"description" yaml:"description"`

	Charts []Chart `json:"charts" yaml:"charts"`
}

ChartGroup describes a group of charts

type Config

type Config struct {
	Title          string        `json:"title" yaml:"title"`
	Description    template.HTML `json:"description" yaml:"description"`
	Repository     string        `json:"repository" yaml:"repository"`
	BenchmarksFile *string       `json:"benchmarksFile" yaml:"benchmarksFile"`

	// leave blank to generate per-package
	ChartGroups []ChartGroup `json:"chartGroups" yaml:"chartGroups"`
}

Config is the configuration template for the web app.

func LoadConfig

func LoadConfig(path string) (*Config, error)

LoadConfig loads up gobenchdata-web configuration

type Flags

type Flags struct {
	Title   string
	Headers []string
}

Flags come from the CLI

type HTTPFS

type HTTPFS struct {
	// Prefix allows to limit the path of all requests. F.e. a prefix "css" would allow only calls to /css/*
	Prefix string
}

HTTPFS implements http.FileSystem

func (*HTTPFS) Open

func (hfs *HTTPFS) Open(path string) (http.File, error)

Open a file

type TemplateIndexHTML

type TemplateIndexHTML struct {
	Title   string
	Headers []string
}

TemplateIndexHTML declares variables for index.html

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL