libgcj/9609: static copiled program cannot write to disk

doparsons@rev.net doparsons@rev.net
Fri Feb 7 07:26:00 GMT 2003


>Number:         9609
>Category:       libgcj
>Synopsis:       static copiled program cannot write to disk
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 07 07:26:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Doug Parsons
>Release:        gcc 3.2.2
>Organization:
>Environment:
Linux potato 2.2 gcc 3.2.2 debian unstable package
>Description:
Cannot write to disk with a static compile. Added several static class definitions to original program main with no luck (will keep trying). Any Ideas??


potato:/usr/tst# gcj -static -v -classpath /usr/lib  -Wl,-noinhibit-exec -o testdump --main=Tst.FishDump -fjni -ggdb -ggdb3  @test
Reading specs from /usr/lib/gcc-lib/i386-linux/3.2.2/specs
Reading specs from /usr/lib/gcc-lib/i386-linux/3.2.2/../../../libgcj.spec
rename spec lib to liborig
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,pascal,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --disable-__cxa_atexit --enable-java-gc=boehm --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.2.2 20030131 (Debian prerelease)
 /usr/lib/gcc-lib/i386-linux/3.2.2/jc1 test -fhash-synchronization -fno-use-divide-subroutine -fuse-boehm-gc -fnon-call-exceptions -fkeep-inline-functions -quiet -dumpbase test -ggdb -ggdb3 -version -fclasspath=/usr/lib -fjni -ffilelist-file -o /tmp/ccjy4ji3.s
GNU Java version 3.2.2 20030131 (Debian prerelease) (i386-linux)
        compiled by GNU C version 3.2.2 20030131 (Debian prerelease).
Class path starts here:
    /usr/lib/
    /usr/share/java/libgcj-3.2.2.jar/ (system) (zip)
 as -V -Qy -o /tmp/cc5XrfXB.o /tmp/ccjy4ji3.s
GNU assembler version 2.13.90.0.16 (i386-linux) using BFD version 2.13.90.0.16 20021126 Debian GNU/Linux
 /usr/lib/gcc-lib/i386-linux/3.2.2/jvgenmain Tst.FishDumpmain /tmp/ccm0hc7Z.i
 /usr/lib/gcc-lib/i386-linux/3.2.2/cc1 /tmp/ccm0hc7Z.i -quiet -dumpbase Tst.FishDumpmain.c -ggdb -ggdb3 -version -fdollars-in-identifiers -o /tmp/ccjy4ji3.s
GNU CPP version 3.2.2 20030131 (Debian prerelease) (cpplib) (i386 Linux/ELF)
GNU C version 3.2.2 20030131 (Debian prerelease) (i386-linux)
        compiled by GNU C version 3.2.2 20030131 (Debian prerelease).
 as -V -Qy -o /tmp/ccdvRx3v.o /tmp/ccjy4ji3.s
GNU assembler version 2.13.90.0.16 (i386-linux) using BFD version 2.13.90.0.16 20021126 Debian GNU/Linux
 /usr/lib/gcc-lib/i386-linux/3.2.2/collect2 -m elf_i386 -static -o testdump /usr/lib/gcc-lib/i386-linux/3.2.2/../../../crt1.o /usr/lib/gcc-lib/i386-linux/3.2.2/../../../crti.o /usr/lib/gcc-lib/i386-linux/3.2.2/crtbeginT.o -L/usr/lib/gcc-lib/i386-linux/3.2.2 -L/usr/lib/gcc-lib/i386-linux/3.2.2/../../.. /tmp/ccdvRx3v.o -noinhibit-exec /tmp/cc5XrfXB.o -lgcc -lgcc_eh -lgcj -lm -lpthread -lz -ldl -lgcc -lgcc_eh -lc -lgcc -lgcc_eh /usr/lib/gcc-lib/i386-linux/3.2.2/crtend.o /usr/lib/gcc-lib/i386-linux/3.2.2/../../../crtn.o
potato:/usr/tst# ./testdump
Configuration file info cannot be found.
Error loading Settings. Default settings loaded.
Exception in thread "main" java.lang.RuntimeException: The SHA algorithm was not found to use in computing the Serial Version UID for class Tst.Settings
   at 0x0807b04e: java::lang::Throwable::Throwable[in-charge](java::lang::String*) (??:0)
   at 0x08084a1f: java::io::ObjectStreamClass::getClassUID(java::lang::Class*) (??:0)
   at 0x08084067: java::io::ObjectStreamClass::ObjectStreamClass[in-charge](java::lang::Class*) (??:0)
   at 0x08083abb: java::io::ObjectStreamClass::lookup(java::lang::Class*) (??:0)
   at 0x08081a49: java::io::ObjectOutputStream::writeObject(java::lang::Object*) (??:0)
   at 0x08048465: Tst::SetupIO::openOutFile(java::lang::Object*, java::lang::String*) (/usr/tst/Tst/SetupIO.java:44)
   at 0x0804938e: Tst::FishDump::main(JArray<java::lang::String*>*) (/usr/tst/Tst/FishDump.java:24)
   at 0x080b7176: gnu::gcj::runtime::FirstThread::call_main() (??:0)
   at 0x080708ed: _Jv_ThreadRun(java::lang::Thread*) (??:0)
   at 0x0804dd78: _Jv_RunMain(java::lang::Class*, char const*, int, char const**, bool) (??:0)
   at 0x0804de68: JvRunMain (??:0)
   at 0x080481fd: main (/tmp/ccm0hc7Z.i:11)
   at 0x080eb067: __libc_start_main (??:0)
   at 0x08048101: _start (??:0)
>How-To-Repeat:
Compile source as in description and run program. Will try to read from /usr/local and if read fails then write it. Note: If run in GIJ jvm read will always fail (another issue). File "test" not included.
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-tar; name="Tst.tar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Tst.tar"

