Lyogdmk6c2V0IHRzPTggc3RzPTQgc3c9NCBub2V0OgogKgogKiBWSU0gLSBWaSBJTXByb3ZlZAlieSBCcmFtIE1vb2xlbmFhcgogKgogKiBEbyAiOmhlbHAgdWdhbmRhIiAgaW4gVmltIHRvIHJlYWQgY29weWluZyBhbmQgdXNhZ2UgY29uZGl0aW9ucy4KICogRG8gIjpoZWxwIGNyZWRpdHMiIGluIFZpbSB0byBzZWUgYSBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQuCiAqIFNlZSBSRUFETUUudHh0IGZvciBhbiBvdmVydmlldyBvZiB0aGUgVmltIHNvdXJjZSBjb2RlLgogKi8KCi8qCiAqIGRpZ3JhcGguYzogY29kZSBmb3IgZGlncmFwaHMKICovCgojaW5jbHVkZSAidmltLmgiCgojaWYgZGVmaW5lZChGRUFUX0RJR1JBUEhTKSB8fCBkZWZpbmVkKFBST1RPKQoKI2lmZGVmIEZFQVRfTUJZVEUKdHlwZWRlZiBpbnQgcmVzdWx0X1Q7CiNlbHNlCnR5cGVkZWYgY2hhcl91IHJlc3VsdF9UOwojZW5kaWYKCnR5cGVkZWYgc3RydWN0IGRpZ3JhcGgKewogICAgY2hhcl91CWNoYXIxOwogICAgY2hhcl91CWNoYXIyOwogICAgcmVzdWx0X1QJcmVzdWx0Owp9IGRpZ3JfVDsKCnN0YXRpYyB2b2lkIHByaW50ZGlncmFwaChkaWdyX1QgKik7CgovKiBkaWdyYXBocyBhZGRlZCBieSB0aGUgdXNlciAqLwpzdGF0aWMgZ2FycmF5X1QJdXNlcl9kaWdyYXBocyA9IHswLCAwLCAoaW50KXNpemVvZihkaWdyX1QpLCAxMCwgTlVMTH07CgovKgogKiBOb3RlOiBDaGFyYWN0ZXJzIG1hcmtlZCB3aXRoIFhYIGFyZSBub3QgaW5jbHVkZWQgbGl0ZXJhbGx5LCBiZWNhdXNlIHNvbWUKICogY29tcGlsZXJzIGNhbm5vdCBoYW5kbGUgdGhlbSAoQW1pZ2EgU0FTL0MgaXMgdGhlIG1vc3QgcGlja3kgb25lKS4KICovCnN0YXRpYyBkaWdyX1QgZGlncmFwaGRlZmF1bHRbXSA9CiNpZmRlZiBfX01JTlRfXwoKCS8qCgkgKiBBVEFSSSBkaWdyYXBocwoJICovCiAgICAgICB7eydDJywgJywnLCAxMjh9LAkvKiB+QCBYWCAqLwoJeyd1JywgJyInLCAxMjl9LAkvKiCBICovCgl7J2UnLCAnXCcnLCAxMzB9LAkvKiCCICovCgl7J2EnLCAnXicsIDEzMX0sCS8qIIMgKi8KCXsnYScsICciJywgMTMyfSwJLyoghCAqLwoJeydhJywgJ2AnLCAxMzN9LAkvKiCFICovCgl7J2EnLCAnQCcsIDEzNH0sCS8qIIYgKi8KCXsnYycsICcsJywgMTM1fSwJLyogfkcgWFggKi8KCXsnZScsICdeJywgMTM2fSwJLyogfkggWFggKi8KCXsnZScsICciJywgMTM3fSwJLyogiSAqLwoJeydlJywgJ2AnLCAxMzh9LAkvKiCKICovCgl7J2knLCAnIicsIDEzOX0sCS8qIIsgKi8KCXsnaScsICdeJywgMTQwfSwJLyogjCAqLwoJeydpJywgJ2AnLCAxNDF9LAkvKiCNICovCgl7J0EnLCAnIicsIDE0Mn0sCS8qII4gKi8KCXsnQScsICdAJywgMTQzfSwJLyogjyAqLwoJeydFJywgJ1wnJywgMTQ0fSwJLyogkCAqLwoJeydhJywgJ2UnLCAxNDV9LAkvKiCRICovCgl7J0EnLCAnRScsIDE0Nn0sCS8qIJIgKi8KCXsnbycsICdeJywgMTQ3fSwJLyogkyAqLwoJeydvJywgJyInLCAxNDh9LAkvKiCUICovCgl7J28nLCAnYCcsIDE0OX0sCS8qIJUgKi8KCXsndScsICdeJywgMTUwfSwJLyogliAqLwoJeyd1JywgJ2AnLCAxNTF9LAkvKiCXICovCgl7J3knLCAnIicsIDE1Mn0sCS8qIJggKi8KCXsnTycsICciJywgMTUzfSwJLyogmSAqLwoJeydVJywgJyInLCAxNTR9LAkvKiCaICovCgl7J2MnLCAnfCcsIDE1NX0sCS8qIJsgKi8KCXsnJCcsICckJywgMTU2fSwJLyognCAqLwoJeydZJywgJy0nLCAxNTd9LAkvKiB+XSBYWCAqLwoJeydzJywgJ3MnLCAxNTh9LAkvKiCeICovCgl7J2YnLCAnZicsIDE1OX0sCS8qIJ8gKi8KCXsnYScsICdcJycsIDE2MH0sCS8qIKAgKi8KCXsnaScsICdcJycsIDE2MX0sCS8qIKEgKi8KCXsnbycsICdcJycsIDE2Mn0sCS8qIKIgKi8KCXsndScsICdcJycsIDE2M30sCS8qIKMgKi8KCXsnbicsICd+JywgMTY0fSwJLyogpCAqLwoJeydOJywgJ34nLCAxNjV9LAkvKiClICovCgl7J2EnLCAnYScsIDE2Nn0sCS8qIKYgKi8KCXsnbycsICdvJywgMTY3fSwJLyogpyAqLwoJeyd+JywgJz8nLCAxNjh9LAkvKiCoICovCgl7Jy0nLCAnYScsIDE2OX0sCS8qIKkgKi8KCXsnYScsICctJywgMTcwfSwJLyogqiAqLwoJeycxJywgJzInLCAxNzF9LAkvKiCrICovCgl7JzEnLCAnNCcsIDE3Mn0sCS8qIKwgKi8KCXsnficsICchJywgMTczfSwJLyogrSAqLwoJeyc8JywgJzwnLCAxNzR9LAkvKiCuICovCgl7Jz4nLCAnPicsIDE3NX0sCS8qIK8gKi8KCXsnaicsICd1JywgMjMwfSwJLyog5iAqLwoJeydvJywgJy8nLCAyMzd9LAkvKiDtICovCgl7JysnLCAnLScsIDI0MX0sCS8qIPEgKi8KCXsnPicsICc9JywgMjQyfSwJLyog8iAqLwoJeyc8JywgJz0nLCAyNDN9LAkvKiDzICovCgl7JzonLCAnLScsIDI0Nn0sCS8qIPYgKi8KCXsnficsICd+JywgMjQ3fSwJLyog9yAqLwoJeyd+JywgJ28nLCAyNDh9LAkvKiD4ICovCgl7JzInLCAnMicsIDI1M30sCS8qIP0gKi8KCXtOVUwsIE5VTCwgTlVMfQoJfTsKCiNlbHNlCS8qICFfX01JTlRfXyAqLwojIGlmZGVmIEhQVVhfRElHUkFQSFMKCgkvKgoJICogZGlmZmVyZW50IEhQVVggZGlncmFwaHMKCSAqLwogICAgICAge3snQScsICdgJywgMTYxfSwJLyogoSAqLwoJeydBJywgJ14nLCAxNjJ9LAkvKiCiICovCgl7J0UnLCAnYCcsIDE2M30sCS8qIKMgKi8KCXsnRScsICdeJywgMTY0fSwJLyogpCAqLwoJeydFJywgJyInLCAxNjV9LAkvKiClICovCgl7J0knLCAnXicsIDE2Nn0sCS8qIKYgKi8KCXsnSScsICciJywgMTY3fSwJLyogpyAqLwoJeydcJycsICdcJycsIDE2OH0sCS8qIKggKi8KCXsnYCcsICdgJywgMTY5fSwJLyogqSAqLwoJeydeJywgJ14nLCAxNzB9LAkvKiCqICovCgl7JyInLCAnIicsIDE3MX0sCS8qIKsgKi8KCXsnficsICd+JywgMTcyfSwJLyogrCAqLwoJeydVJywgJ2AnLCAxNzN9LAkvKiCtICovCgl7J1UnLCAnXicsIDE3NH0sCS8qIK4gKi8KCXsnTCcsICc9JywgMTc1fSwJLyogryAqLwoJeyd+JywgJ18nLCAxNzZ9LAkvKiCwICovCgl7J1knLCAnXCcnLCAxNzd9LAkvKiCxICovCgl7J3knLCAnXCcnLCAxNzh9LAkvKiCyICovCgl7J34nLCAnbycsIDE3OX0sCS8qILMgKi8KCXsnQycsICcsJywgMTgwfSwJLyogtCAqLwoJeydjJywgJywnLCAxODF9LAkvKiC1ICovCgl7J04nLCAnficsIDE4Mn0sCS8qILYgKi8KCXsnbicsICd+JywgMTgzfSwJLyogtyAqLwoJeyd+JywgJyEnLCAxODR9LAkvKiC4ICovCgl7J34nLCAnPycsIDE4NX0sCS8qILkgKi8KCXsnbycsICd4JywgMTg2fSwJLyoguiAqLwoJeydMJywgJy0nLCAxODd9LAkvKiC7ICovCgl7J1knLCAnPScsIDE4OH0sCS8qILwgKi8KCXsncCcsICdwJywgMTg5fSwJLyogvSAqLwoJeydmJywgJ2wnLCAxOTB9LAkvKiC+ICovCgl7J2MnLCAnfCcsIDE5MX0sCS8qIL8gKi8KCXsnYScsICdeJywgMTkyfSwJLyogwCAqLwoJeydlJywgJ14nLCAxOTN9LAkvKiDBICovCgl7J28nLCAnXicsIDE5NH0sCS8qIMIgKi8KCXsndScsICdeJywgMTk1fSwJLyogwyAqLwoJeydhJywgJ1wnJywgMTk2fSwJLyogxCAqLwoJeydlJywgJ1wnJywgMTk3fSwJLyogxSAqLwoJeydvJywgJ1wnJywgMTk4fSwJLyogxiAqLwoJeyd1JywgJ1wnJywgMTk5fSwJLyogxyAqLwoJeydhJywgJ2AnLCAyMDB9LAkvKiDIICovCgl7J2UnLCAnYCcsIDIwMX0sCS8qIMkgKi8KCXsnbycsICdgJywgMjAyfSwJLyogyiAqLwoJeyd1JywgJ2AnLCAyMDN9LAkvKiDLICovCgl7J2EnLCAnIicsIDIwNH0sCS8qIMwgKi8KCXsnZScsICciJywgMjA1fSwJLyogzSAqLwoJeydvJywgJyInLCAyMDZ9LAkvKiDOICovCgl7J3UnLCAnIicsIDIwN30sCS8qIM8gKi8KCXsnQScsICdvJywgMjA4fSwJLyog0CAqLwoJeydpJywgJ14nLCAyMDl9LAkvKiDRICovCgl7J08nLCAnLycsIDIxMH0sCS8qINIgKi8KCXsnQScsICdFJywgMjExfSwJLyog0yAqLwoJeydhJywgJ28nLCAyMTJ9LAkvKiDUICovCgl7J2knLCAnXCcnLCAyMTN9LAkvKiDVICovCgl7J28nLCAnLycsIDIxNH0sCS8qINYgKi8KCXsnYScsICdlJywgMjE1fSwJLyog1yAqLwoJeydBJywgJyInLCAyMTZ9LAkvKiDYICovCgl7J2knLCAnYCcsIDIxN30sCS8qINkgKi8KCXsnTycsICciJywgMjE4fSwJLyog2iAqLwoJeydVJywgJyInLCAyMTl9LAkvKiDbICovCgl7J0UnLCAnXCcnLCAyMjB9LAkvKiDcICovCgl7J2knLCAnIicsIDIyMX0sCS8qIN0gKi8KCXsncycsICdzJywgMjIyfSwJLyog3iAqLwoJeydPJywgJ14nLCAyMjN9LAkvKiDfICovCgl7J0EnLCAnXCcnLCAyMjR9LAkvKiDgICovCgl7J0EnLCAnficsIDIyNX0sCS8qIOEgKi8KCXsnYScsICd+JywgMjI2fSwJLyog4iAqLwoJeydEJywgJy0nLCAyMjd9LAkvKiDjICovCgl7J2QnLCAnLScsIDIyOH0sCS8qIOQgKi8KCXsnSScsICdcJycsIDIyOX0sCS8qIOUgKi8KCXsnSScsICdgJywgMjMwfSwJLyog5iAqLwoJeydPJywgJ1wnJywgMjMxfSwJLyog5yAqLwoJeydPJywgJ2AnLCAyMzJ9LAkvKiDoICovCgl7J08nLCAnficsIDIzM30sCS8qIOkgKi8KCXsnbycsICd+JywgMjM0fSwJLyog6iAqLwoJeydTJywgJ34nLCAyMzV9LAkvKiDrICovCgl7J3MnLCAnficsIDIzNn0sCS8qIOwgKi8KCXsnVScsICdcJycsIDIzN30sCS8qIO0gKi8KCXsnWScsICciJywgMjM4fSwJLyog7iAqLwoJeyd5JywgJyInLCAyMzl9LAkvKiDvICovCgl7J3AnLCAnLScsIDI0MH0sCS8qIPAgKi8KCXsncCcsICd+JywgMjQxfSwJLyog8SAqLwoJeyd+JywgJy4nLCAyNDJ9LAkvKiDyICovCgl7J2onLCAndScsIDI0M30sCS8qIPMgKi8KCXsnUCcsICdwJywgMjQ0fSwJLyog9CAqLwoJeyczJywgJzQnLCAyNDV9LAkvKiD1ICovCgl7Jy0nLCAnLScsIDI0Nn0sCS8qIPYgKi8KCXsnMScsICc0JywgMjQ3fSwJLyog9yAqLwoJeycxJywgJzInLCAyNDh9LAkvKiD4ICovCgl7J2EnLCAnXycsIDI0OX0sCS8qIPkgKi8KCXsnbycsICdfJywgMjUwfSwJLyog+iAqLwoJeyc8JywgJzwnLCAyNTF9LAkvKiD7ICovCgl7J3gnLCAneCcsIDI1Mn0sCS8qIPwgKi8KCXsnPicsICc+JywgMjUzfSwJLyog/SAqLwoJeycrJywgJy0nLCAyNTR9LAkvKiD+ICovCgl7J24nLCAndScsIDI1NX0sCS8qIHggWFggKi8KCXtOVUwsIE5VTCwgTlVMfQoJfTsKCiMgZWxzZQkvKiAhSFBVWF9ESUdSQVBIUyAqLwoKIyAgaWZkZWYgRUJDRElDCgoJLyoKCSAqIEVCQ0RJQyAtIElTTyBkaWdyYXBocwoJICogVE9ETzogRUJDRElDIFRhYmxlIGlzIENvZGUtUGFnZSAxMDQ3CgkgKi8KICAgICAgIHt7J2EnLCAnXicsICAgIDY2fSwJLyog4iAqLwoJeydhJywgJyInLCAgICA2N30sCS8qIOQgKi8KCXsnYScsICdgJywgICAgNjh9LAkvKiDgICovCgl7J2EnLCAnXCcnLCAgIDY5fSwJLyog4SAqLwoJeydhJywgJ34nLCAgICA3MH0sCS8qIOMgKi8KCXsnYScsICdAJywgICAgNzF9LAkvKiDlICovCgl7J2EnLCAnYScsICAgIDcxfSwJLyog5SAqLwoJeydjJywgJywnLCAgICA3Mn0sCS8qIOcgKi8KCXsnbicsICd+JywgICAgNzN9LAkvKiDxICovCgl7J2MnLCAnfCcsICAgIDc0fSwJLyogoiAqLwoJeydlJywgJ1wnJywgICA4MX0sCS8qIOkgKi8KCXsnZScsICdeJywgICAgODJ9LAkvKiDqICovCgl7J2UnLCAnIicsICAgIDgzfSwJLyog6yAqLwoJeydlJywgJ2AnLCAgICA4NH0sCS8qIOggKi8KCXsnaScsICdcJycsICAgODV9LAkvKiDtICovCgl7J2knLCAnXicsICAgIDg2fSwJLyog7iAqLwoJeydpJywgJyInLCAgICA4N30sCS8qIO8gKi8KCXsnaScsICdgJywgICAgODh9LAkvKiDsICovCgl7J3MnLCAncycsICAgIDg5fSwJLyog3yAqLwoJeydBJywgJ14nLCAgICA5OH0sCS8qIMIgKi8KCXsnQScsICciJywgICAgOTl9LAkvKiDEICovCgl7J0EnLCAnYCcsICAgMTAwfSwJLyogwCAqLwoJeydBJywgJ1wnJywgIDEwMX0sCS8qIMEgKi8KCXsnQScsICd+JywgICAxMDJ9LAkvKiDDICovCgl7J0EnLCAnQCcsICAgMTAzfSwJLyogxSAqLwoJeydBJywgJ0EnLCAgIDEwM30sCS8qIMUgKi8KCXsnQycsICcsJywgICAxMDR9LAkvKiDHICovCgl7J04nLCAnficsICAgMTA1fSwJLyog0SAqLwoJeyd8JywgJ3wnLCAgIDEwNn0sCS8qIKYgKi8KCXsnbycsICcvJywgICAxMTJ9LAkvKiD4ICovCgl7J0UnLCAnXCcnLCAgMTEzfSwJLyogySAqLwoJeydFJywgJ14nLCAgIDExNH0sCS8qIMogKi8KCXsnRScsICciJywgICAxMTV9LAkvKiDLICovCgl7J0UnLCAnYCcsICAgMTE2fSwJLyogyCAqLwoJeydJJywgJ1wnJywgIDExN30sCS8qIM0gKi8KCXsnSScsICdeJywgICAxMTh9LAkvKiDOICovCgl7J0knLCAnIicsICAgMTE5fSwJLyogzyAqLwoJeydJJywgJ2AnLCAgIDEyMH0sCS8qIMwgKi8KCXsnTycsICcvJywgICAxMjh9LAkvKiAwLyBYWCAqLwoJeyc8JywgJzwnLCAgIDEzOH0sCS8qIKsgKi8KCXsnPicsICc+JywgICAxMzl9LAkvKiC7ICovCgl7J2QnLCAnLScsICAgMTQwfSwJLyog8CAqLwoJeyd5JywgJ1wnJywgIDE0MX0sCS8qIP0gKi8KCXsnaScsICdwJywgICAxNDJ9LAkvKiD+ICovCgl7JysnLCAnLScsICAgMTQzfSwJLyogsSAqLwoJeyd+JywgJ28nLCAgIDE0NH0sCS8qILAgKi8KCXsnYScsICctJywgICAxNTR9LAkvKiCqICovCgl7J28nLCAnLScsICAgMTU1fSwJLyoguiAqLwoJeydhJywgJ2UnLCAgIDE1Nn0sCS8qIOYgKi8KCXsnLCcsICcsJywgICAxNTd9LAkvKiAsIFhYICovCgl7J0EnLCAnRScsICAgMTU4fSwJLyogxiAqLwoJeydvJywgJ3gnLCAgIDE1OX0sCS8qIKQgLSBjdXJyZW5jeSBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeydlJywgJz0nLCAgIDE1OX0sCS8qIKQgLSBldXJvIHN5bWJvbCBpbiBJU08gODg1OS0xNSAqLwoJeydFJywgJ3UnLCAgIDE1OX0sCS8qIKQgLSBldXJvIHN5bWJvbCBpbiBJU08gODg1OS0xNSAqLwoJeydqJywgJ3UnLCAgIDE2MH0sCS8qILUgKi8KCXsneScsICciJywgICAxNjd9LAkvKiB4IFhYICovCgl7J34nLCAnIScsICAgMTcwfSwJLyogoSAqLwoJeyd+JywgJz8nLCAgIDE3MX0sCS8qIL8gKi8KCXsnRCcsICctJywgICAxNzJ9LAkvKiDQICovCgl7J0knLCAncCcsICAgMTc0fSwJLyog3iAqLwoJeydyJywgJ08nLCAgIDE3NX0sCS8qIK4gKi8KCXsnLScsICcsJywgICAxNzZ9LAkvKiCsICovCgl7JyQnLCAnJCcsICAgMTc3fSwJLyogoyAqLwoJeydZJywgJy0nLCAgIDE3OH0sCS8qIKUgKi8KCXsnficsICcuJywgICAxNzl9LAkvKiC3ICovCgl7J2MnLCAnTycsICAgMTgwfSwJLyogqSAqLwoJeydwJywgJ2EnLCAgIDE4MX0sCS8qIKcgKi8KCXsncCcsICdwJywgICAxODJ9LAkvKiC2ICovCgl7JzEnLCAnNCcsICAgMTgzfSwJLyogvCAqLwoJeycxJywgJzInLCAgIDE4NH0sCS8qIL0gKi8KCXsnMycsICc0JywgICAxODV9LAkvKiC+ICovCgl7J1knLCAnXCcnLCAgMTg2fSwJLyog3SAqLwoJeyciJywgJyInLCAgIDE4N30sCS8qIKggKi8KCXsnLScsICc9JywgICAxODh9LAkvKiCvICovCgl7J1wnJywgJ1wnJywgMTkwfSwJLyogtCAqLwoJeydPJywgJ0UnLCAgIDE5MX0sCS8qINcgLSBPRSBpbiBJU08gODg1OS0xNSAqLwoJeycvJywgJ1xcJywgIDE5MX0sCS8qINcgLSBtdWx0aXBsaWNhdGlvbiBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeyctJywgJy0nLCAgIDIwMn0sCS8qIK0gKi8KCXsnbycsICdeJywgICAyMDN9LAkvKiD0ICovCgl7J28nLCAnIicsICAgMjA0fSwJLyog9iAqLwoJeydvJywgJ2AnLCAgIDIwNX0sCS8qIPIgKi8KCXsnbycsICdcJycsICAyMDZ9LAkvKiDzICovCgl7J28nLCAnficsICAgMjA3fSwJLyog9SAqLwoJeycxJywgJzEnLCAgIDIxOH0sCS8qILkgKi8KCXsndScsICdeJywgICAyMTl9LAkvKiD7ICovCgl7J3UnLCAnIicsICAgMjIwfSwJLyog/CAqLwoJeyd1JywgJ2AnLCAgIDIyMX0sCS8qIPkgKi8KCXsndScsICdcJycsICAyMjJ9LAkvKiD6ICovCgl7JzonLCAnLScsICAgMjI1fSwJLyog9yAtIGRpdmlzaW9uIHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J28nLCAnZScsICAgMjI1fSwJLyog9yAtIG9lIGluIElTTyA4ODU5LTE1ICovCgl7JzInLCAnMicsICAgMjM0fSwJLyogsiAqLwoJeydPJywgJ14nLCAgIDIzNX0sCS8qINQgKi8KCXsnTycsICciJywgICAyMzZ9LAkvKiDWICovCgl7J08nLCAnYCcsICAgMjM3fSwJLyog0iAqLwoJeydPJywgJ1wnJywgIDIzOH0sCS8qINMgKi8KCXsnTycsICd+JywgICAyMzl9LAkvKiDVICovCgl7JzMnLCAnMycsICAgMjUwfSwJLyogsyAqLwoJeydVJywgJ14nLCAgIDI1MX0sCS8qINsgKi8KCXsnVScsICciJywgICAyNTJ9LAkvKiDcICovCgl7J1UnLCAnYCcsICAgMjUzfSwJLyog2SAqLwoJeydVJywgJ1wnJywgIDI1NH0sCS8qINogKi8KCXtOVUwsIE5VTCwgTlVMfQoJfTsKCiMgIGVsc2UKIyAgIGlmIGRlZmluZWQoTUFDT1NfWCkgJiYgIWRlZmluZWQoRkVBVF9NQllURSkKCgkvKgoJICogTWFjaW50b3NoIGRpZ3JhcGhzCgkgKi8KICAgICAgIHt7J2EnLCAndCcsIDY0fSwJCS8qIEAgKi8KCXsnQScsICciJywgMTI4fSwJLyogfkAgWFggKi8KCXsnQScsICdvJywgMTI5fSwJLyogxSAqLwoJeydDJywgJywnLCAxMzB9LAkvKiDHICovCgl7J0UnLCAnXCcnLCAxMzF9LAkvKiDJICovCgl7J04nLCAnficsIDEzMn0sCS8qINEgKi8KCXsnTycsICciJywgMTMzfSwJLyog1iAqLwoJeydVJywgJyInLCAxMzR9LAkvKiDcICovCgl7J2EnLCAnXCcnLCAxMzV9LAkvKiB+RyBYWCAqLwoJeydhJywgJ2AnLCAxMzZ9LAkvKiB+SCBYWCAqLwoJeydhJywgJ14nLCAxMzd9LAkvKiDiICovCgl7J2EnLCAnIicsIDEzOH0sCS8qIOQgKi8KCXsnYScsICd+JywgMTM5fSwJLyog4yAqLwoJeydhJywgJ28nLCAxNDB9LAkvKiDlICovCgl7J2MnLCAnLCcsIDE0MX0sCS8qIOcgKi8KCXsnZScsICdcJycsIDE0Mn0sCS8qIOkgKi8KCXsnZScsICdgJywgMTQzfSwJLyog6CAqLwoJeydlJywgJ14nLCAxNDR9LAkvKiDqICovCgl7J2UnLCAnIicsIDE0NX0sCS8qIOsgKi8KCXsnaScsICdcJycsIDE0Nn0sCS8qIO0gKi8KCXsnaScsICdgJywgMTQ3fSwJLyog7CAqLwoJeydpJywgJ14nLCAxNDh9LAkvKiDuICovCgl7J2knLCAnIicsIDE0OX0sCS8qIO8gKi8KCXsnbicsICd+JywgMTUwfSwJLyog8SAqLwoJeydvJywgJ1wnJywgMTUxfSwJLyog8yAqLwoJeydvJywgJ2AnLCAxNTJ9LAkvKiDyICovCgl7J28nLCAnXicsIDE1M30sCS8qIPQgKi8KCXsnbycsICciJywgMTU0fSwJLyog9iAqLwoJeydvJywgJ34nLCAxNTV9LAkvKiBvICovCgl7J3UnLCAnXCcnLCAxNTZ9LAkvKiD6ICovCgl7J3UnLCAnYCcsIDE1N30sCS8qIH5dIFhYICovCgl7J3UnLCAnXicsIDE1OH0sCS8qIPsgKi8KCXsndScsICciJywgMTU5fSwJLyog/CAqLwoJeycrJywgJ18nLCAxNjB9LAkvKiDdICovCgl7J34nLCAnbycsIDE2MX0sCS8qILAgKi8KCXsnYycsICd8JywgMTYyfSwJLyogoiAqLwoJeyckJywgJyQnLCAxNjN9LAkvKiCjICovCgl7J3AnLCAnYScsIDE2NH0sCS8qIKcgKi8KCXsnLicsICcuJywgMTY1fSwJLyogKiAqLwoJeydQJywgJ1AnLCAxNjZ9LAkvKiC2ICovCgl7J3MnLCAncycsIDE2N30sCS8qIN8gKi8KCXsncicsICdPJywgMTY4fSwJLyogriAqLwoJeydjJywgJ08nLCAxNjl9LAkvKiCpICovCgl7J1QnLCAnTScsIDE3MH0sCS8qIIEgKi8KCXsnPScsICcvJywgMTczfSwJLyoggiAqLwoJeydBJywgJ0UnLCAxNzR9LAkvKiDGICovCgl7J08nLCAnLycsIDE3NX0sCS8qINggKi8KCXsnMCcsICcwJywgMTc2fSwJLyoggyAqLwoJeycrJywgJy0nLCAxNzd9LAkvKiCxICovCgl7JzwnLCAnPScsIDE3OH0sCS8qIL4gKi8KCXsnPicsICc9JywgMTc5fSwJLyoghCAqLwoJeydZJywgJy0nLCAxODB9LAkvKiClICovCgl7J2onLCAndScsIDE4MX0sCS8qILUgKi8KCXsnbScsICd1JywgMTgxfSwJLyogtSAqLwoJeydkJywgJ2QnLCAxODJ9LAkvKiCPICovCgl7J1MnLCAnUycsIDE4M30sCS8qIIUgKi8KCXsnUycsICdJJywgMTgzfSwJLyoghSAqLwoJeydQJywgJ0knLCAxODR9LAkvKiC9ICovCgl7J3AnLCAnaScsIDE4NX0sCS8qILwgKi8KCXsnSScsICdJJywgMTg2fSwJLyoghiAqLwoJeydhJywgJy0nLCAxODd9LAkvKiC7ICovCgl7J28nLCAnLScsIDE4OH0sCS8qILogKi8KCXsnTycsICdNJywgMTg5fSwJLyogvSAqLwoJeydhJywgJ2UnLCAxOTB9LAkvKiDmICovCgl7J28nLCAnLycsIDE5MX0sCS8qIPggKi8KCXsnficsICc/JywgMTkyfSwJLyogvyAqLwoJeyd+JywgJyEnLCAxOTN9LAkvKiChICovCgl7Jy0nLCAnLCcsIDE5NH0sCS8qIKwgKi8KCXsndicsICctJywgMTk1fSwJLyogfkggWFggKi8KCXsnZicsICctJywgMTk2fSwJLyognyAqLwoJeyd+JywgJ34nLCAxOTd9LAkvKiCJICovCgl7J0QnLCAnRScsIDE5OH0sCS8qIJAgKi8KCXsnPCcsICc8JywgMTk5fSwJLyogqyAqLwoJeyc+JywgJz4nLCAyMDB9LAkvKiC7ICovCgl7Jy4nLCAnOicsIDIwMX0sCS8qIIogKi8KCXsnQScsICdgJywgMjAzfSwJLyogwCAqLwoJeydBJywgJ34nLCAyMDR9LAkvKiDDICovCgl7J08nLCAnficsIDIwNX0sCS8qINUgKi8KCXsnTycsICdFJywgMjA2fSwJLyogkSAqLwoJeydvJywgJ2UnLCAyMDd9LAkvKiCmICovCgl7Jy0nLCAnLicsIDIwOH0sCS8qIC0gKi8KCXsnLScsICctJywgMjA5fSwJLyogLSAqLwoJeydgJywgJ2AnLCAyMTB9LAkvKiAiICovCgl7J1wnJywgJ1wnJywgMjExfSwJLyogIiAqLwoJeydgJywgJyAnLCAyMTJ9LAkvKiAnICovCgl7J1wnJywgJyAnLCAyMTN9LAkvKiAnICovCgl7Jy0nLCAnOicsIDIxNH0sCS8qIPcgKi8KCXsnRCcsICdJJywgMjE1fSwJLyog1yAqLwoJeyd5JywgJzonLCAyMTZ9LAkvKiD/ICovCgl7J1knLCAnOicsIDIxN30sCS8qII0gKi8KCXsnLycsICcvJywgMjE4fSwJLyogjiAqLwoJeydFJywgJz0nLCAyMTl9LAkvKiCkIEV1cm8gU3lzdGVtID49OC41ICovCgl7J28nLCAneCcsIDIxOX0sCS8qIKQgQ3VycmVuY3kgU3lzdGVtIDw9OC4xKi8KCXsnPCcsICcgJywgMjIwfSwJLyog0CAqLwoJeyc+JywgJyAnLCAyMjF9LAkvKiDwICovCgl7J2YnLCAnaScsIDIyMn0sCS8qIN4gKi8KCXsnZicsICdsJywgMjIzfSwJLyog/iAqLwoJeycrJywgJysnLCAyMjR9LAkvKiD9ICovCgl7J34nLCAnLicsIDIyNX0sCS8qILcgKi8KCXsnLCcsICcgJywgMjI2fSwJLyogkiAqLwoJeycsJywgJywnLCAyMjd9LAkvKiCTICovCgl7JyUnLCAnLicsIDIyOH0sCS8qIJQgKi8KCXsnJScsICcwJywgMjI4fSwJLyoglCAqLwoJeydBJywgJ14nLCAyMjl9LAkvKiDCICovCgl7J0UnLCAnXicsIDIzMH0sCS8qIMogKi8KCXsnQScsICdcJycsIDIzMX0sCS8qIMEgKi8KCXsnRScsICciJywgMjMyfSwJLyogyyAqLwoJeydFJywgJ2AnLCAyMzN9LAkvKiDIICovCgl7J0knLCAnXCcnLCAyMzR9LAkvKiDNICovCgl7J0knLCAnXicsIDIzNX0sCS8qIM4gKi8KCXsnSScsICciJywgMjM2fSwJLyogzyAqLwoJeydJJywgJ2AnLCAyMzd9LAkvKiDMICovCgl7J08nLCAnXCcnLCAyMzh9LAkvKiDTICovCgl7J08nLCAnXicsIDIzOX0sCS8qINQgKi8KCXsnQScsICdQJywgMjQwfSwJLyoglSAqLwoJeydPJywgJ2AnLCAyNDF9LAkvKiDSICovCgl7J1UnLCAnXCcnLCAyNDJ9LAkvKiDaICovCgl7J1UnLCAnXicsIDI0M30sCS8qINsgKi8KCXsnVScsICdgJywgMjQ0fSwJLyog2SAqLwoJeydpJywgJy4nLCAyNDV9LAkvKiCeICovCgl7TlVMLCBOVUwsIE5VTH0KCX07CgojICAgZWxzZQkvKiAhTUFDT1NfWCAqLwoKIyAgICBpZmRlZiBPTERfRElHUkFQSFMKCgkvKgoJICogZGlncmFwaHMgY29tcGF0aWJsZSB3aXRoIFZpbSA1LngKCSAqLwogICAgICAge3snficsICchJywgMTYxfSwJLyogoSAqLwoJeydjJywgJ3wnLCAxNjJ9LAkvKiCiICovCgl7JyQnLCAnJCcsIDE2M30sCS8qIKMgKi8KCXsnbycsICd4JywgMTY0fSwJLyogpCAtIGN1cnJlbmN5IHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J2UnLCAnPScsIDE2NH0sCS8qIKQgLSBldXJvIHN5bWJvbCBpbiBJU08gODg1OS0xNSAqLwoJeydZJywgJy0nLCAxNjV9LAkvKiClICovCgl7J3wnLCAnfCcsIDE2Nn0sCS8qIKYgKi8KCXsncCcsICdhJywgMTY3fSwJLyogpyAqLwoJeyciJywgJyInLCAxNjh9LAkvKiCoICovCgl7J2MnLCAnTycsIDE2OX0sCS8qIKkgKi8KCXsnYScsICctJywgMTcwfSwJLyogqiAqLwoJeyc8JywgJzwnLCAxNzF9LAkvKiCrICovCgl7Jy0nLCAnLCcsIDE3Mn0sCS8qIKwgKi8KCXsnLScsICctJywgMTczfSwJLyogrSAqLwoJeydyJywgJ08nLCAxNzR9LAkvKiCuICovCgl7Jy0nLCAnPScsIDE3NX0sCS8qIK8gKi8KCXsnficsICdvJywgMTc2fSwJLyogsCAqLwoJeycrJywgJy0nLCAxNzd9LAkvKiCxICovCgl7JzInLCAnMicsIDE3OH0sCS8qILIgKi8KCXsnMycsICczJywgMTc5fSwJLyogsyAqLwoJeydcJycsICdcJycsIDE4MH0sCS8qILQgKi8KCXsnaicsICd1JywgMTgxfSwJLyogtSAqLwoJeydwJywgJ3AnLCAxODJ9LAkvKiC2ICovCgl7J34nLCAnLicsIDE4M30sCS8qILcgKi8KCXsnLCcsICcsJywgMTg0fSwJLyoguCAqLwoJeycxJywgJzEnLCAxODV9LAkvKiC5ICovCgl7J28nLCAnLScsIDE4Nn0sCS8qILogKi8KCXsnPicsICc+JywgMTg3fSwJLyoguyAqLwoJeycxJywgJzQnLCAxODh9LAkvKiC8ICovCgl7JzEnLCAnMicsIDE4OX0sCS8qIL0gKi8KCXsnMycsICc0JywgMTkwfSwJLyogviAqLwoJeyd+JywgJz8nLCAxOTF9LAkvKiC/ICovCgl7J0EnLCAnYCcsIDE5Mn0sCS8qIMAgKi8KCXsnQScsICdcJycsIDE5M30sCS8qIMEgKi8KCXsnQScsICdeJywgMTk0fSwJLyogwiAqLwoJeydBJywgJ34nLCAxOTV9LAkvKiDDICovCgl7J0EnLCAnIicsIDE5Nn0sCS8qIMQgKi8KCXsnQScsICdAJywgMTk3fSwJLyogxSAqLwoJeydBJywgJ0EnLCAxOTd9LAkvKiDFICovCgl7J0EnLCAnRScsIDE5OH0sCS8qIMYgKi8KCXsnQycsICcsJywgMTk5fSwJLyogxyAqLwoJeydFJywgJ2AnLCAyMDB9LAkvKiDIICovCgl7J0UnLCAnXCcnLCAyMDF9LAkvKiDJICovCgl7J0UnLCAnXicsIDIwMn0sCS8qIMogKi8KCXsnRScsICciJywgMjAzfSwJLyogyyAqLwoJeydJJywgJ2AnLCAyMDR9LAkvKiDMICovCgl7J0knLCAnXCcnLCAyMDV9LAkvKiDNICovCgl7J0knLCAnXicsIDIwNn0sCS8qIM4gKi8KCXsnSScsICciJywgMjA3fSwJLyogzyAqLwoJeydEJywgJy0nLCAyMDh9LAkvKiDQICovCgl7J04nLCAnficsIDIwOX0sCS8qINEgKi8KCXsnTycsICdgJywgMjEwfSwJLyog0iAqLwoJeydPJywgJ1wnJywgMjExfSwJLyog0yAqLwoJeydPJywgJ14nLCAyMTJ9LAkvKiDUICovCgl7J08nLCAnficsIDIxM30sCS8qINUgKi8KCXsnTycsICciJywgMjE0fSwJLyog1iAqLwoJeycvJywgJ1xcJywgMjE1fSwJLyog1yAtIG11bHRpcGxpY2F0aW9uIHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J08nLCAnRScsIDIxNX0sCS8qINcgLSBPRSBpbiBJU08gODg1OS0xNSAqLwoJeydPJywgJy8nLCAyMTZ9LAkvKiDYICovCgl7J1UnLCAnYCcsIDIxN30sCS8qINkgKi8KCXsnVScsICdcJycsIDIxOH0sCS8qINogKi8KCXsnVScsICdeJywgMjE5fSwJLyog2yAqLwoJeydVJywgJyInLCAyMjB9LAkvKiDcICovCgl7J1knLCAnXCcnLCAyMjF9LAkvKiDdICovCgl7J0knLCAncCcsIDIyMn0sCS8qIN4gKi8KCXsncycsICdzJywgMjIzfSwJLyog3yAqLwoJeydhJywgJ2AnLCAyMjR9LAkvKiDgICovCgl7J2EnLCAnXCcnLCAyMjV9LAkvKiDhICovCgl7J2EnLCAnXicsIDIyNn0sCS8qIOIgKi8KCXsnYScsICd+JywgMjI3fSwJLyog4yAqLwoJeydhJywgJyInLCAyMjh9LAkvKiDkICovCgl7J2EnLCAnQCcsIDIyOX0sCS8qIOUgKi8KCXsnYScsICdhJywgMjI5fSwJLyog5SAqLwoJeydhJywgJ2UnLCAyMzB9LAkvKiDmICovCgl7J2MnLCAnLCcsIDIzMX0sCS8qIOcgKi8KCXsnZScsICdgJywgMjMyfSwJLyog6CAqLwoJeydlJywgJ1wnJywgMjMzfSwJLyog6SAqLwoJeydlJywgJ14nLCAyMzR9LAkvKiDqICovCgl7J2UnLCAnIicsIDIzNX0sCS8qIOsgKi8KCXsnaScsICdgJywgMjM2fSwJLyog7CAqLwoJeydpJywgJ1wnJywgMjM3fSwJLyog7SAqLwoJeydpJywgJ14nLCAyMzh9LAkvKiDuICovCgl7J2knLCAnIicsIDIzOX0sCS8qIO8gKi8KCXsnZCcsICctJywgMjQwfSwJLyog8CAqLwoJeyduJywgJ34nLCAyNDF9LAkvKiDxICovCgl7J28nLCAnYCcsIDI0Mn0sCS8qIPIgKi8KCXsnbycsICdcJycsIDI0M30sCS8qIPMgKi8KCXsnbycsICdeJywgMjQ0fSwJLyog9CAqLwoJeydvJywgJ34nLCAyNDV9LAkvKiD1ICovCgl7J28nLCAnIicsIDI0Nn0sCS8qIPYgKi8KCXsnOicsICctJywgMjQ3fSwJLyog9yAtIGRpdmlzaW9uIHN5bWJvbCBpbiBJU08gODg1OS0xICovCgl7J28nLCAnZScsIDI0N30sCS8qIPcgLSBvZSBpbiBJU08gODg1OS0xNSAqLwoJeydvJywgJy8nLCAyNDh9LAkvKiD4ICovCgl7J3UnLCAnYCcsIDI0OX0sCS8qIPkgKi8KCXsndScsICdcJycsIDI1MH0sCS8qIPogKi8KCXsndScsICdeJywgMjUxfSwJLyog+yAqLwoJeyd1JywgJyInLCAyNTJ9LAkvKiD8ICovCgl7J3knLCAnXCcnLCAyNTN9LAkvKiD9ICovCgl7J2knLCAncCcsIDI1NH0sCS8qIP4gKi8KCXsneScsICciJywgMjU1fSwJLyogeCBYWCAqLwoJe05VTCwgTlVMLCBOVUx9Cgl9OwojICAgIGVsc2UgLyogT0xEX0RJR1JBUEhTICovCgoJLyoKCSAqIGRpZ3JhcGhzIGZvciBVbmljb2RlIGZyb20gUkZDMTM0NQoJICogKGFsc28gd29yayBmb3IgSVNPLTg4NTktMSBha2EgbGF0aW4xKQoJICovCiAgICAgICB7Cgl7J04nLCAnVScsIDB4MGF9LAkvKiBMRiBmb3IgTlVMICovCgl7J1MnLCAnSCcsIDB4MDF9LAoJeydTJywgJ1gnLCAweDAyfSwKCXsnRScsICdYJywgMHgwM30sCgl7J0UnLCAnVCcsIDB4MDR9LAoJeydFJywgJ1EnLCAweDA1fSwKCXsnQScsICdLJywgMHgwNn0sCgl7J0InLCAnTCcsIDB4MDd9LAoJeydCJywgJ1MnLCAweDA4fSwKCXsnSCcsICdUJywgMHgwOX0sCgl7J0wnLCAnRicsIDB4MGF9LAoJeydWJywgJ1QnLCAweDBifSwKCXsnRicsICdGJywgMHgwY30sCgl7J0MnLCAnUicsIDB4MGR9LAoJeydTJywgJ08nLCAweDBlfSwKCXsnUycsICdJJywgMHgwZn0sCgl7J0QnLCAnTCcsIDB4MTB9LAoJeydEJywgJzEnLCAweDExfSwKCXsnRCcsICcyJywgMHgxMn0sCgl7J0QnLCAnMycsIDB4MTN9LAoJeydEJywgJzQnLCAweDE0fSwKCXsnTicsICdLJywgMHgxNX0sCgl7J1MnLCAnWScsIDB4MTZ9LAoJeydFJywgJ0InLCAweDE3fSwKCXsnQycsICdOJywgMHgxOH0sCgl7J0UnLCAnTScsIDB4MTl9LAoJeydTJywgJ0InLCAweDFhfSwKCXsnRScsICdDJywgMHgxYn0sCgl7J0YnLCAnUycsIDB4MWN9LAoJeydHJywgJ1MnLCAweDFkfSwKCXsnUicsICdTJywgMHgxZX0sCgl7J1UnLCAnUycsIDB4MWZ9LAoJeydTJywgJ1AnLCAweDIwfSwKCXsnTicsICdiJywgMHgyM30sCgl7J0QnLCAnTycsIDB4MjR9LAoJeydBJywgJ3QnLCAweDQwfSwKCXsnPCcsICcoJywgMHg1Yn0sCgl7Jy8nLCAnLycsIDB4NWN9LAoJeycpJywgJz4nLCAweDVkfSwKCXsnXCcnLCAnPicsIDB4NWV9LAoJeydcJycsICchJywgMHg2MH0sCgl7JygnLCAnIScsIDB4N2J9LAoJeychJywgJyEnLCAweDdjfSwKCXsnIScsICcpJywgMHg3ZH0sCgl7J1wnJywgJz8nLCAweDdlfSwKCXsnRCcsICdUJywgMHg3Zn0sCgl7J1AnLCAnQScsIDB4ODB9LAoJeydIJywgJ08nLCAweDgxfSwKCXsnQicsICdIJywgMHg4Mn0sCgl7J04nLCAnSCcsIDB4ODN9LAoJeydJJywgJ04nLCAweDg0fSwKCXsnTicsICdMJywgMHg4NX0sCgl7J1MnLCAnQScsIDB4ODZ9LAoJeydFJywgJ1MnLCAweDg3fSwKCXsnSCcsICdTJywgMHg4OH0sCgl7J0gnLCAnSicsIDB4ODl9LAoJeydWJywgJ1MnLCAweDhhfSwKCXsnUCcsICdEJywgMHg4Yn0sCgl7J1AnLCAnVScsIDB4OGN9LAoJeydSJywgJ0knLCAweDhkfSwKCXsnUycsICcyJywgMHg4ZX0sCgl7J1MnLCAnMycsIDB4OGZ9LAoJeydEJywgJ0MnLCAweDkwfSwKCXsnUCcsICcxJywgMHg5MX0sCgl7J1AnLCAnMicsIDB4OTJ9LAoJeydUJywgJ1MnLCAweDkzfSwKCXsnQycsICdDJywgMHg5NH0sCgl7J00nLCAnVycsIDB4OTV9LAoJeydTJywgJ0cnLCAweDk2fSwKCXsnRScsICdHJywgMHg5N30sCgl7J1MnLCAnUycsIDB4OTh9LAoJeydHJywgJ0MnLCAweDk5fSwKCXsnUycsICdDJywgMHg5YX0sCgl7J0MnLCAnSScsIDB4OWJ9LAoJeydTJywgJ1QnLCAweDljfSwKCXsnTycsICdDJywgMHg5ZH0sCgl7J1AnLCAnTScsIDB4OWV9LAoJeydBJywgJ0MnLCAweDlmfSwKCXsnTicsICdTJywgMHhhMH0sCgl7JyEnLCAnSScsIDB4YTF9LAoJeydDJywgJ3QnLCAweGEyfSwKCXsnUCcsICdkJywgMHhhM30sCgl7J0MnLCAndScsIDB4YTR9LAoJeydZJywgJ2UnLCAweGE1fSwKCXsnQicsICdCJywgMHhhNn0sCgl7J1MnLCAnRScsIDB4YTd9LAoJeydcJycsICc6JywgMHhhOH0sCgl7J0MnLCAnbycsIDB4YTl9LAoJeyctJywgJ2EnLCAweGFhfSwKCXsnPCcsICc8JywgMHhhYn0sCgl7J04nLCAnTycsIDB4YWN9LAoJeyctJywgJy0nLCAweGFkfSwKCXsnUicsICdnJywgMHhhZX0sCgl7J1wnJywgJ20nLCAweGFmfSwKCXsnRCcsICdHJywgMHhiMH0sCgl7JysnLCAnLScsIDB4YjF9LAoJeycyJywgJ1MnLCAweGIyfSwKCXsnMycsICdTJywgMHhiM30sCgl7J1wnJywgJ1wnJywgMHhiNH0sCgl7J00nLCAneScsIDB4YjV9LAoJeydQJywgJ0knLCAweGI2fSwKCXsnLicsICdNJywgMHhiN30sCgl7J1wnJywgJywnLCAweGI4fSwKCXsnMScsICdTJywgMHhiOX0sCgl7Jy0nLCAnbycsIDB4YmF9LAoJeyc+JywgJz4nLCAweGJifSwKCXsnMScsICc0JywgMHhiY30sCgl7JzEnLCAnMicsIDB4YmR9LAoJeyczJywgJzQnLCAweGJlfSwKCXsnPycsICdJJywgMHhiZn0sCgl7J0EnLCAnIScsIDB4YzB9LAoJeydBJywgJ1wnJywgMHhjMX0sCgl7J0EnLCAnPicsIDB4YzJ9LAoJeydBJywgJz8nLCAweGMzfSwKCXsnQScsICc6JywgMHhjNH0sCgl7J0EnLCAnQScsIDB4YzV9LAoJeydBJywgJ0UnLCAweGM2fSwKCXsnQycsICcsJywgMHhjN30sCgl7J0UnLCAnIScsIDB4Yzh9LAoJeydFJywgJ1wnJywgMHhjOX0sCgl7J0UnLCAnPicsIDB4Y2F9LAoJeydFJywgJzonLCAweGNifSwKCXsnSScsICchJywgMHhjY30sCgl7J0knLCAnXCcnLCAweGNkfSwKCXsnSScsICc+JywgMHhjZX0sCgl7J0knLCAnOicsIDB4Y2Z9LAoJeydEJywgJy0nLCAweGQwfSwKCXsnTicsICc/JywgMHhkMX0sCgl7J08nLCAnIScsIDB4ZDJ9LAoJeydPJywgJ1wnJywgMHhkM30sCgl7J08nLCAnPicsIDB4ZDR9LAoJeydPJywgJz8nLCAweGQ1fSwKCXsnTycsICc6JywgMHhkNn0sCgl7JyonLCAnWCcsIDB4ZDd9LAoJeydPJywgJy8nLCAweGQ4fSwKCXsnVScsICchJywgMHhkOX0sCgl7J1UnLCAnXCcnLCAweGRhfSwKCXsnVScsICc+JywgMHhkYn0sCgl7J1UnLCAnOicsIDB4ZGN9LAoJeydZJywgJ1wnJywgMHhkZH0sCgl7J1QnLCAnSCcsIDB4ZGV9LAoJeydzJywgJ3MnLCAweGRmfSwKCXsnYScsICchJywgMHhlMH0sCgl7J2EnLCAnXCcnLCAweGUxfSwKCXsnYScsICc+JywgMHhlMn0sCgl7J2EnLCAnPycsIDB4ZTN9LAoJeydhJywgJzonLCAweGU0fSwKCXsnYScsICdhJywgMHhlNX0sCgl7J2EnLCAnZScsIDB4ZTZ9LAoJeydjJywgJywnLCAweGU3fSwKCXsnZScsICchJywgMHhlOH0sCgl7J2UnLCAnXCcnLCAweGU5fSwKCXsnZScsICc+JywgMHhlYX0sCgl7J2UnLCAnOicsIDB4ZWJ9LAoJeydpJywgJyEnLCAweGVjfSwKCXsnaScsICdcJycsIDB4ZWR9LAoJeydpJywgJz4nLCAweGVlfSwKCXsnaScsICc6JywgMHhlZn0sCgl7J2QnLCAnLScsIDB4ZjB9LAoJeyduJywgJz8nLCAweGYxfSwKCXsnbycsICchJywgMHhmMn0sCgl7J28nLCAnXCcnLCAweGYzfSwKCXsnbycsICc+JywgMHhmNH0sCgl7J28nLCAnPycsIDB4ZjV9LAoJeydvJywgJzonLCAweGY2fSwKCXsnLScsICc6JywgMHhmN30sCgl7J28nLCAnLycsIDB4Zjh9LAoJeyd1JywgJyEnLCAweGY5fSwKCXsndScsICdcJycsIDB4ZmF9LAoJeyd1JywgJz4nLCAweGZifSwKCXsndScsICc6JywgMHhmY30sCgl7J3knLCAnXCcnLCAweGZkfSwKCXsndCcsICdoJywgMHhmZX0sCgl7J3knLCAnOicsIDB4ZmZ9LAoKIyAgICAgIGlmZGVmIEZFQVRfTUJZVEUKIwlkZWZpbmUgVVNFX1VOSUNPREVfRElHUkFQSFMKCgl7J0EnLCAnLScsIDB4MDEwMH0sCgl7J2EnLCAnLScsIDB4MDEwMX0sCgl7J0EnLCAnKCcsIDB4MDEwMn0sCgl7J2EnLCAnKCcsIDB4MDEwM30sCgl7J0EnLCAnOycsIDB4MDEwNH0sCgl7J2EnLCAnOycsIDB4MDEwNX0sCgl7J0MnLCAnXCcnLCAweDAxMDZ9LAoJeydjJywgJ1wnJywgMHgwMTA3fSwKCXsnQycsICc+JywgMHgwMTA4fSwKCXsnYycsICc+JywgMHgwMTA5fSwKCXsnQycsICcuJywgMHgwMTBhfSwKCXsnYycsICcuJywgMHgwMTBifSwKCXsnQycsICc8JywgMHgwMTBjfSwKCXsnYycsICc8JywgMHgwMTBkfSwKCXsnRCcsICc8JywgMHgwMTBlfSwKCXsnZCcsICc8JywgMHgwMTBmfSwKCXsnRCcsICcvJywgMHgwMTEwfSwKCXsnZCcsICcvJywgMHgwMTExfSwKCXsnRScsICctJywgMHgwMTEyfSwKCXsnZScsICctJywgMHgwMTEzfSwKCXsnRScsICcoJywgMHgwMTE0fSwKCXsnZScsICcoJywgMHgwMTE1fSwKCXsnRScsICcuJywgMHgwMTE2fSwKCXsnZScsICcuJywgMHgwMTE3fSwKCXsnRScsICc7JywgMHgwMTE4fSwKCXsnZScsICc7JywgMHgwMTE5fSwKCXsnRScsICc8JywgMHgwMTFhfSwKCXsnZScsICc8JywgMHgwMTFifSwKCXsnRycsICc+JywgMHgwMTFjfSwKCXsnZycsICc+JywgMHgwMTFkfSwKCXsnRycsICcoJywgMHgwMTFlfSwKCXsnZycsICcoJywgMHgwMTFmfSwKCXsnRycsICcuJywgMHgwMTIwfSwKCXsnZycsICcuJywgMHgwMTIxfSwKCXsnRycsICcsJywgMHgwMTIyfSwKCXsnZycsICcsJywgMHgwMTIzfSwKCXsnSCcsICc+JywgMHgwMTI0fSwKCXsnaCcsICc+JywgMHgwMTI1fSwKCXsnSCcsICcvJywgMHgwMTI2fSwKCXsnaCcsICcvJywgMHgwMTI3fSwKCXsnSScsICc/JywgMHgwMTI4fSwKCXsnaScsICc/JywgMHgwMTI5fSwKCXsnSScsICctJywgMHgwMTJhfSwKCXsnaScsICctJywgMHgwMTJifSwKCXsnSScsICcoJywgMHgwMTJjfSwKCXsnaScsICcoJywgMHgwMTJkfSwKCXsnSScsICc7JywgMHgwMTJlfSwKCXsnaScsICc7JywgMHgwMTJmfSwKCXsnSScsICcuJywgMHgwMTMwfSwKCXsnaScsICcuJywgMHgwMTMxfSwKCXsnSScsICdKJywgMHgwMTMyfSwKCXsnaScsICdqJywgMHgwMTMzfSwKCXsnSicsICc+JywgMHgwMTM0fSwKCXsnaicsICc+JywgMHgwMTM1fSwKCXsnSycsICcsJywgMHgwMTM2fSwKCXsnaycsICcsJywgMHgwMTM3fSwKCXsnaycsICdrJywgMHgwMTM4fSwKCXsnTCcsICdcJycsIDB4MDEzOX0sCgl7J2wnLCAnXCcnLCAweDAxM2F9LAoJeydMJywgJywnLCAweDAxM2J9LAoJeydsJywgJywnLCAweDAxM2N9LAoJeydMJywgJzwnLCAweDAxM2R9LAoJeydsJywgJzwnLCAweDAxM2V9LAoJeydMJywgJy4nLCAweDAxM2Z9LAoJeydsJywgJy4nLCAweDAxNDB9LAoJeydMJywgJy8nLCAweDAxNDF9LAoJeydsJywgJy8nLCAweDAxNDJ9LAoJeydOJywgJ1wnJywgMHgwMTQzfSwKCXsnbicsICdcJycsIDB4MDE0NH0sCgl7J04nLCAnLCcsIDB4MDE0NX0sCgl7J24nLCAnLCcsIDB4MDE0Nn0sCgl7J04nLCAnPCcsIDB4MDE0N30sCgl7J24nLCAnPCcsIDB4MDE0OH0sCgl7J1wnJywgJ24nLCAweDAxNDl9LAoJeydOJywgJ0cnLCAweDAxNGF9LAoJeyduJywgJ2cnLCAweDAxNGJ9LAoJeydPJywgJy0nLCAweDAxNGN9LAoJeydvJywgJy0nLCAweDAxNGR9LAoJeydPJywgJygnLCAweDAxNGV9LAoJeydvJywgJygnLCAweDAxNGZ9LAoJeydPJywgJyInLCAweDAxNTB9LAoJeydvJywgJyInLCAweDAxNTF9LAoJeydPJywgJ0UnLCAweDAxNTJ9LAoJeydvJywgJ2UnLCAweDAxNTN9LAoJeydSJywgJ1wnJywgMHgwMTU0fSwKCXsncicsICdcJycsIDB4MDE1NX0sCgl7J1InLCAnLCcsIDB4MDE1Nn0sCgl7J3InLCAnLCcsIDB4MDE1N30sCgl7J1InLCAnPCcsIDB4MDE1OH0sCgl7J3InLCAnPCcsIDB4MDE1OX0sCgl7J1MnLCAnXCcnLCAweDAxNWF9LAoJeydzJywgJ1wnJywgMHgwMTVifSwKCXsnUycsICc+JywgMHgwMTVjfSwKCXsncycsICc+JywgMHgwMTVkfSwKCXsnUycsICcsJywgMHgwMTVlfSwKCXsncycsICcsJywgMHgwMTVmfSwKCXsnUycsICc8JywgMHgwMTYwfSwKCXsncycsICc8JywgMHgwMTYxfSwKCXsnVCcsICcsJywgMHgwMTYyfSwKCXsndCcsICcsJywgMHgwMTYzfSwKCXsnVCcsICc8JywgMHgwMTY0fSwKCXsndCcsICc8JywgMHgwMTY1fSwKCXsnVCcsICcvJywgMHgwMTY2fSwKCXsndCcsICcvJywgMHgwMTY3fSwKCXsnVScsICc/JywgMHgwMTY4fSwKCXsndScsICc/JywgMHgwMTY5fSwKCXsnVScsICctJywgMHgwMTZhfSwKCXsndScsICctJywgMHgwMTZifSwKCXsnVScsICcoJywgMHgwMTZjfSwKCXsndScsICcoJywgMHgwMTZkfSwKCXsnVScsICcwJywgMHgwMTZlfSwKCXsndScsICcwJywgMHgwMTZmfSwKCXsnVScsICciJywgMHgwMTcwfSwKCXsndScsICciJywgMHgwMTcxfSwKCXsnVScsICc7JywgMHgwMTcyfSwKCXsndScsICc7JywgMHgwMTczfSwKCXsnVycsICc+JywgMHgwMTc0fSwKCXsndycsICc+JywgMHgwMTc1fSwKCXsnWScsICc+JywgMHgwMTc2fSwKCXsneScsICc+JywgMHgwMTc3fSwKCXsnWScsICc6JywgMHgwMTc4fSwKCXsnWicsICdcJycsIDB4MDE3OX0sCgl7J3onLCAnXCcnLCAweDAxN2F9LAoJeydaJywgJy4nLCAweDAxN2J9LAoJeyd6JywgJy4nLCAweDAxN2N9LAoJeydaJywgJzwnLCAweDAxN2R9LAoJeyd6JywgJzwnLCAweDAxN2V9LAoJeydPJywgJzknLCAweDAxYTB9LAoJeydvJywgJzknLCAweDAxYTF9LAoJeydPJywgJ0knLCAweDAxYTJ9LAoJeydvJywgJ2knLCAweDAxYTN9LAoJeyd5JywgJ3InLCAweDAxYTZ9LAoJeydVJywgJzknLCAweDAxYWZ9LAoJeyd1JywgJzknLCAweDAxYjB9LAoJeydaJywgJy8nLCAweDAxYjV9LAoJeyd6JywgJy8nLCAweDAxYjZ9LAoJeydFJywgJ0QnLCAweDAxYjd9LAoJeydBJywgJzwnLCAweDAxY2R9LAoJeydhJywgJzwnLCAweDAxY2V9LAoJeydJJywgJzwnLCAweDAxY2Z9LAoJeydpJywgJzwnLCAweDAxZDB9LAoJeydPJywgJzwnLCAweDAxZDF9LAoJeydvJywgJzwnLCAweDAxZDJ9LAoJeydVJywgJzwnLCAweDAxZDN9LAoJeyd1JywgJzwnLCAweDAxZDR9LAoJeydBJywgJzEnLCAweDAxZGV9LAoJeydhJywgJzEnLCAweDAxZGZ9LAoJeydBJywgJzcnLCAweDAxZTB9LAoJeydhJywgJzcnLCAweDAxZTF9LAoJeydBJywgJzMnLCAweDAxZTJ9LAoJeydhJywgJzMnLCAweDAxZTN9LAoJeydHJywgJy8nLCAweDAxZTR9LAoJeydnJywgJy8nLCAweDAxZTV9LAoJeydHJywgJzwnLCAweDAxZTZ9LAoJeydnJywgJzwnLCAweDAxZTd9LAoJeydLJywgJzwnLCAweDAxZTh9LAoJeydrJywgJzwnLCAweDAxZTl9LAoJeydPJywgJzsnLCAweDAxZWF9LAoJeydvJywgJzsnLCAweDAxZWJ9LAoJeydPJywgJzEnLCAweDAxZWN9LAoJeydvJywgJzEnLCAweDAxZWR9LAoJeydFJywgJ1onLCAweDAxZWV9LAoJeydlJywgJ3onLCAweDAxZWZ9LAoJeydqJywgJzwnLCAweDAxZjB9LAoJeydHJywgJ1wnJywgMHgwMWY0fSwKCXsnZycsICdcJycsIDB4MDFmNX0sCgl7JzsnLCAnUycsIDB4MDJiZn0sCgl7J1wnJywgJzwnLCAweDAyYzd9LAoJeydcJycsICcoJywgMHgwMmQ4fSwKCXsnXCcnLCAnLicsIDB4MDJkOX0sCgl7J1wnJywgJzAnLCAweDAyZGF9LAoJeydcJycsICc7JywgMHgwMmRifSwKCXsnXCcnLCAnIicsIDB4MDJkZH0sCgl7J0EnLCAnJScsIDB4MDM4Nn0sCgl7J0UnLCAnJScsIDB4MDM4OH0sCgl7J1knLCAnJScsIDB4MDM4OX0sCgl7J0knLCAnJScsIDB4MDM4YX0sCgl7J08nLCAnJScsIDB4MDM4Y30sCgl7J1UnLCAnJScsIDB4MDM4ZX0sCgl7J1cnLCAnJScsIDB4MDM4Zn0sCgl7J2knLCAnMycsIDB4MDM5MH0sCgl7J0EnLCAnKicsIDB4MDM5MX0sCgl7J0InLCAnKicsIDB4MDM5Mn0sCgl7J0cnLCAnKicsIDB4MDM5M30sCgl7J0QnLCAnKicsIDB4MDM5NH0sCgl7J0UnLCAnKicsIDB4MDM5NX0sCgl7J1onLCAnKicsIDB4MDM5Nn0sCgl7J1knLCAnKicsIDB4MDM5N30sCgl7J0gnLCAnKicsIDB4MDM5OH0sCgl7J0knLCAnKicsIDB4MDM5OX0sCgl7J0snLCAnKicsIDB4MDM5YX0sCgl7J0wnLCAnKicsIDB4MDM5Yn0sCgl7J00nLCAnKicsIDB4MDM5Y30sCgl7J04nLCAnKicsIDB4MDM5ZH0sCgl7J0MnLCAnKicsIDB4MDM5ZX0sCgl7J08nLCAnKicsIDB4MDM5Zn0sCgl7J1AnLCAnKicsIDB4MDNhMH0sCgl7J1InLCAnKicsIDB4MDNhMX0sCgl7J1MnLCAnKicsIDB4MDNhM30sCgl7J1QnLCAnKicsIDB4MDNhNH0sCgl7J1UnLCAnKicsIDB4MDNhNX0sCgl7J0YnLCAnKicsIDB4MDNhNn0sCgl7J1gnLCAnKicsIDB4MDNhN30sCgl7J1EnLCAnKicsIDB4MDNhOH0sCgl7J1cnLCAnKicsIDB4MDNhOX0sCgl7J0onLCAnKicsIDB4MDNhYX0sCgl7J1YnLCAnKicsIDB4MDNhYn0sCgl7J2EnLCAnJScsIDB4MDNhY30sCgl7J2UnLCAnJScsIDB4MDNhZH0sCgl7J3knLCAnJScsIDB4MDNhZX0sCgl7J2knLCAnJScsIDB4MDNhZn0sCgl7J3UnLCAnMycsIDB4MDNiMH0sCgl7J2EnLCAnKicsIDB4MDNiMX0sCgl7J2InLCAnKicsIDB4MDNiMn0sCgl7J2cnLCAnKicsIDB4MDNiM30sCgl7J2QnLCAnKicsIDB4MDNiNH0sCgl7J2UnLCAnKicsIDB4MDNiNX0sCgl7J3onLCAnKicsIDB4MDNiNn0sCgl7J3knLCAnKicsIDB4MDNiN30sCgl7J2gnLCAnKicsIDB4MDNiOH0sCgl7J2knLCAnKicsIDB4MDNiOX0sCgl7J2snLCAnKicsIDB4MDNiYX0sCgl7J2wnLCAnKicsIDB4MDNiYn0sCgl7J20nLCAnKicsIDB4MDNiY30sCgl7J24nLCAnKicsIDB4MDNiZH0sCgl7J2MnLCAnKicsIDB4MDNiZX0sCgl7J28nLCAnKicsIDB4MDNiZn0sCgl7J3AnLCAnKicsIDB4MDNjMH0sCgl7J3InLCAnKicsIDB4MDNjMX0sCgl7JyonLCAncycsIDB4MDNjMn0sCgl7J3MnLCAnKicsIDB4MDNjM30sCgl7J3QnLCAnKicsIDB4MDNjNH0sCgl7J3UnLCAnKicsIDB4MDNjNX0sCgl7J2YnLCAnKicsIDB4MDNjNn0sCgl7J3gnLCAnKicsIDB4MDNjN30sCgl7J3EnLCAnKicsIDB4MDNjOH0sCgl7J3cnLCAnKicsIDB4MDNjOX0sCgl7J2onLCAnKicsIDB4MDNjYX0sCgl7J3YnLCAnKicsIDB4MDNjYn0sCgl7J28nLCAnJScsIDB4MDNjY30sCgl7J3UnLCAnJScsIDB4MDNjZH0sCgl7J3cnLCAnJScsIDB4MDNjZX0sCgl7J1wnJywgJ0cnLCAweDAzZDh9LAoJeycsJywgJ0cnLCAweDAzZDl9LAoJeydUJywgJzMnLCAweDAzZGF9LAoJeyd0JywgJzMnLCAweDAzZGJ9LAoJeydNJywgJzMnLCAweDAzZGN9LAoJeydtJywgJzMnLCAweDAzZGR9LAoJeydLJywgJzMnLCAweDAzZGV9LAoJeydrJywgJzMnLCAweDAzZGZ9LAoJeydQJywgJzMnLCAweDAzZTB9LAoJeydwJywgJzMnLCAweDAzZTF9LAoJeydcJycsICclJywgMHgwM2Y0fSwKCXsnaicsICczJywgMHgwM2Y1fSwKCXsnSScsICdPJywgMHgwNDAxfSwKCXsnRCcsICclJywgMHgwNDAyfSwKCXsnRycsICclJywgMHgwNDAzfSwKCXsnSScsICdFJywgMHgwNDA0fSwKCXsnRCcsICdTJywgMHgwNDA1fSwKCXsnSScsICdJJywgMHgwNDA2fSwKCXsnWScsICdJJywgMHgwNDA3fSwKCXsnSicsICclJywgMHgwNDA4fSwKCXsnTCcsICdKJywgMHgwNDA5fSwKCXsnTicsICdKJywgMHgwNDBhfSwKCXsnVCcsICdzJywgMHgwNDBifSwKCXsnSycsICdKJywgMHgwNDBjfSwKCXsnVicsICclJywgMHgwNDBlfSwKCXsnRCcsICdaJywgMHgwNDBmfSwKCXsnQScsICc9JywgMHgwNDEwfSwKCXsnQicsICc9JywgMHgwNDExfSwKCXsnVicsICc9JywgMHgwNDEyfSwKCXsnRycsICc9JywgMHgwNDEzfSwKCXsnRCcsICc9JywgMHgwNDE0fSwKCXsnRScsICc9JywgMHgwNDE1fSwKCXsnWicsICclJywgMHgwNDE2fSwKCXsnWicsICc9JywgMHgwNDE3fSwKCXsnSScsICc9JywgMHgwNDE4fSwKCXsnSicsICc9JywgMHgwNDE5fSwKCXsnSycsICc9JywgMHgwNDFhfSwKCXsnTCcsICc9JywgMHgwNDFifSwKCXsnTScsICc9JywgMHgwNDFjfSwKCXsnTicsICc9JywgMHgwNDFkfSwKCXsnTycsICc9JywgMHgwNDFlfSwKCXsnUCcsICc9JywgMHgwNDFmfSwKCXsnUicsICc9JywgMHgwNDIwfSwKCXsnUycsICc9JywgMHgwNDIxfSwKCXsnVCcsICc9JywgMHgwNDIyfSwKCXsnVScsICc9JywgMHgwNDIzfSwKCXsnRicsICc9JywgMHgwNDI0fSwKCXsnSCcsICc9JywgMHgwNDI1fSwKCXsnQycsICc9JywgMHgwNDI2fSwKCXsnQycsICclJywgMHgwNDI3fSwKCXsnUycsICclJywgMHgwNDI4fSwKCXsnUycsICdjJywgMHgwNDI5fSwKCXsnPScsICciJywgMHgwNDJhfSwKCXsnWScsICc9JywgMHgwNDJifSwKCXsnJScsICciJywgMHgwNDJjfSwKCXsnSicsICdFJywgMHgwNDJkfSwKCXsnSicsICdVJywgMHgwNDJlfSwKCXsnSicsICdBJywgMHgwNDJmfSwKCXsnYScsICc9JywgMHgwNDMwfSwKCXsnYicsICc9JywgMHgwNDMxfSwKCXsndicsICc9JywgMHgwNDMyfSwKCXsnZycsICc9JywgMHgwNDMzfSwKCXsnZCcsICc9JywgMHgwNDM0fSwKCXsnZScsICc9JywgMHgwNDM1fSwKCXsneicsICclJywgMHgwNDM2fSwKCXsneicsICc9JywgMHgwNDM3fSwKCXsnaScsICc9JywgMHgwNDM4fSwKCXsnaicsICc9JywgMHgwNDM5fSwKCXsnaycsICc9JywgMHgwNDNhfSwKCXsnbCcsICc9JywgMHgwNDNifSwKCXsnbScsICc9JywgMHgwNDNjfSwKCXsnbicsICc9JywgMHgwNDNkfSwKCXsnbycsICc9JywgMHgwNDNlfSwKCXsncCcsICc9JywgMHgwNDNmfSwKCXsncicsICc9JywgMHgwNDQwfSwKCXsncycsICc9JywgMHgwNDQxfSwKCXsndCcsICc9JywgMHgwNDQyfSwKCXsndScsICc9JywgMHgwNDQzfSwKCXsnZicsICc9JywgMHgwNDQ0fSwKCXsnaCcsICc9JywgMHgwNDQ1fSwKCXsnYycsICc9JywgMHgwNDQ2fSwKCXsnYycsICclJywgMHgwNDQ3fSwKCXsncycsICclJywgMHgwNDQ4fSwKCXsncycsICdjJywgMHgwNDQ5fSwKCXsnPScsICdcJycsIDB4MDQ0YX0sCgl7J3knLCAnPScsIDB4MDQ0Yn0sCgl7JyUnLCAnXCcnLCAweDA0NGN9LAoJeydqJywgJ2UnLCAweDA0NGR9LAoJeydqJywgJ3UnLCAweDA0NGV9LAoJeydqJywgJ2EnLCAweDA0NGZ9LAoJeydpJywgJ28nLCAweDA0NTF9LAoJeydkJywgJyUnLCAweDA0NTJ9LAoJeydnJywgJyUnLCAweDA0NTN9LAoJeydpJywgJ2UnLCAweDA0NTR9LAoJeydkJywgJ3MnLCAweDA0NTV9LAoJeydpJywgJ2knLCAweDA0NTZ9LAoJeyd5JywgJ2knLCAweDA0NTd9LAoJeydqJywgJyUnLCAweDA0NTh9LAoJeydsJywgJ2onLCAweDA0NTl9LAoJeyduJywgJ2onLCAweDA0NWF9LAoJeyd0JywgJ3MnLCAweDA0NWJ9LAoJeydrJywgJ2onLCAweDA0NWN9LAoJeyd2JywgJyUnLCAweDA0NWV9LAoJeydkJywgJ3onLCAweDA0NWZ9LAoJeydZJywgJzMnLCAweDA0NjJ9LAoJeyd5JywgJzMnLCAweDA0NjN9LAoJeydPJywgJzMnLCAweDA0NmF9LAoJeydvJywgJzMnLCAweDA0NmJ9LAoJeydGJywgJzMnLCAweDA0NzJ9LAoJeydmJywgJzMnLCAweDA0NzN9LAoJeydWJywgJzMnLCAweDA0NzR9LAoJeyd2JywgJzMnLCAweDA0NzV9LAoJeydDJywgJzMnLCAweDA0ODB9LAoJeydjJywgJzMnLCAweDA0ODF9LAoJeydHJywgJzMnLCAweDA0OTB9LAoJeydnJywgJzMnLCAweDA0OTF9LAoJeydBJywgJysnLCAweDA1ZDB9LAoJeydCJywgJysnLCAweDA1ZDF9LAoJeydHJywgJysnLCAweDA1ZDJ9LAoJeydEJywgJysnLCAweDA1ZDN9LAoJeydIJywgJysnLCAweDA1ZDR9LAoJeydXJywgJysnLCAweDA1ZDV9LAoJeydaJywgJysnLCAweDA1ZDZ9LAoJeydYJywgJysnLCAweDA1ZDd9LAoJeydUJywgJ2onLCAweDA1ZDh9LAoJeydKJywgJysnLCAweDA1ZDl9LAoJeydLJywgJyUnLCAweDA1ZGF9LAoJeydLJywgJysnLCAweDA1ZGJ9LAoJeydMJywgJysnLCAweDA1ZGN9LAoJeydNJywgJyUnLCAweDA1ZGR9LAoJeydNJywgJysnLCAweDA1ZGV9LAoJeydOJywgJyUnLCAweDA1ZGZ9LAoJeydOJywgJysnLCAweDA1ZTB9LAoJeydTJywgJysnLCAweDA1ZTF9LAoJeydFJywgJysnLCAweDA1ZTJ9LAoJeydQJywgJyUnLCAweDA1ZTN9LAoJeydQJywgJysnLCAweDA1ZTR9LAoJeydaJywgJ2onLCAweDA1ZTV9LAoJeydaJywgJ0onLCAweDA1ZTZ9LAoJeydRJywgJysnLCAweDA1ZTd9LAoJeydSJywgJysnLCAweDA1ZTh9LAoJeydTJywgJ2gnLCAweDA1ZTl9LAoJeydUJywgJysnLCAweDA1ZWF9LAoJeycsJywgJysnLCAweDA2MGN9LAoJeyc7JywgJysnLCAweDA2MWJ9LAoJeyc/JywgJysnLCAweDA2MWZ9LAoJeydIJywgJ1wnJywgMHgwNjIxfSwKCXsnYScsICdNJywgMHgwNjIyfSwKCXsnYScsICdIJywgMHgwNjIzfSwKCXsndycsICdIJywgMHgwNjI0fSwKCXsnYScsICdoJywgMHgwNjI1fSwKCXsneScsICdIJywgMHgwNjI2fSwKCXsnYScsICcrJywgMHgwNjI3fSwKCXsnYicsICcrJywgMHgwNjI4fSwKCXsndCcsICdtJywgMHgwNjI5fSwKCXsndCcsICcrJywgMHgwNjJhfSwKCXsndCcsICdrJywgMHgwNjJifSwKCXsnZycsICcrJywgMHgwNjJjfSwKCXsnaCcsICdrJywgMHgwNjJkfSwKCXsneCcsICcrJywgMHgwNjJlfSwKCXsnZCcsICcrJywgMHgwNjJmfSwKCXsnZCcsICdrJywgMHgwNjMwfSwKCXsncicsICcrJywgMHgwNjMxfSwKCXsneicsICcrJywgMHgwNjMyfSwKCXsncycsICcrJywgMHgwNjMzfSwKCXsncycsICduJywgMHgwNjM0fSwKCXsnYycsICcrJywgMHgwNjM1fSwKCXsnZCcsICdkJywgMHgwNjM2fSwKCXsndCcsICdqJywgMHgwNjM3fSwKCXsneicsICdIJywgMHgwNjM4fSwKCXsnZScsICcrJywgMHgwNjM5fSwKCXsnaScsICcrJywgMHgwNjNhfSwKCXsnKycsICcrJywgMHgwNjQwfSwKCXsnZicsICcrJywgMHgwNjQxfSwKCXsncScsICcrJywgMHgwNjQyfSwKCXsnaycsICcrJywgMHgwNjQzfSwKCXsnbCcsICcrJywgMHgwNjQ0fSwKCXsnbScsICcrJywgMHgwNjQ1fSwKCXsnbicsICcrJywgMHgwNjQ2fSwKCXsnaCcsICcrJywgMHgwNjQ3fSwKCXsndycsICcrJywgMHgwNjQ4fSwKCXsnaicsICcrJywgMHgwNjQ5fSwKCXsneScsICcrJywgMHgwNjRhfSwKCXsnOicsICcrJywgMHgwNjRifSwKCXsnIicsICcrJywgMHgwNjRjfSwKCXsnPScsICcrJywgMHgwNjRkfSwKCXsnLycsICcrJywgMHgwNjRlfSwKCXsnXCcnLCAnKycsIDB4MDY0Zn0sCgl7JzEnLCAnKycsIDB4MDY1MH0sCgl7JzMnLCAnKycsIDB4MDY1MX0sCgl7JzAnLCAnKycsIDB4MDY1Mn0sCgl7J2EnLCAnUycsIDB4MDY3MH0sCgl7J3AnLCAnKycsIDB4MDY3ZX0sCgl7J3YnLCAnKycsIDB4MDZhNH0sCgl7J2cnLCAnZicsIDB4MDZhZn0sCgl7JzAnLCAnYScsIDB4MDZmMH0sCgl7JzEnLCAnYScsIDB4MDZmMX0sCgl7JzInLCAnYScsIDB4MDZmMn0sCgl7JzMnLCAnYScsIDB4MDZmM30sCgl7JzQnLCAnYScsIDB4MDZmNH0sCgl7JzUnLCAnYScsIDB4MDZmNX0sCgl7JzYnLCAnYScsIDB4MDZmNn0sCgl7JzcnLCAnYScsIDB4MDZmN30sCgl7JzgnLCAnYScsIDB4MDZmOH0sCgl7JzknLCAnYScsIDB4MDZmOX0sCgl7J0InLCAnLicsIDB4MWUwMn0sCgl7J2InLCAnLicsIDB4MWUwM30sCgl7J0InLCAnXycsIDB4MWUwNn0sCgl7J2InLCAnXycsIDB4MWUwN30sCgl7J0QnLCAnLicsIDB4MWUwYX0sCgl7J2QnLCAnLicsIDB4MWUwYn0sCgl7J0QnLCAnXycsIDB4MWUwZX0sCgl7J2QnLCAnXycsIDB4MWUwZn0sCgl7J0QnLCAnLCcsIDB4MWUxMH0sCgl7J2QnLCAnLCcsIDB4MWUxMX0sCgl7J0YnLCAnLicsIDB4MWUxZX0sCgl7J2YnLCAnLicsIDB4MWUxZn0sCgl7J0cnLCAnLScsIDB4MWUyMH0sCgl7J2cnLCAnLScsIDB4MWUyMX0sCgl7J0gnLCAnLicsIDB4MWUyMn0sCgl7J2gnLCAnLicsIDB4MWUyM30sCgl7J0gnLCAnOicsIDB4MWUyNn0sCgl7J2gnLCAnOicsIDB4MWUyN30sCgl7J0gnLCAnLCcsIDB4MWUyOH0sCgl7J2gnLCAnLCcsIDB4MWUyOX0sCgl7J0snLCAnXCcnLCAweDFlMzB9LAoJeydrJywgJ1wnJywgMHgxZTMxfSwKCXsnSycsICdfJywgMHgxZTM0fSwKCXsnaycsICdfJywgMHgxZTM1fSwKCXsnTCcsICdfJywgMHgxZTNhfSwKCXsnbCcsICdfJywgMHgxZTNifSwKCXsnTScsICdcJycsIDB4MWUzZX0sCgl7J20nLCAnXCcnLCAweDFlM2Z9LAoJeydNJywgJy4nLCAweDFlNDB9LAoJeydtJywgJy4nLCAweDFlNDF9LAoJeydOJywgJy4nLCAweDFlNDR9LAoJeyduJywgJy4nLCAweDFlNDV9LAoJeydOJywgJ18nLCAweDFlNDh9LAoJeyduJywgJ18nLCAweDFlNDl9LAoJeydQJywgJ1wnJywgMHgxZTU0fSwKCXsncCcsICdcJycsIDB4MWU1NX0sCgl7J1AnLCAnLicsIDB4MWU1Nn0sCgl7J3AnLCAnLicsIDB4MWU1N30sCgl7J1InLCAnLicsIDB4MWU1OH0sCgl7J3InLCAnLicsIDB4MWU1OX0sCgl7J1InLCAnXycsIDB4MWU1ZX0sCgl7J3InLCAnXycsIDB4MWU1Zn0sCgl7J1MnLCAnLicsIDB4MWU2MH0sCgl7J3MnLCAnLicsIDB4MWU2MX0sCgl7J1QnLCAnLicsIDB4MWU2YX0sCgl7J3QnLCAnLicsIDB4MWU2Yn0sCgl7J1QnLCAnXycsIDB4MWU2ZX0sCgl7J3QnLCAnXycsIDB4MWU2Zn0sCgl7J1YnLCAnPycsIDB4MWU3Y30sCgl7J3YnLCAnPycsIDB4MWU3ZH0sCgl7J1cnLCAnIScsIDB4MWU4MH0sCgl7J3cnLCAnIScsIDB4MWU4MX0sCgl7J1cnLCAnXCcnLCAweDFlODJ9LAoJeyd3JywgJ1wnJywgMHgxZTgzfSwKCXsnVycsICc6JywgMHgxZTg0fSwKCXsndycsICc6JywgMHgxZTg1fSwKCXsnVycsICcuJywgMHgxZTg2fSwKCXsndycsICcuJywgMHgxZTg3fSwKCXsnWCcsICcuJywgMHgxZThhfSwKCXsneCcsICcuJywgMHgxZThifSwKCXsnWCcsICc6JywgMHgxZThjfSwKCXsneCcsICc6JywgMHgxZThkfSwKCXsnWScsICcuJywgMHgxZThlfSwKCXsneScsICcuJywgMHgxZThmfSwKCXsnWicsICc+JywgMHgxZTkwfSwKCXsneicsICc+JywgMHgxZTkxfSwKCXsnWicsICdfJywgMHgxZTk0fSwKCXsneicsICdfJywgMHgxZTk1fSwKCXsnaCcsICdfJywgMHgxZTk2fSwKCXsndCcsICc6JywgMHgxZTk3fSwKCXsndycsICcwJywgMHgxZTk4fSwKCXsneScsICcwJywgMHgxZTk5fSwKCXsnQScsICcyJywgMHgxZWEyfSwKCXsnYScsICcyJywgMHgxZWEzfSwKCXsnRScsICcyJywgMHgxZWJhfSwKCXsnZScsICcyJywgMHgxZWJifSwKCXsnRScsICc/JywgMHgxZWJjfSwKCXsnZScsICc/JywgMHgxZWJkfSwKCXsnSScsICcyJywgMHgxZWM4fSwKCXsnaScsICcyJywgMHgxZWM5fSwKCXsnTycsICcyJywgMHgxZWNlfSwKCXsnbycsICcyJywgMHgxZWNmfSwKCXsnVScsICcyJywgMHgxZWU2fSwKCXsndScsICcyJywgMHgxZWU3fSwKCXsnWScsICchJywgMHgxZWYyfSwKCXsneScsICchJywgMHgxZWYzfSwKCXsnWScsICcyJywgMHgxZWY2fSwKCXsneScsICcyJywgMHgxZWY3fSwKCXsnWScsICc/JywgMHgxZWY4fSwKCXsneScsICc/JywgMHgxZWY5fSwKCXsnOycsICdcJycsIDB4MWYwMH0sCgl7JywnLCAnXCcnLCAweDFmMDF9LAoJeyc7JywgJyEnLCAweDFmMDJ9LAoJeycsJywgJyEnLCAweDFmMDN9LAoJeyc/JywgJzsnLCAweDFmMDR9LAoJeyc/JywgJywnLCAweDFmMDV9LAoJeychJywgJzonLCAweDFmMDZ9LAoJeyc/JywgJzonLCAweDFmMDd9LAoJeycxJywgJ04nLCAweDIwMDJ9LAoJeycxJywgJ00nLCAweDIwMDN9LAoJeyczJywgJ00nLCAweDIwMDR9LAoJeyc0JywgJ00nLCAweDIwMDV9LAoJeyc2JywgJ00nLCAweDIwMDZ9LAoJeycxJywgJ1QnLCAweDIwMDl9LAoJeycxJywgJ0gnLCAweDIwMGF9LAoJeyctJywgJzEnLCAweDIwMTB9LAoJeyctJywgJ04nLCAweDIwMTN9LAoJeyctJywgJ00nLCAweDIwMTR9LAoJeyctJywgJzMnLCAweDIwMTV9LAoJeychJywgJzInLCAweDIwMTZ9LAoJeyc9JywgJzInLCAweDIwMTd9LAoJeydcJycsICc2JywgMHgyMDE4fSwKCXsnXCcnLCAnOScsIDB4MjAxOX0sCgl7Jy4nLCAnOScsIDB4MjAxYX0sCgl7JzknLCAnXCcnLCAweDIwMWJ9LAoJeyciJywgJzYnLCAweDIwMWN9LAoJeyciJywgJzknLCAweDIwMWR9LAoJeyc6JywgJzknLCAweDIwMWV9LAoJeyc5JywgJyInLCAweDIwMWZ9LAoJeycvJywgJy0nLCAweDIwMjB9LAoJeycvJywgJz0nLCAweDIwMjF9LAoJeycuJywgJy4nLCAweDIwMjV9LAoJeycsJywgJy4nLCAweDIwMjZ9LAoJeyclJywgJzAnLCAweDIwMzB9LAoJeycxJywgJ1wnJywgMHgyMDMyfSwKCXsnMicsICdcJycsIDB4MjAzM30sCgl7JzMnLCAnXCcnLCAweDIwMzR9LAoJeycxJywgJyInLCAweDIwMzV9LAoJeycyJywgJyInLCAweDIwMzZ9LAoJeyczJywgJyInLCAweDIwMzd9LAoJeydDJywgJ2EnLCAweDIwMzh9LAoJeyc8JywgJzEnLCAweDIwMzl9LAoJeyc+JywgJzEnLCAweDIwM2F9LAoJeyc6JywgJ1gnLCAweDIwM2J9LAoJeydcJycsICctJywgMHgyMDNlfSwKCXsnLycsICdmJywgMHgyMDQ0fSwKCXsnMCcsICdTJywgMHgyMDcwfSwKCXsnNCcsICdTJywgMHgyMDc0fSwKCXsnNScsICdTJywgMHgyMDc1fSwKCXsnNicsICdTJywgMHgyMDc2fSwKCXsnNycsICdTJywgMHgyMDc3fSwKCXsnOCcsICdTJywgMHgyMDc4fSwKCXsnOScsICdTJywgMHgyMDc5fSwKCXsnKycsICdTJywgMHgyMDdhfSwKCXsnLScsICdTJywgMHgyMDdifSwKCXsnPScsICdTJywgMHgyMDdjfSwKCXsnKCcsICdTJywgMHgyMDdkfSwKCXsnKScsICdTJywgMHgyMDdlfSwKCXsnbicsICdTJywgMHgyMDdmfSwKCXsnMCcsICdzJywgMHgyMDgwfSwKCXsnMScsICdzJywgMHgyMDgxfSwKCXsnMicsICdzJywgMHgyMDgyfSwKCXsnMycsICdzJywgMHgyMDgzfSwKCXsnNCcsICdzJywgMHgyMDg0fSwKCXsnNScsICdzJywgMHgyMDg1fSwKCXsnNicsICdzJywgMHgyMDg2fSwKCXsnNycsICdzJywgMHgyMDg3fSwKCXsnOCcsICdzJywgMHgyMDg4fSwKCXsnOScsICdzJywgMHgyMDg5fSwKCXsnKycsICdzJywgMHgyMDhhfSwKCXsnLScsICdzJywgMHgyMDhifSwKCXsnPScsICdzJywgMHgyMDhjfSwKCXsnKCcsICdzJywgMHgyMDhkfSwKCXsnKScsICdzJywgMHgyMDhlfSwKCXsnTCcsICdpJywgMHgyMGE0fSwKCXsnUCcsICd0JywgMHgyMGE3fSwKCXsnVycsICc9JywgMHgyMGE5fSwKCXsnPScsICdlJywgMHgyMGFjfSwgLyogZXVybyAqLwoJeydFJywgJ3UnLCAweDIwYWN9LCAvKiBldXJvICovCgl7Jz0nLCAnUicsIDB4MjBiZH0sIC8qIHJvdWJsZSAqLwoJeyc9JywgJ1AnLCAweDIwYmR9LCAvKiByb3VibGUgKi8KCXsnbycsICdDJywgMHgyMTAzfSwKCXsnYycsICdvJywgMHgyMTA1fSwKCXsnbycsICdGJywgMHgyMTA5fSwKCXsnTicsICcwJywgMHgyMTE2fSwKCXsnUCcsICdPJywgMHgyMTE3fSwKCXsnUicsICd4JywgMHgyMTFlfSwKCXsnUycsICdNJywgMHgyMTIwfSwKCXsnVCcsICdNJywgMHgyMTIyfSwKCXsnTycsICdtJywgMHgyMTI2fSwKCXsnQScsICdPJywgMHgyMTJifSwKCXsnMScsICczJywgMHgyMTUzfSwKCXsnMicsICczJywgMHgyMTU0fSwKCXsnMScsICc1JywgMHgyMTU1fSwKCXsnMicsICc1JywgMHgyMTU2fSwKCXsnMycsICc1JywgMHgyMTU3fSwKCXsnNCcsICc1JywgMHgyMTU4fSwKCXsnMScsICc2JywgMHgyMTU5fSwKCXsnNScsICc2JywgMHgyMTVhfSwKCXsnMScsICc4JywgMHgyMTVifSwKCXsnMycsICc4JywgMHgyMTVjfSwKCXsnNScsICc4JywgMHgyMTVkfSwKCXsnNycsICc4JywgMHgyMTVlfSwKCXsnMScsICdSJywgMHgyMTYwfSwKCXsnMicsICdSJywgMHgyMTYxfSwKCXsnMycsICdSJywgMHgyMTYyfSwKCXsnNCcsICdSJywgMHgyMTYzfSwKCXsnNScsICdSJywgMHgyMTY0fSwKCXsnNicsICdSJywgMHgyMTY1fSwKCXsnNycsICdSJywgMHgyMTY2fSwKCXsnOCcsICdSJywgMHgyMTY3fSwKCXsnOScsICdSJywgMHgyMTY4fSwKCXsnYScsICdSJywgMHgyMTY5fSwKCXsnYicsICdSJywgMHgyMTZhfSwKCXsnYycsICdSJywgMHgyMTZifSwKCXsnMScsICdyJywgMHgyMTcwfSwKCXsnMicsICdyJywgMHgyMTcxfSwKCXsnMycsICdyJywgMHgyMTcyfSwKCXsnNCcsICdyJywgMHgyMTczfSwKCXsnNScsICdyJywgMHgyMTc0fSwKCXsnNicsICdyJywgMHgyMTc1fSwKCXsnNycsICdyJywgMHgyMTc2fSwKCXsnOCcsICdyJywgMHgyMTc3fSwKCXsnOScsICdyJywgMHgyMTc4fSwKCXsnYScsICdyJywgMHgyMTc5fSwKCXsnYicsICdyJywgMHgyMTdhfSwKCXsnYycsICdyJywgMHgyMTdifSwKCXsnPCcsICctJywgMHgyMTkwfSwKCXsnLScsICchJywgMHgyMTkxfSwKCXsnLScsICc+JywgMHgyMTkyfSwKCXsnLScsICd2JywgMHgyMTkzfSwKCXsnPCcsICc+JywgMHgyMTk0fSwKCXsnVScsICdEJywgMHgyMTk1fSwKCXsnPCcsICc9JywgMHgyMWQwfSwKCXsnPScsICc+JywgMHgyMWQyfSwKCXsnPScsICc9JywgMHgyMWQ0fSwKCXsnRicsICdBJywgMHgyMjAwfSwKCXsnZCcsICdQJywgMHgyMjAyfSwKCXsnVCcsICdFJywgMHgyMjAzfSwKCXsnLycsICcwJywgMHgyMjA1fSwKCXsnRCcsICdFJywgMHgyMjA2fSwKCXsnTicsICdCJywgMHgyMjA3fSwKCXsnKCcsICctJywgMHgyMjA4fSwKCXsnLScsICcpJywgMHgyMjBifSwKCXsnKicsICdQJywgMHgyMjBmfSwKCXsnKycsICdaJywgMHgyMjExfSwKCXsnLScsICcyJywgMHgyMjEyfSwKCXsnLScsICcrJywgMHgyMjEzfSwKCXsnKicsICctJywgMHgyMjE3fSwKCXsnTycsICdiJywgMHgyMjE4fSwKCXsnUycsICdiJywgMHgyMjE5fSwKCXsnUicsICdUJywgMHgyMjFhfSwKCXsnMCcsICcoJywgMHgyMjFkfSwKCXsnMCcsICcwJywgMHgyMjFlfSwKCXsnLScsICdMJywgMHgyMjFmfSwKCXsnLScsICdWJywgMHgyMjIwfSwKCXsnUCcsICdQJywgMHgyMjI1fSwKCXsnQScsICdOJywgMHgyMjI3fSwKCXsnTycsICdSJywgMHgyMjI4fSwKCXsnKCcsICdVJywgMHgyMjI5fSwKCXsnKScsICdVJywgMHgyMjJhfSwKCXsnSScsICduJywgMHgyMjJifSwKCXsnRCcsICdJJywgMHgyMjJjfSwKCXsnSScsICdvJywgMHgyMjJlfSwKCXsnLicsICc6JywgMHgyMjM0fSwKCXsnOicsICcuJywgMHgyMjM1fSwKCXsnOicsICdSJywgMHgyMjM2fSwKCXsnOicsICc6JywgMHgyMjM3fSwKCXsnPycsICcxJywgMHgyMjNjfSwKCXsnQycsICdHJywgMHgyMjNlfSwKCXsnPycsICctJywgMHgyMjQzfSwKCXsnPycsICc9JywgMHgyMjQ1fSwKCXsnPycsICcyJywgMHgyMjQ4fSwKCXsnPScsICc/JywgMHgyMjRjfSwKCXsnSCcsICdJJywgMHgyMjUzfSwKCXsnIScsICc9JywgMHgyMjYwfSwKCXsnPScsICczJywgMHgyMjYxfSwKCXsnPScsICc8JywgMHgyMjY0fSwKCXsnPicsICc9JywgMHgyMjY1fSwKCXsnPCcsICcqJywgMHgyMjZhfSwKCXsnKicsICc+JywgMHgyMjZifSwKCXsnIScsICc8JywgMHgyMjZlfSwKCXsnIScsICc+JywgMHgyMjZmfSwKCXsnKCcsICdDJywgMHgyMjgyfSwKCXsnKScsICdDJywgMHgyMjgzfSwKCXsnKCcsICdfJywgMHgyMjg2fSwKCXsnKScsICdfJywgMHgyMjg3fSwKCXsnMCcsICcuJywgMHgyMjk5fSwKCXsnMCcsICcyJywgMHgyMjlhfSwKCXsnLScsICdUJywgMHgyMmE1fSwKCXsnLicsICdQJywgMHgyMmM1fSwKCXsnOicsICczJywgMHgyMmVlfSwKCXsnLicsICczJywgMHgyMmVmfSwKCXsnRScsICdoJywgMHgyMzAyfSwKCXsnPCcsICc3JywgMHgyMzA4fSwKCXsnPicsICc3JywgMHgyMzA5fSwKCXsnNycsICc8JywgMHgyMzBhfSwKCXsnNycsICc+JywgMHgyMzBifSwKCXsnTicsICdJJywgMHgyMzEwfSwKCXsnKCcsICdBJywgMHgyMzEyfSwKCXsnVCcsICdSJywgMHgyMzE1fSwKCXsnSScsICd1JywgMHgyMzIwfSwKCXsnSScsICdsJywgMHgyMzIxfSwKCXsnPCcsICcvJywgMHgyMzI5fSwKCXsnLycsICc+JywgMHgyMzJhfSwKCXsnVicsICdzJywgMHgyNDIzfSwKCXsnMScsICdoJywgMHgyNDQwfSwKCXsnMycsICdoJywgMHgyNDQxfSwKCXsnMicsICdoJywgMHgyNDQyfSwKCXsnNCcsICdoJywgMHgyNDQzfSwKCXsnMScsICdqJywgMHgyNDQ2fSwKCXsnMicsICdqJywgMHgyNDQ3fSwKCXsnMycsICdqJywgMHgyNDQ4fSwKCXsnNCcsICdqJywgMHgyNDQ5fSwKCXsnMScsICcuJywgMHgyNDg4fSwKCXsnMicsICcuJywgMHgyNDg5fSwKCXsnMycsICcuJywgMHgyNDhhfSwKCXsnNCcsICcuJywgMHgyNDhifSwKCXsnNScsICcuJywgMHgyNDhjfSwKCXsnNicsICcuJywgMHgyNDhkfSwKCXsnNycsICcuJywgMHgyNDhlfSwKCXsnOCcsICcuJywgMHgyNDhmfSwKCXsnOScsICcuJywgMHgyNDkwfSwKCXsnaCcsICdoJywgMHgyNTAwfSwKCXsnSCcsICdIJywgMHgyNTAxfSwKCXsndicsICd2JywgMHgyNTAyfSwKCXsnVicsICdWJywgMHgyNTAzfSwKCXsnMycsICctJywgMHgyNTA0fSwKCXsnMycsICdfJywgMHgyNTA1fSwKCXsnMycsICchJywgMHgyNTA2fSwKCXsnMycsICcvJywgMHgyNTA3fSwKCXsnNCcsICctJywgMHgyNTA4fSwKCXsnNCcsICdfJywgMHgyNTA5fSwKCXsnNCcsICchJywgMHgyNTBhfSwKCXsnNCcsICcvJywgMHgyNTBifSwKCXsnZCcsICdyJywgMHgyNTBjfSwKCXsnZCcsICdSJywgMHgyNTBkfSwKCXsnRCcsICdyJywgMHgyNTBlfSwKCXsnRCcsICdSJywgMHgyNTBmfSwKCXsnZCcsICdsJywgMHgyNTEwfSwKCXsnZCcsICdMJywgMHgyNTExfSwKCXsnRCcsICdsJywgMHgyNTEyfSwKCXsnTCcsICdEJywgMHgyNTEzfSwKCXsndScsICdyJywgMHgyNTE0fSwKCXsndScsICdSJywgMHgyNTE1fSwKCXsnVScsICdyJywgMHgyNTE2fSwKCXsnVScsICdSJywgMHgyNTE3fSwKCXsndScsICdsJywgMHgyNTE4fSwKCXsndScsICdMJywgMHgyNTE5fSwKCXsnVScsICdsJywgMHgyNTFhfSwKCXsnVScsICdMJywgMHgyNTFifSwKCXsndicsICdyJywgMHgyNTFjfSwKCXsndicsICdSJywgMHgyNTFkfSwKCXsnVicsICdyJywgMHgyNTIwfSwKCXsnVicsICdSJywgMHgyNTIzfSwKCXsndicsICdsJywgMHgyNTI0fSwKCXsndicsICdMJywgMHgyNTI1fSwKCXsnVicsICdsJywgMHgyNTI4fSwKCXsnVicsICdMJywgMHgyNTJifSwKCXsnZCcsICdoJywgMHgyNTJjfSwKCXsnZCcsICdIJywgMHgyNTJmfSwKCXsnRCcsICdoJywgMHgyNTMwfSwKCXsnRCcsICdIJywgMHgyNTMzfSwKCXsndScsICdoJywgMHgyNTM0fSwKCXsndScsICdIJywgMHgyNTM3fSwKCXsnVScsICdoJywgMHgyNTM4fSwKCXsnVScsICdIJywgMHgyNTNifSwKCXsndicsICdoJywgMHgyNTNjfSwKCXsndicsICdIJywgMHgyNTNmfSwKCXsnVicsICdoJywgMHgyNTQyfSwKCXsnVicsICdIJywgMHgyNTRifSwKCXsnRicsICdEJywgMHgyNTcxfSwKCXsnQicsICdEJywgMHgyNTcyfSwKCXsnVCcsICdCJywgMHgyNTgwfSwKCXsnTCcsICdCJywgMHgyNTg0fSwKCXsnRicsICdCJywgMHgyNTg4fSwKCXsnbCcsICdCJywgMHgyNThjfSwKCXsnUicsICdCJywgMHgyNTkwfSwKCXsnLicsICdTJywgMHgyNTkxfSwKCXsnOicsICdTJywgMHgyNTkyfSwKCXsnPycsICdTJywgMHgyNTkzfSwKCXsnZicsICdTJywgMHgyNWEwfSwKCXsnTycsICdTJywgMHgyNWExfSwKCXsnUicsICdPJywgMHgyNWEyfSwKCXsnUicsICdyJywgMHgyNWEzfSwKCXsnUicsICdGJywgMHgyNWE0fSwKCXsnUicsICdZJywgMHgyNWE1fSwKCXsnUicsICdIJywgMHgyNWE2fSwKCXsnUicsICdaJywgMHgyNWE3fSwKCXsnUicsICdLJywgMHgyNWE4fSwKCXsnUicsICdYJywgMHgyNWE5fSwKCXsncycsICdCJywgMHgyNWFhfSwKCXsnUycsICdSJywgMHgyNWFjfSwKCXsnTycsICdyJywgMHgyNWFkfSwKCXsnVScsICdUJywgMHgyNWIyfSwKCXsndScsICdUJywgMHgyNWIzfSwKCXsnUCcsICdSJywgMHgyNWI2fSwKCXsnVCcsICdyJywgMHgyNWI3fSwKCXsnRCcsICd0JywgMHgyNWJjfSwKCXsnZCcsICdUJywgMHgyNWJkfSwKCXsnUCcsICdMJywgMHgyNWMwfSwKCXsnVCcsICdsJywgMHgyNWMxfSwKCXsnRCcsICdiJywgMHgyNWM2fSwKCXsnRCcsICd3JywgMHgyNWM3fSwKCXsnTCcsICdaJywgMHgyNWNhfSwKCXsnMCcsICdtJywgMHgyNWNifSwKCXsnMCcsICdvJywgMHgyNWNlfSwKCXsnMCcsICdNJywgMHgyNWNmfSwKCXsnMCcsICdMJywgMHgyNWQwfSwKCXsnMCcsICdSJywgMHgyNWQxfSwKCXsnUycsICduJywgMHgyNWQ4fSwKCXsnSScsICdjJywgMHgyNWQ5fSwKCXsnRicsICdkJywgMHgyNWUyfSwKCXsnQicsICdkJywgMHgyNWUzfSwKCXsnKicsICcyJywgMHgyNjA1fSwKCXsnKicsICcxJywgMHgyNjA2fSwKCXsnPCcsICdIJywgMHgyNjFjfSwKCXsnPicsICdIJywgMHgyNjFlfSwKCXsnMCcsICd1JywgMHgyNjNhfSwKCXsnMCcsICdVJywgMHgyNjNifSwKCXsnUycsICdVJywgMHgyNjNjfSwKCXsnRicsICdtJywgMHgyNjQwfSwKCXsnTScsICdsJywgMHgyNjQyfSwKCXsnYycsICdTJywgMHgyNjYwfSwKCXsnYycsICdIJywgMHgyNjYxfSwKCXsnYycsICdEJywgMHgyNjYyfSwKCXsnYycsICdDJywgMHgyNjYzfSwKCXsnTScsICdkJywgMHgyNjY5fSwKCXsnTScsICc4JywgMHgyNjZhfSwKCXsnTScsICcyJywgMHgyNjZifSwKCXsnTScsICdiJywgMHgyNjZkfSwKCXsnTScsICd4JywgMHgyNjZlfSwKCXsnTScsICdYJywgMHgyNjZmfSwKCXsnTycsICdLJywgMHgyNzEzfSwKCXsnWCcsICdYJywgMHgyNzE3fSwKCXsnLScsICdYJywgMHgyNzIwfSwKCXsnSScsICdTJywgMHgzMDAwfSwKCXsnLCcsICdfJywgMHgzMDAxfSwKCXsnLicsICdfJywgMHgzMDAyfSwKCXsnKycsICciJywgMHgzMDAzfSwKCXsnKycsICdfJywgMHgzMDA0fSwKCXsnKicsICdfJywgMHgzMDA1fSwKCXsnOycsICdfJywgMHgzMDA2fSwKCXsnMCcsICdfJywgMHgzMDA3fSwKCXsnPCcsICcrJywgMHgzMDBhfSwKCXsnPicsICcrJywgMHgzMDBifSwKCXsnPCcsICdcJycsIDB4MzAwY30sCgl7Jz4nLCAnXCcnLCAweDMwMGR9LAoJeyc8JywgJyInLCAweDMwMGV9LAoJeyc+JywgJyInLCAweDMwMGZ9LAoJeycoJywgJyInLCAweDMwMTB9LAoJeycpJywgJyInLCAweDMwMTF9LAoJeyc9JywgJ1QnLCAweDMwMTJ9LAoJeyc9JywgJ18nLCAweDMwMTN9LAoJeycoJywgJ1wnJywgMHgzMDE0fSwKCXsnKScsICdcJycsIDB4MzAxNX0sCgl7JygnLCAnSScsIDB4MzAxNn0sCgl7JyknLCAnSScsIDB4MzAxN30sCgl7Jy0nLCAnPycsIDB4MzAxY30sCgl7J0EnLCAnNScsIDB4MzA0MX0sCgl7J2EnLCAnNScsIDB4MzA0Mn0sCgl7J0knLCAnNScsIDB4MzA0M30sCgl7J2knLCAnNScsIDB4MzA0NH0sCgl7J1UnLCAnNScsIDB4MzA0NX0sCgl7J3UnLCAnNScsIDB4MzA0Nn0sCgl7J0UnLCAnNScsIDB4MzA0N30sCgl7J2UnLCAnNScsIDB4MzA0OH0sCgl7J08nLCAnNScsIDB4MzA0OX0sCgl7J28nLCAnNScsIDB4MzA0YX0sCgl7J2snLCAnYScsIDB4MzA0Yn0sCgl7J2cnLCAnYScsIDB4MzA0Y30sCgl7J2snLCAnaScsIDB4MzA0ZH0sCgl7J2cnLCAnaScsIDB4MzA0ZX0sCgl7J2snLCAndScsIDB4MzA0Zn0sCgl7J2cnLCAndScsIDB4MzA1MH0sCgl7J2snLCAnZScsIDB4MzA1MX0sCgl7J2cnLCAnZScsIDB4MzA1Mn0sCgl7J2snLCAnbycsIDB4MzA1M30sCgl7J2cnLCAnbycsIDB4MzA1NH0sCgl7J3MnLCAnYScsIDB4MzA1NX0sCgl7J3onLCAnYScsIDB4MzA1Nn0sCgl7J3MnLCAnaScsIDB4MzA1N30sCgl7J3onLCAnaScsIDB4MzA1OH0sCgl7J3MnLCAndScsIDB4MzA1OX0sCgl7J3onLCAndScsIDB4MzA1YX0sCgl7J3MnLCAnZScsIDB4MzA1Yn0sCgl7J3onLCAnZScsIDB4MzA1Y30sCgl7J3MnLCAnbycsIDB4MzA1ZH0sCgl7J3onLCAnbycsIDB4MzA1ZX0sCgl7J3QnLCAnYScsIDB4MzA1Zn0sCgl7J2QnLCAnYScsIDB4MzA2MH0sCgl7J3QnLCAnaScsIDB4MzA2MX0sCgl7J2QnLCAnaScsIDB4MzA2Mn0sCgl7J3QnLCAnVScsIDB4MzA2M30sCgl7J3QnLCAndScsIDB4MzA2NH0sCgl7J2QnLCAndScsIDB4MzA2NX0sCgl7J3QnLCAnZScsIDB4MzA2Nn0sCgl7J2QnLCAnZScsIDB4MzA2N30sCgl7J3QnLCAnbycsIDB4MzA2OH0sCgl7J2QnLCAnbycsIDB4MzA2OX0sCgl7J24nLCAnYScsIDB4MzA2YX0sCgl7J24nLCAnaScsIDB4MzA2Yn0sCgl7J24nLCAndScsIDB4MzA2Y30sCgl7J24nLCAnZScsIDB4MzA2ZH0sCgl7J24nLCAnbycsIDB4MzA2ZX0sCgl7J2gnLCAnYScsIDB4MzA2Zn0sCgl7J2InLCAnYScsIDB4MzA3MH0sCgl7J3AnLCAnYScsIDB4MzA3MX0sCgl7J2gnLCAnaScsIDB4MzA3Mn0sCgl7J2InLCAnaScsIDB4MzA3M30sCgl7J3AnLCAnaScsIDB4MzA3NH0sCgl7J2gnLCAndScsIDB4MzA3NX0sCgl7J2InLCAndScsIDB4MzA3Nn0sCgl7J3AnLCAndScsIDB4MzA3N30sCgl7J2gnLCAnZScsIDB4MzA3OH0sCgl7J2InLCAnZScsIDB4MzA3OX0sCgl7J3AnLCAnZScsIDB4MzA3YX0sCgl7J2gnLCAnbycsIDB4MzA3Yn0sCgl7J2InLCAnbycsIDB4MzA3Y30sCgl7J3AnLCAnbycsIDB4MzA3ZH0sCgl7J20nLCAnYScsIDB4MzA3ZX0sCgl7J20nLCAnaScsIDB4MzA3Zn0sCgl7J20nLCAndScsIDB4MzA4MH0sCgl7J20nLCAnZScsIDB4MzA4MX0sCgl7J20nLCAnbycsIDB4MzA4Mn0sCgl7J3knLCAnQScsIDB4MzA4M30sCgl7J3knLCAnYScsIDB4MzA4NH0sCgl7J3knLCAnVScsIDB4MzA4NX0sCgl7J3knLCAndScsIDB4MzA4Nn0sCgl7J3knLCAnTycsIDB4MzA4N30sCgl7J3knLCAnbycsIDB4MzA4OH0sCgl7J3InLCAnYScsIDB4MzA4OX0sCgl7J3InLCAnaScsIDB4MzA4YX0sCgl7J3InLCAndScsIDB4MzA4Yn0sCgl7J3InLCAnZScsIDB4MzA4Y30sCgl7J3InLCAnbycsIDB4MzA4ZH0sCgl7J3cnLCAnQScsIDB4MzA4ZX0sCgl7J3cnLCAnYScsIDB4MzA4Zn0sCgl7J3cnLCAnaScsIDB4MzA5MH0sCgl7J3cnLCAnZScsIDB4MzA5MX0sCgl7J3cnLCAnbycsIDB4MzA5Mn0sCgl7J24nLCAnNScsIDB4MzA5M30sCgl7J3YnLCAndScsIDB4MzA5NH0sCgl7JyInLCAnNScsIDB4MzA5Yn0sCgl7JzAnLCAnNScsIDB4MzA5Y30sCgl7JyonLCAnNScsIDB4MzA5ZH0sCgl7JysnLCAnNScsIDB4MzA5ZX0sCgl7J2EnLCAnNicsIDB4MzBhMX0sCgl7J0EnLCAnNicsIDB4MzBhMn0sCgl7J2knLCAnNicsIDB4MzBhM30sCgl7J0knLCAnNicsIDB4MzBhNH0sCgl7J3UnLCAnNicsIDB4MzBhNX0sCgl7J1UnLCAnNicsIDB4MzBhNn0sCgl7J2UnLCAnNicsIDB4MzBhN30sCgl7J0UnLCAnNicsIDB4MzBhOH0sCgl7J28nLCAnNicsIDB4MzBhOX0sCgl7J08nLCAnNicsIDB4MzBhYX0sCgl7J0snLCAnYScsIDB4MzBhYn0sCgl7J0cnLCAnYScsIDB4MzBhY30sCgl7J0snLCAnaScsIDB4MzBhZH0sCgl7J0cnLCAnaScsIDB4MzBhZX0sCgl7J0snLCAndScsIDB4MzBhZn0sCgl7J0cnLCAndScsIDB4MzBiMH0sCgl7J0snLCAnZScsIDB4MzBiMX0sCgl7J0cnLCAnZScsIDB4MzBiMn0sCgl7J0snLCAnbycsIDB4MzBiM30sCgl7J0cnLCAnbycsIDB4MzBiNH0sCgl7J1MnLCAnYScsIDB4MzBiNX0sCgl7J1onLCAnYScsIDB4MzBiNn0sCgl7J1MnLCAnaScsIDB4MzBiN30sCgl7J1onLCAnaScsIDB4MzBiOH0sCgl7J1MnLCAndScsIDB4MzBiOX0sCgl7J1onLCAndScsIDB4MzBiYX0sCgl7J1MnLCAnZScsIDB4MzBiYn0sCgl7J1onLCAnZScsIDB4MzBiY30sCgl7J1MnLCAnbycsIDB4MzBiZH0sCgl7J1onLCAnbycsIDB4MzBiZX0sCgl7J1QnLCAnYScsIDB4MzBiZn0sCgl7J0QnLCAnYScsIDB4MzBjMH0sCgl7J1QnLCAnaScsIDB4MzBjMX0sCgl7J0QnLCAnaScsIDB4MzBjMn0sCgl7J1QnLCAnVScsIDB4MzBjM30sCgl7J1QnLCAndScsIDB4MzBjNH0sCgl7J0QnLCAndScsIDB4MzBjNX0sCgl7J1QnLCAnZScsIDB4MzBjNn0sCgl7J0QnLCAnZScsIDB4MzBjN30sCgl7J1QnLCAnbycsIDB4MzBjOH0sCgl7J0QnLCAnbycsIDB4MzBjOX0sCgl7J04nLCAnYScsIDB4MzBjYX0sCgl7J04nLCAnaScsIDB4MzBjYn0sCgl7J04nLCAndScsIDB4MzBjY30sCgl7J04nLCAnZScsIDB4MzBjZH0sCgl7J04nLCAnbycsIDB4MzBjZX0sCgl7J0gnLCAnYScsIDB4MzBjZn0sCgl7J0InLCAnYScsIDB4MzBkMH0sCgl7J1AnLCAnYScsIDB4MzBkMX0sCgl7J0gnLCAnaScsIDB4MzBkMn0sCgl7J0InLCAnaScsIDB4MzBkM30sCgl7J1AnLCAnaScsIDB4MzBkNH0sCgl7J0gnLCAndScsIDB4MzBkNX0sCgl7J0InLCAndScsIDB4MzBkNn0sCgl7J1AnLCAndScsIDB4MzBkN30sCgl7J0gnLCAnZScsIDB4MzBkOH0sCgl7J0InLCAnZScsIDB4MzBkOX0sCgl7J1AnLCAnZScsIDB4MzBkYX0sCgl7J0gnLCAnbycsIDB4MzBkYn0sCgl7J0InLCAnbycsIDB4MzBkY30sCgl7J1AnLCAnbycsIDB4MzBkZH0sCgl7J00nLCAnYScsIDB4MzBkZX0sCgl7J00nLCAnaScsIDB4MzBkZn0sCgl7J00nLCAndScsIDB4MzBlMH0sCgl7J00nLCAnZScsIDB4MzBlMX0sCgl7J00nLCAnbycsIDB4MzBlMn0sCgl7J1knLCAnQScsIDB4MzBlM30sCgl7J1knLCAnYScsIDB4MzBlNH0sCgl7J1knLCAnVScsIDB4MzBlNX0sCgl7J1knLCAndScsIDB4MzBlNn0sCgl7J1knLCAnTycsIDB4MzBlN30sCgl7J1knLCAnbycsIDB4MzBlOH0sCgl7J1InLCAnYScsIDB4MzBlOX0sCgl7J1InLCAnaScsIDB4MzBlYX0sCgl7J1InLCAndScsIDB4MzBlYn0sCgl7J1InLCAnZScsIDB4MzBlY30sCgl7J1InLCAnbycsIDB4MzBlZH0sCgl7J1cnLCAnQScsIDB4MzBlZX0sCgl7J1cnLCAnYScsIDB4MzBlZn0sCgl7J1cnLCAnaScsIDB4MzBmMH0sCgl7J1cnLCAnZScsIDB4MzBmMX0sCgl7J1cnLCAnbycsIDB4MzBmMn0sCgl7J04nLCAnNicsIDB4MzBmM30sCgl7J1YnLCAndScsIDB4MzBmNH0sCgl7J0snLCAnQScsIDB4MzBmNX0sCgl7J0snLCAnRScsIDB4MzBmNn0sCgl7J1YnLCAnYScsIDB4MzBmN30sCgl7J1YnLCAnaScsIDB4MzBmOH0sCgl7J1YnLCAnZScsIDB4MzBmOX0sCgl7J1YnLCAnbycsIDB4MzBmYX0sCgl7Jy4nLCAnNicsIDB4MzBmYn0sCgl7Jy0nLCAnNicsIDB4MzBmY30sCgl7JyonLCAnNicsIDB4MzBmZH0sCgl7JysnLCAnNicsIDB4MzBmZX0sCgl7J2InLCAnNCcsIDB4MzEwNX0sCgl7J3AnLCAnNCcsIDB4MzEwNn0sCgl7J20nLCAnNCcsIDB4MzEwN30sCgl7J2YnLCAnNCcsIDB4MzEwOH0sCgl7J2QnLCAnNCcsIDB4MzEwOX0sCgl7J3QnLCAnNCcsIDB4MzEwYX0sCgl7J24nLCAnNCcsIDB4MzEwYn0sCgl7J2wnLCAnNCcsIDB4MzEwY30sCgl7J2cnLCAnNCcsIDB4MzEwZH0sCgl7J2snLCAnNCcsIDB4MzEwZX0sCgl7J2gnLCAnNCcsIDB4MzEwZn0sCgl7J2onLCAnNCcsIDB4MzExMH0sCgl7J3EnLCAnNCcsIDB4MzExMX0sCgl7J3gnLCAnNCcsIDB4MzExMn0sCgl7J3onLCAnaCcsIDB4MzExM30sCgl7J2MnLCAnaCcsIDB4MzExNH0sCgl7J3MnLCAnaCcsIDB4MzExNX0sCgl7J3InLCAnNCcsIDB4MzExNn0sCgl7J3onLCAnNCcsIDB4MzExN30sCgl7J2MnLCAnNCcsIDB4MzExOH0sCgl7J3MnLCAnNCcsIDB4MzExOX0sCgl7J2EnLCAnNCcsIDB4MzExYX0sCgl7J28nLCAnNCcsIDB4MzExYn0sCgl7J2UnLCAnNCcsIDB4MzExY30sCgl7J2EnLCAnaScsIDB4MzExZX0sCgl7J2UnLCAnaScsIDB4MzExZn0sCgl7J2EnLCAndScsIDB4MzEyMH0sCgl7J28nLCAndScsIDB4MzEyMX0sCgl7J2EnLCAnbicsIDB4MzEyMn0sCgl7J2UnLCAnbicsIDB4MzEyM30sCgl7J2EnLCAnTicsIDB4MzEyNH0sCgl7J2UnLCAnTicsIDB4MzEyNX0sCgl7J2UnLCAncicsIDB4MzEyNn0sCgl7J2knLCAnNCcsIDB4MzEyN30sCgl7J3UnLCAnNCcsIDB4MzEyOH0sCgl7J2knLCAndScsIDB4MzEyOX0sCgl7J3YnLCAnNCcsIDB4MzEyYX0sCgl7J24nLCAnRycsIDB4MzEyYn0sCgl7J2cnLCAnbicsIDB4MzEyY30sCgl7JzEnLCAnYycsIDB4MzIyMH0sCgl7JzInLCAnYycsIDB4MzIyMX0sCgl7JzMnLCAnYycsIDB4MzIyMn0sCgl7JzQnLCAnYycsIDB4MzIyM30sCgl7JzUnLCAnYycsIDB4MzIyNH0sCgl7JzYnLCAnYycsIDB4MzIyNX0sCgl7JzcnLCAnYycsIDB4MzIyNn0sCgl7JzgnLCAnYycsIDB4MzIyN30sCgl7JzknLCAnYycsIDB4MzIyOH0sCgkvKiBjb2RlIHBvaW50cyAweGUwMDAgLSAweGVmZmYgZXhjbHVkZWQsIHRoZXkgaGF2ZSBubyBhc3NpZ25lZAoJICogY2hhcmFjdGVycywgb25seSB1c2VkIGluIHByb3Bvc2Fscy4gKi8KCXsnZicsICdmJywgMHhmYjAwfSwKCXsnZicsICdpJywgMHhmYjAxfSwKCXsnZicsICdsJywgMHhmYjAyfSwKCXsnZicsICd0JywgMHhmYjA1fSwKCXsncycsICd0JywgMHhmYjA2fSwKCgkvKiBleHRyYSBhbHRlcm5hdGl2ZXMsIGVhc2llciB0byByZW1lbWJlciAqLwoJeydXJywgJ2AnLCAweDFlODB9LAoJeyd3JywgJ2AnLCAweDFlODF9LAoJeydZJywgJ2AnLCAweDFlZjJ9LAoJeyd5JywgJ2AnLCAweDFlZjN9LAoKIyAgICAgIGVuZGlmIC8qIEZFQVRfTUJZVEUgKi8KCgkvKiBWaW0gNS54IGNvbXBhdGlibGUgZGlncmFwaHMgdGhhdCBkb24ndCBjb25mbGljdCB3aXRoIHRoZSBhYm92ZSAqLwoJeyd+JywgJyEnLCAxNjF9LAkvKiChICovCgl7J2MnLCAnfCcsIDE2Mn0sCS8qIKIgKi8KCXsnJCcsICckJywgMTYzfSwJLyogoyAqLwoJeydvJywgJ3gnLCAxNjR9LAkvKiCkIC0gY3VycmVuY3kgc3ltYm9sIGluIElTTyA4ODU5LTEgKi8KCXsnWScsICctJywgMTY1fSwJLyogpSAqLwoJeyd8JywgJ3wnLCAxNjZ9LAkvKiCmICovCgl7J2MnLCAnTycsIDE2OX0sCS8qIKkgKi8KCXsnLScsICcsJywgMTcyfSwJLyogrCAqLwoJeyctJywgJz0nLCAxNzV9LAkvKiCvICovCgl7J34nLCAnbycsIDE3Nn0sCS8qILAgKi8KCXsnMicsICcyJywgMTc4fSwJLyogsiAqLwoJeyczJywgJzMnLCAxNzl9LAkvKiCzICovCgl7J3AnLCAncCcsIDE4Mn0sCS8qILYgKi8KCXsnficsICcuJywgMTgzfSwJLyogtyAqLwoJeycxJywgJzEnLCAxODV9LAkvKiC5ICovCgl7J34nLCAnPycsIDE5MX0sCS8qIL8gKi8KCXsnQScsICdgJywgMTkyfSwJLyogwCAqLwoJeydBJywgJ14nLCAxOTR9LAkvKiDCICovCgl7J0EnLCAnficsIDE5NX0sCS8qIMMgKi8KCXsnQScsICciJywgMTk2fSwJLyogxCAqLwoJeydBJywgJ0AnLCAxOTd9LAkvKiDFICovCgl7J0UnLCAnYCcsIDIwMH0sCS8qIMggKi8KCXsnRScsICdeJywgMjAyfSwJLyogyiAqLwoJeydFJywgJyInLCAyMDN9LAkvKiDLICovCgl7J0knLCAnYCcsIDIwNH0sCS8qIMwgKi8KCXsnSScsICdeJywgMjA2fSwJLyogziAqLwoJeydJJywgJyInLCAyMDd9LAkvKiDPICovCgl7J04nLCAnficsIDIwOX0sCS8qINEgKi8KCXsnTycsICdgJywgMjEwfSwJLyog0iAqLwoJeydPJywgJ14nLCAyMTJ9LAkvKiDUICovCgl7J08nLCAnficsIDIxM30sCS8qINUgKi8KCXsnLycsICdcXCcsIDIxNX0sCS8qINcgLSBtdWx0aXBsaWNhdGlvbiBzeW1ib2wgaW4gSVNPIDg4NTktMSAqLwoJeydVJywgJ2AnLCAyMTd9LAkvKiDZICovCgl7J1UnLCAnXicsIDIxOX0sCS8qINsgKi8KCXsnSScsICdwJywgMjIyfSwJLyog3iAqLwoJeydhJywgJ2AnLCAyMjR9LAkvKiDgICovCgl7J2EnLCAnXicsIDIyNn0sCS8qIOIgKi8KCXsnYScsICd+JywgMjI3fSwJLyog4yAqLwoJeydhJywgJyInLCAyMjh9LAkvKiDkICovCgl7J2EnLCAnQCcsIDIyOX0sCS8qIOUgKi8KCXsnZScsICdgJywgMjMyfSwJLyog6CAqLwoJeydlJywgJ14nLCAyMzR9LAkvKiDqICovCgl7J2UnLCAnIicsIDIzNX0sCS8qIOsgKi8KCXsnaScsICdgJywgMjM2fSwJLyog7CAqLwoJeydpJywgJ14nLCAyMzh9LAkvKiDuICovCgl7J24nLCAnficsIDI0MX0sCS8qIPEgKi8KCXsnbycsICdgJywgMjQyfSwJLyog8iAqLwoJeydvJywgJ14nLCAyNDR9LAkvKiD0ICovCgl7J28nLCAnficsIDI0NX0sCS8qIPUgKi8KCXsndScsICdgJywgMjQ5fSwJLyog+SAqLwoJeyd1JywgJ14nLCAyNTF9LAkvKiD7ICovCgl7J3knLCAnIicsIDI1NX0sCS8qIHggWFggKi8KCgl7TlVMLCBOVUwsIE5VTH0KICAgICAgIH07CgojICAgIGVuZGlmIC8qIE9MRF9ESUdSQVBIUyAqLwoKIyAgIGVuZGlmIC8qIE1hY2ludG9zaCAqLwojICBlbmRpZiAvKiBFQkNESUMgKi8KIyBlbmRpZiAgICAvKiAhSFBVWF9ESUdSQVBIUyAqLwojZW5kaWYJLyogIV9fTUlOVF9fICovCgovKgogKiBoYW5kbGUgZGlncmFwaHMgYWZ0ZXIgdHlwaW5nIGEgY2hhcmFjdGVyCiAqLwogICAgaW50CmRvX2RpZ3JhcGgoaW50IGMpCnsKICAgIHN0YXRpYyBpbnQJYmFja3NwYWNlZDsJLyogY2hhcmFjdGVyIGJlZm9yZSBLX0JTICovCiAgICBzdGF0aWMgaW50CWxhc3RjaGFyOwkvKiBsYXN0IHR5cGVkIGNoYXJhY3RlciAqLwoKICAgIGlmIChjID09IC0xKQkJLyogaW5pdCB2YWx1ZXMgKi8KICAgIHsKCWJhY2tzcGFjZWQgPSAtMTsKICAgIH0KICAgIGVsc2UgaWYgKHBfZGcpCiAgICB7CglpZiAoYmFja3NwYWNlZCA+PSAwKQoJICAgIGMgPSBnZXRkaWdyYXBoKGJhY2tzcGFjZWQsIGMsIEZBTFNFKTsKCWJhY2tzcGFjZWQgPSAtMTsKCWlmICgoYyA9PSBLX0JTIHx8IGMgPT0gQ3RybF9IKSAmJiBsYXN0Y2hhciA+PSAwKQoJICAgIGJhY2tzcGFjZWQgPSBsYXN0Y2hhcjsKICAgIH0KICAgIGxhc3RjaGFyID0gYzsKICAgIHJldHVybiBjOwp9CgovKgogKiBGaW5kIGEgZGlncmFwaCBmb3IgInZhbCIuICBJZiBmb3VuZCByZXR1cm4gdGhlIHN0cmluZyB0byBkaXNwbGF5IGl0LgogKiBJZiBub3QgZm91bmQgcmV0dXJuIE5VTEwuCiAqLwogICAgY2hhcl91ICoKZ2V0X2RpZ3JhcGhfZm9yX2NoYXIoaW50IHZhbF9hcmcpCnsKICAgIGludAkJdmFsID0gdmFsX2FyZzsKICAgIGludAkJaTsKICAgIGludAkJdXNlX2RlZmF1bHRzOwogICAgZGlncl9UCSpkcDsKICAgIHN0YXRpYyAgICAgIGNoYXJfdSAgICAgIHJbM107CgojaWYgZGVmaW5lZChGRUFUX01CWVRFKSAmJiBkZWZpbmVkKFVTRV9VTklDT0RFX0RJR1JBUEhTKQogICAgaWYgKCFlbmNfdXRmOCkKICAgIHsKCWNoYXJfdQkgICAgYnVmWzZdLCAqdG87Cgl2aW1jb252X1QgICB2YzsKCgkvLyBjb252ZXJ0IHRoZSBjaGFyYWN0ZXIgZnJvbSAnZW5jb2RpbmcnIHRvIFVuaWNvZGUKCWkgPSBtYl9jaGFyMmJ5dGVzKHZhbCwgYnVmKTsKCXZjLnZjX3R5cGUgPSBDT05WX05PTkU7CglpZiAoY29udmVydF9zZXR1cCgmdmMsIHBfZW5jLCAoY2hhcl91ICopInV0Zi04IikgPT0gT0spCgl7CgkgICAgdmMudmNfZmFpbCA9IFRSVUU7CgkgICAgdG8gPSBzdHJpbmdfY29udmVydCgmdmMsIGJ1ZiwgJmkpOwoJICAgIGlmICh0byAhPSBOVUxMKQoJICAgIHsKCQl2YWwgPSB1dGZfcHRyMmNoYXIodG8pOwoJCXZpbV9mcmVlKHRvKTsKCSAgICB9CgkgICAgKHZvaWQpY29udmVydF9zZXR1cCgmdmMsIE5VTEwsIE5VTEwpOwoJfQogICAgfQojZW5kaWYKCiAgICBmb3IgKHVzZV9kZWZhdWx0cyA9IDA7IHVzZV9kZWZhdWx0cyA8PSAxOyB1c2VfZGVmYXVsdHMrKykKICAgIHsKCWlmICh1c2VfZGVmYXVsdHMgPT0gMCkKCSAgICBkcCA9IChkaWdyX1QgKil1c2VyX2RpZ3JhcGhzLmdhX2RhdGE7CgllbHNlCgkgICAgZHAgPSBkaWdyYXBoZGVmYXVsdDsKCWZvciAoaSA9IDA7IHVzZV9kZWZhdWx0cyA/IGRwLT5jaGFyMSAhPSBOVUwKCQkJCQkgICAgICAgOiBpIDwgdXNlcl9kaWdyYXBocy5nYV9sZW47ICsraSkKCXsKCSAgICBpZiAoZHAtPnJlc3VsdCA9PSB2YWwpCgkgICAgewoJCXJbMF0gPSBkcC0+Y2hhcjE7CgkJclsxXSA9IGRwLT5jaGFyMjsKCQlyWzJdID0gTlVMOwoJCXJldHVybiByOwoJICAgIH0KCSAgICArK2RwOwoJfQogICAgfQogICAgcmV0dXJuIE5VTEw7Cn0KCi8qCiAqIEdldCBhIGRpZ3JhcGguICBVc2VkIGFmdGVyIHR5cGluZyBDVFJMLUsgb24gdGhlIGNvbW1hbmQgbGluZSBvciBpbiBub3JtYWwKICogbW9kZS4KICogUmV0dXJucyBjb21wb3NlZCBjaGFyYWN0ZXIsIG9yIE5VTCB3aGVuIEVTQyB3YXMgdXNlZC4KICovCiAgICBpbnQKZ2V0X2RpZ3JhcGgoCiAgICBpbnQJCWNtZGxpbmUpCS8qIFRSVUUgd2hlbiBjYWxsZWQgZnJvbSB0aGUgY21kbGluZSAqLwp7CiAgICBpbnQJCWMsIGNjOwoKICAgICsrbm9fbWFwcGluZzsKICAgICsrYWxsb3dfa2V5czsKICAgIGMgPSBwbGFpbl92Z2V0YygpOwogICAgLS1ub19tYXBwaW5nOwogICAgLS1hbGxvd19rZXlzOwogICAgaWYgKGMgIT0gRVNDKQkJLyogRVNDIGNhbmNlbHMgQ1RSTC1LICovCiAgICB7CglpZiAoSVNfU1BFQ0lBTChjKSkJLyogaW5zZXJ0IHNwZWNpYWwga2V5IGNvZGUgKi8KCSAgICByZXR1cm4gYzsKCWlmIChjbWRsaW5lKQoJewoJICAgIGlmIChjaGFyMmNlbGxzKGMpID09IDEKI2lmIGRlZmluZWQoRkVBVF9DUllQVCkgfHwgZGVmaW5lZChGRUFUX0VWQUwpCgkJICAgICYmIGNtZGxpbmVfc3RhciA9PSAwCiNlbmRpZgoJCSAgICApCgkJcHV0Y21kbGluZShjLCBUUlVFKTsKCX0KI2lmZGVmIEZFQVRfQ01ETF9JTkZPCgllbHNlCgkgICAgYWRkX3RvX3Nob3djbWQoYyk7CiNlbmRpZgoJKytub19tYXBwaW5nOwoJKythbGxvd19rZXlzOwoJY2MgPSBwbGFpbl92Z2V0YygpOwoJLS1ub19tYXBwaW5nOwoJLS1hbGxvd19rZXlzOwoJaWYgKGNjICE9IEVTQykJICAgIC8qIEVTQyBjYW5jZWxzIENUUkwtSyAqLwoJICAgIHJldHVybiBnZXRkaWdyYXBoKGMsIGNjLCBUUlVFKTsKICAgIH0KICAgIHJldHVybiBOVUw7Cn0KCi8qCiAqIExvb2t1cCB0aGUgcGFpciAiY2hhcjEiLCAiY2hhcjIiIGluIHRoZSBkaWdyYXBoIHRhYmxlcy4KICogSWYgbm8gbWF0Y2gsIHJldHVybiAiY2hhcjIiLgogKiBJZiAibWV0YV9jaGFyIiBpcyBUUlVFIGFuZCAiY2hhcjEiIGlzIGEgc3BhY2UsIHJldHVybiAiY2hhcjIiIHwgMHg4MC4KICovCiAgICBzdGF0aWMgaW50CmdldGV4YWN0ZGlncmFwaChpbnQgY2hhcjEsIGludCBjaGFyMiwgaW50IG1ldGFfY2hhcikKewogICAgaW50CQlpOwogICAgaW50CQlyZXR2YWwgPSAwOwogICAgZGlncl9UCSpkcDsKCiAgICBpZiAoSVNfU1BFQ0lBTChjaGFyMSkgfHwgSVNfU1BFQ0lBTChjaGFyMikpCglyZXR1cm4gY2hhcjI7CgogICAgLyoKICAgICAqIFNlYXJjaCB1c2VyIGRpZ3JhcGhzIGZpcnN0LgogICAgICovCiAgICBkcCA9IChkaWdyX1QgKil1c2VyX2RpZ3JhcGhzLmdhX2RhdGE7CiAgICBmb3IgKGkgPSAwOyBpIDwgdXNlcl9kaWdyYXBocy5nYV9sZW47ICsraSkKICAgIHsKCWlmICgoaW50KWRwLT5jaGFyMSA9PSBjaGFyMSAmJiAoaW50KWRwLT5jaGFyMiA9PSBjaGFyMikKCXsKCSAgICByZXR2YWwgPSBkcC0+cmVzdWx0OwoJICAgIGJyZWFrOwoJfQoJKytkcDsKICAgIH0KCiAgICAvKgogICAgICogU2VhcmNoIGRlZmF1bHQgZGlncmFwaHMuCiAgICAgKi8KICAgIGlmIChyZXR2YWwgPT0gMCkKICAgIHsKCWRwID0gZGlncmFwaGRlZmF1bHQ7Cglmb3IgKGkgPSAwOyBkcC0+Y2hhcjEgIT0gMDsgKytpKQoJewoJICAgIGlmICgoaW50KWRwLT5jaGFyMSA9PSBjaGFyMSAmJiAoaW50KWRwLT5jaGFyMiA9PSBjaGFyMikKCSAgICB7CgkJcmV0dmFsID0gZHAtPnJlc3VsdDsKCQlicmVhazsKCSAgICB9CgkgICAgKytkcDsKCX0KICAgIH0KI2lmZGVmIEZFQVRfTUJZVEUKIyBpZmRlZiBVU0VfVU5JQ09ERV9ESUdSQVBIUwogICAgaWYgKHJldHZhbCAhPSAwICYmICFlbmNfdXRmOCkKICAgIHsKCWNoYXJfdQkgICAgYnVmWzZdLCAqdG87Cgl2aW1jb252X1QgICB2YzsKCgkvKgoJICogQ29udmVydCB0aGUgVW5pY29kZSBkaWdyYXBoIHRvICdlbmNvZGluZycuCgkgKi8KCWkgPSB1dGZfY2hhcjJieXRlcyhyZXR2YWwsIGJ1Zik7CglyZXR2YWwgPSAwOwoJdmMudmNfdHlwZSA9IENPTlZfTk9ORTsKCWlmIChjb252ZXJ0X3NldHVwKCZ2YywgKGNoYXJfdSAqKSJ1dGYtOCIsIHBfZW5jKSA9PSBPSykKCXsKCSAgICB2Yy52Y19mYWlsID0gVFJVRTsKCSAgICB0byA9IHN0cmluZ19jb252ZXJ0KCZ2YywgYnVmLCAmaSk7CgkgICAgaWYgKHRvICE9IE5VTEwpCgkgICAgewoJCXJldHZhbCA9ICgqbWJfcHRyMmNoYXIpKHRvKTsKCQl2aW1fZnJlZSh0byk7CgkgICAgfQoJICAgICh2b2lkKWNvbnZlcnRfc2V0dXAoJnZjLCBOVUxMLCBOVUxMKTsKCX0KICAgIH0KIyBlbmRpZgoKICAgIC8qIElnbm9yZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgd2hlbiBub3QgaW4gbXVsdGktYnl0ZSBtb2RlLiAqLwogICAgaWYgKCFoYXNfbWJ5dGUgJiYgcmV0dmFsID4gMHhmZikKCXJldHZhbCA9IDA7CiNlbmRpZgoKICAgIGlmIChyZXR2YWwgPT0gMCkJCS8qIGRpZ3JhcGggZGVsZXRlZCBvciBub3QgZm91bmQgKi8KICAgIHsKCWlmIChjaGFyMSA9PSAnICcgJiYgbWV0YV9jaGFyKQkvKiA8c3BhY2U+IDxjaGFyPiAtLT4gbWV0YS1jaGFyICovCgkgICAgcmV0dXJuIChjaGFyMiB8IDB4ODApOwoJcmV0dXJuIGNoYXIyOwogICAgfQogICAgcmV0dXJuIHJldHZhbDsKfQoKLyoKICogR2V0IGRpZ3JhcGguCiAqIEFsbG93IGZvciBib3RoIGNoYXIxLWNoYXIyIGFuZCBjaGFyMi1jaGFyMQogKi8KICAgIGludApnZXRkaWdyYXBoKGludCBjaGFyMSwgaW50IGNoYXIyLCBpbnQgbWV0YV9jaGFyKQp7CiAgICBpbnQJICAgIHJldHZhbDsKCiAgICBpZiAoKChyZXR2YWwgPSBnZXRleGFjdGRpZ3JhcGgoY2hhcjEsIGNoYXIyLCBtZXRhX2NoYXIpKSA9PSBjaGFyMikKCSAgICAmJiAoY2hhcjEgIT0gY2hhcjIpCgkgICAgJiYgKChyZXR2YWwgPSBnZXRleGFjdGRpZ3JhcGgoY2hhcjIsIGNoYXIxLCBtZXRhX2NoYXIpKSA9PSBjaGFyMSkpCglyZXR1cm4gY2hhcjI7CiAgICByZXR1cm4gcmV0dmFsOwp9CgovKgogKiBBZGQgdGhlIGRpZ3JhcGhzIGluIHRoZSBhcmd1bWVudCB0byB0aGUgZGlncmFwaCB0YWJsZS4KICogZm9ybWF0OiB7YzF9e2MyfSBjaGFyIHtjMX17YzJ9IGNoYXIgLi4uCiAqLwogICAgdm9pZApwdXRkaWdyYXBoKGNoYXJfdSAqc3RyKQp7CiAgICBpbnQJCWNoYXIxLCBjaGFyMiwgbjsKICAgIGludAkJaTsKICAgIGRpZ3JfVAkqZHA7CgogICAgd2hpbGUgKCpzdHIgIT0gTlVMKQogICAgewoJc3RyID0gc2tpcHdoaXRlKHN0cik7CglpZiAoKnN0ciA9PSBOVUwpCgkgICAgcmV0dXJuOwoJY2hhcjEgPSAqc3RyKys7CgljaGFyMiA9ICpzdHIrKzsKCWlmIChjaGFyMiA9PSAwKQoJewoJICAgIEVNU0coXyhlX2ludmFyZykpOwoJICAgIHJldHVybjsKCX0KCWlmIChjaGFyMSA9PSBFU0MgfHwgY2hhcjIgPT0gRVNDKQoJewoJICAgIEVNU0coXygiRTEwNDogRXNjYXBlIG5vdCBhbGxvd2VkIGluIGRpZ3JhcGgiKSk7CgkgICAgcmV0dXJuOwoJfQoJc3RyID0gc2tpcHdoaXRlKHN0cik7CglpZiAoIVZJTV9JU0RJR0lUKCpzdHIpKQoJewoJICAgIEVNU0coXyhlX251bWJlcl9leHApKTsKCSAgICByZXR1cm47Cgl9CgluID0gZ2V0ZGlnaXRzKCZzdHIpOwoKCS8qIElmIHRoZSBkaWdyYXBoIGFscmVhZHkgZXhpc3RzLCByZXBsYWNlIHRoZSByZXN1bHQuICovCglkcCA9IChkaWdyX1QgKil1c2VyX2RpZ3JhcGhzLmdhX2RhdGE7Cglmb3IgKGkgPSAwOyBpIDwgdXNlcl9kaWdyYXBocy5nYV9sZW47ICsraSkKCXsKCSAgICBpZiAoKGludClkcC0+Y2hhcjEgPT0gY2hhcjEgJiYgKGludClkcC0+Y2hhcjIgPT0gY2hhcjIpCgkgICAgewoJCWRwLT5yZXN1bHQgPSBuOwoJCWJyZWFrOwoJICAgIH0KCSAgICArK2RwOwoJfQoKCS8qIEFkZCBhIG5ldyBkaWdyYXBoIHRvIHRoZSB0YWJsZS4gKi8KCWlmIChpID09IHVzZXJfZGlncmFwaHMuZ2FfbGVuKQoJewoJICAgIGlmIChnYV9ncm93KCZ1c2VyX2RpZ3JhcGhzLCAxKSA9PSBPSykKCSAgICB7CgkJZHAgPSAoZGlncl9UICopdXNlcl9kaWdyYXBocy5nYV9kYXRhICsgdXNlcl9kaWdyYXBocy5nYV9sZW47CgkJZHAtPmNoYXIxID0gY2hhcjE7CgkJZHAtPmNoYXIyID0gY2hhcjI7CgkJZHAtPnJlc3VsdCA9IG47CgkJKyt1c2VyX2RpZ3JhcGhzLmdhX2xlbjsKCSAgICB9Cgl9CiAgICB9Cn0KCiAgICB2b2lkCmxpc3RkaWdyYXBocyh2b2lkKQp7CiAgICBpbnQJCWk7CiAgICBkaWdyX1QJKmRwOwoKICAgIG1zZ19wdXRjaGFyKCdcbicpOwoKICAgIGRwID0gZGlncmFwaGRlZmF1bHQ7CiAgICBmb3IgKGkgPSAwOyBkcC0+Y2hhcjEgIT0gTlVMICYmICFnb3RfaW50OyArK2kpCiAgICB7CiNpZiBkZWZpbmVkKFVTRV9VTklDT0RFX0RJR1JBUEhTKSAmJiBkZWZpbmVkKEZFQVRfTUJZVEUpCglkaWdyX1QgdG1wOwoKCS8qIE1heSBuZWVkIHRvIGNvbnZlcnQgdGhlIHJlc3VsdCB0byAnZW5jb2RpbmcnLiAqLwoJdG1wLmNoYXIxID0gZHAtPmNoYXIxOwoJdG1wLmNoYXIyID0gZHAtPmNoYXIyOwoJdG1wLnJlc3VsdCA9IGdldGV4YWN0ZGlncmFwaCh0bXAuY2hhcjEsIHRtcC5jaGFyMiwgRkFMU0UpOwoJaWYgKHRtcC5yZXN1bHQgIT0gMCAmJiB0bXAucmVzdWx0ICE9IHRtcC5jaGFyMgoJCQkJCSAgJiYgKGhhc19tYnl0ZSB8fCB0bXAucmVzdWx0IDw9IDI1NSkpCgkgICAgcHJpbnRkaWdyYXBoKCZ0bXApOwojZWxzZQoKCWlmIChnZXRleGFjdGRpZ3JhcGgoZHAtPmNoYXIxLCBkcC0+Y2hhcjIsIEZBTFNFKSA9PSBkcC0+cmVzdWx0CiMgaWZkZWYgRkVBVF9NQllURQoJCSYmIChoYXNfbWJ5dGUgfHwgZHAtPnJlc3VsdCA8PSAyNTUpCiMgZW5kaWYKCQkpCgkgICAgcHJpbnRkaWdyYXBoKGRwKTsKI2VuZGlmCgkrK2RwOwoJdWlfYnJlYWtjaGVjaygpOwogICAgfQoKICAgIGRwID0gKGRpZ3JfVCAqKXVzZXJfZGlncmFwaHMuZ2FfZGF0YTsKICAgIGZvciAoaSA9IDA7IGkgPCB1c2VyX2RpZ3JhcGhzLmdhX2xlbiAmJiAhZ290X2ludDsgKytpKQogICAgewoJcHJpbnRkaWdyYXBoKGRwKTsKCXVpX2JyZWFrY2hlY2soKTsKCSsrZHA7CiAgICB9CiAgICBtdXN0X3JlZHJhdyA9IENMRUFSOyAgICAvKiBjbGVhciBzY3JlZW4sIGJlY2F1c2Ugc29tZSBkaWdyYXBocyBtYXkgYmUKCQkJICAgICAgIHdyb25nLCBpbiB3aGljaCBjYXNlIHdlIG1lc3NlZCB1cCBTY3JlZW5MaW5lcyAqLwp9CgogICAgc3RhdGljIHZvaWQKcHJpbnRkaWdyYXBoKGRpZ3JfVCAqZHApCnsKICAgIGNoYXJfdQlidWZbMzBdOwogICAgY2hhcl91CSpwOwoKICAgIGludAkJbGlzdF93aWR0aDsKCiAgICBpZiAoKGR5X2ZsYWdzICYgRFlfVUhFWCkKI2lmZGVmIEZFQVRfTUJZVEUKCSAgICB8fCBoYXNfbWJ5dGUKI2VuZGlmCgkgICAgKQoJbGlzdF93aWR0aCA9IDEzOwogICAgZWxzZQoJbGlzdF93aWR0aCA9IDExOwoKICAgIGlmIChkcC0+cmVzdWx0ICE9IDApCiAgICB7CglpZiAobXNnX2NvbCA+IENvbHVtbnMgLSBsaXN0X3dpZHRoKQoJICAgIG1zZ19wdXRjaGFyKCdcbicpOwoJaWYgKG1zZ19jb2wpCgkgICAgd2hpbGUgKG1zZ19jb2wgJSBsaXN0X3dpZHRoICE9IDApCgkJbXNnX3B1dGNoYXIoJyAnKTsKCglwID0gYnVmOwoJKnArKyA9IGRwLT5jaGFyMTsKCSpwKysgPSBkcC0+Y2hhcjI7CgkqcCsrID0gJyAnOwojaWZkZWYgRkVBVF9NQllURQoJaWYgKGhhc19tYnl0ZSkKCXsKCSAgICAvKiBhZGQgYSBzcGFjZSB0byBkcmF3IGEgY29tcG9zaW5nIGNoYXIgb24gKi8KCSAgICBpZiAoZW5jX3V0ZjggJiYgdXRmX2lzY29tcG9zaW5nKGRwLT5yZXN1bHQpKQoJCSpwKysgPSAnICc7CgkgICAgcCArPSAoKm1iX2NoYXIyYnl0ZXMpKGRwLT5yZXN1bHQsIHApOwoJfQoJZWxzZQojZW5kaWYKCSAgICAqcCsrID0gKGNoYXJfdSlkcC0+cmVzdWx0OwoJaWYgKGNoYXIyY2VsbHMoZHAtPnJlc3VsdCkgPT0gMSkKCSAgICAqcCsrID0gJyAnOwoJdmltX3NucHJpbnRmKChjaGFyICopcCwgc2l6ZW9mKGJ1ZikgLSAocCAtIGJ1ZiksICIgJTNkIiwgZHAtPnJlc3VsdCk7Cgltc2dfb3V0dHJhbnMoYnVmKTsKICAgIH0KfQoKI2VuZGlmIC8qIEZFQVRfRElHUkFQSFMgKi8KCiNpZiBkZWZpbmVkKEZFQVRfS0VZTUFQKSB8fCBkZWZpbmVkKFBST1RPKQoKLyogc3RydWN0dXJlIHVzZWQgZm9yIGJfa21hcF9nYS5nYV9kYXRhICovCnR5cGVkZWYgc3RydWN0CnsKICAgIGNoYXJfdQkqZnJvbTsKICAgIGNoYXJfdQkqdG87Cn0ga21hcF9UOwoKI2RlZmluZSBLTUFQX01BWExFTiAyMAkgICAgLyogbWF4aW11bSBsZW5ndGggb2YgImZyb20iIG9yICJ0byIgKi8KCnN0YXRpYyB2b2lkIGtleW1hcF91bmxvYWQodm9pZCk7CgovKgogKiBTZXQgdXAga2V5IG1hcHBpbmcgdGFibGVzIGZvciB0aGUgJ2tleW1hcCcgb3B0aW9uLgogKiBSZXR1cm5zIE5VTEwgaWYgT0ssIGFuIGVycm9yIG1lc3NhZ2UgZm9yIGZhaWx1cmUuICBUaGlzIG9ubHkgbmVlZHMgdG8gYmUKICogdXNlZCB3aGVuIHNldHRpbmcgdGhlIG9wdGlvbiwgbm90IGxhdGVyIHdoZW4gdGhlIHZhbHVlIGhhcyBhbHJlYWR5IGJlZW4KICogY2hlY2tlZC4KICovCiAgICBjaGFyX3UgKgprZXltYXBfaW5pdCh2b2lkKQp7CiAgICBjdXJidWYtPmJfa21hcF9zdGF0ZSAmPSB+S0VZTUFQX0lOSVQ7CgogICAgaWYgKCpjdXJidWYtPmJfcF9rZXltYXAgPT0gTlVMKQogICAgewoJLyogU3RvcCBhbnkgYWN0aXZlIGtleW1hcCBhbmQgY2xlYXIgdGhlIHRhYmxlLiAgQWxzbyByZW1vdmUKCSAqIGI6a2V5bWFwX25hbWUsIGFzIG5vIGtleW1hcCBpcyBhY3RpdmUgbm93LiAqLwoJa2V5bWFwX3VubG9hZCgpOwoJZG9fY21kbGluZV9jbWQoKGNoYXJfdSAqKSJ1bmxldCEgYjprZXltYXBfbmFtZSIpOwogICAgfQogICAgZWxzZQogICAgewoJY2hhcl91CSpidWY7CglzaXplX3QgIGJ1ZmxlbjsKCgkvKiBTb3VyY2UgdGhlIGtleW1hcCBmaWxlLiAgSXQgd2lsbCBjb250YWluIGEgIjpsb2Fka2V5bWFwIiBjb21tYW5kCgkgKiB3aGljaCB3aWxsIGNhbGwgZXhfbG9hZGtleW1hcCgpIGJlbG93LiAqLwoJYnVmbGVuID0gU1RSTEVOKGN1cmJ1Zi0+Yl9wX2tleW1hcCkKIyBpZmRlZiBGRUFUX01CWVRFCgkJCQkJICAgKyBTVFJMRU4ocF9lbmMpCiMgZW5kaWYKCQkJCQkJICAgICAgICsgMTQ7CglidWYgPSBhbGxvYygodW5zaWduZWQpYnVmbGVuKTsKCWlmIChidWYgPT0gTlVMTCkKCSAgICByZXR1cm4gZV9vdXRvZm1lbTsKCiMgaWZkZWYgRkVBVF9NQllURQoJLyogdHJ5IGZpbmRpbmcgImtleW1hcC8na2V5bWFwJ18nZW5jb2RpbmcnLnZpbSIgIGluICdydW50aW1lcGF0aCcgKi8KCXZpbV9zbnByaW50ZigoY2hhciAqKWJ1ZiwgYnVmbGVuLCAia2V5bWFwLyVzXyVzLnZpbSIsCgkJCQkJCSAgIGN1cmJ1Zi0+Yl9wX2tleW1hcCwgcF9lbmMpOwoJaWYgKHNvdXJjZV9ydW50aW1lKGJ1ZiwgMCkgPT0gRkFJTCkKIyBlbmRpZgoJewoJICAgIC8qIHRyeSBmaW5kaW5nICJrZXltYXAvJ2tleW1hcCcudmltIiBpbiAncnVudGltZXBhdGgnICAqLwoJICAgIHZpbV9zbnByaW50ZigoY2hhciAqKWJ1ZiwgYnVmbGVuLCAia2V5bWFwLyVzLnZpbSIsCgkJCQkJCQkgIGN1cmJ1Zi0+Yl9wX2tleW1hcCk7CgkgICAgaWYgKHNvdXJjZV9ydW50aW1lKGJ1ZiwgMCkgPT0gRkFJTCkKCSAgICB7CgkJdmltX2ZyZWUoYnVmKTsKCQlyZXR1cm4gKGNoYXJfdSAqKU5fKCJFNTQ0OiBLZXltYXAgZmlsZSBub3QgZm91bmQiKTsKCSAgICB9Cgl9Cgl2aW1fZnJlZShidWYpOwogICAgfQoKICAgIHJldHVybiBOVUxMOwp9CgovKgogKiAiOmxvYWRrZXltYXAiIGNvbW1hbmQ6IGxvYWQgdGhlIGZvbGxvd2luZyBsaW5lcyBhcyB0aGUga2V5bWFwLgogKi8KICAgIHZvaWQKZXhfbG9hZGtleW1hcChleGFyZ19UICplYXApCnsKICAgIGNoYXJfdQkqbGluZTsKICAgIGNoYXJfdQkqcDsKICAgIGNoYXJfdQkqczsKICAgIGttYXBfVAkqa3A7CiNkZWZpbmUgS01BUF9MTEVOICAgMjAwCSAgICAvKiBtYXggbGVuZ3RoIG9mICJ0byIgYW5kICJmcm9tIiB0b2dldGhlciAqLwogICAgY2hhcl91CWJ1ZltLTUFQX0xMRU4gKyAxMV07CiAgICBpbnQJCWk7CiAgICBjaGFyX3UJKnNhdmVfY3BvID0gcF9jcG87CgogICAgaWYgKCFnZXRsaW5lX2VxdWFsKGVhcC0+Z2V0bGluZSwgZWFwLT5jb29raWUsIGdldHNvdXJjZWxpbmUpKQogICAgewoJRU1TRyhfKCJFMTA1OiBVc2luZyA6bG9hZGtleW1hcCBub3QgaW4gYSBzb3VyY2VkIGZpbGUiKSk7CglyZXR1cm47CiAgICB9CgogICAgLyoKICAgICAqIFN0b3AgYW55IGFjdGl2ZSBrZXltYXAgYW5kIGNsZWFyIHRoZSB0YWJsZS4KICAgICAqLwogICAga2V5bWFwX3VubG9hZCgpOwoKICAgIGN1cmJ1Zi0+Yl9rbWFwX3N0YXRlID0gMDsKICAgIGdhX2luaXQyKCZjdXJidWYtPmJfa21hcF9nYSwgKGludClzaXplb2Yoa21hcF9UKSwgMjApOwoKICAgIC8qIFNldCAnY3BvcHRpb25zJyB0byAiQyIgdG8gYXZvaWQgbGluZSBjb250aW51YXRpb24uICovCiAgICBwX2NwbyA9IChjaGFyX3UgKikiQyI7CgogICAgLyoKICAgICAqIEdldCBlYWNoIGxpbmUgb2YgdGhlIHNvdXJjZWQgZmlsZSwgYnJlYWsgYXQgdGhlIGVuZC4KICAgICAqLwogICAgZm9yICg7OykKICAgIHsKCWxpbmUgPSBlYXAtPmdldGxpbmUoMCwgZWFwLT5jb29raWUsIDApOwoJaWYgKGxpbmUgPT0gTlVMTCkKCSAgICBicmVhazsKCglwID0gc2tpcHdoaXRlKGxpbmUpOwoJaWYgKCpwICE9ICciJyAmJiAqcCAhPSBOVUwgJiYgZ2FfZ3JvdygmY3VyYnVmLT5iX2ttYXBfZ2EsIDEpID09IE9LKQoJewoJICAgIGtwID0gKGttYXBfVCAqKWN1cmJ1Zi0+Yl9rbWFwX2dhLmdhX2RhdGEgKyBjdXJidWYtPmJfa21hcF9nYS5nYV9sZW47CgkgICAgcyA9IHNraXB0b3doaXRlKHApOwoJICAgIGtwLT5mcm9tID0gdmltX3N0cm5zYXZlKHAsIChpbnQpKHMgLSBwKSk7CgkgICAgcCA9IHNraXB3aGl0ZShzKTsKCSAgICBzID0gc2tpcHRvd2hpdGUocCk7CgkgICAga3AtPnRvID0gdmltX3N0cm5zYXZlKHAsIChpbnQpKHMgLSBwKSk7CgoJICAgIGlmIChrcC0+ZnJvbSA9PSBOVUxMIHx8IGtwLT50byA9PSBOVUxMCgkJICAgIHx8IFNUUkxFTihrcC0+ZnJvbSkgKyBTVFJMRU4oa3AtPnRvKSA+PSBLTUFQX0xMRU4KCQkgICAgfHwgKmtwLT5mcm9tID09IE5VTCB8fCAqa3AtPnRvID09IE5VTCkKCSAgICB7CgkJaWYgKGtwLT50byAhPSBOVUxMICYmICprcC0+dG8gPT0gTlVMKQoJCSAgICBFTVNHKF8oIkU3OTE6IEVtcHR5IGtleW1hcCBlbnRyeSIpKTsKCQl2aW1fZnJlZShrcC0+ZnJvbSk7CgkJdmltX2ZyZWUoa3AtPnRvKTsKCSAgICB9CgkgICAgZWxzZQoJCSsrY3VyYnVmLT5iX2ttYXBfZ2EuZ2FfbGVuOwoJfQoJdmltX2ZyZWUobGluZSk7CiAgICB9CgogICAgLyoKICAgICAqIHNldHVwICI6bG5vcmVtYXAiIHRvIG1hcCB0aGUga2V5cwogICAgICovCiAgICBmb3IgKGkgPSAwOyBpIDwgY3VyYnVmLT5iX2ttYXBfZ2EuZ2FfbGVuOyArK2kpCiAgICB7Cgl2aW1fc25wcmludGYoKGNoYXIgKilidWYsIHNpemVvZihidWYpLCAiPGJ1ZmZlcj4gJXMgJXMiLAoJCQkJKChrbWFwX1QgKiljdXJidWYtPmJfa21hcF9nYS5nYV9kYXRhKVtpXS5mcm9tLAoJCQkJICgoa21hcF9UICopY3VyYnVmLT5iX2ttYXBfZ2EuZ2FfZGF0YSlbaV0udG8pOwoJKHZvaWQpZG9fbWFwKDIsIGJ1ZiwgTEFOR01BUCwgRkFMU0UpOwogICAgfQoKICAgIHBfY3BvID0gc2F2ZV9jcG87CgogICAgY3VyYnVmLT5iX2ttYXBfc3RhdGUgfD0gS0VZTUFQX0xPQURFRDsKICAgIHN0YXR1c19yZWRyYXdfY3VyYnVmKCk7Cn0KCi8qCiAqIFN0b3AgdXNpbmcgJ2tleW1hcCcuCiAqLwogICAgc3RhdGljIHZvaWQKa2V5bWFwX3VubG9hZCh2b2lkKQp7CiAgICBjaGFyX3UJYnVmW0tNQVBfTUFYTEVOICsgMTBdOwogICAgaW50CQlpOwogICAgY2hhcl91CSpzYXZlX2NwbyA9IHBfY3BvOwogICAga21hcF9UCSprcDsKCiAgICBpZiAoIShjdXJidWYtPmJfa21hcF9zdGF0ZSAmIEtFWU1BUF9MT0FERUQpKQoJcmV0dXJuOwoKICAgIC8qIFNldCAnY3BvcHRpb25zJyB0byAiQyIgdG8gYXZvaWQgbGluZSBjb250aW51YXRpb24uICovCiAgICBwX2NwbyA9IChjaGFyX3UgKikiQyI7CgogICAgLyogY2xlYXIgdGhlICI6bG1hcCJzICovCiAgICBrcCA9IChrbWFwX1QgKiljdXJidWYtPmJfa21hcF9nYS5nYV9kYXRhOwogICAgZm9yIChpID0gMDsgaSA8IGN1cmJ1Zi0+Yl9rbWFwX2dhLmdhX2xlbjsgKytpKQogICAgewoJdmltX3NucHJpbnRmKChjaGFyICopYnVmLCBzaXplb2YoYnVmKSwgIjxidWZmZXI+ICVzIiwga3BbaV0uZnJvbSk7Cgkodm9pZClkb19tYXAoMSwgYnVmLCBMQU5HTUFQLCBGQUxTRSk7CiAgICB9CiAgICBrZXltYXBfY2xlYXIoJmN1cmJ1Zi0+Yl9rbWFwX2dhKTsKCiAgICBwX2NwbyA9IHNhdmVfY3BvOwoKICAgIGdhX2NsZWFyKCZjdXJidWYtPmJfa21hcF9nYSk7CiAgICBjdXJidWYtPmJfa21hcF9zdGF0ZSAmPSB+S0VZTUFQX0xPQURFRDsKICAgIHN0YXR1c19yZWRyYXdfY3VyYnVmKCk7Cn0KCiAgICB2b2lkCmtleW1hcF9jbGVhcihnYXJyYXlfVCAqa21hcCkKewogICAgaW50CSAgICBpOwogICAga21hcF9UICAqa3AgPSAoa21hcF9UICopa21hcC0+Z2FfZGF0YTsKCiAgICBmb3IgKGkgPSAwOyBpIDwga21hcC0+Z2FfbGVuOyArK2kpCiAgICB7Cgl2aW1fZnJlZShrcFtpXS5mcm9tKTsKCXZpbV9mcmVlKGtwW2ldLnRvKTsKICAgIH0KfQojZW5kaWYgLyogRkVBVF9LRVlNQVAgKi8K