dXNyL3RzdC9Uc3QvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NTUAMDAwMDAw
MAAwMDAwMDAwADAwMDAwMDAwMDAwADA3NjIwMTA1NDM2ADAxMTc2MAAgNQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1
c3IvdHN0L1RzdC9GaXNoRHVtcC5jbGFzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAwMDAw
ADAwMDAwMDAAMDAwMDAwMDE0MDUAMDc2MjAxMDM1MzcAMDE0NTIzACAwAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMr+
ur4AAwAtADEBAAxUc3QvRmlzaER1bXAHAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAEaW5mbwEA
DkxUc3QvU2V0dGluZ3M7AQAEbWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlCAAF
AQALVHN0L1NldHVwSU8HAAsBAApvcGVuSW5GaWxlAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2
YS9sYW5nL09iamVjdDsMAA0ADgoADAAPAQAMVHN0L1NldHRpbmdzBwARDAAFAAYJAAIAEwEAEGph
dmEvbGFuZy9TeXN0ZW0HABUBAANvdXQBABVMamF2YS9pby9QcmludFN0cmVhbTsMABcAGAkAFgAZ
AQAwRXJyb3IgbG9hZGluZyBTZXR0aW5ncy4gRGVmYXVsdCBzZXR0aW5ncyBsb2FkZWQuCAAbAQAT
amF2YS9pby9QcmludFN0cmVhbQcAHQEAB3ByaW50bG4BABUoTGphdmEvbGFuZy9TdHJpbmc7KVYM
AB8AIAoAHgAhAQAGPGluaXQ+AQADKClWDAAjACQKABIAJQEAC29wZW5PdXRGaWxlAQAnKExqYXZh
L2xhbmcvT2JqZWN0O0xqYXZhL2xhbmcvU3RyaW5nOylJDAAnACgKAAwAKQEAHmphdmEvbGFuZy9O
dWxsUG9pbnRlckV4Y2VwdGlvbgcAKwEAD0xpbmVOdW1iZXJUYWJsZQoABAAlAQAKU291cmNlRmls
ZQEADUZpc2hEdW1wLmphdmEAIQACAAQAAAABAAgABQAGAAAAAgAJAAcACAABAAkAAABtAAIAAgAA
ADUSCrgAEMAAErMAFKcACEwBswAUsgAUxwAesgAaEhy2ACK7ABJZtwAmswAUsgAUEgq4ACo8sQAB
AAAACwAOACwAAQAtAAAAHgAHAAAADgAOAA8ADwAQABMAFAAZABYAIQAXACsAGAABACMAJAABAAkA
AAARAAEAAQAAAAUqtwAusQAAAAAAAQAvAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3Iv
dHN0L1RzdC9Db25zb2xlLmphdmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDQ0NAAwMDAwMDAwADAw
MDAwMDAAMDAwMDAwMTAxMDQAMDc2MTc2MzA3MTYAMDE0MjI2ACAwAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBhY2th
Z2UgVHN0Ow0KcHVibGljIGNsYXNzIENvbnNvbGUNCnsgIC8qKg0KCSogcHJpbnQgYSBwcm9tcHQg
b24gdGhlIGNvbnNvbGUgYnV0IGRvbid0IHByaW50IGEgbmV3bGluZQ0KCSogQHBhcmFtIHByb21w
dCB0aGUgcHJvbXB0IHN0cmluZyB0byBkaXNwbGF5DQoJKi8NCg0KICAgcHVibGljIHN0YXRpYyB2
b2lkIHByaW50UHJvbXB0KFN0cmluZyBwcm9tcHQpDQogICB7ICBTeXN0ZW0ub3V0LnByaW50KHBy
b21wdCArICIgIik7DQoJICBTeXN0ZW0ub3V0LmZsdXNoKCk7DQogICB9ICAgICAgICAgDQogICAN
CiAgIC8qKg0KCSogcmVhZCBhIGNoYXIgb3Igc3RyaW5nIGZyb20gdGhlIGNvbnNvbGUuIFRoZSBz
dHJpbmcgaXMgDQoJKiB0ZXJtaW5hdGVkIGJ5IGEgbmV3bGluZQ0KCSogQHJldHVybiB0aGUgZmly
c3QgY2hhcmFjdGVyIGFzIGEgY2hhciAod2l0aG91dCB0aGUgbmV3bGluZSkNCgkqLw0KCQ0KDQog
ICBwdWJsaWMgc3RhdGljIGNoYXIgcmVhZENoYXIoKQ0KICAgew0KCWNoYXIgY2g9JyAnOw0KCXRy
eQ0KCQkgeyAgDQoJCWNoID0gKGNoYXIpIFN5c3RlbS5pbi5yZWFkKCk7DQoJCQkNCgkJIH0NCgkJ
IGNhdGNoKGphdmEuaW8uSU9FeGNlcHRpb24gZSkNCgkJIHsgIA0KCQkNCgkJIH0NCglyZXR1cm4g
Y2g7DQogICB9ICAgICAgICAgCQ0KICAgDQogICBwdWJsaWMgc3RhdGljIGNoYXIgcmVhZENoYXIo
U3RyaW5nIHByb21wdCkNCiAgIHsNCgkJcHJpbnRQcm9tcHQocHJvbXB0KTsNCgkJcmV0dXJuIHJl
YWRDaGFyKCk7DQogICB9ICAgICAgICAgDQoNCg0KDQogICAvKioNCgkqIHJlYWQgYSBjaGFyIG9y
IHN0cmluZyBmcm9tIHRoZSBjb25zb2xlLiBJdCBtdXN0IHN0YXJ0IHdpdGggVCBvciBGLg0KCSog
IFRoZSBzdHJpbmcgaXMgdGVybWluYXRlZCBieSBhIG5ld2xpbmUuICBJZiB0aGUgZmlyc3QgY2hh
cmFjdGVyDQoJKiAgaXMgYW4gZiwgdGhlIGJvb2xlYW4gZmFsc2UgaXMgcmV0dXJuZWQgb3IgdHJ1
ZSBmb3IgYSBULg0KCSogDQoJKi8NCg0KCXB1YmxpYyBzdGF0aWMgYm9vbGVhbiByZWFkQm9vbGVh
bigpDQogICB7DQoJYm9vbGVhbiBkb25lID0gZmFsc2U7DQoJICBjaGFyIGNoPScgJzsgDQoJCWRv
IHsNCgkJCQ0KCQkgICANCgkJCXRyeQ0KCQkJeyAgDQoJCQkJY2ggPSAoY2hhcikgU3lzdGVtLmlu
LnJlYWQoKTsNCgkJCQkNCgkJCX0NCgkJCWNhdGNoIChqYXZhLmlvLklPRXhjZXB0aW9uIGUpDQoJ
CQl7DQoJCQl9DQoJCSANCgkJCWlmIChjaD09J1QnIHx8IGNoID09ICd0JyB8fCBjaCA9PSAnRicg
fHwgY2ggPT0gJ2YnKQ0KCQkJCSBkb25lID0gdHJ1ZTsNCgkJCQ0KCQl9IHdoaWxlICghZG9uZSk7
DQoNCgkgICAgaWYgKGNoPT0nVCcgfHwgY2ggPT0gJ3QnKQ0KCSAgICAgICAgcmV0dXJuIHRydWU7
DQoJICAgIGVsc2UNCgkgICAgICAgIHJldHVybiBmYWxzZTsgICAgDQoNCg0KICAgfSAgICAgDQog
ICAvKiogcmVhZHMgYSBCb29sZWFuIGZyb20gdGhlIGtleWJvYXJkDQoJKiAgIHJldHVybnMgdGhl
IEJvb2xlYW4NCgkqLyAgCQ0KICAgDQogICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gcmVhZEJvb2xl
YW4oU3RyaW5nIHByb21wdCkNCiAgIHsNCgkJcHJpbnRQcm9tcHQocHJvbXB0KTsNCgkJcmV0dXJu
IHJlYWRCb29sZWFuKCk7DQogICB9ICAgICAgICAgDQoNCg0KDQogICANCgkNCiAgIA0KICAgLyoq
DQoJKiByZWFkIGEgc3RyaW5nIGZyb20gdGhlIGNvbnNvbGUuIFRoZSBzdHJpbmcgaXMgDQoJKiB0
ZXJtaW5hdGVkIGJ5IGEgbmV3bGluZQ0KCSogQHJldHVybiB0aGUgaW5wdXQgc3RyaW5nICh3aXRo
b3V0IHRoZSBuZXdsaW5lKQ0KCSovDQoJDQogICBwdWJsaWMgc3RhdGljIFN0cmluZyByZWFkU3Ry
aW5nKCkNCiAgIHsgIGludCBjaDsNCgkgIFN0cmluZyByID0gIiI7DQoJICBib29sZWFuIGRvbmUg
PSBmYWxzZTsNCgkgIHdoaWxlICghZG9uZSkNCgkgIHsgIHRyeQ0KCQkgeyAgY2ggPSBTeXN0ZW0u
aW4ucmVhZCgpOw0KCQkJaWYgKGNoIDwgMCB8fCAoY2hhciljaCA9PSAnXG4nKQ0KCQkJICAgZG9u
ZSA9IHRydWU7DQoJCQllbHNlIGlmICgoY2hhciljaCAhPSAnXHInKSAvLyB3ZWlyZC0taXQgdXNl
ZCB0byBkbyBcclxuIHRyYW5zbGF0aW9uDQoJCQkgICByID0gciArIChjaGFyKSBjaDsNCgkJIH0N
CgkJIGNhdGNoKGphdmEuaW8uSU9FeGNlcHRpb24gZSkNCgkJIHsgIGRvbmUgPSB0cnVlOw0KCQkg
fQ0KCSAgfQ0KCSAgcmV0dXJuIHI7DQogICB9ICAgICAgICAgDQoNCiAgIC8qKg0KCSogcmVhZCBh
IHN0cmluZyBmcm9tIHRoZSBjb25zb2xlLiBUaGUgc3RyaW5nIGlzIA0KCSogdGVybWluYXRlZCBi
eSBhIG5ld2xpbmUNCgkqIEBwYXJhbSBwcm9tcHQgdGhlIHByb21wdCBzdHJpbmcgdG8gZGlzcGxh
eQ0KCSogQHJldHVybiB0aGUgaW5wdXQgc3RyaW5nICh3aXRob3V0IHRoZSBuZXdsaW5lKQ0KCSov
DQoJDQogICBwdWJsaWMgc3RhdGljIFN0cmluZyByZWFkU3RyaW5nKFN0cmluZyBwcm9tcHQpDQog
ICB7ICBwcmludFByb21wdChwcm9tcHQpOw0KCSAgcmV0dXJuIHJlYWRTdHJpbmcoKTsNCiAgIH0g
ICAgICAgICANCg0KICAgLyoqDQoJKiByZWFkIGEgd29yZCBmcm9tIHRoZSBjb25zb2xlLiBUaGUg
d29yZCBpcyANCgkqIGFueSBzZXQgb2YgY2hhcmFjdGVycyB0ZXJtaW5hdGVkIGJ5IHdoaXRlc3Bh
Y2UNCgkqIEByZXR1cm4gdGhlICd3b3JkJyBlbnRlcmVkDQoJKi8NCgkNCiAgIHB1YmxpYyBzdGF0
aWMgU3RyaW5nIHJlYWRXb3JkKCkNCiAgIHsgIGludCBjaDsNCgkgIFN0cmluZyByID0gIiI7DQoJ
ICBib29sZWFuIGRvbmUgPSBmYWxzZTsNCgkgIHdoaWxlICghZG9uZSkNCgkgIHsgIHRyeQ0KCQkg
eyAgY2ggPSBTeXN0ZW0uaW4ucmVhZCgpOw0KCQkJaWYgKGNoIDwgMCANCgkJCSAgIHx8IGphdmEu
bGFuZy5DaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKChjaGFyKWNoKSkNCgkJCSAgIGRvbmUgPSB0cnVl
Ow0KCQkJZWxzZQ0KCQkJICAgciA9IHIgKyAoY2hhcikgY2g7DQoJCSB9DQoJCSBjYXRjaChqYXZh
LmlvLklPRXhjZXB0aW9uIGUpDQoJCSB7ICBkb25lID0gdHJ1ZTsNCgkJIH0NCgkgIH0NCgkgIHJl
dHVybiByOw0KICAgfSAgICAgICAgIA0KDQogICAvKioNCgkqIHJlYWQgYW4gaW50ZWdlciBmcm9t
IHRoZSBjb25zb2xlLiBUaGUgaW5wdXQgaXMgDQoJKiB0ZXJtaW5hdGVkIGJ5IGEgbmV3bGluZQ0K
CSogQHBhcmFtIHByb21wdCB0aGUgcHJvbXB0IHN0cmluZyB0byBkaXNwbGF5DQoJKiBAcmV0dXJu
IHRoZSBpbnB1dCB2YWx1ZSBhcyBhbiBpbnQNCgkqIEBleGNlcHRpb24gTnVtYmVyRm9ybWF0RXhj
ZXB0aW9uIGlmIGJhZCBpbnB1dA0KCSovDQoJDQogICBwdWJsaWMgc3RhdGljIGludCByZWFkSW50
KFN0cmluZyBwcm9tcHQpDQogICB7ICB3aGlsZSh0cnVlKQ0KCSAgeyAgcHJpbnRQcm9tcHQocHJv
bXB0KTsNCgkJIHRyeQ0KCQkgeyAgcmV0dXJuIEludGVnZXIudmFsdWVPZg0KCQkJICAgKHJlYWRT
dHJpbmcoKS50cmltKCkpLmludFZhbHVlKCk7DQoJCSB9IGNhdGNoKE51bWJlckZvcm1hdEV4Y2Vw
dGlvbiBlKQ0KCQkgeyAgU3lzdGVtLm91dC5wcmludGxuDQoJCQkgICAoIk5vdCBhbiBpbnRlZ2Vy
LiBQbGVhc2UgdHJ5IGFnYWluISIpOw0KCQkgfQ0KCSAgfQ0KICAgfSAgICAgICAgIA0KDQogICAv
KioNCgkqIHJlYWQgYSBmbG9hdGluZyBwb2ludCBudW1iZXIgZnJvbSB0aGUgY29uc29sZS4gDQoJ
KiBUaGUgaW5wdXQgaXMgdGVybWluYXRlZCBieSBhIG5ld2xpbmUNCgkqIEBwYXJhbSBwcm9tcHQg
dGhlIHByb21wdCBzdHJpbmcgdG8gZGlzcGxheQ0KCSogQHJldHVybiB0aGUgaW5wdXQgdmFsdWUg
YXMgYSBkb3VibGUNCgkqIEBleGNlcHRpb24gTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIGJhZCBp
bnB1dA0KCSovDQoJDQogICBwdWJsaWMgc3RhdGljIGRvdWJsZSByZWFkRG91YmxlKFN0cmluZyBw
cm9tcHQpDQogICB7ICB3aGlsZSh0cnVlKQ0KCSAgeyAgcHJpbnRQcm9tcHQocHJvbXB0KTsNCgkJ
IHRyeQ0KCQkgeyAgcmV0dXJuIERvdWJsZS52YWx1ZU9mDQoJCQkgICAocmVhZFN0cmluZygpLnRy
aW0oKSkuZG91YmxlVmFsdWUoKTsNCgkJIH0gY2F0Y2goTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUp
DQoJCSB7ICBTeXN0ZW0ub3V0LnByaW50bG4NCgkJICgiTm90IGEgZmxvYXRpbmcgcG9pbnQgbnVt
YmVyLiBQbGVhc2UgdHJ5IGFnYWluISIpOw0KCQkgfQ0KCSAgfQ0KICAgfSAgICAgICAgIA0KfQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzci90c3QvVHN0L1Nl
dHRpbmdzLmNsYXNzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAw
MDAwMjU2MgAwNzYyMDEwNTAyNwAwMTQ2MDUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJv
b3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyv66vgADAC0ASwEADFRz
dC9TZXR0aW5ncwcAAQEAEGphdmEvbGFuZy9PYmplY3QHAAMBABRqYXZhL2lvL1NlcmlhbGl6YWJs
ZQcABQEACHBvcnROYW1lAQASTGphdmEvbGFuZy9TdHJpbmc7AQAHaG9tZURpcgEABnF1ZURpcgEA
B3F1ZUZpbGUBAAlxdWVJZ25vcmUBAAFaAQAKZmllbGROYW1lcwEAEkxqYXZhL3V0aWwvVmVjdG9y
OwEACGZpZWxkRW5kAQALZkhlYWRlclRlcm0BAApmaWVsZENvdW50AQABSQEADmZpZWxkU2VwYXJh
dG9yAQAFc3RhcnQBAARzdG9wAQAFbW9kZWwBAAY8aW5pdD4BAAMoKVYBAARDb2RlDAAYABkKAAQA
GwEAEGphdmEvdXRpbC9WZWN0b3IHAB0KAB4AGwwAFQAPCQACACABAANzZGYIACIBAAphZGRFbGVt
ZW50AQAVKExqYXZhL2xhbmcvT2JqZWN0OylWDAAkACUKAB4AJgEACy9kZXYvdGVybS9hCAAoDAAH
AAgJAAIAKgEACy91c3IvbG9jYWwvCAAsDAAJAAgJAAIALgwACgAICQACADABAANxdWUIADIMAAsA
CAkAAgA0DAAMAA0JAAIANgEAD0xpbmVOdW1iZXJUYWJsZQEABGluaXQBAAtUc3QvUHJpbnRlcgcA
OgoAOwAbAQAKZ2V0SG9tZURpcgEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAKc2V0SG9tZURpcgEA
FShMamF2YS9sYW5nL1N0cmluZzspVgEACWdldFF1ZURpcgEACXNldFF1ZURpcgEACmdldFF1ZUZp
bGUBAApzZXRRdWVGaWxlAQAMZ2V0UXVlSWdub3JlAQADKClaAQAMc2V0UXVlSWdub3JlAQAEKFop
VgEAClNvdXJjZUZpbGUBAA1TZXR0aW5ncy5qYXZhACEAAgAEAAEABgANAAIABwAIAAAAAgAJAAgA
AAACAAoACAAAAAIACwAIAAAAAgAMAA0AAAAAAA4ADwAAAAAAEAAPAAAAAAARAA8AAAAAABIAEwAA
AAAAFAAPAAAAAAAVAA8AAAAAABYADwAAAAAAFwAIAAAACgABABgAGQABABoAAACAAAMAAgAAAEQq
twAcKrsAHlm3AB+1ACEDPBsQGKIAEiq0ACESI7YAJ4QBAaf/7ioSKbUAKyoSLbUALyoSLbUAMSoS
M7UANSoEtQA3sQAAAAEAOAAAACoACgAEACMADwAkABEAJAAXACUAIAAkACYAJgAsACcAMgAoADgA
KQA+ACoAAQA5ABkAAQAaAAAAIQACAAIAAAAJuwA7WbcAPEyxAAAAAQA4AAAABgABAAAALgABAD0A
PgABABoAAAAdAAEAAQAAAAUqtAAvsAAAAAEAOAAAAAYAAQAAAEIAAQA/AEAAAQAaAAAAHgACAAIA
AAAGKiu1AC+xAAAAAQA4AAAABgABAAAASQABAEEAPgABABoAAAAdAAEAAQAAAAUqtAAxsAAAAAEA
OAAAAAYAAQAAAFIAAQBCAEAAAQAaAAAAHgACAAIAAAAGKiu1ADGxAAAAAQA4AAAABgABAAAAWQAB
AEMAPgABABoAAAAdAAEAAQAAAAUqtAA1sAAAAAEAOAAAAAYAAQAAAGIAAQBEAEAAAQAaAAAAHgAC
AAIAAAAGKiu1ADWxAAAAAQA4AAAABgABAAAAaQABAEUARgABABoAAAAdAAEAAQAAAAUqtAA3rAAA
AAEAOAAAAAYAAQAAAHIAAQBHAEgAAQAaAAAAHgACAAIAAAAGKhu1ADexAAAAAQA4AAAABgABAAAA
eQABAEkAAAACAEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXNyL3RzdC9Uc3QvRmlzaER1
bXAuamF2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA0NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAw
NzA1ADA3NjIwMTAzNDU2ADAxNDMzNwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYWNrYWdlIFRzdDsKCmltcG9y
dCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuKjsKCnB1YmxpYyBjbGFzcyBGaXNoRHVtcCB7
CglzdGF0aWMgU2V0dGluZ3MgaW5mbzsKCgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5n
W10gYXJncykgewoKCQoJCXRyeXsKCQlpbmZvID0gKFNldHRpbmdzKSBTZXR1cElPLm9wZW5JbkZp
bGUoImluZm8iKTsKCQl9Y2F0Y2goTnVsbFBvaW50ZXJFeGNlcHRpb24gZSl7CgkJCWluZm89bnVs
bDsKCQl9CgkJCgkJCgkJaWYgKGluZm8gPT0gbnVsbCkgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4o
CgkJCQkiRXJyb3IgbG9hZGluZyBTZXR0aW5ncy4gRGVmYXVsdCBzZXR0aW5ncyBsb2FkZWQuIik7
CgkJCWluZm8gPSBuZXcgU2V0dGluZ3MoKTsKCQkJaW50IGhvbGQgPSBTZXR1cElPLm9wZW5PdXRG
aWxlKGluZm8sICJpbmZvIik7CgkJfQoJCgoJCQoJfQoKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzci90c3QvVHN0L0NvbnNvbGUu
Y2xhc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDA3NDAw
MAAwNzYyMDEwNTcxMQAwMTQ0MDMAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAdXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ29uc29sZS5qYXZhAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA0NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDEwMTA0
ADA3NjE3NjMwNzE2ADAxMjAzMQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYWNrYWdlIFRzdDsNCnB1YmxpYyBj
bGFzcyBDb25zb2xlDQp7ICAvKioNCgkqIHByaW50IGEgcHJvbXB0IG9uIHRoZSBjb25zb2xlIGJ1
dCBkb24ndCBwcmludCBhIG5ld2xpbmUNCgkqIEBwYXJhbSBwcm9tcHQgdGhlIHByb21wdCBzdHJp
bmcgdG8gZGlzcGxheQ0KCSovDQoNCiAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludFByb21wdChT
dHJpbmcgcHJvbXB0KQ0KICAgeyAgU3lzdGVtLm91dC5wcmludChwcm9tcHQgKyAiICIpOw0KCSAg
U3lzdGVtLm91dC5mbHVzaCgpOw0KICAgfSAgICAgICAgIA0KICAgDQogICAvKioNCgkqIHJlYWQg
YSBjaGFyIG9yIHN0cmluZyBmcm9tIHRoZSBjb25zb2xlLiBUaGUgc3RyaW5nIGlzIA0KCSogdGVy
bWluYXRlZCBieSBhIG5ld2xpbmUNCgkqIEByZXR1cm4gdGhlIGZpcnN0IGNoYXJhY3RlciBhcyBh
IGNoYXIgKHdpdGhvdXQgdGhlIG5ld2xpbmUpDQoJKi8NCgkNCg0KICAgcHVibGljIHN0YXRpYyBj
aGFyIHJlYWRDaGFyKCkNCiAgIHsNCgljaGFyIGNoPScgJzsNCgl0cnkNCgkJIHsgIA0KCQljaCA9
IChjaGFyKSBTeXN0ZW0uaW4ucmVhZCgpOw0KCQkJDQoJCSB9DQoJCSBjYXRjaChqYXZhLmlvLklP
RXhjZXB0aW9uIGUpDQoJCSB7ICANCgkJDQoJCSB9DQoJcmV0dXJuIGNoOw0KICAgfSAgICAgICAg
IAkNCiAgIA0KICAgcHVibGljIHN0YXRpYyBjaGFyIHJlYWRDaGFyKFN0cmluZyBwcm9tcHQpDQog
ICB7DQoJCXByaW50UHJvbXB0KHByb21wdCk7DQoJCXJldHVybiByZWFkQ2hhcigpOw0KICAgfSAg
ICAgICAgIA0KDQoNCg0KICAgLyoqDQoJKiByZWFkIGEgY2hhciBvciBzdHJpbmcgZnJvbSB0aGUg
Y29uc29sZS4gSXQgbXVzdCBzdGFydCB3aXRoIFQgb3IgRi4NCgkqICBUaGUgc3RyaW5nIGlzIHRl
cm1pbmF0ZWQgYnkgYSBuZXdsaW5lLiAgSWYgdGhlIGZpcnN0IGNoYXJhY3Rlcg0KCSogIGlzIGFu
IGYsIHRoZSBib29sZWFuIGZhbHNlIGlzIHJldHVybmVkIG9yIHRydWUgZm9yIGEgVC4NCgkqIA0K
CSovDQoNCglwdWJsaWMgc3RhdGljIGJvb2xlYW4gcmVhZEJvb2xlYW4oKQ0KICAgew0KCWJvb2xl
YW4gZG9uZSA9IGZhbHNlOw0KCSAgY2hhciBjaD0nICc7IA0KCQlkbyB7DQoJCQkNCgkJICAgDQoJ
CQl0cnkNCgkJCXsgIA0KCQkJCWNoID0gKGNoYXIpIFN5c3RlbS5pbi5yZWFkKCk7DQoJCQkJDQoJ
CQl9DQoJCQljYXRjaCAoamF2YS5pby5JT0V4Y2VwdGlvbiBlKQ0KCQkJew0KCQkJfQ0KCQkgDQoJ
CQlpZiAoY2g9PSdUJyB8fCBjaCA9PSAndCcgfHwgY2ggPT0gJ0YnIHx8IGNoID09ICdmJykNCgkJ
CQkgZG9uZSA9IHRydWU7DQoJCQkNCgkJfSB3aGlsZSAoIWRvbmUpOw0KDQoJICAgIGlmIChjaD09
J1QnIHx8IGNoID09ICd0JykNCgkgICAgICAgIHJldHVybiB0cnVlOw0KCSAgICBlbHNlDQoJICAg
ICAgICByZXR1cm4gZmFsc2U7ICAgIA0KDQoNCiAgIH0gICAgIA0KICAgLyoqIHJlYWRzIGEgQm9v
bGVhbiBmcm9tIHRoZSBrZXlib2FyZA0KCSogICByZXR1cm5zIHRoZSBCb29sZWFuDQoJKi8gIAkN
CiAgIA0KICAgcHVibGljIHN0YXRpYyBib29sZWFuIHJlYWRCb29sZWFuKFN0cmluZyBwcm9tcHQp
DQogICB7DQoJCXByaW50UHJvbXB0KHByb21wdCk7DQoJCXJldHVybiByZWFkQm9vbGVhbigpOw0K
ICAgfSAgICAgICAgIA0KDQoNCg0KICAgDQoJDQogICANCiAgIC8qKg0KCSogcmVhZCBhIHN0cmlu
ZyBmcm9tIHRoZSBjb25zb2xlLiBUaGUgc3RyaW5nIGlzIA0KCSogdGVybWluYXRlZCBieSBhIG5l
d2xpbmUNCgkqIEByZXR1cm4gdGhlIGlucHV0IHN0cmluZyAod2l0aG91dCB0aGUgbmV3bGluZSkN
CgkqLw0KCQ0KICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVhZFN0cmluZygpDQogICB7ICBpbnQg
Y2g7DQoJICBTdHJpbmcgciA9ICIiOw0KCSAgYm9vbGVhbiBkb25lID0gZmFsc2U7DQoJICB3aGls
ZSAoIWRvbmUpDQoJICB7ICB0cnkNCgkJIHsgIGNoID0gU3lzdGVtLmluLnJlYWQoKTsNCgkJCWlm
IChjaCA8IDAgfHwgKGNoYXIpY2ggPT0gJ1xuJykNCgkJCSAgIGRvbmUgPSB0cnVlOw0KCQkJZWxz
ZSBpZiAoKGNoYXIpY2ggIT0gJ1xyJykgLy8gd2VpcmQtLWl0IHVzZWQgdG8gZG8gXHJcbiB0cmFu
c2xhdGlvbg0KCQkJICAgciA9IHIgKyAoY2hhcikgY2g7DQoJCSB9DQoJCSBjYXRjaChqYXZhLmlv
LklPRXhjZXB0aW9uIGUpDQoJCSB7ICBkb25lID0gdHJ1ZTsNCgkJIH0NCgkgIH0NCgkgIHJldHVy
biByOw0KICAgfSAgICAgICAgIA0KDQogICAvKioNCgkqIHJlYWQgYSBzdHJpbmcgZnJvbSB0aGUg
Y29uc29sZS4gVGhlIHN0cmluZyBpcyANCgkqIHRlcm1pbmF0ZWQgYnkgYSBuZXdsaW5lDQoJKiBA
cGFyYW0gcHJvbXB0IHRoZSBwcm9tcHQgc3RyaW5nIHRvIGRpc3BsYXkNCgkqIEByZXR1cm4gdGhl
IGlucHV0IHN0cmluZyAod2l0aG91dCB0aGUgbmV3bGluZSkNCgkqLw0KCQ0KICAgcHVibGljIHN0
YXRpYyBTdHJpbmcgcmVhZFN0cmluZyhTdHJpbmcgcHJvbXB0KQ0KICAgeyAgcHJpbnRQcm9tcHQo
cHJvbXB0KTsNCgkgIHJldHVybiByZWFkU3RyaW5nKCk7DQogICB9ICAgICAgICAgDQoNCiAgIC8q
Kg0KCSogcmVhZCBhIHdvcmQgZnJvbSB0aGUgY29uc29sZS4gVGhlIHdvcmQgaXMgDQoJKiBhbnkg
c2V0IG9mIGNoYXJhY3RlcnMgdGVybWluYXRlZCBieSB3aGl0ZXNwYWNlDQoJKiBAcmV0dXJuIHRo
ZSAnd29yZCcgZW50ZXJlZA0KCSovDQoJDQogICBwdWJsaWMgc3RhdGljIFN0cmluZyByZWFkV29y
ZCgpDQogICB7ICBpbnQgY2g7DQoJICBTdHJpbmcgciA9ICIiOw0KCSAgYm9vbGVhbiBkb25lID0g
ZmFsc2U7DQoJICB3aGlsZSAoIWRvbmUpDQoJICB7ICB0cnkNCgkJIHsgIGNoID0gU3lzdGVtLmlu
LnJlYWQoKTsNCgkJCWlmIChjaCA8IDAgDQoJCQkgICB8fCBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlz
V2hpdGVzcGFjZSgoY2hhciljaCkpDQoJCQkgICBkb25lID0gdHJ1ZTsNCgkJCWVsc2UNCgkJCSAg
IHIgPSByICsgKGNoYXIpIGNoOw0KCQkgfQ0KCQkgY2F0Y2goamF2YS5pby5JT0V4Y2VwdGlvbiBl
KQ0KCQkgeyAgZG9uZSA9IHRydWU7DQoJCSB9DQoJICB9DQoJICByZXR1cm4gcjsNCiAgIH0gICAg
ICAgICANCg0KICAgLyoqDQoJKiByZWFkIGFuIGludGVnZXIgZnJvbSB0aGUgY29uc29sZS4gVGhl
IGlucHV0IGlzIA0KCSogdGVybWluYXRlZCBieSBhIG5ld2xpbmUNCgkqIEBwYXJhbSBwcm9tcHQg
dGhlIHByb21wdCBzdHJpbmcgdG8gZGlzcGxheQ0KCSogQHJldHVybiB0aGUgaW5wdXQgdmFsdWUg
YXMgYW4gaW50DQoJKiBAZXhjZXB0aW9uIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiBiYWQgaW5w
dXQNCgkqLw0KCQ0KICAgcHVibGljIHN0YXRpYyBpbnQgcmVhZEludChTdHJpbmcgcHJvbXB0KQ0K
ICAgeyAgd2hpbGUodHJ1ZSkNCgkgIHsgIHByaW50UHJvbXB0KHByb21wdCk7DQoJCSB0cnkNCgkJ
IHsgIHJldHVybiBJbnRlZ2VyLnZhbHVlT2YNCgkJCSAgIChyZWFkU3RyaW5nKCkudHJpbSgpKS5p
bnRWYWx1ZSgpOw0KCQkgfSBjYXRjaChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkNCgkJIHsgIFN5
c3RlbS5vdXQucHJpbnRsbg0KCQkJICAgKCJOb3QgYW4gaW50ZWdlci4gUGxlYXNlIHRyeSBhZ2Fp
biEiKTsNCgkJIH0NCgkgIH0NCiAgIH0gICAgICAgICANCg0KICAgLyoqDQoJKiByZWFkIGEgZmxv
YXRpbmcgcG9pbnQgbnVtYmVyIGZyb20gdGhlIGNvbnNvbGUuIA0KCSogVGhlIGlucHV0IGlzIHRl
cm1pbmF0ZWQgYnkgYSBuZXdsaW5lDQoJKiBAcGFyYW0gcHJvbXB0IHRoZSBwcm9tcHQgc3RyaW5n
IHRvIGRpc3BsYXkNCgkqIEByZXR1cm4gdGhlIGlucHV0IHZhbHVlIGFzIGEgZG91YmxlDQoJKiBA
ZXhjZXB0aW9uIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiBiYWQgaW5wdXQNCgkqLw0KCQ0KICAg
cHVibGljIHN0YXRpYyBkb3VibGUgcmVhZERvdWJsZShTdHJpbmcgcHJvbXB0KQ0KICAgeyAgd2hp
bGUodHJ1ZSkNCgkgIHsgIHByaW50UHJvbXB0KHByb21wdCk7DQoJCSB0cnkNCgkJIHsgIHJldHVy
biBEb3VibGUudmFsdWVPZg0KCQkJICAgKHJlYWRTdHJpbmcoKS50cmltKCkpLmRvdWJsZVZhbHVl
KCk7DQoJCSB9IGNhdGNoKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKQ0KCQkgeyAgU3lzdGVtLm91
dC5wcmludGxuDQoJCSAoIk5vdCBhIGZsb2F0aW5nIHBvaW50IG51bWJlci4gUGxlYXNlIHRyeSBh
Z2FpbiEiKTsNCgkJIH0NCgkgIH0NCiAgIH0gICAgICAgICANCn0AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGaXNoRHVtcC5jbGFzcwAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDE0MDUAMDc2MjAxMDM1
MzcAMDEyMzI2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVz
dGFyICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMr+ur4AAwAtADEBAAxUc3QvRmlzaER1bXAHAAEBABBq
YXZhL2xhbmcvT2JqZWN0BwADAQAEaW5mbwEADkxUc3QvU2V0dGluZ3M7AQAEbWFpbgEAFihbTGph
dmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlCAAFAQALVHN0L1NldHVwSU8HAAsBAApvcGVuSW5GaWxl
AQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL09iamVjdDsMAA0ADgoADAAPAQAMVHN0
L1NldHRpbmdzBwARDAAFAAYJAAIAEwEAEGphdmEvbGFuZy9TeXN0ZW0HABUBAANvdXQBABVMamF2
YS9pby9QcmludFN0cmVhbTsMABcAGAkAFgAZAQAwRXJyb3IgbG9hZGluZyBTZXR0aW5ncy4gRGVm
YXVsdCBzZXR0aW5ncyBsb2FkZWQuCAAbAQATamF2YS9pby9QcmludFN0cmVhbQcAHQEAB3ByaW50
bG4BABUoTGphdmEvbGFuZy9TdHJpbmc7KVYMAB8AIAoAHgAhAQAGPGluaXQ+AQADKClWDAAjACQK
ABIAJQEAC29wZW5PdXRGaWxlAQAnKExqYXZhL2xhbmcvT2JqZWN0O0xqYXZhL2xhbmcvU3RyaW5n
OylJDAAnACgKAAwAKQEAHmphdmEvbGFuZy9OdWxsUG9pbnRlckV4Y2VwdGlvbgcAKwEAD0xpbmVO
dW1iZXJUYWJsZQoABAAlAQAKU291cmNlRmlsZQEADUZpc2hEdW1wLmphdmEAIQACAAQAAAABAAgA
BQAGAAAAAgAJAAcACAABAAkAAABtAAIAAgAAADUSCrgAEMAAErMAFKcACEwBswAUsgAUxwAesgAa
Ehy2ACK7ABJZtwAmswAUsgAUEgq4ACo8sQABAAAACwAOACwAAQAtAAAAHgAHAAAADgAOAA8ADwAQ
ABMAFAAZABYAIQAXACsAGAABACMAJAABAAkAAAARAAEAAQAAAAUqtwAusQAAAAAAAQAvAAAAAgAw
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGaXNoRHVtcC5qYXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAMDEwMDQ0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDA3MDUAMDc2MjAxMDM0NTYA
MDEyMTQyACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy
ICAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBhY2thZ2UgVHN0OwoKaW1wb3J0IGphdmEuaW8uKjsKaW1w
b3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIEZpc2hEdW1wIHsKCXN0YXRpYyBTZXR0aW5n
cyBpbmZvOwoKCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgoJCgkJ
dHJ5ewoJCWluZm8gPSAoU2V0dGluZ3MpIFNldHVwSU8ub3BlbkluRmlsZSgiaW5mbyIpOwoJCX1j
YXRjaChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKXsKCQkJaW5mbz1udWxsOwoJCX0KCQkKCQkKCQlp
ZiAoaW5mbyA9PSBudWxsKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigKCQkJCSJFcnJvciBsb2Fk
aW5nIFNldHRpbmdzLiBEZWZhdWx0IHNldHRpbmdzIGxvYWRlZC4iKTsKCQkJaW5mbyA9IG5ldyBT
ZXR0aW5ncygpOwoJCQlpbnQgaG9sZCA9IFNldHVwSU8ub3Blbk91dEZpbGUoaW5mbywgImluZm8i
KTsKCQl9CgkKCgkJCgl9Cgp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAUHJpbnRlci5jbGFzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAADAxMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDA0NTM2ADA3NjIwMTA1NDM2ADAx
MjI0MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg
AHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAADK/rq+AAMALQBaAQALVHN0L1ByaW50ZXIHAAEBABBqYXZhL2xh
bmcvT2JqZWN0BwADAQAUamF2YS9pby9TZXJpYWxpemFibGUHAAUBAApmaWVsZE5hbWVzAQASTGph
dmEvdXRpbC9WZWN0b3I7AQAIZmllbGRFbmQBAAtmSGVhZGVyVGVybQEACmZpZWxkQ291bnQBAAFJ
AQAOZmllbGRTZXBhcmF0b3IBAA1wYWdlU2VwYXJhdG9yAQAFc3RhcnQBAARzdG9wAQAFbW9kZWwB
ABJMamF2YS9sYW5nL1N0cmluZzsBAAhXSUxEQ0FSRAEABmZpbml0JAEAAygpVgEACVN5bnRoZXRp
YwEABENvZGUMABMADAkAAgAYAQAPTGluZU51bWJlclRhYmxlAQAFc2V0dXABAAMoKUkBAAY8aW5p
dD4MAB0AFQoABAAeDAAUABUKAAIAIAEAEGphdmEvdXRpbC9WZWN0b3IHACIKACMAHgwABwAICQAC
ACUBABFqYXZhL2xhbmcvSW50ZWdlcgcAJwEABChJKVYMAB0AKQoAKAAqAQAKYWRkRWxlbWVudAEA
FShMamF2YS9sYW5nL09iamVjdDspVgwALAAtCgAjAC4MAAkACAkAAgAwDAAKAAgJAAIAMgwACwAM
CQACADQMAA0ACAkAAgA2DAAOAAgJAAIAOAwADwAICQACADoMABAACAkAAgA8AQAEZm91cggAPgwA
EQASCQACAEABAA1nZXRGaWVsZE5hbWVzAQAUKClMamF2YS91dGlsL1ZlY3RvcjsBAA1zZXRGaWVs
ZE5hbWVzAQAVKExqYXZhL3V0aWwvVmVjdG9yOylWAQARZ2V0RmllbGRTZXBhcmF0b3IBABFzZXRG
aWVsZFNlcGFyYXRvcgEAEGdldFBhZ2VTZXBhcmF0b3IBABBzZXRQYWdlU2VwYXJhdG9yAQAIZ2V0
TW9kZWwBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEACHNldE1vZGVsAQAVKExqYXZhL2xhbmcvU3Ry
aW5nOylWAQAIZ2V0U3RhcnQBAAhzZXRTdGFydAEAB2dldFN0b3ABAAdzZXRTdG9wAQANZ2V0Rmll
bGRDb3VudAEADXNldEZpZWxkQ291bnQBAAtnZXRGaWVsZEVuZAEAC3NldEZpZWxkRW5kAQANZ2V0
SGVhZGVyVGVybQEADXNldEhlYWRlclRlcm0BAApTb3VyY2VGaWxlAQAMUHJpbnRlci5qYXZhACEA
AgAEAAEABgAKAAAABwAIAAAAAAAJAAgAAAAAAAoACAAAAAAACwAMAAAAAAANAAgAAAAAAA4ACAAA
AAAADwAIAAAAAAAQAAgAAAAAABEAEgAAABAAEwAMAAAAFQACABQAFQACABYAAAAAABcAAAAgAAIA
AQAAAAgqEQPntQAZsQAAAAEAGgAAAAYAAQAAABIAAQAbABwAAQAXAAAAGgABAAEAAAACA6wAAAAB
ABoAAAAGAAEAAAAaAAEAHQAVAAEAFwAAAcsABAABAAABVyq3AB8qtwAhKrsAI1m3ACS1ACYqtAAm
uwAoWREA87cAK7YALyq0ACa7AChZEQCJtwArtgAvKrQAJrsAKFkRAVm3ACu2AC8quwAjWbcAJLUA
MSq0ADG7AChZEQFNtwArtgAvKrQAMbsAKFkRAw+3ACu2AC8quwAjWbcAJLUAMyq0ADO7AChZEBi3
ACu2AC8qEEy1ADUquwAjWbcAJLUANyq0ADe7AChZECK3ACu2AC8qtAA3uwAoWRArtwArtgAvKrsA
I1m3ACS1ADkqtAA5uwAoWRAKtwArtgAvKrQAObsAKFkQCrcAK7YALyq7ACNZtwAktQA7KrQAO7sA
KFkQIbcAK7YALyq0ADu7AChZEFi3ACu2AC8qtAA7uwAoWRBFtwArtgAvKrsAI1m3ACS1AD0qtAA9
uwAoWRAttwArtgAvKrQAPbsAKFkQTbcAK7YALyoSP7UAQbEAAAABABoAAABiABgACAAlABMAJgAk
ACcANQAoAEYAKwBRACwAYgAtAHMALwB+ADAAjgAzAJQANgCfADgArwA5AL8AOwDKAD0A2gA+AOoA
QAD1AEEBBQBCARUAQwElAEYBMABHAUAASAFQAEsAAQBCAEMAAQAXAAAAHQABAAEAAAAFKrQAJrAA
AAABABoAAAAGAAEAAABYAAEARABFAAEAFwAAAB4AAgACAAAABiortQAmsQAAAAEAGgAAAAYAAQAA
AF8AAQBGAEMAAQAXAAAAHQABAAEAAAAFKrQAN7AAAAABABoAAAAGAAEAAABoAAEARwBFAAEAFwAA
AB4AAgACAAAABiortQA3sQAAAAEAGgAAAAYAAQAAAG8AAQBIAEMAAQAXAAAAHQABAAEAAAAFKrQA
ObAAAAABABoAAAAGAAEAAAB4AAEASQBFAAEAFwAAAB4AAgACAAAABiortQA5sQAAAAEAGgAAAAYA
AQAAAH8AAQBKAEsAAQAXAAAAHQABAAEAAAAFKrQAQbAAAAABABoAAAAGAAEAAACIAAEATABNAAEA
FwAAAB4AAgACAAAABiortQBBsQAAAAEAGgAAAAYAAQAAAI8AAQBOAEMAAQAXAAAAHQABAAEAAAAF
KrQAO7AAAAABABoAAAAGAAEAAACYAAEATwBFAAEAFwAAAB4AAgACAAAABiortQA7sQAAAAEAGgAA
AAYAAQAAAJ8AAQBQAEMAAQAXAAAAHQABAAEAAAAFKrQAPbAAAAABABoAAAAGAAEAAACoAAEAUQBF
AAEAFwAAAB4AAgACAAAABiortQA9sQAAAAEAGgAAAAYAAQAAAK8AAQBSABwAAQAXAAAAHQABAAEA
AAAFKrQANawAAAABABoAAAAGAAEAAAC4AAEAUwApAAEAFwAAAB4AAgACAAAABiobtQA1sQAAAAEA
GgAAAAYAAQAAAL8AAQBUAEMAAQAXAAAAHQABAAEAAAAFKrQAMbAAAAABABoAAAAGAAEAAADIAAEA
VQBFAAEAFwAAAB4AAgACAAAABiortQAxsQAAAAEAGgAAAAYAAQAAAM8AAQBWAEMAAQAXAAAAHQAB
AAEAAAAFKrQAM7AAAAABABoAAAAGAAEAAADYAAEAVwBFAAEAFwAAAB4AAgACAAAABiortQAzsQAA
AAEAGgAAAAYAAQAAAN8AAQBYAAAAAgBZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAUHJpbnRlci5qYXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ADAxMDA0NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDA3NDA0ADA3NjIwMTA1NDI0ADAxMjA0NgAg
MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABwYWNrYWdlIFRzdDsKaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CglpbXBv
cnQgamF2YS5pby5TZXJpYWxpemFibGU7CgoKcHVibGljIGNsYXNzIFByaW50ZXIgaW1wbGVtZW50
cyBTZXJpYWxpemFibGV7CgoKCVZlY3RvciBmaWVsZE5hbWVzOyAgICAKCVZlY3RvciBmaWVsZEVu
ZDsJCglWZWN0b3IgZkhlYWRlclRlcm07ICAgIC8vCglpbnQgZmllbGRDb3VudDsJCQoJVmVjdG9y
IGZpZWxkU2VwYXJhdG9yOyAvLwoJVmVjdG9yIHBhZ2VTZXBhcmF0b3I7ICAvLwoJVmVjdG9yIHN0
YXJ0OyAgICAgICAgICAvLwoJVmVjdG9yIHN0b3A7ICAgICAgICAgICAvLwoJU3RyaW5nIG1vZGVs
OwkJCglmaW5hbCBpbnQgV0lMRENBUkQgPSA5OTk7IC8vRGVzaWduYXRlcyBhIHZhbHVlIGZvciBz
a2lwcGluZyBjb21wYXJlcy4KCgoKCglwdWJsaWMgaW50IHNldHVwKCl7CgkJCgkKCXJldHVybiAw
OwkKCX0KCgoKCgkvKioKCSAqIENvbnN0cnVjdG9yIGZvciBQcmludGVyCgkgKi8KCXB1YmxpYyBQ
cmludGVyKCkgewoJCXN1cGVyKCk7CgkJZmllbGROYW1lcyA9IG5ldyBWZWN0b3IoKTsKCQlmaWVs
ZE5hbWVzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoMjQzKSk7CgkJZmllbGROYW1lcy5hZGRFbGVt
ZW50KG5ldyBJbnRlZ2VyKDEzNykpOwoJCWZpZWxkTmFtZXMuYWRkRWxlbWVudChuZXcgSW50ZWdl
cigzNDUpKTsKCgoJCWZpZWxkRW5kID0gbmV3IFZlY3RvcigpOwoJCWZpZWxkRW5kLmFkZEVsZW1l
bnQobmV3IEludGVnZXIoMzMzKSk7CgkJZmllbGRFbmQuYWRkRWxlbWVudChuZXcgSW50ZWdlcig3
ODMpKTsKCQkKCQlmSGVhZGVyVGVybSA9IG5ldyBWZWN0b3IoKTsKCQlmSGVhZGVyVGVybS5hZGRF
bGVtZW50KG5ldyBJbnRlZ2VyKDI0KSk7CgoKCQlmaWVsZENvdW50ID0gNzY7CgoKCQlmaWVsZFNl
cGFyYXRvciA9IG5ldyBWZWN0b3IoKTsKCQl7CgkJCWZpZWxkU2VwYXJhdG9yLmFkZEVsZW1lbnQo
bmV3IEludGVnZXIoMzQpKTsKCQkJZmllbGRTZXBhcmF0b3IuYWRkRWxlbWVudChuZXcgSW50ZWdl
cig0MykpOwoJCX0KCQlwYWdlU2VwYXJhdG9yID0gbmV3IFZlY3RvcigpOwoJCXsKCQkJcGFnZVNl
cGFyYXRvci5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKDEwKSk7CgkJCXBhZ2VTZXBhcmF0b3IuYWRk
RWxlbWVudChuZXcgSW50ZWdlcigxMCkpOwoJCX0KCQlzdGFydCA9IG5ldyBWZWN0b3IoKTsKCQlz
dGFydC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKDMzKSk7CgkJc3RhcnQuYWRkRWxlbWVudChuZXcg
SW50ZWdlcig4OCkpOwoJCXN0YXJ0LmFkZEVsZW1lbnQobmV3IEludGVnZXIoNjkpKTsKCgoJCXN0
b3AgPSBuZXcgVmVjdG9yKCk7CgkJc3RvcC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKDQ1KSk7CgkJ
c3RvcC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKDc3KSk7CgoKCQltb2RlbCA9ICJmb3VyIjsKCX0K
CgoKCgoKCS8qKgoJICogR2V0cyB0aGUgZmllbGROYW1lcwoJICogQHJldHVybiBSZXR1cm5zIGEg
VmVjdG9yCgkgKi8KCXB1YmxpYyBWZWN0b3IgZ2V0RmllbGROYW1lcygpIHsKCQlyZXR1cm4gZmll
bGROYW1lczsKCX0KCS8qKgoJICogU2V0cyB0aGUgZmllbGROYW1lcwoJICogQHBhcmFtIGZpZWxk
TmFtZXMgVGhlIGZpZWxkTmFtZXMgdG8gc2V0CgkgKi8KCXB1YmxpYyB2b2lkIHNldEZpZWxkTmFt
ZXMoVmVjdG9yIGZpZWxkTmFtZXMpIHsKCQl0aGlzLmZpZWxkTmFtZXMgPSBmaWVsZE5hbWVzOwoJ
fQoKCgkvKioKCSAqIEdldHMgdGhlIGZpZWxkU2VwYXJhdG9yCgkgKiBAcmV0dXJuIFJldHVybnMg
YSBWZWN0b3IKCSAqLwoJcHVibGljIFZlY3RvciBnZXRGaWVsZFNlcGFyYXRvcigpIHsKCQlyZXR1
cm4gZmllbGRTZXBhcmF0b3I7Cgl9CgkvKioKCSAqIFNldHMgdGhlIGZpZWxkU2VwYXJhdG9yCgkg
KiBAcGFyYW0gZmllbGRTZXBhcmF0b3IgVGhlIGZpZWxkU2VwYXJhdG9yIHRvIHNldAoJICovCglw
dWJsaWMgdm9pZCBzZXRGaWVsZFNlcGFyYXRvcihWZWN0b3IgZmllbGRTZXBhcmF0b3IpIHsKCQl0
aGlzLmZpZWxkU2VwYXJhdG9yID0gZmllbGRTZXBhcmF0b3I7Cgl9CgoKCS8qKgoJICogR2V0cyB0
aGUgcGFnZVNlcGFyYXRvcgoJICogQHJldHVybiBSZXR1cm5zIGEgVmVjdG9yCgkgKi8KCXB1Ymxp
YyBWZWN0b3IgZ2V0UGFnZVNlcGFyYXRvcigpIHsKCQlyZXR1cm4gcGFnZVNlcGFyYXRvcjsKCX0K
CS8qKgoJICogU2V0cyB0aGUgcGFnZVNlcGFyYXRvcgoJICogQHBhcmFtIHBhZ2VTZXBhcmF0b3Ig
VGhlIHBhZ2VTZXBhcmF0b3IgdG8gc2V0CgkgKi8KCXB1YmxpYyB2b2lkIHNldFBhZ2VTZXBhcmF0
b3IoVmVjdG9yIHBhZ2VTZXBhcmF0b3IpIHsKCQl0aGlzLnBhZ2VTZXBhcmF0b3IgPSBwYWdlU2Vw
YXJhdG9yOwoJfQoKCgkvKioKCSAqIEdldHMgdGhlIG1vZGVsCgkgKiBAcmV0dXJuIFJldHVybnMg
YSBTdHJpbmcKCSAqLwoJcHVibGljIFN0cmluZyBnZXRNb2RlbCgpIHsKCQlyZXR1cm4gbW9kZWw7
Cgl9CgkvKioKCSAqIFNldHMgdGhlIG1vZGVsCgkgKiBAcGFyYW0gbW9kZWwgVGhlIG1vZGVsIHRv
IHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRNb2RlbChTdHJpbmcgbW9kZWwpIHsKCQl0aGlzLm1v
ZGVsID0gbW9kZWw7Cgl9CgoKCS8qKgoJICogR2V0cyB0aGUgc3RhcnQKCSAqIEByZXR1cm4gUmV0
dXJucyBhIFZlY3RvcgoJICovCglwdWJsaWMgVmVjdG9yIGdldFN0YXJ0KCkgewoJCXJldHVybiBz
dGFydDsKCX0KCS8qKgoJICogU2V0cyB0aGUgc3RhcnQKCSAqIEBwYXJhbSBzdGFydCBUaGUgc3Rh
cnQgdG8gc2V0CgkgKi8KCXB1YmxpYyB2b2lkIHNldFN0YXJ0KFZlY3RvciBzdGFydCkgewoJCXRo
aXMuc3RhcnQgPSBzdGFydDsKCX0KCgoJLyoqCgkgKiBHZXRzIHRoZSBzdG9wCgkgKiBAcmV0dXJu
IFJldHVybnMgYSBWZWN0b3IKCSAqLwoJcHVibGljIFZlY3RvciBnZXRTdG9wKCkgewoJCXJldHVy
biBzdG9wOwoJfQoJLyoqCgkgKiBTZXRzIHRoZSBzdG9wCgkgKiBAcGFyYW0gc3RvcCBUaGUgc3Rv
cCB0byBzZXQKCSAqLwoJcHVibGljIHZvaWQgc2V0U3RvcChWZWN0b3Igc3RvcCkgewoJCXRoaXMu
c3RvcCA9IHN0b3A7Cgl9CgoKCS8qKgoJICogR2V0cyB0aGUgZmllbGRDb3VudAoJICogQHJldHVy
biBSZXR1cm5zIGEgaW50CgkgKi8KCXB1YmxpYyBpbnQgZ2V0RmllbGRDb3VudCgpIHsKCQlyZXR1
cm4gZmllbGRDb3VudDsKCX0KCS8qKgoJICogU2V0cyB0aGUgZmllbGRDb3VudAoJICogQHBhcmFt
IGZpZWxkQ291bnQgVGhlIGZpZWxkQ291bnQgdG8gc2V0CgkgKi8KCXB1YmxpYyB2b2lkIHNldEZp
ZWxkQ291bnQoaW50IGZpZWxkQ291bnQpIHsKCQl0aGlzLmZpZWxkQ291bnQgPSBmaWVsZENvdW50
OwoJfQoKCgkvKioKCSAqIEdldHMgdGhlIGZpZWxkRW5kCgkgKiBAcmV0dXJuIFJldHVybnMgYSBW
ZWN0b3IKCSAqLwoJcHVibGljIFZlY3RvciBnZXRGaWVsZEVuZCgpIHsKCQlyZXR1cm4gZmllbGRF
bmQ7Cgl9CgkvKioKCSAqIFNldHMgdGhlIGZpZWxkRW5kCgkgKiBAcGFyYW0gZmllbGRFbmQgVGhl
IGZpZWxkRW5kIHRvIHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRGaWVsZEVuZChWZWN0b3IgZmll
bGRFbmQpIHsKCQl0aGlzLmZpZWxkRW5kID0gZmllbGRFbmQ7Cgl9CgoKCS8qKgoJICogR2V0cyB0
aGUgaGVhZGVyVGVybQoJICogQHJldHVybiBSZXR1cm5zIGEgVmVjdG9yCgkgKi8KCXB1YmxpYyBW
ZWN0b3IgZ2V0SGVhZGVyVGVybSgpIHsKCQlyZXR1cm4gZkhlYWRlclRlcm07Cgl9CgkvKioKCSAq
IFNldHMgdGhlIGhlYWRlclRlcm0KCSAqIEBwYXJhbSBoZWFkZXJUZXJtIFRoZSBoZWFkZXJUZXJt
IHRvIHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRIZWFkZXJUZXJtKFZlY3RvciBoZWFkZXJUZXJt
KSB7CgkJZkhlYWRlclRlcm0gPSBoZWFkZXJUZXJtOwoJfQoKCn0KAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAU2V0dGluZ3MuY2xhc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQA
MDAwMDAwMAAwMDAwMDAwADAwMDAwMDAyNTYyADA3NjIwMTA1MDI3ADAxMjQxMAAgMAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAADK/rq+AAMALQBLAQAMVHN0L1NldHRpbmdzBwABAQAQamF2YS9sYW5nL09iamVjdAcAAwEA
FGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAIcG9ydE5hbWUBABJMamF2YS9sYW5nL1N0cmluZzsB
AAdob21lRGlyAQAGcXVlRGlyAQAHcXVlRmlsZQEACXF1ZUlnbm9yZQEAAVoBAApmaWVsZE5hbWVz
AQASTGphdmEvdXRpbC9WZWN0b3I7AQAIZmllbGRFbmQBAAtmSGVhZGVyVGVybQEACmZpZWxkQ291
bnQBAAFJAQAOZmllbGRTZXBhcmF0b3IBAAVzdGFydAEABHN0b3ABAAVtb2RlbAEABjxpbml0PgEA
AygpVgEABENvZGUMABgAGQoABAAbAQAQamF2YS91dGlsL1ZlY3RvcgcAHQoAHgAbDAAVAA8JAAIA
IAEAA3NkZggAIgEACmFkZEVsZW1lbnQBABUoTGphdmEvbGFuZy9PYmplY3Q7KVYMACQAJQoAHgAm
AQALL2Rldi90ZXJtL2EIACgMAAcACAkAAgAqAQALL3Vzci9sb2NhbC8IACwMAAkACAkAAgAuDAAK
AAgJAAIAMAEAA3F1ZQgAMgwACwAICQACADQMAAwADQkAAgA2AQAPTGluZU51bWJlclRhYmxlAQAE
aW5pdAEAC1RzdC9QcmludGVyBwA6CgA7ABsBAApnZXRIb21lRGlyAQAUKClMamF2YS9sYW5nL1N0
cmluZzsBAApzZXRIb21lRGlyAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAJZ2V0UXVlRGlyAQAJ
c2V0UXVlRGlyAQAKZ2V0UXVlRmlsZQEACnNldFF1ZUZpbGUBAAxnZXRRdWVJZ25vcmUBAAMoKVoB
AAxzZXRRdWVJZ25vcmUBAAQoWilWAQAKU291cmNlRmlsZQEADVNldHRpbmdzLmphdmEAIQACAAQA
AQAGAA0AAgAHAAgAAAACAAkACAAAAAIACgAIAAAAAgALAAgAAAACAAwADQAAAAAADgAPAAAAAAAQ
AA8AAAAAABEADwAAAAAAEgATAAAAAAAUAA8AAAAAABUADwAAAAAAFgAPAAAAAAAXAAgAAAAKAAEA
GAAZAAEAGgAAAIAAAwACAAAARCq3ABwquwAeWbcAH7UAIQM8GxAYogASKrQAIRIjtgAnhAEBp//u
KhIptQArKhIttQAvKhIttQAxKhIztQA1KgS1ADexAAAAAQA4AAAAKgAKAAQAIwAPACQAEQAkABcA
JQAgACQAJgAmACwAJwAyACgAOAApAD4AKgABADkAGQABABoAAAAhAAIAAgAAAAm7ADtZtwA8TLEA
AAABADgAAAAGAAEAAAAuAAEAPQA+AAEAGgAAAB0AAQABAAAABSq0AC+wAAAAAQA4AAAABgABAAAA
QgABAD8AQAABABoAAAAeAAIAAgAAAAYqK7UAL7EAAAABADgAAAAGAAEAAABJAAEAQQA+AAEAGgAA
AB0AAQABAAAABSq0ADGwAAAAAQA4AAAABgABAAAAUgABAEIAQAABABoAAAAeAAIAAgAAAAYqK7UA
MbEAAAABADgAAAAGAAEAAABZAAEAQwA+AAEAGgAAAB0AAQABAAAABSq0ADWwAAAAAQA4AAAABgAB
AAAAYgABAEQAQAABABoAAAAeAAIAAgAAAAYqK7UANbEAAAABADgAAAAGAAEAAABpAAEARQBGAAEA
GgAAAB0AAQABAAAABSq0ADesAAAAAQA4AAAABgABAAAAcgABAEcASAABABoAAAAeAAIAAgAAAAYq
G7UAN7EAAAABADgAAAAGAAEAAAB5AAEASQAAAAIASgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABTZXR0aW5ncy5qYXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDQ0NAAwMDAw
MDAwADAwMDAwMDAAMDAwMDAwMDM3NTAAMDc2MjAxMDUwMjAAMDEyMjEzACAwAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAcm9vdAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AHBhY2thZ2UgVHN0OwppbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CmltcG9ydCBqYXZhLmlv
Lio7CmltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOwoKCi8qIENsYXNzIHRvIGhvbGQgdGhlIHNlbGVj
dGlvbnMgZW50ZXJlZCBpbiBieSB0aGUgY29uZmlnIGNsYXNzLgoqICBEYXRhIHN1Y2ggYXMgdGhl
IHNldHRpbmdzIGZvciB0aGUgbW9kZW0uCiovCgpwdWJsaWMgY2xhc3MgU2V0dGluZ3MgaW1wbGVt
ZW50cyBTZXJpYWxpemFibGUgewoKCgkKCXByaXZhdGUgU3RyaW5nIHBvcnROYW1lOwoJcHJpdmF0
ZSBTdHJpbmcgaG9tZURpcjsKCXByaXZhdGUgU3RyaW5nIHF1ZURpcjsKCXByaXZhdGUgU3RyaW5n
IHF1ZUZpbGU7Cglwcml2YXRlIGJvb2xlYW4gcXVlSWdub3JlOwoJVmVjdG9yIGZpZWxkTmFtZXM7
IAoJVmVjdG9yIGZpZWxkRW5kOwoJVmVjdG9yIGZIZWFkZXJUZXJtOyAKCWludCBmaWVsZENvdW50
OwkKCVZlY3RvciBmaWVsZFNlcGFyYXRvcjsKCVZlY3RvciBzdGFydDsgICAgICAgICAKCVZlY3Rv
ciBzdG9wOyAgICAgICAgICAKCVN0cmluZyBtb2RlbDsJCgoJLyoqCgkgKiBDb25zdHJ1Y3RvciBm
b3IgU2V0dGluZ3MKCSAqLwoJcHVibGljIFNldHRpbmdzKCkgewoJCXN1cGVyKCk7CgoJCXN0YXJ0
ID0gbmV3IFZlY3RvcigpOwoJCWZvciAoaW50IGk9MDtpPDI0O2krKykKCQlzdGFydC5hZGRFbGVt
ZW50KCJzZGYiKTsKCQlwb3J0TmFtZSA9ICgiL2Rldi90ZXJtL2EiKTsKCQlob21lRGlyID0gIi91
c3IvbG9jYWwvIjsKCQlxdWVEaXIgPSAiL3Vzci9sb2NhbC8iOwoJCXF1ZUZpbGUgPSAicXVlIjsK
CQlxdWVJZ25vcmUgPSB0cnVlOwoJfQoKCXB1YmxpYyB2b2lkIGluaXQoKXsKCVByaW50ZXIgcG50
ID0gbmV3IFByaW50ZXIoKTsKCX0KCgkvKioKCSAqIEdldHMgdGhlIHBvcnQKCSAqIEByZXR1cm4g
UmV0dXJucyBhIFBvcnRzCgkgKi8KCgoJLyoqCgkgKiBHZXRzIHRoZSBwcmludGVyCgkgKiBAcmV0
dXJuIFJldHVybnMgYSBQcmludGVyCgkgKi8KCgoJLyoqCgkgKiBHZXRzIHRoZSBob21lRGlyCgkg
KiBAcmV0dXJuIFJldHVybnMgYSBTdHJpbmcKCSAqLwoJcHVibGljIFN0cmluZyBnZXRIb21lRGly
KCkgewoJCXJldHVybiBob21lRGlyOwoJfQoJLyoqCgkgKiBTZXRzIHRoZSBob21lRGlyCgkgKiBA
cGFyYW0gaG9tZURpciBUaGUgaG9tZURpciB0byBzZXQKCSAqLwoJcHVibGljIHZvaWQgc2V0SG9t
ZURpcihTdHJpbmcgaG9tZURpcikgewoJCXRoaXMuaG9tZURpciA9IGhvbWVEaXI7Cgl9CgoKCS8q
KgoJICogR2V0cyB0aGUgcXVlRGlyCgkgKiBAcmV0dXJuIFJldHVybnMgYSBTdHJpbmcKCSAqLwoJ
cHVibGljIFN0cmluZyBnZXRRdWVEaXIoKSB7CgkJcmV0dXJuIHF1ZURpcjsKCX0KCS8qKgoJICog
U2V0cyB0aGUgcXVlRGlyCgkgKiBAcGFyYW0gcXVlRGlyIFRoZSBxdWVEaXIgdG8gc2V0CgkgKi8K
CXB1YmxpYyB2b2lkIHNldFF1ZURpcihTdHJpbmcgcXVlRGlyKSB7CgkJdGhpcy5xdWVEaXIgPSBx
dWVEaXI7Cgl9CgoKCS8qKgoJICogR2V0cyB0aGUgcXVlRmlsZQoJICogQHJldHVybiBSZXR1cm5z
IGEgU3RyaW5nCgkgKi8KCXB1YmxpYyBTdHJpbmcgZ2V0UXVlRmlsZSgpIHsKCQlyZXR1cm4gcXVl
RmlsZTsKCX0KCS8qKgoJICogU2V0cyB0aGUgcXVlRmlsZQoJICogQHBhcmFtIHF1ZUZpbGUgVGhl
IHF1ZUZpbGUgdG8gc2V0CgkgKi8KCXB1YmxpYyB2b2lkIHNldFF1ZUZpbGUoU3RyaW5nIHF1ZUZp
bGUpIHsKCQl0aGlzLnF1ZUZpbGUgPSBxdWVGaWxlOwoJfQoKCgkvKioKCSAqIEdldHMgdGhlIHF1
ZUlnbm9yZQoJICogQHJldHVybiBSZXR1cm5zIGEgYm9vbGVhbgoJICovCglwdWJsaWMgYm9vbGVh
biBnZXRRdWVJZ25vcmUoKSB7CgkJcmV0dXJuIHF1ZUlnbm9yZTsKCX0KCS8qKgoJICogU2V0cyB0
aGUgcXVlSWdub3JlCgkgKiBAcGFyYW0gcXVlSWdub3JlIFRoZSBxdWVJZ25vcmUgdG8gc2V0Cgkg
Ki8KCXB1YmxpYyB2b2lkIHNldFF1ZUlnbm9yZShib29sZWFuIHF1ZUlnbm9yZSkgewoJCXRoaXMu
cXVlSWdub3JlID0gcXVlSWdub3JlOwoJfQoKCn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU2V0
dXBJTy5jbGFzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMDAwMAAw
MDAwMDAwADAwMDAwMDA0MzY1ADA3NjIwMTAzNjEzADAxMjE0MgAgMAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADK/rq+
AAMALQB3AQALVHN0L1NldHVwSU8HAAEBABBqYXZhL2xhbmcvT2JqZWN0BwADAQAGPGluaXQ+AQAD
KClWAQAEQ29kZQwABQAGCgAEAAgBAAtvcGVuT3V0RmlsZQEAJyhMamF2YS9sYW5nL09iamVjdDtM
amF2YS9sYW5nL1N0cmluZzspSQEAB29zLm5hbWUIAAwBABBqYXZhL2xhbmcvU3lzdGVtBwAOAQAL
Z2V0UHJvcGVydHkBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwwAEAAR
CgAPABIBAAVMaW51eAgAFAEAEGphdmEvbGFuZy9TdHJpbmcHABYBAAZlcXVhbHMBABUoTGphdmEv
bGFuZy9PYmplY3Q7KVoMABgAGQoAFwAaAQAMamF2YS9pby9GaWxlBwAcAQAWamF2YS9sYW5nL1N0
cmluZ0J1ZmZlcgcAHgEACy91c3IvbG9jYWwvCAAgAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWDAAF
ACIKAB8AIwEABmFwcGVuZAEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdC
dWZmZXI7DAAlACYKAB8AJwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsMACkAKgoA
HwArCgAdACMBABhqYXZhL2lvL0ZpbGVPdXRwdXRTdHJlYW0HAC4BABEoTGphdmEvaW8vRmlsZTsp
VgwABQAwCgAvADEBAANvdXQBABVMamF2YS9pby9QcmludFN0cmVhbTsMADMANAkADwA1AQATamF2
YS9pby9QcmludFN0cmVhbQcANwEAB3ByaW50bG4BABUoTGphdmEvbGFuZy9PYmplY3Q7KVYMADkA
OgoAOAA7AQAaamF2YS9pby9PYmplY3RPdXRwdXRTdHJlYW0HAD0BABkoTGphdmEvaW8vT3V0cHV0
U3RyZWFtOylWDAAFAD8KAD4AQAEAC3dyaXRlT2JqZWN0DABCADoKAD4AQwEAE0Vycm9yIHdyaXRp
bmcgZmlsZSAIAEUBACogLiBQbGVhc2UgY2hlY2sgc3lzdGVtIGFuZCByZXJ1biBwcm9ncmFtLgoI
AEcBACwoTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwwAJQBJCgAf
AEoMADkAIgoAOABMAQAFY2xvc2UMAE4ABgoALwBPCgA+AE8BAA9FcnJvciBjbG9zaW5nLgoIAFIB
AB1qYXZhL2lvL0ZpbGVOb3RGb3VuZEV4Y2VwdGlvbgcAVAEAE2phdmEvaW8vSU9FeGNlcHRpb24H
AFYBAA9MaW5lTnVtYmVyVGFibGUBAApvcGVuSW5GaWxlAQAmKExqYXZhL2xhbmcvU3RyaW5nOylM
amF2YS9sYW5nL09iamVjdDsBABdqYXZhL2lvL0ZpbGVJbnB1dFN0cmVhbQcAWwoAXAAxAQAZamF2
YS9pby9PYmplY3RJbnB1dFN0cmVhbQcAXgEAGChMamF2YS9pby9JbnB1dFN0cmVhbTspVgwABQBg
CgBfAGEBAApyZWFkT2JqZWN0AQAUKClMamF2YS9sYW5nL09iamVjdDsMAGMAZAoAXwBlAQAqVGhl
IGNvbmZpZ3VyYXRpb24gZmlsZSBoYXMgYmVlbiBjb3JydXB0ZWQuCABnAQAoQ29uZmlndXJhdGlv
biBmaWxlIGluZm8gY2Fubm90IGJlIGZvdW5kLggAaQEAJlRoZSBjb25maWd1cmF0aW9uIGZpbGUg
Y2Fubm90IGJlIHJlYWQuCABrCgBfAE8KAFwATwEAHWphdmEvaW8vT3B0aW9uYWxEYXRhRXhjZXB0
aW9uBwBvAQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24HAHEBACBqYXZhL2lvL1N0
cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbgcAcwEAClNvdXJjZUZpbGUBAAxTZXR1cElPLmphdmEAIQAC
AAQAAAAAAAMAAQAFAAYAAQAHAAAAEQABAAEAAAAFKrcACbEAAAAAAAkACgALAAEABwAAAUUABQAH
AAAAvRINuAATTQFOAToEAToFLBIVtgAbmQAfuwAdWbsAH1kSIbcAJCu2ACi2ACy3AC06BacADbsA
HVkrtwAtOgW7AC9ZGQW3ADJOpwAaOgayADYZBrYAPKcADToGsgA2GQa2ADy7AD5ZLbcAQToEGQQq
tgBEpwAlOgayADa7AB9ZEka3ACQrtgAoEki2ACgZBrYAS7YALLYATS22AFAZBLYAUacAHDoGsgA2
uwAfWRJTtwAkGQa2AEu2ACy2AE0ErAAEAD0ARwBKAFUAPQBHAFcAVwBhAHEAdABXAJYAnwCiAFcA
AQBYAAAAVgAVAAAAGAAGABkACAAaAAsAGwAOAB0AFwAfADMAIwA9ACcASgAoAEwAKABXACkAWQAp
AGEAKwBrACwAdAAtAHYALgCWADEAmgAyAKIAMwCkADMAuwA0AAkAWQBaAAEABwAAAVwABQAHAAAA
uBINuAATTAFNAU4BOgQBOgUrEhW2ABuZAB+7AB1ZuwAfWRIhtwAkKrYAKLYALLcALToFpwANuwAd
WSq3AC06BbsAXFkZBbcAXU67AF9ZLbcAYjoEGQS2AGZNpwA0OgayADYSaLYATacAJzoGsgA2Emq2
AE2nABo6BrIANhJstgBNpwANOgayADYSbLYATacABFcZBLYAbS22AG6nABw6BrIANrsAH1kSU7cA
JBkGtgBLtgAstgBNLLAABgA/AFkAXABwAD8AWQBpAHIAPwBZAHYAdAA/AFkAgwBXAD8AjQCQAAAA
kQCaAJ0AVwABAFgAAABiABgAAABAAAYAQQAIAEIACgBDAA0ARAAQAEUAGQBGADUASAA/AEoASQBL
AFMATABcAE0AXgBOAGkATwBrAFAAdgBRAHgAUgCDAFMAhQBUAJEAVwCWAFgAnQBZAJ8AWQC2AFoA
AQB1AAAAAgB2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU2V0dXBJTy5q
YXZhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA0NDQAMDAwMDAwMAAwMDAwMDAw
ADAwMDAwMDA0MjIxADA3NjE3NjMwNzE2ADAxMTc2MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYWNrYWdlIFRz
dDsNCmltcG9ydCBqYXZhLmlvLio7DQoNDQpwdWJsaWMgY2xhc3MgU2V0dXBJTyB7DQoJLy8gTVVT
VCBjYXRjaCBhbnkgZXhjZXB0aW9uIHRoYXQgbWlnaHQgYmUgdGhyb3duISENCglwdWJsaWMgU2V0
dXBJTygpIHsNCgl9DQoNDQoNDQoNDQoJLyoqDQoJKiBPcGVucyBhbiBvdXRwdXQgZmlsZSBmb3Ig
d3JpdGluZyBvYmplY3RzDQoJKiByZXR1cm5zIGFuIE9iamVjdE91dHB1dFN0cmVhbSBvYmplY3QN
CgkqLw0KDQ0KCXB1YmxpYyBzdGF0aWMgaW50IG9wZW5PdXRGaWxlKE9iamVjdCBvYmosIFN0cmlu
ZyBzKSB7DQoNDQoJCVN0cmluZyBvc05hbWU9U3lzdGVtLmdldFByb3BlcnR5KCJvcy5uYW1lIik7
DQoJCUZpbGVPdXRwdXRTdHJlYW0gT1MgPSBudWxsOw0KCQlPYmplY3RPdXRwdXRTdHJlYW0gT09T
ID0gbnVsbDsNCgkJRmlsZSBvdXRGaWxlID0gbnVsbDsNCgkJDQoJCWlmKG9zTmFtZS5lcXVhbHMo
IkxpbnV4IikpDQoJCXsNCgkJb3V0RmlsZSA9IG5ldyBGaWxlKCIvdXNyL2xvY2FsLyIgKyBzKTsN
CgkJfQ0KCQllbHNlDQoJCXsNCgkJb3V0RmlsZSA9IG5ldyBGaWxlKHMpOw0KCQl9DQoJCQ0KCQl0
cnl7DQoJCU9TID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0RmlsZSk7DQoJCX1jYXRjaChGaWxl
Tm90Rm91bmRFeGNlcHRpb24gZmUpe1N5c3RlbS5vdXQucHJpbnRsbihmZSk7IH0NCgkJY2F0Y2gg
KElPRXhjZXB0aW9uIGlvZSl7U3lzdGVtLm91dC5wcmludGxuKGlvZSk7IH0NCgkJdHJ5ew0KCQlP
T1MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKE9TKTsNCgkJT09TLndyaXRlT2JqZWN0KG9iaik7
DQoJCX1jYXRjaChJT0V4Y2VwdGlvbiBpZSl7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9y
IHdyaXRpbmcgZmlsZSAiK3MrIiAuIFBsZWFzZSBjaGVjayBzeXN0ZW0gYW5kIHJlcnVuIHByb2dy
YW0uXG4iK2llKTsNCgkJfQ0KCQl0cnl7DQoJCU9TLmNsb3NlKCk7DQoJCU9PUy5jbG9zZSgpOw0K
CQl9Y2F0Y2goSU9FeGNlcHRpb24gZSl7U3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBjbG9zaW5n
LlxuIitlKTt9DQoJCXJldHVybiAxOw0KCX0NCg0NCgkvKioNCgkqIE9wZW5zIGFuIGlucHV0IGZp
bGUgZm9yIHJlYWRpbmcgb2JqZWN0cw0KCSogcmV0dXJucyBhbiBPYmplY3RJbnB1dFN0cmVhbSBv
YmplY3QNCgkqLw0KDQ0KCXB1YmxpYyBzdGF0aWMgT2JqZWN0IG9wZW5JbkZpbGUoU3RyaW5nIHMp
IC8vdGhyb3dzIEV4Y2VwdGlvbg0KCXsNCgkJU3RyaW5nIG9zTmFtZT1TeXN0ZW0uZ2V0UHJvcGVy
dHkoIm9zLm5hbWUiKTsNCgkJT2JqZWN0IG9iaiA9IG51bGw7DQoJCUZpbGVJbnB1dFN0cmVhbSBJ
UyA9IG51bGw7DQoJCU9iamVjdElucHV0U3RyZWFtIE9JUyA9IG51bGw7DQoJCUZpbGUgaW5GaWxl
ID0gbnVsbDsNCgkJaWYob3NOYW1lLmVxdWFscygiTGludXgiKSkNCgkJaW5GaWxlID0gbmV3IEZp
bGUoIi91c3IvbG9jYWwvIiArIHMpOw0KCQllbHNlDQoJCWluRmlsZSA9IG5ldyBGaWxlKHMpOw0K
CQl0cnkgew0KCQkJSVMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGluRmlsZSk7DQoJCQlPSVMgPSBu
ZXcgT2JqZWN0SW5wdXRTdHJlYW0oSVMpOw0KCQkJb2JqID0gKE9iamVjdCkgT0lTLnJlYWRPYmpl
Y3QoKTsNCgkJfSBjYXRjaCAoT3B0aW9uYWxEYXRhRXhjZXB0aW9uIG9lKSB7DQoJCQlTeXN0ZW0u
b3V0LnByaW50bG4oIlRoZSBjb25maWd1cmF0aW9uIGZpbGUgaGFzIGJlZW4gY29ycnVwdGVkLiIp
Ow0KCQl9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsNCgkJCVN5c3RlbS5vdXQu
cHJpbnRsbigiQ29uZmlndXJhdGlvbiBmaWxlIGluZm8gY2Fubm90IGJlIGZvdW5kLiIpOw0KCQl9
IGNhdGNoIChTdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24gc2UpIHsNCgkJCVN5c3RlbS5vdXQucHJp
bnRsbigiVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgcmVhZC4iKTsNCgkJfSBjYXRj
aCAoSU9FeGNlcHRpb24gaWUpIHsNCgkJCVN5c3RlbS5vdXQucHJpbnRsbigiVGhlIGNvbmZpZ3Vy
YXRpb24gZmlsZSBjYW5ub3QgYmUgcmVhZC4iKTsNCgkJfSBmaW5hbGx5IHsNCgkJCXRyeXsNCgkJ
CSBPSVMuY2xvc2UoKTsNCgkJCSBJUy5jbG9zZSgpOw0KCQkJfWNhdGNoKElPRXhjZXB0aW9uIGUp
e1N5c3RlbS5vdXQucHJpbnRsbigiRXJyb3IgY2xvc2luZy5cbiIrZSk7fQ0KCQkJcmV0dXJuIG9i
ajsNCgkJfQ0KCX0NCg0NCn0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXNyL3RzdC9Uc3QvU2V0dGluZ3MuamF2
YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAADAxMDA0NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAzNzUwADA3
NjIwMTA1MDIwADAxNDQxMAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB1c3RhciAgAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYWNrYWdlIFRzdDsKaW1wb3J0IGphdmEu
aW8uU2VyaWFsaXphYmxlOwppbXBvcnQgamF2YS5pby4qOwppbXBvcnQgamF2YS51dGlsLlZlY3Rv
cjsKCgovKiBDbGFzcyB0byBob2xkIHRoZSBzZWxlY3Rpb25zIGVudGVyZWQgaW4gYnkgdGhlIGNv
bmZpZyBjbGFzcy4KKiAgRGF0YSBzdWNoIGFzIHRoZSBzZXR0aW5ncyBmb3IgdGhlIG1vZGVtLgoq
LwoKcHVibGljIGNsYXNzIFNldHRpbmdzIGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsKCgoJCglw
cml2YXRlIFN0cmluZyBwb3J0TmFtZTsKCXByaXZhdGUgU3RyaW5nIGhvbWVEaXI7Cglwcml2YXRl
IFN0cmluZyBxdWVEaXI7Cglwcml2YXRlIFN0cmluZyBxdWVGaWxlOwoJcHJpdmF0ZSBib29sZWFu
IHF1ZUlnbm9yZTsKCVZlY3RvciBmaWVsZE5hbWVzOyAKCVZlY3RvciBmaWVsZEVuZDsKCVZlY3Rv
ciBmSGVhZGVyVGVybTsgCglpbnQgZmllbGRDb3VudDsJCglWZWN0b3IgZmllbGRTZXBhcmF0b3I7
CglWZWN0b3Igc3RhcnQ7ICAgICAgICAgCglWZWN0b3Igc3RvcDsgICAgICAgICAgCglTdHJpbmcg
bW9kZWw7CQoKCS8qKgoJICogQ29uc3RydWN0b3IgZm9yIFNldHRpbmdzCgkgKi8KCXB1YmxpYyBT
ZXR0aW5ncygpIHsKCQlzdXBlcigpOwoKCQlzdGFydCA9IG5ldyBWZWN0b3IoKTsKCQlmb3IgKGlu
dCBpPTA7aTwyNDtpKyspCgkJc3RhcnQuYWRkRWxlbWVudCgic2RmIik7CgkJcG9ydE5hbWUgPSAo
Ii9kZXYvdGVybS9hIik7CgkJaG9tZURpciA9ICIvdXNyL2xvY2FsLyI7CgkJcXVlRGlyID0gIi91
c3IvbG9jYWwvIjsKCQlxdWVGaWxlID0gInF1ZSI7CgkJcXVlSWdub3JlID0gdHJ1ZTsKCX0KCglw
dWJsaWMgdm9pZCBpbml0KCl7CglQcmludGVyIHBudCA9IG5ldyBQcmludGVyKCk7Cgl9CgoJLyoq
CgkgKiBHZXRzIHRoZSBwb3J0CgkgKiBAcmV0dXJuIFJldHVybnMgYSBQb3J0cwoJICovCgoKCS8q
KgoJICogR2V0cyB0aGUgcHJpbnRlcgoJICogQHJldHVybiBSZXR1cm5zIGEgUHJpbnRlcgoJICov
CgoKCS8qKgoJICogR2V0cyB0aGUgaG9tZURpcgoJICogQHJldHVybiBSZXR1cm5zIGEgU3RyaW5n
CgkgKi8KCXB1YmxpYyBTdHJpbmcgZ2V0SG9tZURpcigpIHsKCQlyZXR1cm4gaG9tZURpcjsKCX0K
CS8qKgoJICogU2V0cyB0aGUgaG9tZURpcgoJICogQHBhcmFtIGhvbWVEaXIgVGhlIGhvbWVEaXIg
dG8gc2V0CgkgKi8KCXB1YmxpYyB2b2lkIHNldEhvbWVEaXIoU3RyaW5nIGhvbWVEaXIpIHsKCQl0
aGlzLmhvbWVEaXIgPSBob21lRGlyOwoJfQoKCgkvKioKCSAqIEdldHMgdGhlIHF1ZURpcgoJICog
QHJldHVybiBSZXR1cm5zIGEgU3RyaW5nCgkgKi8KCXB1YmxpYyBTdHJpbmcgZ2V0UXVlRGlyKCkg
ewoJCXJldHVybiBxdWVEaXI7Cgl9CgkvKioKCSAqIFNldHMgdGhlIHF1ZURpcgoJICogQHBhcmFt
IHF1ZURpciBUaGUgcXVlRGlyIHRvIHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRRdWVEaXIoU3Ry
aW5nIHF1ZURpcikgewoJCXRoaXMucXVlRGlyID0gcXVlRGlyOwoJfQoKCgkvKioKCSAqIEdldHMg
dGhlIHF1ZUZpbGUKCSAqIEByZXR1cm4gUmV0dXJucyBhIFN0cmluZwoJICovCglwdWJsaWMgU3Ry
aW5nIGdldFF1ZUZpbGUoKSB7CgkJcmV0dXJuIHF1ZUZpbGU7Cgl9CgkvKioKCSAqIFNldHMgdGhl
IHF1ZUZpbGUKCSAqIEBwYXJhbSBxdWVGaWxlIFRoZSBxdWVGaWxlIHRvIHNldAoJICovCglwdWJs
aWMgdm9pZCBzZXRRdWVGaWxlKFN0cmluZyBxdWVGaWxlKSB7CgkJdGhpcy5xdWVGaWxlID0gcXVl
RmlsZTsKCX0KCgoJLyoqCgkgKiBHZXRzIHRoZSBxdWVJZ25vcmUKCSAqIEByZXR1cm4gUmV0dXJu
cyBhIGJvb2xlYW4KCSAqLwoJcHVibGljIGJvb2xlYW4gZ2V0UXVlSWdub3JlKCkgewoJCXJldHVy
biBxdWVJZ25vcmU7Cgl9CgkvKioKCSAqIFNldHMgdGhlIHF1ZUlnbm9yZQoJICogQHBhcmFtIHF1
ZUlnbm9yZSBUaGUgcXVlSWdub3JlIHRvIHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRRdWVJZ25v
cmUoYm9vbGVhbiBxdWVJZ25vcmUpIHsKCQl0aGlzLnF1ZUlnbm9yZSA9IHF1ZUlnbm9yZTsKCX0K
Cgp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzci90c3QvVHN0L1NldHVwSU8uY2xhc3MAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwNDM2NQAwNzYyMDEw
MzYxMwAwMTQzMzcAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
dXN0YXIgIAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyv66vgADAC0AdwEAC1RzdC9TZXR1cElPBwABAQAQ
amF2YS9sYW5nL09iamVjdAcAAwEABjxpbml0PgEAAygpVgEABENvZGUMAAUABgoABAAIAQALb3Bl
bk91dEZpbGUBACcoTGphdmEvbGFuZy9PYmplY3Q7TGphdmEvbGFuZy9TdHJpbmc7KUkBAAdvcy5u
YW1lCAAMAQAQamF2YS9sYW5nL1N5c3RlbQcADgEAC2dldFByb3BlcnR5AQAmKExqYXZhL2xhbmcv
U3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsMABAAEQoADwASAQAFTGludXgIABQBABBqYXZhL2xh
bmcvU3RyaW5nBwAWAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaDAAYABkKABcAGgEA
DGphdmEvaW8vRmlsZQcAHAEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIHAB4BAAsvdXNyL2xvY2Fs
LwgAIAEAFShMamF2YS9sYW5nL1N0cmluZzspVgwABQAiCgAfACMBAAZhcHBlbmQBACwoTGphdmEv
bGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwwAJQAmCgAfACcBAAh0b1N0cmlu
ZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7DAApACoKAB8AKwoAHQAjAQAYamF2YS9pby9GaWxlT3V0
cHV0U3RyZWFtBwAuAQARKExqYXZhL2lvL0ZpbGU7KVYMAAUAMAoALwAxAQADb3V0AQAVTGphdmEv
aW8vUHJpbnRTdHJlYW07DAAzADQJAA8ANQEAE2phdmEvaW8vUHJpbnRTdHJlYW0HADcBAAdwcmlu
dGxuAQAVKExqYXZhL2xhbmcvT2JqZWN0OylWDAA5ADoKADgAOwEAGmphdmEvaW8vT2JqZWN0T3V0
cHV0U3RyZWFtBwA9AQAZKExqYXZhL2lvL091dHB1dFN0cmVhbTspVgwABQA/CgA+AEABAAt3cml0
ZU9iamVjdAwAQgA6CgA+AEMBABNFcnJvciB3cml0aW5nIGZpbGUgCABFAQAqIC4gUGxlYXNlIGNo
ZWNrIHN5c3RlbSBhbmQgcmVydW4gcHJvZ3JhbS4KCABHAQAsKExqYXZhL2xhbmcvT2JqZWN0OylM
amF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsMACUASQoAHwBKDAA5ACIKADgATAEABWNsb3NlDABOAAYK
AC8ATwoAPgBPAQAPRXJyb3IgY2xvc2luZy4KCABSAQAdamF2YS9pby9GaWxlTm90Rm91bmRFeGNl
cHRpb24HAFQBABNqYXZhL2lvL0lPRXhjZXB0aW9uBwBWAQAPTGluZU51bWJlclRhYmxlAQAKb3Bl
bkluRmlsZQEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9PYmplY3Q7AQAXamF2YS9p
by9GaWxlSW5wdXRTdHJlYW0HAFsKAFwAMQEAGWphdmEvaW8vT2JqZWN0SW5wdXRTdHJlYW0HAF4B
ABgoTGphdmEvaW8vSW5wdXRTdHJlYW07KVYMAAUAYAoAXwBhAQAKcmVhZE9iamVjdAEAFCgpTGph
dmEvbGFuZy9PYmplY3Q7DABjAGQKAF8AZQEAKlRoZSBjb25maWd1cmF0aW9uIGZpbGUgaGFzIGJl
ZW4gY29ycnVwdGVkLggAZwEAKENvbmZpZ3VyYXRpb24gZmlsZSBpbmZvIGNhbm5vdCBiZSBmb3Vu
ZC4IAGkBACZUaGUgY29uZmlndXJhdGlvbiBmaWxlIGNhbm5vdCBiZSByZWFkLggAawoAXwBPCgBc
AE8BAB1qYXZhL2lvL09wdGlvbmFsRGF0YUV4Y2VwdGlvbgcAbwEAIGphdmEvbGFuZy9DbGFzc05v
dEZvdW5kRXhjZXB0aW9uBwBxAQAgamF2YS9pby9TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb24HAHMB
AApTb3VyY2VGaWxlAQAMU2V0dXBJTy5qYXZhACEAAgAEAAAAAAADAAEABQAGAAEABwAAABEAAQAB
AAAABSq3AAmxAAAAAAAJAAoACwABAAcAAAFFAAUABwAAAL0SDbgAE00BTgE6BAE6BSwSFbYAG5kA
H7sAHVm7AB9ZEiG3ACQrtgAotgAstwAtOgWnAA27AB1ZK7cALToFuwAvWRkFtwAyTqcAGjoGsgA2
GQa2ADynAA06BrIANhkGtgA8uwA+WS23AEE6BBkEKrYARKcAJToGsgA2uwAfWRJGtwAkK7YAKBJI
tgAoGQa2AEu2ACy2AE0ttgBQGQS2AFGnABw6BrIANrsAH1kSU7cAJBkGtgBLtgAstgBNBKwABAA9
AEcASgBVAD0ARwBXAFcAYQBxAHQAVwCWAJ8AogBXAAEAWAAAAFYAFQAAABgABgAZAAgAGgALABsA
DgAdABcAHwAzACMAPQAnAEoAKABMACgAVwApAFkAKQBhACsAawAsAHQALQB2AC4AlgAxAJoAMgCi
ADMApAAzALsANAAJAFkAWgABAAcAAAFcAAUABwAAALgSDbgAE0wBTQFOAToEAToFKxIVtgAbmQAf
uwAdWbsAH1kSIbcAJCq2ACi2ACy3AC06BacADbsAHVkqtwAtOgW7AFxZGQW3AF1OuwBfWS23AGI6
BBkEtgBmTacANDoGsgA2Emi2AE2nACc6BrIANhJqtgBNpwAaOgayADYSbLYATacADToGsgA2Emy2
AE2nAARXGQS2AG0ttgBupwAcOgayADa7AB9ZElO3ACQZBrYAS7YALLYATSywAAYAPwBZAFwAcAA/
AFkAaQByAD8AWQB2AHQAPwBZAIMAVwA/AI0AkAAAAJEAmgCdAFcAAQBYAAAAYgAYAAAAQAAGAEEA
CABCAAoAQwANAEQAEABFABkARgA1AEgAPwBKAEkASwBTAEwAXABNAF4ATgBpAE8AawBQAHYAUQB4
AFIAgwBTAIUAVACRAFcAlgBYAJ0AWQCfAFkAtgBaAAEAdQAAAAIAdgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzci90c3QvVHN0L1NldHVwSU8uamF2YQAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAwMTAwNDQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwNDIyMQAwNzYxNzYzMDcxNgAw
MTQxNTcAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIg
IAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAcGFja2FnZSBUc3Q7DQppbXBvcnQgamF2YS5pby4qOw0KDQ0K
cHVibGljIGNsYXNzIFNldHVwSU8gew0KCS8vIE1VU1QgY2F0Y2ggYW55IGV4Y2VwdGlvbiB0aGF0
IG1pZ2h0IGJlIHRocm93biEhDQoJcHVibGljIFNldHVwSU8oKSB7DQoJfQ0KDQ0KDQ0KDQ0KCS8q
Kg0KCSogT3BlbnMgYW4gb3V0cHV0IGZpbGUgZm9yIHdyaXRpbmcgb2JqZWN0cw0KCSogcmV0dXJu
cyBhbiBPYmplY3RPdXRwdXRTdHJlYW0gb2JqZWN0DQoJKi8NCg0NCglwdWJsaWMgc3RhdGljIGlu
dCBvcGVuT3V0RmlsZShPYmplY3Qgb2JqLCBTdHJpbmcgcykgew0KDQ0KCQlTdHJpbmcgb3NOYW1l
PVN5c3RlbS5nZXRQcm9wZXJ0eSgib3MubmFtZSIpOw0KCQlGaWxlT3V0cHV0U3RyZWFtIE9TID0g
bnVsbDsNCgkJT2JqZWN0T3V0cHV0U3RyZWFtIE9PUyA9IG51bGw7DQoJCUZpbGUgb3V0RmlsZSA9
IG51bGw7DQoJCQ0KCQlpZihvc05hbWUuZXF1YWxzKCJMaW51eCIpKQ0KCQl7DQoJCW91dEZpbGUg
PSBuZXcgRmlsZSgiL3Vzci9sb2NhbC8iICsgcyk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCW91dEZp
bGUgPSBuZXcgRmlsZShzKTsNCgkJfQ0KCQkNCgkJdHJ5ew0KCQlPUyA9IG5ldyBGaWxlT3V0cHV0
U3RyZWFtKG91dEZpbGUpOw0KCQl9Y2F0Y2goRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGZlKXtTeXN0
ZW0ub3V0LnByaW50bG4oZmUpOyB9DQoJCWNhdGNoIChJT0V4Y2VwdGlvbiBpb2Upe1N5c3RlbS5v
dXQucHJpbnRsbihpb2UpOyB9DQoJCXRyeXsNCgkJT09TID0gbmV3IE9iamVjdE91dHB1dFN0cmVh
bShPUyk7DQoJCU9PUy53cml0ZU9iamVjdChvYmopOw0KCQl9Y2F0Y2goSU9FeGNlcHRpb24gaWUp
ew0KCQkJU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciB3cml0aW5nIGZpbGUgIitzKyIgLiBQbGVh
c2UgY2hlY2sgc3lzdGVtIGFuZCByZXJ1biBwcm9ncmFtLlxuIitpZSk7DQoJCX0NCgkJdHJ5ew0K
CQlPUy5jbG9zZSgpOw0KCQlPT1MuY2xvc2UoKTsNCgkJfWNhdGNoKElPRXhjZXB0aW9uIGUpe1N5
c3RlbS5vdXQucHJpbnRsbigiRXJyb3IgY2xvc2luZy5cbiIrZSk7fQ0KCQlyZXR1cm4gMTsNCgl9
DQoNDQoJLyoqDQoJKiBPcGVucyBhbiBpbnB1dCBmaWxlIGZvciByZWFkaW5nIG9iamVjdHMNCgkq
IHJldHVybnMgYW4gT2JqZWN0SW5wdXRTdHJlYW0gb2JqZWN0DQoJKi8NCg0NCglwdWJsaWMgc3Rh
dGljIE9iamVjdCBvcGVuSW5GaWxlKFN0cmluZyBzKSAvL3Rocm93cyBFeGNlcHRpb24NCgl7DQoJ
CVN0cmluZyBvc05hbWU9U3lzdGVtLmdldFByb3BlcnR5KCJvcy5uYW1lIik7DQoJCU9iamVjdCBv
YmogPSBudWxsOw0KCQlGaWxlSW5wdXRTdHJlYW0gSVMgPSBudWxsOw0KCQlPYmplY3RJbnB1dFN0
cmVhbSBPSVMgPSBudWxsOw0KCQlGaWxlIGluRmlsZSA9IG51bGw7DQoJCWlmKG9zTmFtZS5lcXVh
bHMoIkxpbnV4IikpDQoJCWluRmlsZSA9IG5ldyBGaWxlKCIvdXNyL2xvY2FsLyIgKyBzKTsNCgkJ
ZWxzZQ0KCQlpbkZpbGUgPSBuZXcgRmlsZShzKTsNCgkJdHJ5IHsNCgkJCUlTID0gbmV3IEZpbGVJ
bnB1dFN0cmVhbShpbkZpbGUpOw0KCQkJT0lTID0gbmV3IE9iamVjdElucHV0U3RyZWFtKElTKTsN
CgkJCW9iaiA9IChPYmplY3QpIE9JUy5yZWFkT2JqZWN0KCk7DQoJCX0gY2F0Y2ggKE9wdGlvbmFs
RGF0YUV4Y2VwdGlvbiBvZSkgew0KCQkJU3lzdGVtLm91dC5wcmludGxuKCJUaGUgY29uZmlndXJh
dGlvbiBmaWxlIGhhcyBiZWVuIGNvcnJ1cHRlZC4iKTsNCgkJfSBjYXRjaCAoQ2xhc3NOb3RGb3Vu
ZEV4Y2VwdGlvbiBlKSB7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkNvbmZpZ3VyYXRpb24gZmls
ZSBpbmZvIGNhbm5vdCBiZSBmb3VuZC4iKTsNCgkJfSBjYXRjaCAoU3RyZWFtQ29ycnVwdGVkRXhj
ZXB0aW9uIHNlKSB7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBjb25maWd1cmF0aW9uIGZp
bGUgY2Fubm90IGJlIHJlYWQuIik7DQoJCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGllKSB7DQoJCQlT
eXN0ZW0ub3V0LnByaW50bG4oIlRoZSBjb25maWd1cmF0aW9uIGZpbGUgY2Fubm90IGJlIHJlYWQu
Iik7DQoJCX0gZmluYWxseSB7DQoJCQl0cnl7DQoJCQkgT0lTLmNsb3NlKCk7DQoJCQkgSVMuY2xv
c2UoKTsNCgkJCX1jYXRjaChJT0V4Y2VwdGlvbiBlKXtTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9y
IGNsb3NpbmcuXG4iK2UpO30NCgkJCXJldHVybiBvYmo7DQoJCX0NCgl9DQoNDQp9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAHVzci90c3QvVHN0L1ByaW50ZXIuY2xhc3MAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAwMTAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwNDUzNgAwNzYyMDEwNTQzNgAwMTQ0MzcA
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAByb290
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAyv66vgADAC0AWgEAC1RzdC9QcmludGVyBwABAQAQamF2YS9sYW5nL09i
amVjdAcAAwEAFGphdmEvaW8vU2VyaWFsaXphYmxlBwAFAQAKZmllbGROYW1lcwEAEkxqYXZhL3V0
aWwvVmVjdG9yOwEACGZpZWxkRW5kAQALZkhlYWRlclRlcm0BAApmaWVsZENvdW50AQABSQEADmZp
ZWxkU2VwYXJhdG9yAQANcGFnZVNlcGFyYXRvcgEABXN0YXJ0AQAEc3RvcAEABW1vZGVsAQASTGph
dmEvbGFuZy9TdHJpbmc7AQAIV0lMRENBUkQBAAZmaW5pdCQBAAMoKVYBAAlTeW50aGV0aWMBAARD
b2RlDAATAAwJAAIAGAEAD0xpbmVOdW1iZXJUYWJsZQEABXNldHVwAQADKClJAQAGPGluaXQ+DAAd
ABUKAAQAHgwAFAAVCgACACABABBqYXZhL3V0aWwvVmVjdG9yBwAiCgAjAB4MAAcACAkAAgAlAQAR
amF2YS9sYW5nL0ludGVnZXIHACcBAAQoSSlWDAAdACkKACgAKgEACmFkZEVsZW1lbnQBABUoTGph
dmEvbGFuZy9PYmplY3Q7KVYMACwALQoAIwAuDAAJAAgJAAIAMAwACgAICQACADIMAAsADAkAAgA0
DAANAAgJAAIANgwADgAICQACADgMAA8ACAkAAgA6DAAQAAgJAAIAPAEABGZvdXIIAD4MABEAEgkA
AgBAAQANZ2V0RmllbGROYW1lcwEAFCgpTGphdmEvdXRpbC9WZWN0b3I7AQANc2V0RmllbGROYW1l
cwEAFShMamF2YS91dGlsL1ZlY3RvcjspVgEAEWdldEZpZWxkU2VwYXJhdG9yAQARc2V0RmllbGRT
ZXBhcmF0b3IBABBnZXRQYWdlU2VwYXJhdG9yAQAQc2V0UGFnZVNlcGFyYXRvcgEACGdldE1vZGVs
AQAUKClMamF2YS9sYW5nL1N0cmluZzsBAAhzZXRNb2RlbAEAFShMamF2YS9sYW5nL1N0cmluZzsp
VgEACGdldFN0YXJ0AQAIc2V0U3RhcnQBAAdnZXRTdG9wAQAHc2V0U3RvcAEADWdldEZpZWxkQ291
bnQBAA1zZXRGaWVsZENvdW50AQALZ2V0RmllbGRFbmQBAAtzZXRGaWVsZEVuZAEADWdldEhlYWRl
clRlcm0BAA1zZXRIZWFkZXJUZXJtAQAKU291cmNlRmlsZQEADFByaW50ZXIuamF2YQAhAAIABAAB
AAYACgAAAAcACAAAAAAACQAIAAAAAAAKAAgAAAAAAAsADAAAAAAADQAIAAAAAAAOAAgAAAAAAA8A
CAAAAAAAEAAIAAAAAAARABIAAAAQABMADAAAABUAAgAUABUAAgAWAAAAAAAXAAAAIAACAAEAAAAI
KhED57UAGbEAAAABABoAAAAGAAEAAAASAAEAGwAcAAEAFwAAABoAAQABAAAAAgOsAAAAAQAaAAAA
BgABAAAAGgABAB0AFQABABcAAAHLAAQAAQAAAVcqtwAfKrcAISq7ACNZtwAktQAmKrQAJrsAKFkR
APO3ACu2AC8qtAAmuwAoWREAibcAK7YALyq0ACa7AChZEQFZtwArtgAvKrsAI1m3ACS1ADEqtAAx
uwAoWREBTbcAK7YALyq0ADG7AChZEQMPtwArtgAvKrsAI1m3ACS1ADMqtAAzuwAoWRAYtwArtgAv
KhBMtQA1KrsAI1m3ACS1ADcqtAA3uwAoWRAitwArtgAvKrQAN7sAKFkQK7cAK7YALyq7ACNZtwAk
tQA5KrQAObsAKFkQCrcAK7YALyq0ADm7AChZEAq3ACu2AC8quwAjWbcAJLUAOyq0ADu7AChZECG3
ACu2AC8qtAA7uwAoWRBYtwArtgAvKrQAO7sAKFkQRbcAK7YALyq7ACNZtwAktQA9KrQAPbsAKFkQ
LbcAK7YALyq0AD27AChZEE23ACu2AC8qEj+1AEGxAAAAAQAaAAAAYgAYAAgAJQATACYAJAAnADUA
KABGACsAUQAsAGIALQBzAC8AfgAwAI4AMwCUADYAnwA4AK8AOQC/ADsAygA9ANoAPgDqAEAA9QBB
AQUAQgEVAEMBJQBGATAARwFAAEgBUABLAAEAQgBDAAEAFwAAAB0AAQABAAAABSq0ACawAAAAAQAa
AAAABgABAAAAWAABAEQARQABABcAAAAeAAIAAgAAAAYqK7UAJrEAAAABABoAAAAGAAEAAABfAAEA
RgBDAAEAFwAAAB0AAQABAAAABSq0ADewAAAAAQAaAAAABgABAAAAaAABAEcARQABABcAAAAeAAIA
AgAAAAYqK7UAN7EAAAABABoAAAAGAAEAAABvAAEASABDAAEAFwAAAB0AAQABAAAABSq0ADmwAAAA
AQAaAAAABgABAAAAeAABAEkARQABABcAAAAeAAIAAgAAAAYqK7UAObEAAAABABoAAAAGAAEAAAB/
AAEASgBLAAEAFwAAAB0AAQABAAAABSq0AEGwAAAAAQAaAAAABgABAAAAiAABAEwATQABABcAAAAe
AAIAAgAAAAYqK7UAQbEAAAABABoAAAAGAAEAAACPAAEATgBDAAEAFwAAAB0AAQABAAAABSq0ADuw
AAAAAQAaAAAABgABAAAAmAABAE8ARQABABcAAAAeAAIAAgAAAAYqK7UAO7EAAAABABoAAAAGAAEA
AACfAAEAUABDAAEAFwAAAB0AAQABAAAABSq0AD2wAAAAAQAaAAAABgABAAAAqAABAFEARQABABcA
AAAeAAIAAgAAAAYqK7UAPbEAAAABABoAAAAGAAEAAACvAAEAUgAcAAEAFwAAAB0AAQABAAAABSq0
ADWsAAAAAQAaAAAABgABAAAAuAABAFMAKQABABcAAAAeAAIAAgAAAAYqG7UANbEAAAABABoAAAAG
AAEAAAC/AAEAVABDAAEAFwAAAB0AAQABAAAABSq0ADGwAAAAAQAaAAAABgABAAAAyAABAFUARQAB
ABcAAAAeAAIAAgAAAAYqK7UAMbEAAAABABoAAAAGAAEAAADPAAEAVgBDAAEAFwAAAB0AAQABAAAA
BSq0ADOwAAAAAQAaAAAABgABAAAA2AABAFcARQABABcAAAAeAAIAAgAAAAYqK7UAM7EAAAABABoA
AAAGAAEAAADfAAEAWAAAAAIAWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAHVzci90c3QvVHN0L1ByaW50ZXIuamF2YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAw
NDQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwNzQwNAAwNzYyMDEwNTQyNAAwMTQyNDMAIDAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAByb290AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAcGFja2FnZSBUc3Q7CmltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOwoJaW1wb3J0IGph
dmEuaW8uU2VyaWFsaXphYmxlOwoKCnB1YmxpYyBjbGFzcyBQcmludGVyIGltcGxlbWVudHMgU2Vy
aWFsaXphYmxlewoKCglWZWN0b3IgZmllbGROYW1lczsgICAgCglWZWN0b3IgZmllbGRFbmQ7CQoJ
VmVjdG9yIGZIZWFkZXJUZXJtOyAgICAvLwoJaW50IGZpZWxkQ291bnQ7CQkKCVZlY3RvciBmaWVs
ZFNlcGFyYXRvcjsgLy8KCVZlY3RvciBwYWdlU2VwYXJhdG9yOyAgLy8KCVZlY3RvciBzdGFydDsg
ICAgICAgICAgLy8KCVZlY3RvciBzdG9wOyAgICAgICAgICAgLy8KCVN0cmluZyBtb2RlbDsJCQoJ
ZmluYWwgaW50IFdJTERDQVJEID0gOTk5OyAvL0Rlc2lnbmF0ZXMgYSB2YWx1ZSBmb3Igc2tpcHBp
bmcgY29tcGFyZXMuCgoKCgoJcHVibGljIGludCBzZXR1cCgpewoJCQoJCglyZXR1cm4gMDsJCgl9
CgoKCgoJLyoqCgkgKiBDb25zdHJ1Y3RvciBmb3IgUHJpbnRlcgoJICovCglwdWJsaWMgUHJpbnRl
cigpIHsKCQlzdXBlcigpOwoJCWZpZWxkTmFtZXMgPSBuZXcgVmVjdG9yKCk7CgkJZmllbGROYW1l
cy5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKDI0MykpOwoJCWZpZWxkTmFtZXMuYWRkRWxlbWVudChu
ZXcgSW50ZWdlcigxMzcpKTsKCQlmaWVsZE5hbWVzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoMzQ1
KSk7CgoKCQlmaWVsZEVuZCA9IG5ldyBWZWN0b3IoKTsKCQlmaWVsZEVuZC5hZGRFbGVtZW50KG5l
dyBJbnRlZ2VyKDMzMykpOwoJCWZpZWxkRW5kLmFkZEVsZW1lbnQobmV3IEludGVnZXIoNzgzKSk7
CgkJCgkJZkhlYWRlclRlcm0gPSBuZXcgVmVjdG9yKCk7CgkJZkhlYWRlclRlcm0uYWRkRWxlbWVu
dChuZXcgSW50ZWdlcigyNCkpOwoKCgkJZmllbGRDb3VudCA9IDc2OwoKCgkJZmllbGRTZXBhcmF0
b3IgPSBuZXcgVmVjdG9yKCk7CgkJewoJCQlmaWVsZFNlcGFyYXRvci5hZGRFbGVtZW50KG5ldyBJ
bnRlZ2VyKDM0KSk7CgkJCWZpZWxkU2VwYXJhdG9yLmFkZEVsZW1lbnQobmV3IEludGVnZXIoNDMp
KTsKCQl9CgkJcGFnZVNlcGFyYXRvciA9IG5ldyBWZWN0b3IoKTsKCQl7CgkJCXBhZ2VTZXBhcmF0
b3IuYWRkRWxlbWVudChuZXcgSW50ZWdlcigxMCkpOwoJCQlwYWdlU2VwYXJhdG9yLmFkZEVsZW1l
bnQobmV3IEludGVnZXIoMTApKTsKCQl9CgkJc3RhcnQgPSBuZXcgVmVjdG9yKCk7CgkJc3RhcnQu
YWRkRWxlbWVudChuZXcgSW50ZWdlcigzMykpOwoJCXN0YXJ0LmFkZEVsZW1lbnQobmV3IEludGVn
ZXIoODgpKTsKCQlzdGFydC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKDY5KSk7CgoKCQlzdG9wID0g
bmV3IFZlY3RvcigpOwoJCXN0b3AuYWRkRWxlbWVudChuZXcgSW50ZWdlcig0NSkpOwoJCXN0b3Au
YWRkRWxlbWVudChuZXcgSW50ZWdlcig3NykpOwoKCgkJbW9kZWwgPSAiZm91ciI7Cgl9CgoKCgoK
CgkvKioKCSAqIEdldHMgdGhlIGZpZWxkTmFtZXMKCSAqIEByZXR1cm4gUmV0dXJucyBhIFZlY3Rv
cgoJICovCglwdWJsaWMgVmVjdG9yIGdldEZpZWxkTmFtZXMoKSB7CgkJcmV0dXJuIGZpZWxkTmFt
ZXM7Cgl9CgkvKioKCSAqIFNldHMgdGhlIGZpZWxkTmFtZXMKCSAqIEBwYXJhbSBmaWVsZE5hbWVz
IFRoZSBmaWVsZE5hbWVzIHRvIHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRGaWVsZE5hbWVzKFZl
Y3RvciBmaWVsZE5hbWVzKSB7CgkJdGhpcy5maWVsZE5hbWVzID0gZmllbGROYW1lczsKCX0KCgoJ
LyoqCgkgKiBHZXRzIHRoZSBmaWVsZFNlcGFyYXRvcgoJICogQHJldHVybiBSZXR1cm5zIGEgVmVj
dG9yCgkgKi8KCXB1YmxpYyBWZWN0b3IgZ2V0RmllbGRTZXBhcmF0b3IoKSB7CgkJcmV0dXJuIGZp
ZWxkU2VwYXJhdG9yOwoJfQoJLyoqCgkgKiBTZXRzIHRoZSBmaWVsZFNlcGFyYXRvcgoJICogQHBh
cmFtIGZpZWxkU2VwYXJhdG9yIFRoZSBmaWVsZFNlcGFyYXRvciB0byBzZXQKCSAqLwoJcHVibGlj
IHZvaWQgc2V0RmllbGRTZXBhcmF0b3IoVmVjdG9yIGZpZWxkU2VwYXJhdG9yKSB7CgkJdGhpcy5m
aWVsZFNlcGFyYXRvciA9IGZpZWxkU2VwYXJhdG9yOwoJfQoKCgkvKioKCSAqIEdldHMgdGhlIHBh
Z2VTZXBhcmF0b3IKCSAqIEByZXR1cm4gUmV0dXJucyBhIFZlY3RvcgoJICovCglwdWJsaWMgVmVj
dG9yIGdldFBhZ2VTZXBhcmF0b3IoKSB7CgkJcmV0dXJuIHBhZ2VTZXBhcmF0b3I7Cgl9CgkvKioK
CSAqIFNldHMgdGhlIHBhZ2VTZXBhcmF0b3IKCSAqIEBwYXJhbSBwYWdlU2VwYXJhdG9yIFRoZSBw
YWdlU2VwYXJhdG9yIHRvIHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRQYWdlU2VwYXJhdG9yKFZl
Y3RvciBwYWdlU2VwYXJhdG9yKSB7CgkJdGhpcy5wYWdlU2VwYXJhdG9yID0gcGFnZVNlcGFyYXRv
cjsKCX0KCgoJLyoqCgkgKiBHZXRzIHRoZSBtb2RlbAoJICogQHJldHVybiBSZXR1cm5zIGEgU3Ry
aW5nCgkgKi8KCXB1YmxpYyBTdHJpbmcgZ2V0TW9kZWwoKSB7CgkJcmV0dXJuIG1vZGVsOwoJfQoJ
LyoqCgkgKiBTZXRzIHRoZSBtb2RlbAoJICogQHBhcmFtIG1vZGVsIFRoZSBtb2RlbCB0byBzZXQK
CSAqLwoJcHVibGljIHZvaWQgc2V0TW9kZWwoU3RyaW5nIG1vZGVsKSB7CgkJdGhpcy5tb2RlbCA9
IG1vZGVsOwoJfQoKCgkvKioKCSAqIEdldHMgdGhlIHN0YXJ0CgkgKiBAcmV0dXJuIFJldHVybnMg
YSBWZWN0b3IKCSAqLwoJcHVibGljIFZlY3RvciBnZXRTdGFydCgpIHsKCQlyZXR1cm4gc3RhcnQ7
Cgl9CgkvKioKCSAqIFNldHMgdGhlIHN0YXJ0CgkgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0IHRv
IHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRTdGFydChWZWN0b3Igc3RhcnQpIHsKCQl0aGlzLnN0
YXJ0ID0gc3RhcnQ7Cgl9CgoKCS8qKgoJICogR2V0cyB0aGUgc3RvcAoJICogQHJldHVybiBSZXR1
cm5zIGEgVmVjdG9yCgkgKi8KCXB1YmxpYyBWZWN0b3IgZ2V0U3RvcCgpIHsKCQlyZXR1cm4gc3Rv
cDsKCX0KCS8qKgoJICogU2V0cyB0aGUgc3RvcAoJICogQHBhcmFtIHN0b3AgVGhlIHN0b3AgdG8g
c2V0CgkgKi8KCXB1YmxpYyB2b2lkIHNldFN0b3AoVmVjdG9yIHN0b3ApIHsKCQl0aGlzLnN0b3Ag
PSBzdG9wOwoJfQoKCgkvKioKCSAqIEdldHMgdGhlIGZpZWxkQ291bnQKCSAqIEByZXR1cm4gUmV0
dXJucyBhIGludAoJICovCglwdWJsaWMgaW50IGdldEZpZWxkQ291bnQoKSB7CgkJcmV0dXJuIGZp
ZWxkQ291bnQ7Cgl9CgkvKioKCSAqIFNldHMgdGhlIGZpZWxkQ291bnQKCSAqIEBwYXJhbSBmaWVs
ZENvdW50IFRoZSBmaWVsZENvdW50IHRvIHNldAoJICovCglwdWJsaWMgdm9pZCBzZXRGaWVsZENv
dW50KGludCBmaWVsZENvdW50KSB7CgkJdGhpcy5maWVsZENvdW50ID0gZmllbGRDb3VudDsKCX0K
CgoJLyoqCgkgKiBHZXRzIHRoZSBmaWVsZEVuZAoJICogQHJldHVybiBSZXR1cm5zIGEgVmVjdG9y
CgkgKi8KCXB1YmxpYyBWZWN0b3IgZ2V0RmllbGRFbmQoKSB7CgkJcmV0dXJuIGZpZWxkRW5kOwoJ
fQoJLyoqCgkgKiBTZXRzIHRoZSBmaWVsZEVuZAoJICogQHBhcmFtIGZpZWxkRW5kIFRoZSBmaWVs
ZEVuZCB0byBzZXQKCSAqLwoJcHVibGljIHZvaWQgc2V0RmllbGRFbmQoVmVjdG9yIGZpZWxkRW5k
KSB7CgkJdGhpcy5maWVsZEVuZCA9IGZpZWxkRW5kOwoJfQoKCgkvKioKCSAqIEdldHMgdGhlIGhl
YWRlclRlcm0KCSAqIEByZXR1cm4gUmV0dXJucyBhIFZlY3RvcgoJICovCglwdWJsaWMgVmVjdG9y
IGdldEhlYWRlclRlcm0oKSB7CgkJcmV0dXJuIGZIZWFkZXJUZXJtOwoJfQoJLyoqCgkgKiBTZXRz
IHRoZSBoZWFkZXJUZXJtCgkgKiBAcGFyYW0gaGVhZGVyVGVybSBUaGUgaGVhZGVyVGVybSB0byBz
ZXQKCSAqLwoJcHVibGljIHZvaWQgc2V0SGVhZGVyVGVybShWZWN0b3IgaGVhZGVyVGVybSkgewoJ
CWZIZWFkZXJUZXJtID0gaGVhZGVyVGVybTsKCX0KCgp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA



More information about the Java-prs mailing list