<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>47990</bug_id>
          
          <creation_ts>2010-10-20 09:38:49 -0700</creation_ts>
          <short_desc>[GTK] Replace encodings multi-dimensional array with calls to registrar method</short_desc>
          <delta_ts>2010-10-21 01:08:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>47805</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>296841</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-10-20 09:38:49 -0700</bug_when>
    <thetext>The complicated multidimensional array used for encodings and aliases in TextCodecGtk could be replaced by calls to registrar. It would also fix the coding style since current variable names contain underscores.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296844</commentid>
    <comment_count>1</comment_count>
      <attachid>71300</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-10-20 09:42:00 -0700</bug_when>
    <thetext>Created attachment 71300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296932</commentid>
    <comment_count>2</comment_count>
      <attachid>71300</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-20 12:28:11 -0700</bug_when>
    <thetext>Comment on attachment 71300
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=71300&amp;action=review

I love this patch. Just a couple small nits.

&gt; WebCore/platform/text/gtk/TextCodecGtk.cpp:92
&gt; +bool TextCodecGtk::registerEncodingAliasIfAvailable(EncodingNameRegistrar registrar, const char* canonicalName, const char* aliasName)

It looks like you never check the return value of this method. Can it just return void?

&gt; WebCore/platform/text/gtk/TextCodecGtk.h:60
&gt; +        static bool registerEncodingNameIfAvailable(EncodingNameRegistrar registrar, const char* canonicalName);
&gt; +        static bool registerEncodingAliasIfAvailable(EncodingNameRegistrar registrar, const char* canonicalName, const char* aliasName);
&gt; +        static void registerCodecIfAvailable(TextCodecRegistrar registrar, const char* codecName);
&gt;  

Could these these can just be static functions in TextCodecGtk.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297271</commentid>
    <comment_count>3</comment_count>
      <attachid>71400</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2010-10-21 00:49:48 -0700</bug_when>
    <thetext>Created attachment 71400
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297274</commentid>
    <comment_count>4</comment_count>
      <attachid>71400</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-21 00:57:36 -0700</bug_when>
    <thetext>Comment on attachment 71400
Updated patch

View in context: https://bugs.webkit.org/attachment.cgi?id=71400&amp;action=review

Great! Thank you.

&gt; WebCore/platform/text/gtk/TextCodecGtk.cpp:62
&gt; +static bool isEncodingAvailable(const gchar* encName)

encName should be replaced with encodingName, since we are avoiding abbreviations in new code. I&apos;ll fix this and land it myself. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297279</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-10-21 01:08:40 -0700</bug_when>
    <thetext>Committed r70211: &lt;http://trac.webkit.org/changeset/70211&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71300</attachid>
            <date>2010-10-20 09:42:00 -0700</date>
            <delta_ts>2010-10-21 00:49:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>encodings.diff</filename>
            <type>text/plain</type>
            <size>32020</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGZkOTUzMi4uZmQ2YjllNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0xMC0yMCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUmVwbGFjZSBlbmNvZGluZ3MgbXVsdGktZGlt
ZW5zaW9uYWwgYXJyYXkgd2l0aCBjYWxscyB0byByZWdpc3RyYXIgbWV0aG9kCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Nzk5MAorCisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9ndGsvVGV4dENvZGVjR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRDb2RlY0d0azo6cmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0Q29kZWNHdGs6OnJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0d0azo6cmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0d0azo6cmVnaXN0ZXJCYXNlRW5jb2RpbmdO
YW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNHdGs6OnJlZ2lzdGVyQmFzZUNvZGVj
cyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29kZWNHdGs6OnJlZ2lzdGVyRXh0ZW5kZWRFbmNv
ZGluZ05hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0d0azo6cmVnaXN0ZXJFeHRl
bmRlZENvZGVjcyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENvZGVjR3RrLmg6
CisKIDIwMTAtMTAtMTUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L2d0ay9UZXh0Q29kZWNHdGsuY3BwCmluZGV4IDQyMjRjMGMuLmU0NDM4ZTkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENvZGVjR3RrLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDb2RlY0d0ay5jcHAKQEAgLTUxLDE1OCArNTEsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogCi0vLyBXZSdyZSBzcGVjaWZ5aW5nIHRoZSBs
aXN0IG9mIHRleHQgY29kZWNzIGFuZCB0aGVpciBhbGlhc2VzIGhlcmUuIAotLy8gRm9yIGVhY2gg
Y29kZWMgdGhlIGZpcnN0IGVudHJ5IGlzIHRoZSBjYW5vbmljYWwgbmFtZSwgcmVtYWluaW5nIG9u
ZXMgYXJlIHVzZWQgYXMgYWxpYXNlcy4KLS8vIEVhY2ggYWxpYXMgbGlzdCBtdXN0IGJlIHRlcm1p
bmF0ZWQgYnkgYSAwLgotCi0vLyBVbmljb2RlCi1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0
IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfVVRGXzggICAgICAgICAgICA9IHsgIlVURi04
IiwgMCB9OyAKLQotLy8gV2VzdGVybgotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0
Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0lTT184ODU5XzEgICAgICAgPSB7ICJJU08tODg1OS0x
IiwgIkNQODE5IiwgIklCTTgxOSIsICJJU08tSVItMTAwIiwgIklTTzg4NTktMSIsICJJU09fODg1
OS0xIiwgIklTT184ODU5LTE6MTk4NyIsICAiTDEiLCAiTEFUSU4xIiwgIkNTSVNPTEFUSU4xIiwg
MCB9OwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNB
bGlhc2VzX01BQ1JPTUFOICAgICAgICAgPSB7ICJNQUNST01BTiIsICJNQUMiLCAiTUFDSU5UT1NI
IiwgIkNTTUFDSU5UT1NIIiwgMCB9OwotCi0vLyBKYXBhbmVzZQotVGV4dENvZGVjR3RrOjpjb2Rl
Y0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX1NISUZUX0pJUyAgICAgICAg
PSB7ICJTaGlmdF9KSVMiLCAiTVNfS0FOSkkiLCAiU0hJRlQtSklTIiwgIlNKSVMiLCAiQ1NTSElG
VEpJUyIsIDAgfTsKLSAgICBUZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0
azo6bV9jb2RlY0FsaWFzZXNfRVVDX0pQICAgICAgID0geyAiRVVDLUpQIiwgIkVVQ19KUCIsICJF
VUNKUCIsICJFWFRFTkRFRF9VTklYX0NPREVfUEFDS0VEX0ZPUk1BVF9GT1JfSkFQQU5FU0UiLCAi
Q1NFVUNQS0RGTVRKQVBBTkVTRSIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3Qg
VGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19JU09fMjAyMl9KUCAgICAgID0geyAiSVNPLTIw
MjItSlAiLCAwIH07Ci0KLS8vIFRyYWRpdGlvbmFsIENoaW5lc2UKLVRleHRDb2RlY0d0azo6Y29k
ZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19CSUc1ICAgICAgICAgICAg
ID0geyAiQklHNSIsICJCSUctNSIsICJCSUctRklWRSIsICJCSUc1IiwgIkJJR0ZJVkUiLCAiQ04t
QklHNSIsICJDU0JJRzUiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRD
b2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfQklHNV9IS1NDUyAgICAgICA9IHsgIkJJRzUtSEtTQ1Mi
LCAiQklHNS1IS1NDUzoyMDA0IiwgIkJJRzVIS1NDUyIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29k
ZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19DUDk1MCAgICAgICAgICAg
ID0geyAiQ1A5NTAiLCAwIH07Ci0KLS8vIEtvcmVhbgotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFz
TGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0lTT18yMDIyX0tSICAgICAgPSB7ICJJ
U08tMjAyMi1LUiIsICJDU0lTTzIwMjJLUiIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlh
c0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19DUDk0OSAgICAgICAgICAgID0geyAi
Q1A5NDkiLCAiVUhDIiwgMCB9OwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29k
ZWNHdGs6Om1fY29kZWNBbGlhc2VzX0VVQ19LUiAgICAgICAgICAgPSB7ICJFVUMtS1IiLCAiQ1NF
VUNLUiIsIDAgfTsKLQotLy8gQXJhYmljCi1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRl
eHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfSVNPXzg4NTlfNiAgICAgICA9IHsgIklTTy04ODU5
LTYiLCAiQVJBQklDIiwgIkFTTU8tNzA4IiwgIkVDTUEtMTE0IiwgIklTTy1JUi0xMjciLCAiSVNP
ODg1OS02IiwgIklTT184ODU5LTYiLCAiSVNPXzg4NTktNjoxOTg3IiwgIkNTSVNPTEFUSU5BUkFC
SUMiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9j
b2RlY0FsaWFzZXNfQ1AxMjU2ICAgICAgICAgICA9IHsgIndpbmRvd3MtMTI1NiIsICJDUDEyNTYi
LCAiTVMtQVJBQiIsIDAgfTsgLy8gcmVhcnJhbmdlZCwgd2luZG93cy0xMjU2IG5vdyBkZWNsYXJl
ZCB0aGUgY2Fub25pY2FsIG5hbWUgYW5kIHB1dCB0byBsb3dlcmNhc2UgdG8gZml4IC9mYXN0L2Vu
Y29kaW5nL2FocmFtLW9yZy1lZy5odG1sIHRlc3QgY2FzZQotCi0vLyBIZWJyZXcKLVRleHRDb2Rl
Y0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19JU09fODg1
OV84ICAgICAgID0geyAiSVNPLTg4NTktOCIsICJIRUJSRVciLCAiSVNPLTg4NTktOCIsICJJU08t
SVItMTM4IiwgIklTTzg4NTktOCIsICJJU09fODg1OS04IiwgIklTT184ODU5LTg6MTk4OCIsICJD
U0lTT0xBVElOSEVCUkVXIiwgMCB9OwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0
Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0NQMTI1NSAgICAgICAgICAgPSB7ICJ3aW5kb3dzLTEy
NTUiLCAiQ1AxMjU1IiwgIk1TLUhFQlIiLCAwIH07IC8vIHJlYXJyYW5nZWQsIG1vdmVkIHdpbmRv
d3MtMTI1NSBhcyBjYW5vbmljYWwgYW5kIGxvd2VyY2FzZWQsIGZpeGluZyAvZmFzdC9lbmNvZGlu
Zy9tZXRhLWNoYXJzZXQuaHRtbAotCi0vLyBHcmVlawotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFz
TGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0lTT184ODU5XzcgICAgICAgPSB7ICJJ
U08tODg1OS03IiwgIkVDTUEtMTE4IiwgIkVMT1RfOTI4IiwgIkdSRUVLIiwgIkdSRUVLOCIsICJJ
U08tSVItMTI2IiwgIklTTzg4NTktNyIsICJJU09fODg1OS03IiwgIklTT184ODU5LTc6MTk4NyIs
ICJJU09fODg1OS03OjIwMDMiLCAiQ1NJIiwgMCB9OwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFz
TGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0NQODY5ICAgICAgICAgICAgPSB7ICJD
UDg2OSIsICI4NjkiLCAiQ1AtR1IiLCAiSUJNODY5IiwgIkNTSUJNODY5IiwgMCB9OwotVGV4dENv
ZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX1dJTkRP
V1NfMTI1MyAgICAgPSB7ICJXSU5ET1dTLTEyNTMiLCAwIH07Ci0KLS8vIEN5cmlsbGljCi1UZXh0
Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfSVNP
Xzg4NTlfNSAgICAgICA9IHsgIklTTy04ODU5LTUiLCAiQ1lSSUxMSUMiLCAiSVNPLUlSLTE0NCIs
ICJJU084ODU5LTUiLCAiSVNPXzg4NTktNSIsICJJU09fODg1OS01OjE5ODgiLCAiQ1NJU09MQVRJ
TkNZUklMTElDIiwgMCB9OwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNH
dGs6Om1fY29kZWNBbGlhc2VzX0tPSThfUiAgICAgICAgICAgPSB7ICJLT0k4LVIiLCAiQ1NLT0k4
UiIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2Nv
ZGVjQWxpYXNlc19DUDg2NiAgICAgICAgICAgID0geyAiQ1A4NjYiLCAiODY2IiwgIklCTTg2NiIs
ICJDU0lCTTg2NiIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVj
R3RrOjptX2NvZGVjQWxpYXNlc19LT0k4X1UgICAgICAgICAgID0geyAiS09JOC1VIiwgMCB9Owot
VGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2Vz
X1dJTkRPV1NfMTI1MSAgICAgPSB7ICJ3aW5kb3dzLTEyNTEiLCAiQ1AxMjUxIiwgMCB9OyAvLyBD
UDEyNTEgYWRkZWQgdG8gcGFzcyAvZmFzdC9lbmNvZGluZy9jaGFyc2V0LWNwMTI1MS5odG1sCi1U
ZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNf
TUFDQ1lSSUxMSUMgICAgICA9IHsgIm1hYy1jeXJpbGxpYyIsICJNQUNDWVJJTExJQyIsICJ4LW1h
Yy1jeXJpbGxpYyIsIDAgfTsgCi0KLS8vIFRoYWkKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xp
c3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19DUDg3NCAgICAgICAgICAgID0geyAiQ1A4
NzQiLCAiV0lORE9XUy04NzQiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRl
eHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfVElTXzYyMCAgICAgICAgICA9IHsgIlRJUy02MjAi
LCAwIH07Ci0KLS8vIFNpbXBsaWZpZWQgQ2hpbmVzZQotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFz
TGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0dCSyAgICAgICAgICAgICAgPSB7ICJH
QksiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9j
b2RlY0FsaWFzZXNfSFogICAgICAgICAgICAgICA9IHsgIkhaIiwgIkhaLUdCLTIzMTIiLCAwIH07
Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFz
ZXNfR0IxODAzMCAgICAgICAgICA9IHsgIkdCMTgwMzAiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNv
ZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfRVVDX0NOICAgICAgICAg
ICA9IHsgIkVVQy1DTiIsICJFVUNDTiIsICJHQjIzMTIiLCAiQ04tR0IiLCAiQ1NHQjIzMTIiLCAi
RVVDX0NOIiwgMCB9OwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6
Om1fY29kZWNBbGlhc2VzXzIzMTJfODAgICAgICAgICAgPSB7ICJHQl8yMzEyLTgwIiwgIkNISU5F
U0UiLCAiY3NJU081OEdCMjMxMjgwIiwgIkdCMjMxMi4xOTgwLTAiLCAiSVNPLUlSLTU4IiB9Owot
Ci0vLyBDZW50cmFsIEV1cm9wZWFuCi1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRD
b2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfSVNPXzg4NTlfMiAgICAgICA9IHsgIklTTy04ODU5LTIi
LCAiSVNPLUlSLTEwMSIsICJJU084ODU5LTIiLCAiSVNPXzg4NTktMiIsICJJU09fODg1OS0yOjE5
ODciLCAiTDIiLCAiTEFUSU4yIiwgIkNTSVNPTEFUSU4yIiwgMCB9OwotVGV4dENvZGVjR3RrOjpj
b2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0NQMTI1MCAgICAgICAg
ICAgPSB7ICJDUDEyNTAiLCAiTVMtRUUiLCAiV0lORE9XUy0xMjUwIiwgMCB9OwotVGV4dENvZGVj
R3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX01BQ0NFTlRS
QUxFVVJPUEUgPSB7ICJNQUMtQ0VOVFJBTEVVUk9QRSIsIDAgfTsKLQotLy8gVmlldG5hbWVzZQot
VGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2Vz
X0NQMTI1OCAgICAgICAgICAgPSB7ICJDUDEyNTgiLCAiV0lORE9XUy0xMjU4IiwgMCB9OwotCi0v
LyBUdXJraXNoCi1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9j
b2RlY0FsaWFzZXNfQ1AxMjU0ICAgICAgICAgICA9IHsgIkNQMTI1NCIsICJNUy1UVVJLIiwgIldJ
TkRPV1MtMTI1NCIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVj
R3RrOjptX2NvZGVjQWxpYXNlc19JU09fODg1OV85ICAgICAgID0geyAiSVNPLTg4NTktOSIsICJJ
U08tSVItMTQ4IiwgIklTTzg4NTktOSIsICJJU09fODg1OS05IiwgIklTT184ODU5LTk6MTk4OSIs
ICJMNSIsICJMQVRJTjUiLCAiQ1NJU09MQVRJTjUiLCAwIH07Ci0KLS8vIEJhbHRpYwotVGV4dENv
ZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0NQMTI1
NyAgICAgICAgICAgPSB7ICJDUDEyNTciLCAiV0lOQkFMVFJJTSIsICJXSU5ET1dTLTEyNTciLCAw
IH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0Fs
aWFzZXNfSVNPXzg4NTlfNCAgICAgICA9IHsgIklTTy04ODU5LTQiLCAiSVNPLUlSLTExMCIsICJJ
U084ODU5LTQiLCAiSVNPXzg4NTktNCIsICJJU09fODg1OS00OjE5ODgiLCAiTDQiLCAiTEFUSU40
IiwgIkNTSVNPTEFUSU40IiwgMCB9OwotCi1nY29uc3Rwb2ludGVyIGNvbnN0IFRleHRDb2RlY0d0
azo6bV9pY29udkJhc2VDb2RlY0xpc3RbXSA9IHsgCi0gICAgLy8gVW5pY29kZQotICAgICZtX2Nv
ZGVjQWxpYXNlc19VVEZfOCwKLQotICAgIC8vIFdlc3Rlcm4KLSAgICAmbV9jb2RlY0FsaWFzZXNf
SVNPXzg4NTlfMQotfTsKLQotZ2NvbnN0cG9pbnRlciBjb25zdCBUZXh0Q29kZWNHdGs6Om1faWNv
bnZFeHRlbmRlZENvZGVjTGlzdFtdID0gCi17Ci0gICAgLy8gV2VzdGVybgotICAgICZtX2NvZGVj
QWxpYXNlc19NQUNST01BTiwKLQotICAgIC8vIEphcGFuZXNlCi0gICAgJm1fY29kZWNBbGlhc2Vz
X1NISUZUX0pJUywKLSAgICAmbV9jb2RlY0FsaWFzZXNfRVVDX0pQLAotICAgICZtX2NvZGVjQWxp
YXNlc19JU09fMjAyMl9KUCwKLQotICAgIC8vIFNpbXBsaWZpZWQgQ2hpbmVzZQotICAgICZtX2Nv
ZGVjQWxpYXNlc19CSUc1LAotICAgICZtX2NvZGVjQWxpYXNlc19CSUc1X0hLU0NTLAotICAgICZt
X2NvZGVjQWxpYXNlc19DUDk1MCwKLQotICAgIC8vIEtvcmVhbgotICAgICZtX2NvZGVjQWxpYXNl
c19JU09fMjAyMl9LUiwKLSAgICAmbV9jb2RlY0FsaWFzZXNfQ1A5NDksCi0gICAgJm1fY29kZWNB
bGlhc2VzX0VVQ19LUiwKLQotICAgIC8vIEFyYWJpYwotICAgICZtX2NvZGVjQWxpYXNlc19JU09f
ODg1OV82LAotICAgICZtX2NvZGVjQWxpYXNlc19DUDEyNTYsCi0gICAgCi0gICAgLy8gSGVicmV3
Ci0gICAgJm1fY29kZWNBbGlhc2VzX0lTT184ODU5XzgsCi0gICAgJm1fY29kZWNBbGlhc2VzX0NQ
MTI1NSwKLSAgICAKLSAgICAvLyBHcmVlawotICAgICZtX2NvZGVjQWxpYXNlc19JU09fODg1OV83
LAotICAgICZtX2NvZGVjQWxpYXNlc19DUDg2OSwKLSAgICAmbV9jb2RlY0FsaWFzZXNfV0lORE9X
U18xMjUzLAotICAgIAotICAgIC8vIEN5cmlsbGljCi0gICAgJm1fY29kZWNBbGlhc2VzX0lTT184
ODU5XzUsCi0gICAgJm1fY29kZWNBbGlhc2VzX0tPSThfUiwKLSAgICAmbV9jb2RlY0FsaWFzZXNf
Q1A4NjYsCi0gICAgJm1fY29kZWNBbGlhc2VzX0tPSThfVSwKLSAgICAmbV9jb2RlY0FsaWFzZXNf
V0lORE9XU18xMjUxLAotICAgICZtX2NvZGVjQWxpYXNlc19NQUNDWVJJTExJQywKLSAgICAKLSAg
ICAvLyBUaGFpCi0gICAgJm1fY29kZWNBbGlhc2VzX0NQODc0LAotICAgICZtX2NvZGVjQWxpYXNl
c19USVNfNjIwLAotICAgIAotICAgIC8vIFRyYWRpdGlvbmFsIENoaW5lc2UKLSAgICAmbV9jb2Rl
Y0FsaWFzZXNfR0JLLAotICAgICZtX2NvZGVjQWxpYXNlc19IWiwKLSAgICAmbV9jb2RlY0FsaWFz
ZXNfR0IxODAzMCwKLSAgICAmbV9jb2RlY0FsaWFzZXNfRVVDX0NOLAotICAgICZtX2NvZGVjQWxp
YXNlc18yMzEyXzgwLAotICAgIAotICAgIC8vIENlbnRyYWwgRXVyb3BlYW4KLSAgICAmbV9jb2Rl
Y0FsaWFzZXNfSVNPXzg4NTlfMiwKLSAgICAmbV9jb2RlY0FsaWFzZXNfQ1AxMjUwLAotICAgICZt
X2NvZGVjQWxpYXNlc19NQUNDRU5UUkFMRVVST1BFLAotICAgIAotICAgIC8vIFZpZXRuYW1lc2UK
LSAgICAmbV9jb2RlY0FsaWFzZXNfQ1AxMjU4LAotICAgIAotICAgIC8vIFR1cmtpc2gKLSAgICAm
bV9jb2RlY0FsaWFzZXNfQ1AxMjU0LAotICAgICZtX2NvZGVjQWxpYXNlc19JU09fODg1OV85LAot
ICAgIAotICAgIC8vIEJhbHRpYwotICAgICZtX2NvZGVjQWxpYXNlc19DUDEyNTcsCi0gICAgJm1f
Y29kZWNBbGlhc2VzX0lTT184ODU5XzQKLX07Ci0KLQogY29uc3Qgc2l6ZV90IENvbnZlcnNpb25C
dWZmZXJTaXplID0gMTYzODQ7CiAgICAgCiAKQEAgLTIzMSw4MSArNzksMzMwIEBAIGdib29sZWFu
IFRleHRDb2RlY0d0azo6aXNFbmNvZGluZ0F2YWlsYWJsZShjb25zdCBnY2hhciogZW5jTmFtZSkK
ICAgICB9CiB9CiAKLXZvaWQgVGV4dENvZGVjR3RrOjpyZWdpc3RlckVuY29kaW5nTmFtZXMoRW5j
b2RpbmdOYW1lUmVnaXN0cmFyIHJlZ2lzdHJhciwgYm9vbCBleHRlbmRlZCkKK2Jvb2wgVGV4dENv
ZGVjR3RrOjpyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKEVuY29kaW5nTmFtZVJlZ2lz
dHJhciByZWdpc3RyYXIsIGNvbnN0IGNoYXIqIGNhbm9uaWNhbE5hbWUpCiB7Ci0gICAgY29uc3Qg
dm9pZCogY29uc3QqIGVuY29kaW5nTGlzdDsKLSAgICB1bnNpZ25lZCBpbnQgbGlzdExlbmd0aCA9
IDA7Ci0gICAgaWYgKGV4dGVuZGVkKSB7Ci0gICAgICAgIGVuY29kaW5nTGlzdCA9IG1faWNvbnZF
eHRlbmRlZENvZGVjTGlzdDsKLSAgICAgICAgbGlzdExlbmd0aCA9IHNpemVvZihtX2ljb252RXh0
ZW5kZWRDb2RlY0xpc3QpL3NpemVvZihncG9pbnRlcik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
ZW5jb2RpbmdMaXN0ID0gbV9pY29udkJhc2VDb2RlY0xpc3Q7Ci0gICAgICAgIGxpc3RMZW5ndGgg
PSBzaXplb2YobV9pY29udkJhc2VDb2RlY0xpc3QpL3NpemVvZihncG9pbnRlcik7Ci0gICAgfQot
Ci0gICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBsaXN0TGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgY29kZWNBbGlhc0xpc3QgKmNvZGVjQWxpYXNlcyA9IHN0YXRpY19jYXN0PGNvZGVjQWxp
YXNMaXN0Kj4oZW5jb2RpbmdMaXN0W2ldKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE91ciBjb252
ZW50aW9uIGlzLCB0aGUgZmlyc3QgZW50cnkgaW4gY29kZWNBbGlhc2VzIGlzIHRoZSBjYW5vbmlj
YWwgbmFtZSwgCi0gICAgICAgIC8vIHNlZSBhYm92ZSBpbiB0aGUgbGlzdCBvZiBkZWNsYXJhdGlv
bnMuIAotICAgICAgICAvLyBQcm9iZSBHTGliIGZvciB0aGlzIG9uZSBmaXJzdC4gSWYgaXQncyBu
b3QgYXZhaWxhYmxlLCB3ZSBza2lwIHRoZSB3aG9sZSBncm91cCBvZiBhbGlhc2VzLgotCi0gICAg
ICAgIGludCBjb2RlY0NvdW50ID0gMDsKLSAgICAgICAgY29uc3QgY2hhciAqY2Fub25pY2FsTmFt
ZTsKLSAgICAgICAgY2Fub25pY2FsTmFtZSA9ICgqY29kZWNBbGlhc2VzKVtjb2RlY0NvdW50XTsK
LQotICAgICAgICBpZiAoIWlzRW5jb2RpbmdBdmFpbGFibGUoY2Fub25pY2FsTmFtZSkpCi0gICAg
ICAgICAgICBjb250aW51ZTsKKyAgICBpZiAoaXNFbmNvZGluZ0F2YWlsYWJsZShjYW5vbmljYWxO
YW1lKSkgewogICAgICAgICByZWdpc3RyYXIoY2Fub25pY2FsTmFtZSwgY2Fub25pY2FsTmFtZSk7
Ci0KLSAgICAgICAgY29uc3QgY2hhciAqY3VycmVudEFsaWFzOwotICAgICAgICB3aGlsZSAoKGN1
cnJlbnRBbGlhcyA9ICgqY29kZWNBbGlhc2VzKVsrK2NvZGVjQ291bnRdKSkgewotICAgICAgICAg
ICAgaWYgKGlzRW5jb2RpbmdBdmFpbGFibGUoY3VycmVudEFsaWFzKSkKLSAgICAgICAgICAgICAg
ICByZWdpc3RyYXIoY3VycmVudEFsaWFzLCBjYW5vbmljYWxOYW1lKTsKLSAgICAgICAgfQotCisg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBUZXh0Q29kZWNHdGs6OnJlZ2lzdGVyQ29kZWNzKFRleHRDb2RlY1JlZ2lzdHJhciByZWdpc3Ry
YXIsIGJvb2wgZXh0ZW5kZWQpCitib29sIFRleHRDb2RlY0d0azo6cmVnaXN0ZXJFbmNvZGluZ0Fs
aWFzSWZBdmFpbGFibGUoRW5jb2RpbmdOYW1lUmVnaXN0cmFyIHJlZ2lzdHJhciwgY29uc3QgY2hh
ciogY2Fub25pY2FsTmFtZSwgY29uc3QgY2hhciogYWxpYXNOYW1lKQogewotICAgIGNvbnN0IHZv
aWQqIGNvbnN0KiBlbmNvZGluZ0xpc3Q7Ci0gICAgdW5zaWduZWQgaW50IGxpc3RMZW5ndGggPSAw
OwotICAgIGlmIChleHRlbmRlZCkgewotICAgICAgICBlbmNvZGluZ0xpc3QgPSBtX2ljb252RXh0
ZW5kZWRDb2RlY0xpc3Q7Ci0gICAgICAgIGxpc3RMZW5ndGggPSBzaXplb2YobV9pY29udkV4dGVu
ZGVkQ29kZWNMaXN0KS9zaXplb2YoZ3BvaW50ZXIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGVu
Y29kaW5nTGlzdCA9IG1faWNvbnZCYXNlQ29kZWNMaXN0OwotICAgICAgICBsaXN0TGVuZ3RoID0g
c2l6ZW9mKG1faWNvbnZCYXNlQ29kZWNMaXN0KS9zaXplb2YoZ3BvaW50ZXIpOworICAgIGlmIChp
c0VuY29kaW5nQXZhaWxhYmxlKGFsaWFzTmFtZSkpIHsKKyAgICAgICAgcmVnaXN0cmFyKGFsaWFz
TmFtZSwgY2Fub25pY2FsTmFtZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGlzdExlbmd0aDsgKytpKSB7Ci0gICAgICAg
IGNvZGVjQWxpYXNMaXN0ICpjb2RlY0FsaWFzZXMgPSBzdGF0aWNfY2FzdDxjb2RlY0FsaWFzTGlz
dCo+KGVuY29kaW5nTGlzdFtpXSk7Ci0gICAgICAgIC8vIGJ5IGNvbnZlbnRpb24sIHRoZSBmaXJz
dCAiYWxpYXMiIHNob3VsZCBiZSB0aGUgY2Fub25pY2FsIG5hbWUsIHNlZSB0aGUgZGVmaW5pdGlv
biBvZiB0aGUgYWxpYXMgbGlzdHMgCi0gICAgICAgIGNvbnN0IGdjaGFyICpjb2RlY05hbWUgPSAo
KmNvZGVjQWxpYXNlcylbMF07Ci0gICAgICAgIGlmIChpc0VuY29kaW5nQXZhaWxhYmxlKGNvZGVj
TmFtZSkpCi0gICAgICAgICAgICByZWdpc3RyYXIoY29kZWNOYW1lLCBuZXdUZXh0Q29kZWNHdGss
IDApOwotICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENvZGVjR3RrOjpy
ZWdpc3RlckNvZGVjSWZBdmFpbGFibGUoVGV4dENvZGVjUmVnaXN0cmFyIHJlZ2lzdHJhciwgY29u
c3QgY2hhciogY29kZWNOYW1lKQoreworICAgIGlmIChpc0VuY29kaW5nQXZhaWxhYmxlKGNvZGVj
TmFtZSkpCisgICAgICAgIHJlZ2lzdHJhcihjb2RlY05hbWUsIG5ld1RleHRDb2RlY0d0aywgMCk7
CiB9CiAKIHZvaWQgVGV4dENvZGVjR3RrOjpyZWdpc3RlckJhc2VFbmNvZGluZ05hbWVzKEVuY29k
aW5nTmFtZVJlZ2lzdHJhciByZWdpc3RyYXIpCiB7Ci0gICAgcmVnaXN0ZXJFbmNvZGluZ05hbWVz
KHJlZ2lzdHJhciwgZmFsc2UpOworICAgIC8vIFVuaWNvZGUKKyAgICByZWdpc3RlckVuY29kaW5n
TmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIlVURi04Iik7CisKKyAgICAvLyBXZXN0ZXJuCisg
ICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4
NTktMSIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIklTTy04ODU5LTEiLCAiQ1A4MTkiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0Fs
aWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMSIsICJJQk04MTkiKTsKKyAgICAg
ICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTkt
MSIsICJJU08tSVItMTAwIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTEiLCAiSVNPODg1OS0xIik7CisgICAgICAgIHJlZ2lz
dGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTEiLCAiSVNP
Xzg4NTktMSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJJU08tODg1OS0xIiwgIklTT184ODU5LTE6MTk4NyIpOworICAgICAgICByZWdpc3Rl
ckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS0xIiwgIkwxIik7
CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklT
Ty04ODU5LTEiLCAiTEFUSU4xIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZh
aWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTEiLCAiQ1NJU09MQVRJTjEiKTsKKyAgICB9CiB9
CiAKIHZvaWQgVGV4dENvZGVjR3RrOjpyZWdpc3RlckJhc2VDb2RlY3MoVGV4dENvZGVjUmVnaXN0
cmFyIHJlZ2lzdHJhcikKIHsKLSAgICByZWdpc3RlckNvZGVjcyhyZWdpc3RyYXIsIGZhbHNlKTsK
KyAgICAvLyBVbmljb2RlCisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwg
IlVURi04Iik7CisKKyAgICAvLyBXZXN0ZXJuCisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxl
KHJlZ2lzdHJhciwgIklTTy04ODU5LTEiKTsKIH0KIAogdm9pZCBUZXh0Q29kZWNHdGs6OnJlZ2lz
dGVyRXh0ZW5kZWRFbmNvZGluZ05hbWVzKEVuY29kaW5nTmFtZVJlZ2lzdHJhciByZWdpc3RyYXIp
CiB7Ci0gICAgcmVnaXN0ZXJFbmNvZGluZ05hbWVzKHJlZ2lzdHJhciwgdHJ1ZSk7CisgICAgLy8g
V2VzdGVybgorICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJh
ciwgIk1BQ1JPTUFOIikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFi
bGUocmVnaXN0cmFyLCAiTUFDUk9NQU4iLCAiTUFDIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2Rp
bmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIk1BQ1JPTUFOIiwgIk1BQ0lOVE9TSCIpOwor
ICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJNQUNS
T01BTiIsICJDU01BQ0lOVE9TSCIpOworICAgIH0KKworICAgIC8vIEphcGFuZXNlCisgICAgaWYg
KHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiU2hpZnRfSklTIikp
IHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAi
U2hpZnRfSklTIiwgIk1TX0tBTkpJIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lm
QXZhaWxhYmxlKHJlZ2lzdHJhciwgIlNoaWZ0X0pJUyIsICJTSElGVC1KSVMiKTsKKyAgICAgICAg
cmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiU2hpZnRfSklTIiwg
IlNKSVMiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiU2hpZnRfSklTIiwgIkNTU0hJRlRKSVMiKTsKKyAgICB9CisgICAgaWYgKHJlZ2lzdGVy
RW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiRVVDLUpQIikpIHsKKyAgICAgICAg
cmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiRVVDLUpQIiwgIkVV
Q19KUCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3Ry
YXIsICJFVUMtSlAiLCAiRVVDSlAiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZB
dmFpbGFibGUocmVnaXN0cmFyLCAiRVVDLUpQIiwgIkVYVEVOREVEX1VOSVhfQ09ERV9QQUNLRURf
Rk9STUFUX0ZPUl9KQVBBTkVTRSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2
YWlsYWJsZShyZWdpc3RyYXIsICJFVUMtSlAiLCAiQ1NFVUNQS0RGTVRKQVBBTkVTRSIpOworICAg
IH0KKyAgICByZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy0y
MDIyLUpQIik7CisKKyAgICAvLyBUcmFkaXRpb25hbCBDaGluZXNlCisgICAgaWYgKHJlZ2lzdGVy
RW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQklHNSIpKSB7CisgICAgICAgIHJl
Z2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkJJRzUiLCAiQklHLTUi
KTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAi
QklHNSIsICJCSUctRklWRSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJCSUc1IiwgIkJJR0ZJVkUiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNv
ZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQklHNSIsICJDTi1CSUc1Iik7CisgICAg
ICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkJJRzUiLCAi
Q1NCSUc1Iik7CisgICAgfQorICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxl
KHJlZ2lzdHJhciwgIkJJRzUtSEtTQ1MiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxp
YXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJCSUc1LUhLU0NTIiwgIkJJRzUtSEtTQ1M6MjAwNCIp
OworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJC
SUc1LUhLU0NTIiwgIkJJRzVIS1NDUyIpOworICAgIH0KKyAgICByZWdpc3RlckVuY29kaW5nTmFt
ZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQOTUwIik7CisKKyAgICAvLyBLb3JlYW4KKyAgICBp
ZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tMjAyMi1L
UiIpKQorICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIs
ICJJU08tMjAyMi1LUiIsICJDU0lTTzIwMjJLUiIpOworICAgIGlmIChyZWdpc3RlckVuY29kaW5n
TmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQOTQ5IikpCisgICAgICAgIHJlZ2lzdGVyRW5j
b2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQOTQ5IiwgIlVIQyIpOworICAgIGlm
IChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkVVQy1LUiIpKQor
ICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJFVUMt
S1IiLCAiQ1NFVUNLUiIpOworCisgICAgLy8gQXJhYmljCisgICAgaWYgKHJlZ2lzdGVyRW5jb2Rp
bmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNiIpKSB7CisgICAgICAgIHJl
Z2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTYiLCAi
QVJBQklDIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIklTTy04ODU5LTYiLCAiQVNNTy03MDgiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGlu
Z0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNiIsICJFQ01BLTExNCIpOwor
ICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08t
ODg1OS02IiwgIklTTy1JUi0xMjciKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZB
dmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNiIsICJJU084ODU5LTYiKTsKKyAgICAgICAg
cmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNiIs
ICJJU09fODg1OS02Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxl
KHJlZ2lzdHJhciwgIklTTy04ODU5LTYiLCAiSVNPXzg4NTktNjoxOTg3Iik7CisgICAgICAgIHJl
Z2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTYiLCAi
Q1NJU09MQVRJTkFSQUJJQyIpOworICAgIH0KKyAgICAvLyByZWFycmFuZ2VkLCB3aW5kb3dzLTEy
NTYgbm93IGRlY2xhcmVkIHRoZSBjYW5vbmljYWwgbmFtZSBhbmQgcHV0IHRvIGxvd2VyY2FzZSB0
byBmaXggL2Zhc3QvZW5jb2RpbmcvYWhyYW0tb3JnLWVnLmh0bWwgdGVzdCBjYXNlCisgICAgaWYg
KHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAid2luZG93cy0xMjU2
IikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAid2luZG93cy0xMjU2IiwgIkNQMTI1NiIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxp
YXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJ3aW5kb3dzLTEyNTYiLCAiTVMtQVJBQiIpOworICAg
IH0KKworICAgIC8vIEhlYnJldworICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTgiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5n
QWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS04IiwgIkhFQlJFVyIpOworICAg
ICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1
OS04IiwgIklTTy04ODU5LTgiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktOCIsICJJU08tSVItMTM4Iik7CisgICAgICAgIHJl
Z2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTgiLCAi
SVNPODg1OS04Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJl
Z2lzdHJhciwgIklTTy04ODU5LTgiLCAiSVNPXzg4NTktOCIpOworICAgICAgICByZWdpc3RlckVu
Y29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS04IiwgIklTT184ODU5
LTg6MTk4OCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJJU08tODg1OS04IiwgIkNTSVNPTEFUSU5IRUJSRVciKTsKKyAgICB9CisgICAgLy8g
cmVhcnJhbmdlZCwgbW92ZWQgd2luZG93cy0xMjU1IGFzIGNhbm9uaWNhbCBhbmQgbG93ZXJjYXNl
ZCwgZml4aW5nIC9mYXN0L2VuY29kaW5nL21ldGEtY2hhcnNldC5odG1sCisgICAgaWYgKHJlZ2lz
dGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAid2luZG93cy0xMjU1IikpIHsK
KyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAid2lu
ZG93cy0xMjU1IiwgIkNQMTI1NSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2
YWlsYWJsZShyZWdpc3RyYXIsICJ3aW5kb3dzLTEyNTUiLCAiTVMtSEVCUiIpOworICAgIH0KKwor
ICAgIC8vIEdyZWVrCisgICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVn
aXN0cmFyLCAiSVNPLTg4NTktNyIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lm
QXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTciLCAiRUNNQS0xMTgiKTsKKyAgICAgICAg
cmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNyIs
ICJFTE9UXzkyOCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShy
ZWdpc3RyYXIsICJJU08tODg1OS03IiwgIkdSRUVLIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2Rp
bmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTciLCAiR1JFRUs4Iik7Cisg
ICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04
ODU5LTciLCAiSVNPLUlSLTEyNiIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2
YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS03IiwgIklTTzg4NTktNyIpOworICAgICAgICBy
ZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS03Iiwg
IklTT184ODU5LTciKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUo
cmVnaXN0cmFyLCAiSVNPLTg4NTktNyIsICJJU09fODg1OS03OjE5ODciKTsKKyAgICAgICAgcmVn
aXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNyIsICJJ
U09fODg1OS03OjIwMDMiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFi
bGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNyIsICJDU0kiKTsKKyAgICB9CisgICAgaWYgKHJlZ2lz
dGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1A4NjkiKSkgeworICAgICAg
ICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDg2OSIsICI4
NjkiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiQ1A4NjkiLCAiQ1AtR1IiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiQ1A4NjkiLCAiSUJNODY5Iik7CisgICAgICAgIHJlZ2lzdGVyRW5j
b2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQODY5IiwgIkNTSUJNODY5Iik7Cisg
ICAgfQorICAgIHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiV0lO
RE9XUy0xMjUzIik7CisKKyAgICAvLyBDeXJpbGxpYworICAgIGlmIChyZWdpc3RlckVuY29kaW5n
TmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTUiKSkgeworICAgICAgICByZWdp
c3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS01IiwgIkNZ
UklMTElDIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIklTTy04ODU5LTUiLCAiSVNPLUlSLTE0NCIpOworICAgICAgICByZWdpc3RlckVuY29k
aW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS01IiwgIklTTzg4NTktNSIp
OworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJ
U08tODg1OS01IiwgIklTT184ODU5LTUiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFz
SWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNSIsICJJU09fODg1OS01OjE5ODgiKTsK
KyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNP
LTg4NTktNSIsICJDU0lTT0xBVElOQ1lSSUxMSUMiKTsKKyAgICB9CisgICAgaWYgKHJlZ2lzdGVy
RW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiS09JOC1SIikpCisgICAgICAgIHJl
Z2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIktPSTgtUiIsICJDU0tP
SThSIik7CisgICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiQ1A4NjYiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShy
ZWdpc3RyYXIsICJDUDg2NiIsICI4NjYiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFz
SWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1A4NjYiLCAiSUJNODY2Iik7CisgICAgICAgIHJlZ2lz
dGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQODY2IiwgIkNTSUJNODY2
Iik7CisgICAgfQorICAgIHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiS09JOC1VIik7CisgICAgLy8gQ1AxMjUxIGFkZGVkIHRvIHBhc3MgL2Zhc3QvZW5jb2Rpbmcv
Y2hhcnNldC1jcDEyNTEuaHRtbAorICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIndpbmRvd3MtMTI1MSIpKQorICAgICAgICByZWdpc3RlckVuY29kaW5n
QWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJ3aW5kb3dzLTEyNTEiLCAiQ1AxMjUxIik7Cisg
ICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAibWFjLWN5
cmlsbGljIikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVn
aXN0cmFyLCAibWFjLWN5cmlsbGljIiwgIk1BQ0NZUklMTElDIik7CisgICAgICAgIHJlZ2lzdGVy
RW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIm1hYy1jeXJpbGxpYyIsICJ4LW1h
Yy1jeXJpbGxpYyIpOworICAgIH0KKworICAgIC8vIFRoYWkKKyAgICBpZiAocmVnaXN0ZXJFbmNv
ZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDg3NCIpKQorICAgICAgICByZWdpc3Rl
ckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDg3NCIsICJXSU5ET1dTLTg3
NCIpOworICAgIHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiVElT
LTYyMCIpOworCisgICAgLy8gU2ltcGxpZmllZCBDaGluZXNlCisgICAgcmVnaXN0ZXJFbmNvZGlu
Z05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJHQksiKTsKKyAgICBpZiAocmVnaXN0ZXJFbmNv
ZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJIWiIpKQorICAgICAgICByZWdpc3RlckVu
Y29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJIWiIsICJIWi1HQi0yMzEyIik7Cisg
ICAgcmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJHQjE4MDMwIik7
CisgICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiRVVD
LUNOIikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiRVVDLUNOIiwgIkVVQ0NOIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lm
QXZhaWxhYmxlKHJlZ2lzdHJhciwgIkVVQy1DTiIsICJHQjIzMTIiKTsKKyAgICAgICAgcmVnaXN0
ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiRVVDLUNOIiwgIkNOLUdCIik7
CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkVV
Qy1DTiIsICJDU0dCMjMxMiIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJFVUMtQ04iLCAiRVVDX0NOIik7CisgICAgfQorICAgIGlmIChyZWdp
c3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkdCXzIzMTItODAiKSkgewor
ICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJHQl8y
MzEyLTgwIiwgIkNISU5FU0UiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiR0JfMjMxMi04MCIsICJjc0lTTzU4R0IyMzEyODAiKTsKKyAgICAg
ICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiR0JfMjMxMi04
MCIsICJHQjIzMTIuMTk4MC0wIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZh
aWxhYmxlKHJlZ2lzdHJhciwgIkdCXzIzMTItODAiLCAiSVNPLUlSLTU4Iik7CisgICAgfQorCisg
ICAgLy8gQ2VudHJhbCBFdXJvcGVhbgorICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZh
aWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTIiKSkgeworICAgICAgICByZWdpc3RlckVuY29k
aW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS0yIiwgIklTTy1JUi0xMDEi
KTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAi
SVNPLTg4NTktMiIsICJJU084ODU5LTIiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFz
SWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMiIsICJJU09fODg1OS0yIik7CisgICAg
ICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5
LTIiLCAiSVNPXzg4NTktMjoxOTg3Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lm
QXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTIiLCAiTDIiKTsKKyAgICAgICAgcmVnaXN0
ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMiIsICJMQVRJ
TjIiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiSVNPLTg4NTktMiIsICJDU0lTT0xBVElOMiIpOworICAgIH0KKyAgICBpZiAocmVnaXN0ZXJF
bmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDEyNTAiKSkgeworICAgICAgICBy
ZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDEyNTAiLCAiTVMt
RUUiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiQ1AxMjUwIiwgIldJTkRPV1MtMTI1MCIpOworICAgIH0KKyAgICByZWdpc3RlckVuY29kaW5n
TmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIk1BQy1DRU5UUkFMRVVST1BFIik7CisKKyAgICAv
LyBWaWV0bmFtZXNlCisgICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVn
aXN0cmFyLCAiQ1AxMjU4IikpCisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIkNQMTI1OCIsICJXSU5ET1dTLTEyNTgiKTsKKworICAgIC8vIFR1cmtp
c2gKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJD
UDEyNTQiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJDUDEyNTQiLCAiTVMtVFVSSyIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxp
YXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDEyNTQiLCAiV0lORE9XUy0xMjU0Iik7CisgICAg
fQorICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklT
Ty04ODU5LTkiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShy
ZWdpc3RyYXIsICJJU08tODg1OS05IiwgIklTTy1JUi0xNDgiKTsKKyAgICAgICAgcmVnaXN0ZXJF
bmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktOSIsICJJU084ODU5
LTkiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiSVNPLTg4NTktOSIsICJJU09fODg1OS05Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdB
bGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTkiLCAiSVNPXzg4NTktOToxOTg5
Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwg
IklTTy04ODU5LTkiLCAiTDUiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktOSIsICJMQVRJTjUiKTsKKyAgICAgICAgcmVnaXN0
ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktOSIsICJDU0lT
T0xBVElONSIpOworICAgIH0KKworICAgIC8vIEJhbHRpYworICAgIGlmIChyZWdpc3RlckVuY29k
aW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQMTI1NyIpKSB7CisgICAgICAgIHJlZ2lz
dGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQMTI1NyIsICJXSU5CQUxU
UklNIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJh
ciwgIkNQMTI1NyIsICJXSU5ET1dTLTEyNTciKTsKKyAgICB9CisgICAgaWYgKHJlZ2lzdGVyRW5j
b2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNCIpKSB7CisgICAgICAg
IHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTQi
LCAiSVNPLUlSLTExMCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJs
ZShyZWdpc3RyYXIsICJJU08tODg1OS00IiwgIklTTzg4NTktNCIpOworICAgICAgICByZWdpc3Rl
ckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS00IiwgIklTT184
ODU5LTQiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiSVNPLTg4NTktNCIsICJJU09fODg1OS00OjE5ODgiKTsKKyAgICAgICAgcmVnaXN0ZXJF
bmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNCIsICJMNCIpOwor
ICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08t
ODg1OS00IiwgIkxBVElONCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJJU08tODg1OS00IiwgIkNTSVNPTEFUSU40Iik7CisgICAgfQogfQog
CiB2b2lkIFRleHRDb2RlY0d0azo6cmVnaXN0ZXJFeHRlbmRlZENvZGVjcyhUZXh0Q29kZWNSZWdp
c3RyYXIgcmVnaXN0cmFyKQogewotICAgIHJlZ2lzdGVyQ29kZWNzKHJlZ2lzdHJhciwgdHJ1ZSk7
CisgICAgLy8gV2VzdGVybgorICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIs
ICJNQUNST01BTiIpOworCisgICAgLy8gSmFwYW5lc2UKKyAgICByZWdpc3RlckNvZGVjSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiU2hpZnRfSklTIik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIkVVQy1KUCIpOworICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShy
ZWdpc3RyYXIsICJJU08tMjAyMi1KUCIpOworCisgICAgLy8gVHJhZGl0aW9uYWwgQ2hpbmVzZQor
ICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJCSUc1Iik7CisgICAgcmVn
aXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkJJRzUtSEtTQ1MiKTsKKyAgICByZWdp
c3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1A5NTAiKTsKKworICAgIC8vIEtvcmVh
bgorICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tMjAyMi1LUiIp
OworICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDk0OSIpOworICAg
IHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJFVUMtS1IiKTsKKworICAgIC8v
IEFyYWJpYworICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1
OS02Iik7CisgICAgLy8gcmVhcnJhbmdlZCwgd2luZG93cy0xMjU2IG5vdyBkZWNsYXJlZCB0aGUg
Y2Fub25pY2FsIG5hbWUgYW5kIHB1dCB0byBsb3dlcmNhc2UgdG8gZml4IC9mYXN0L2VuY29kaW5n
L2FocmFtLW9yZy1lZy5odG1sIHRlc3QgY2FzZQorICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJs
ZShyZWdpc3RyYXIsICJ3aW5kb3dzLTEyNTYiKTsKKworICAgIC8vIEhlYnJldworICAgIHJlZ2lz
dGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS04Iik7CisgICAgLy8gcmVh
cnJhbmdlZCwgbW92ZWQgd2luZG93cy0xMjU1IGFzIGNhbm9uaWNhbCBhbmQgbG93ZXJjYXNlZCwg
Zml4aW5nIC9mYXN0L2VuY29kaW5nL21ldGEtY2hhcnNldC5odG1sCisgICAgcmVnaXN0ZXJDb2Rl
Y0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIndpbmRvd3MtMTI1NSIpOworCisgICAgLy8gR3JlZWsK
KyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNyIpOwor
ICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDg2OSIpOworICAgIHJl
Z2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJXSU5ET1dTLTEyNTMiKTsKKworICAg
IC8vIEN5cmlsbGljCisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklT
Ty04ODU5LTUiKTsKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiS09J
OC1SIik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQODY2Iik7
CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIktPSTgtVSIpOworICAg
IC8vIENQMTI1MSBhZGRlZCB0byBwYXNzIC9mYXN0L2VuY29kaW5nL2NoYXJzZXQtY3AxMjUxLmh0
bWwKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAid2luZG93cy0xMjUx
Iik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIm1hYy1jeXJpbGxp
YyIpOworCisgICAgLy8gVGhhaQorICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3Ry
YXIsICJDUDg3NCIpOworICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJU
SVMtNjIwIik7CisKKyAgICAvLyBTaW1wbGlmaWVkIENoaW5lc2UKKyAgICByZWdpc3RlckNvZGVj
SWZBdmFpbGFibGUocmVnaXN0cmFyLCAiR0JLIik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIkhaIik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIkdCMTgwMzAiKTsKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiRVVDLUNOIik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkdC
XzIzMTItODAiKTsKKworICAgIC8vIENlbnRyYWwgRXVyb3BlYW4KKyAgICByZWdpc3RlckNvZGVj
SWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMiIpOworICAgIHJlZ2lzdGVyQ29kZWNJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDEyNTAiKTsKKyAgICByZWdpc3RlckNvZGVjSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiTUFDLUNFTlRSQUxFVVJPUEUiKTsKKworICAgIC8vIFZpZXRuYW1l
c2UKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1AxMjU4Iik7CisK
KyAgICAvLyBUdXJraXNoCisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwg
IkNQMTI1NCIpOworICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08t
ODg1OS05Iik7CisKKyAgICAvLyBCYWx0aWMKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUo
cmVnaXN0cmFyLCAiQ1AxMjU3Iik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIklTTy04ODU5LTQiKTsKIH0KIAogVGV4dENvZGVjR3RrOjpUZXh0Q29kZWNHdGsoY29u
c3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9ndGsvVGV4dENvZGVjR3RrLmggYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRD
b2RlY0d0ay5oCmluZGV4IGE4YWY3NTIuLjQzNzFlYTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9ndGsvVGV4dENvZGVjR3RrLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L2d0ay9UZXh0Q29kZWNHdGsuaApAQCAtNTMsOSArNTMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGNyZWF0ZUlDb252RGVjb2RlcigpIGNvbnN0OwogICAgICAgICB2b2lk
IGNyZWF0ZUlDb252RW5jb2RlcigpIGNvbnN0OwogCi0gICAgICAgIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyRW5jb2RpbmdOYW1lcyhFbmNvZGluZ05hbWVSZWdpc3RyYXIgcmVnaXN0cmFyLCBib29sIGV4
dGVuZGVkKTsgICAgICAgIAotICAgICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckNvZGVjcyhUZXh0
Q29kZWNSZWdpc3RyYXIgcmVnaXN0cmFyLCBib29sIGV4dGVuZGVkKTsKICAgICAgICAgc3RhdGlj
IGdib29sZWFuIGlzRW5jb2RpbmdBdmFpbGFibGUoY29uc3QgZ2NoYXIqKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgcmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShFbmNvZGluZ05hbWVSZWdp
c3RyYXIgcmVnaXN0cmFyLCBjb25zdCBjaGFyKiBjYW5vbmljYWxOYW1lKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUoRW5jb2RpbmdOYW1lUmVn
aXN0cmFyIHJlZ2lzdHJhciwgY29uc3QgY2hhciogY2Fub25pY2FsTmFtZSwgY29uc3QgY2hhciog
YWxpYXNOYW1lKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxl
KFRleHRDb2RlY1JlZ2lzdHJhciByZWdpc3RyYXIsIGNvbnN0IGNoYXIqIGNvZGVjTmFtZSk7CiAK
ICAgICAgICAgVGV4dEVuY29kaW5nIG1fZW5jb2Rpbmc7CiAgICAgICAgIHNpemVfdCBtX251bUJ1
ZmZlcmVkQnl0ZXM7CkBAIC02NCw4MiArNjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIG11dGFibGUgR0lDb252IG1faWNvbnZFbmNvZGVyOwogCiAgICAgICAgIHN0YXRpYyBjb25z
dCBnY2hhciogbV9pbnRlcm5hbEVuY29kaW5nTmFtZTsKLQotICAgICAgICB0eXBlZGVmIGNvbnN0
IGdjaGFyKiBjb25zdCBjb2RlY0FsaWFzTGlzdFtdOwotCi0gICAgICAgIC8vIFVuaWNvZGUKLSAg
ICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX1VURl84OwotCi0gICAg
ICAgIC8vIFdlc3Rlcm4KLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlh
c2VzX0lTT184ODU5XzE7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxp
YXNlc19NQUNST01BTjsKLQotICAgICAgICAvLyBKYXBhbmVzZQotICAgICAgICBzdGF0aWMgY29k
ZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfU0hJRlRfSklTOwotICAgICAgICBzdGF0aWMgY29k
ZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfRVVDX0pQOwotICAgICAgICBzdGF0aWMgY29kZWNB
bGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfSVNPXzIwMjJfSlA7Ci0KLSAgICAgICAgLy8gVHJhZGl0
aW9uYWwgQ2hpbmVzZQotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFz
ZXNfQklHNTsKLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0JJ
RzVfSEtTQ1M7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19D
UDk1MDsKLQotICAgICAgICAvLyBLb3JlYW4KLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0
IG1fY29kZWNBbGlhc2VzX0lTT18yMDIyX0tSOwotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xp
c3QgbV9jb2RlY0FsaWFzZXNfQ1A5NDk7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBt
X2NvZGVjQWxpYXNlc19FVUNfS1I7Ci0KLSAgICAgICAgLy8gQXJhYmljCi0gICAgICAgIHN0YXRp
YyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19JU09fODg1OV82OwotICAgICAgICBzdGF0
aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfQ1AxMjU2OwotCi0gICAgICAgIC8vIEhl
YnJldwotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfSVNPXzg4
NTlfODsKLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0NQMTI1
NTsKLQotICAgICAgICAvLyBHcmVlawotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9j
b2RlY0FsaWFzZXNfSVNPXzg4NTlfNzsKLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1f
Y29kZWNBbGlhc2VzX0NQODY5OwotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2Rl
Y0FsaWFzZXNfV0lORE9XU18xMjUzOwotCi0gICAgICAgIC8vIEN5cmlsbGljCi0gICAgICAgIHN0
YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19JU09fODg1OV81OwotICAgICAgICBz
dGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfS09JOF9SOwotICAgICAgICBzdGF0
aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfQ1A4NjY7Ci0gICAgICAgIHN0YXRpYyBj
b2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19LT0k4X1U7Ci0gICAgICAgIHN0YXRpYyBjb2Rl
Y0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19XSU5ET1dTXzEyNTE7Ci0gICAgICAgIHN0YXRpYyBj
b2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19NQUNDWVJJTExJQzsKLQotICAgICAgICAvLyBU
aGFpCi0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19DUDg3NDsK
LSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX1RJU182MjA7Ci0K
LSAgICAgICAgLy8gU2ltcGxpZmllZCBDaGluZXNlCi0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFz
TGlzdCBtX2NvZGVjQWxpYXNlc19HQks7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBt
X2NvZGVjQWxpYXNlc19IWjsKLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNB
bGlhc2VzX0dCMTgwMzA7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxp
YXNlc19FVUNfQ047Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNl
c18yMzEyXzgwOyAKLQotICAgICAgICAvLyBDZW50cmFsIEV1cm9wZWFuCi0gICAgICAgIHN0YXRp
YyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19JU09fODg1OV8yOwotICAgICAgICBzdGF0
aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfQ1AxMjUwOwotICAgICAgICBzdGF0aWMg
Y29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfTUFDQ0VOVFJBTEVVUk9QRTsKLQotICAgICAg
ICAvLyBWaWV0bmFtZXNlCi0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxp
YXNlc19DUDEyNTg7Ci0KLSAgICAgICAgLy8gVHVya2lzaAotICAgICAgICBzdGF0aWMgY29kZWNB
bGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfQ1AxMjU0OwotICAgICAgICBzdGF0aWMgY29kZWNBbGlh
c0xpc3QgbV9jb2RlY0FsaWFzZXNfSVNPXzg4NTlfOTsKLQotICAgICAgICAvLyBCYWx0aWMKLSAg
ICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0NQMTI1NzsKLSAgICAg
ICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0lTT184ODU5XzQ7Ci0KLSAg
ICAgICAgc3RhdGljIGdjb25zdHBvaW50ZXIgY29uc3QgbV9pY29udkJhc2VDb2RlY0xpc3RbXTsK
LSAgICAgICAgc3RhdGljIGdjb25zdHBvaW50ZXIgY29uc3QgbV9pY29udkV4dGVuZGVkQ29kZWNM
aXN0W107Ci0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="61330"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71400</attachid>
            <date>2010-10-21 00:49:48 -0700</date>
            <delta_ts>2010-10-21 00:57:36 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>encoding-register.diff</filename>
            <type>text/plain</type>
            <size>33721</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NGZkOTUzMi4uYWViOGE1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0xMC0yMSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUmVwbGFjZSBlbmNvZGluZ3MgbXVsdGktZGlt
ZW5zaW9uYWwgYXJyYXkgd2l0aCBjYWxscyB0byByZWdpc3RyYXIgbWV0aG9kCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Nzk5MAorCisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9ndGsvVGV4dENvZGVjR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
RW5jb2RpbmdBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJFbmNvZGluZ05h
bWVJZkF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RlckVuY29kaW5nQWxpYXNJ
ZkF2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RlckNvZGVjSWZBdmFpbGFibGUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjR3RrOjpyZWdpc3RlckJhc2VFbmNvZGluZ05h
bWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0d0azo6cmVnaXN0ZXJCYXNlQ29kZWNz
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0d0azo6cmVnaXN0ZXJFeHRlbmRlZEVuY29k
aW5nTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjR3RrOjpyZWdpc3RlckV4dGVu
ZGVkQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0d0azo6Y3JlYXRlSUNvbnZE
ZWNvZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0d0azo6Y3JlYXRlSUNvbnZFbmNv
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsuaDoKKwogMjAx
MC0xMC0xNSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvZ3RrL1RleHRDb2RlY0d0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1Rl
eHRDb2RlY0d0ay5jcHAKaW5kZXggNDIyNGMwYy4uOTEzMjY3ZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9ndGsvVGV4dENvZGVjR3RrLmNwcApAQCAtNDUsMTY0ICs0NSwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAvLyBUaGlzIGNhbiBiZSBhY2hpZXZlZCBieSBzcGVjaWZ5aW5nIHRoZSBV
VEYtMTYgY29kZWNzJyBlbmRpYW5uZXNzIGV4cGxpY2l0bHkgd2hlbiBpbml0aWFsaXppbmcgR0xp
Yi4KIAogI2lmIChHX0JZVEVfT1JERVIgPT0gR19CSUdfRU5ESUFOKQotICAgIGNvbnN0IGdjaGFy
KiBXZWJDb3JlOjpUZXh0Q29kZWNHdGs6Om1faW50ZXJuYWxFbmNvZGluZ05hbWUgPSAiVVRGLTE2
QkUiOwotI2Vsc2UgCi0gICAgY29uc3QgZ2NoYXIqIFdlYkNvcmU6OlRleHRDb2RlY0d0azo6bV9p
bnRlcm5hbEVuY29kaW5nTmFtZSA9ICJVVEYtMTZMRSI7CitzdGF0aWMgY29uc3QgZ2NoYXIqIGlu
dGVybmFsRW5jb2RpbmdOYW1lID0gIlVURi0xNkJFIjsKKyNlbHNlCitzdGF0aWMgY29uc3QgZ2No
YXIqIGludGVybmFsRW5jb2RpbmdOYW1lID0gIlVURi0xNkxFIjsKICNlbmRpZgogCiAKLS8vIFdl
J3JlIHNwZWNpZnlpbmcgdGhlIGxpc3Qgb2YgdGV4dCBjb2RlY3MgYW5kIHRoZWlyIGFsaWFzZXMg
aGVyZS4gCi0vLyBGb3IgZWFjaCBjb2RlYyB0aGUgZmlyc3QgZW50cnkgaXMgdGhlIGNhbm9uaWNh
bCBuYW1lLCByZW1haW5pbmcgb25lcyBhcmUgdXNlZCBhcyBhbGlhc2VzLgotLy8gRWFjaCBhbGlh
cyBsaXN0IG11c3QgYmUgdGVybWluYXRlZCBieSBhIDAuCi0KLS8vIFVuaWNvZGUKLVRleHRDb2Rl
Y0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19VVEZfOCAg
ICAgICAgICAgID0geyAiVVRGLTgiLCAwIH07IAotCi0vLyBXZXN0ZXJuCi1UZXh0Q29kZWNHdGs6
OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfSVNPXzg4NTlfMSAg
ICAgICA9IHsgIklTTy04ODU5LTEiLCAiQ1A4MTkiLCAiSUJNODE5IiwgIklTTy1JUi0xMDAiLCAi
SVNPODg1OS0xIiwgIklTT184ODU5LTEiLCAiSVNPXzg4NTktMToxOTg3IiwgICJMMSIsICJMQVRJ
TjEiLCAiQ1NJU09MQVRJTjEiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRl
eHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfTUFDUk9NQU4gICAgICAgICA9IHsgIk1BQ1JPTUFO
IiwgIk1BQyIsICJNQUNJTlRPU0giLCAiQ1NNQUNJTlRPU0giLCAwIH07Ci0KLS8vIEphcGFuZXNl
Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFz
ZXNfU0hJRlRfSklTICAgICAgICA9IHsgIlNoaWZ0X0pJUyIsICJNU19LQU5KSSIsICJTSElGVC1K
SVMiLCAiU0pJUyIsICJDU1NISUZUSklTIiwgMCB9OwotICAgIFRleHRDb2RlY0d0azo6Y29kZWNB
bGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19FVUNfSlAgICAgICAgPSB7ICJF
VUMtSlAiLCAiRVVDX0pQIiwgIkVVQ0pQIiwgIkVYVEVOREVEX1VOSVhfQ09ERV9QQUNLRURfRk9S
TUFUX0ZPUl9KQVBBTkVTRSIsICJDU0VVQ1BLREZNVEpBUEFORVNFIiwgMCB9OwotVGV4dENvZGVj
R3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0lTT18yMDIy
X0pQICAgICAgPSB7ICJJU08tMjAyMi1KUCIsIDAgfTsKLQotLy8gVHJhZGl0aW9uYWwgQ2hpbmVz
ZQotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlh
c2VzX0JJRzUgICAgICAgICAgICAgPSB7ICJCSUc1IiwgIkJJRy01IiwgIkJJRy1GSVZFIiwgIkJJ
RzUiLCAiQklHRklWRSIsICJDTi1CSUc1IiwgIkNTQklHNSIsIDAgfTsKLVRleHRDb2RlY0d0azo6
Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19CSUc1X0hLU0NTICAg
ICAgID0geyAiQklHNS1IS1NDUyIsICJCSUc1LUhLU0NTOjIwMDQiLCAiQklHNUhLU0NTIiwgMCB9
OwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlh
c2VzX0NQOTUwICAgICAgICAgICAgPSB7ICJDUDk1MCIsIDAgfTsKLQotLy8gS29yZWFuCi1UZXh0
Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfSVNP
XzIwMjJfS1IgICAgICA9IHsgIklTTy0yMDIyLUtSIiwgIkNTSVNPMjAyMktSIiwgMCB9OwotVGV4
dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0NQ
OTQ5ICAgICAgICAgICAgPSB7ICJDUDk0OSIsICJVSEMiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNv
ZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfRVVDX0tSICAgICAgICAg
ICA9IHsgIkVVQy1LUiIsICJDU0VVQ0tSIiwgMCB9OwotCi0vLyBBcmFiaWMKLVRleHRDb2RlY0d0
azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19JU09fODg1OV82
ICAgICAgID0geyAiSVNPLTg4NTktNiIsICJBUkFCSUMiLCAiQVNNTy03MDgiLCAiRUNNQS0xMTQi
LCAiSVNPLUlSLTEyNyIsICJJU084ODU5LTYiLCAiSVNPXzg4NTktNiIsICJJU09fODg1OS02OjE5
ODciLCAiQ1NJU09MQVRJTkFSQUJJQyIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xp
c3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19DUDEyNTYgICAgICAgICAgID0geyAid2lu
ZG93cy0xMjU2IiwgIkNQMTI1NiIsICJNUy1BUkFCIiwgMCB9OyAvLyByZWFycmFuZ2VkLCB3aW5k
b3dzLTEyNTYgbm93IGRlY2xhcmVkIHRoZSBjYW5vbmljYWwgbmFtZSBhbmQgcHV0IHRvIGxvd2Vy
Y2FzZSB0byBmaXggL2Zhc3QvZW5jb2RpbmcvYWhyYW0tb3JnLWVnLmh0bWwgdGVzdCBjYXNlCi0K
LS8vIEhlYnJldwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1f
Y29kZWNBbGlhc2VzX0lTT184ODU5XzggICAgICAgPSB7ICJJU08tODg1OS04IiwgIkhFQlJFVyIs
ICJJU08tODg1OS04IiwgIklTTy1JUi0xMzgiLCAiSVNPODg1OS04IiwgIklTT184ODU5LTgiLCAi
SVNPXzg4NTktODoxOTg4IiwgIkNTSVNPTEFUSU5IRUJSRVciLCAwIH07Ci1UZXh0Q29kZWNHdGs6
OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfQ1AxMjU1ICAgICAg
ICAgICA9IHsgIndpbmRvd3MtMTI1NSIsICJDUDEyNTUiLCAiTVMtSEVCUiIsIDAgfTsgLy8gcmVh
cnJhbmdlZCwgbW92ZWQgd2luZG93cy0xMjU1IGFzIGNhbm9uaWNhbCBhbmQgbG93ZXJjYXNlZCwg
Zml4aW5nIC9mYXN0L2VuY29kaW5nL21ldGEtY2hhcnNldC5odG1sCi0KLS8vIEdyZWVrCi1UZXh0
Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfSVNP
Xzg4NTlfNyAgICAgICA9IHsgIklTTy04ODU5LTciLCAiRUNNQS0xMTgiLCAiRUxPVF85MjgiLCAi
R1JFRUsiLCAiR1JFRUs4IiwgIklTTy1JUi0xMjYiLCAiSVNPODg1OS03IiwgIklTT184ODU5LTci
LCAiSVNPXzg4NTktNzoxOTg3IiwgIklTT184ODU5LTc6MjAwMyIsICJDU0kiLCAwIH07Ci1UZXh0
Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfQ1A4
NjkgICAgICAgICAgICA9IHsgIkNQODY5IiwgIjg2OSIsICJDUC1HUiIsICJJQk04NjkiLCAiQ1NJ
Qk04NjkiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6
bV9jb2RlY0FsaWFzZXNfV0lORE9XU18xMjUzICAgICA9IHsgIldJTkRPV1MtMTI1MyIsIDAgfTsK
LQotLy8gQ3lyaWxsaWMKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3Rr
OjptX2NvZGVjQWxpYXNlc19JU09fODg1OV81ICAgICAgID0geyAiSVNPLTg4NTktNSIsICJDWVJJ
TExJQyIsICJJU08tSVItMTQ0IiwgIklTTzg4NTktNSIsICJJU09fODg1OS01IiwgIklTT184ODU5
LTU6MTk4OCIsICJDU0lTT0xBVElOQ1lSSUxMSUMiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVj
QWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfS09JOF9SICAgICAgICAgICA9
IHsgIktPSTgtUiIsICJDU0tPSThSIiwgMCB9OwotVGV4dENvZGVjR3RrOjpjb2RlY0FsaWFzTGlz
dCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0NQODY2ICAgICAgICAgICAgPSB7ICJDUDg2
NiIsICI4NjYiLCAiSUJNODY2IiwgIkNTSUJNODY2IiwgMCB9OwotVGV4dENvZGVjR3RrOjpjb2Rl
Y0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0tPSThfVSAgICAgICAgICAg
PSB7ICJLT0k4LVUiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2Rl
Y0d0azo6bV9jb2RlY0FsaWFzZXNfV0lORE9XU18xMjUxICAgICA9IHsgIndpbmRvd3MtMTI1MSIs
ICJDUDEyNTEiLCAwIH07IC8vIENQMTI1MSBhZGRlZCB0byBwYXNzIC9mYXN0L2VuY29kaW5nL2No
YXJzZXQtY3AxMjUxLmh0bWwKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVj
R3RrOjptX2NvZGVjQWxpYXNlc19NQUNDWVJJTExJQyAgICAgID0geyAibWFjLWN5cmlsbGljIiwg
Ik1BQ0NZUklMTElDIiwgIngtbWFjLWN5cmlsbGljIiwgMCB9OyAKLQotLy8gVGhhaQotVGV4dENv
ZGVjR3RrOjpjb2RlY0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0NQODc0
ICAgICAgICAgICAgPSB7ICJDUDg3NCIsICJXSU5ET1dTLTg3NCIsIDAgfTsKLVRleHRDb2RlY0d0
azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19USVNfNjIwICAg
ICAgICAgID0geyAiVElTLTYyMCIsIDAgfTsKLQotLy8gU2ltcGxpZmllZCBDaGluZXNlCi1UZXh0
Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfR0JL
ICAgICAgICAgICAgICA9IHsgIkdCSyIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xp
c3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19IWiAgICAgICAgICAgICAgID0geyAiSFoi
LCAiSFotR0ItMjMxMiIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENv
ZGVjR3RrOjptX2NvZGVjQWxpYXNlc19HQjE4MDMwICAgICAgICAgID0geyAiR0IxODAzMCIsIDAg
fTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxp
YXNlc19FVUNfQ04gICAgICAgICAgID0geyAiRVVDLUNOIiwgIkVVQ0NOIiwgIkdCMjMxMiIsICJD
Ti1HQiIsICJDU0dCMjMxMiIsICJFVUNfQ04iLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxp
YXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0FsaWFzZXNfMjMxMl84MCAgICAgICAgICA9IHsg
IkdCXzIzMTItODAiLCAiQ0hJTkVTRSIsICJjc0lTTzU4R0IyMzEyODAiLCAiR0IyMzEyLjE5ODAt
MCIsICJJU08tSVItNTgiIH07Ci0KLS8vIENlbnRyYWwgRXVyb3BlYW4KLVRleHRDb2RlY0d0azo6
Y29kZWNBbGlhc0xpc3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19JU09fODg1OV8yICAg
ICAgID0geyAiSVNPLTg4NTktMiIsICJJU08tSVItMTAxIiwgIklTTzg4NTktMiIsICJJU09fODg1
OS0yIiwgIklTT184ODU5LTI6MTk4NyIsICJMMiIsICJMQVRJTjIiLCAiQ1NJU09MQVRJTjIiLCAw
IH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9jb2RlY0Fs
aWFzZXNfQ1AxMjUwICAgICAgICAgICA9IHsgIkNQMTI1MCIsICJNUy1FRSIsICJXSU5ET1dTLTEy
NTAiLCAwIH07Ci1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6bV9j
b2RlY0FsaWFzZXNfTUFDQ0VOVFJBTEVVUk9QRSA9IHsgIk1BQy1DRU5UUkFMRVVST1BFIiwgMCB9
OwotCi0vLyBWaWV0bmFtZXNlCi1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2Rl
Y0d0azo6bV9jb2RlY0FsaWFzZXNfQ1AxMjU4ICAgICAgICAgICA9IHsgIkNQMTI1OCIsICJXSU5E
T1dTLTEyNTgiLCAwIH07Ci0KLS8vIFR1cmtpc2gKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xp
c3QgVGV4dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19DUDEyNTQgICAgICAgICAgID0geyAiQ1Ax
MjU0IiwgIk1TLVRVUksiLCAiV0lORE9XUy0xMjU0IiwgMCB9OwotVGV4dENvZGVjR3RrOjpjb2Rl
Y0FsaWFzTGlzdCBUZXh0Q29kZWNHdGs6Om1fY29kZWNBbGlhc2VzX0lTT184ODU5XzkgICAgICAg
PSB7ICJJU08tODg1OS05IiwgIklTTy1JUi0xNDgiLCAiSVNPODg1OS05IiwgIklTT184ODU5LTki
LCAiSVNPXzg4NTktOToxOTg5IiwgIkw1IiwgIkxBVElONSIsICJDU0lTT0xBVElONSIsIDAgfTsK
LQotLy8gQmFsdGljCi1UZXh0Q29kZWNHdGs6OmNvZGVjQWxpYXNMaXN0IFRleHRDb2RlY0d0azo6
bV9jb2RlY0FsaWFzZXNfQ1AxMjU3ICAgICAgICAgICA9IHsgIkNQMTI1NyIsICJXSU5CQUxUUklN
IiwgIldJTkRPV1MtMTI1NyIsIDAgfTsKLVRleHRDb2RlY0d0azo6Y29kZWNBbGlhc0xpc3QgVGV4
dENvZGVjR3RrOjptX2NvZGVjQWxpYXNlc19JU09fODg1OV80ICAgICAgID0geyAiSVNPLTg4NTkt
NCIsICJJU08tSVItMTEwIiwgIklTTzg4NTktNCIsICJJU09fODg1OS00IiwgIklTT184ODU5LTQ6
MTk4OCIsICJMNCIsICJMQVRJTjQiLCAiQ1NJU09MQVRJTjQiLCAwIH07Ci0KLWdjb25zdHBvaW50
ZXIgY29uc3QgVGV4dENvZGVjR3RrOjptX2ljb252QmFzZUNvZGVjTGlzdFtdID0geyAKLSAgICAv
LyBVbmljb2RlCi0gICAgJm1fY29kZWNBbGlhc2VzX1VURl84LAotCi0gICAgLy8gV2VzdGVybgot
ICAgICZtX2NvZGVjQWxpYXNlc19JU09fODg1OV8xCi19OwotCi1nY29uc3Rwb2ludGVyIGNvbnN0
IFRleHRDb2RlY0d0azo6bV9pY29udkV4dGVuZGVkQ29kZWNMaXN0W10gPSAKLXsKLSAgICAvLyBX
ZXN0ZXJuCi0gICAgJm1fY29kZWNBbGlhc2VzX01BQ1JPTUFOLAotCi0gICAgLy8gSmFwYW5lc2UK
LSAgICAmbV9jb2RlY0FsaWFzZXNfU0hJRlRfSklTLAotICAgICZtX2NvZGVjQWxpYXNlc19FVUNf
SlAsCi0gICAgJm1fY29kZWNBbGlhc2VzX0lTT18yMDIyX0pQLAotCi0gICAgLy8gU2ltcGxpZmll
ZCBDaGluZXNlCi0gICAgJm1fY29kZWNBbGlhc2VzX0JJRzUsCi0gICAgJm1fY29kZWNBbGlhc2Vz
X0JJRzVfSEtTQ1MsCi0gICAgJm1fY29kZWNBbGlhc2VzX0NQOTUwLAotCi0gICAgLy8gS29yZWFu
Ci0gICAgJm1fY29kZWNBbGlhc2VzX0lTT18yMDIyX0tSLAotICAgICZtX2NvZGVjQWxpYXNlc19D
UDk0OSwKLSAgICAmbV9jb2RlY0FsaWFzZXNfRVVDX0tSLAotCi0gICAgLy8gQXJhYmljCi0gICAg
Jm1fY29kZWNBbGlhc2VzX0lTT184ODU5XzYsCi0gICAgJm1fY29kZWNBbGlhc2VzX0NQMTI1NiwK
LSAgICAKLSAgICAvLyBIZWJyZXcKLSAgICAmbV9jb2RlY0FsaWFzZXNfSVNPXzg4NTlfOCwKLSAg
ICAmbV9jb2RlY0FsaWFzZXNfQ1AxMjU1LAotICAgIAotICAgIC8vIEdyZWVrCi0gICAgJm1fY29k
ZWNBbGlhc2VzX0lTT184ODU5XzcsCi0gICAgJm1fY29kZWNBbGlhc2VzX0NQODY5LAotICAgICZt
X2NvZGVjQWxpYXNlc19XSU5ET1dTXzEyNTMsCi0gICAgCi0gICAgLy8gQ3lyaWxsaWMKLSAgICAm
bV9jb2RlY0FsaWFzZXNfSVNPXzg4NTlfNSwKLSAgICAmbV9jb2RlY0FsaWFzZXNfS09JOF9SLAot
ICAgICZtX2NvZGVjQWxpYXNlc19DUDg2NiwKLSAgICAmbV9jb2RlY0FsaWFzZXNfS09JOF9VLAot
ICAgICZtX2NvZGVjQWxpYXNlc19XSU5ET1dTXzEyNTEsCi0gICAgJm1fY29kZWNBbGlhc2VzX01B
Q0NZUklMTElDLAotICAgIAotICAgIC8vIFRoYWkKLSAgICAmbV9jb2RlY0FsaWFzZXNfQ1A4NzQs
Ci0gICAgJm1fY29kZWNBbGlhc2VzX1RJU182MjAsCi0gICAgCi0gICAgLy8gVHJhZGl0aW9uYWwg
Q2hpbmVzZQotICAgICZtX2NvZGVjQWxpYXNlc19HQkssCi0gICAgJm1fY29kZWNBbGlhc2VzX0ha
LAotICAgICZtX2NvZGVjQWxpYXNlc19HQjE4MDMwLAotICAgICZtX2NvZGVjQWxpYXNlc19FVUNf
Q04sCi0gICAgJm1fY29kZWNBbGlhc2VzXzIzMTJfODAsCi0gICAgCi0gICAgLy8gQ2VudHJhbCBF
dXJvcGVhbgotICAgICZtX2NvZGVjQWxpYXNlc19JU09fODg1OV8yLAotICAgICZtX2NvZGVjQWxp
YXNlc19DUDEyNTAsCi0gICAgJm1fY29kZWNBbGlhc2VzX01BQ0NFTlRSQUxFVVJPUEUsCi0gICAg
Ci0gICAgLy8gVmlldG5hbWVzZQotICAgICZtX2NvZGVjQWxpYXNlc19DUDEyNTgsCi0gICAgCi0g
ICAgLy8gVHVya2lzaAotICAgICZtX2NvZGVjQWxpYXNlc19DUDEyNTQsCi0gICAgJm1fY29kZWNB
bGlhc2VzX0lTT184ODU5XzksCi0gICAgCi0gICAgLy8gQmFsdGljCi0gICAgJm1fY29kZWNBbGlh
c2VzX0NQMTI1NywKLSAgICAmbV9jb2RlY0FsaWFzZXNfSVNPXzg4NTlfNAotfTsKLQotCiBjb25z
dCBzaXplX3QgQ29udmVyc2lvbkJ1ZmZlclNpemUgPSAxNjM4NDsKICAgICAKIApAQCAtMjExLDE3
ICs1OSwxNyBAQCBzdGF0aWMgUGFzc093blB0cjxUZXh0Q29kZWM+IG5ld1RleHRDb2RlY0d0ayhj
b25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nLCBjb25zdAogICAgIHJldHVybiBuZXcgVGV4dENv
ZGVjR3RrKGVuY29kaW5nKTsKIH0KIAotZ2Jvb2xlYW4gVGV4dENvZGVjR3RrOjppc0VuY29kaW5n
QXZhaWxhYmxlKGNvbnN0IGdjaGFyKiBlbmNOYW1lKQorc3RhdGljIGJvb2wgaXNFbmNvZGluZ0F2
YWlsYWJsZShjb25zdCBnY2hhciogZW5jTmFtZSkKIHsKICAgICBHSUNvbnYgdGVzdGVyOwogICAg
IC8vIHRlc3QgZGVjb2RpbmcKLSAgICB0ZXN0ZXIgPSBnX2ljb252X29wZW4obV9pbnRlcm5hbEVu
Y29kaW5nTmFtZSwgZW5jTmFtZSk7CisgICAgdGVzdGVyID0gZ19pY29udl9vcGVuKGludGVybmFs
RW5jb2RpbmdOYW1lLCBlbmNOYW1lKTsKICAgICBpZiAodGVzdGVyID09IHJlaW50ZXJwcmV0X2Nh
c3Q8R0lDb252PigtMSkpIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGdfaWNvbnZfY2xvc2UodGVzdGVyKTsKICAgICAgICAgLy8gdGVzdCBlbmNvZGluZwot
ICAgICAgICB0ZXN0ZXIgPSBnX2ljb252X29wZW4oZW5jTmFtZSwgbV9pbnRlcm5hbEVuY29kaW5n
TmFtZSk7CisgICAgICAgIHRlc3RlciA9IGdfaWNvbnZfb3BlbihlbmNOYW1lLCBpbnRlcm5hbEVu
Y29kaW5nTmFtZSk7CiAgICAgICAgIGlmICh0ZXN0ZXIgPT0gcmVpbnRlcnByZXRfY2FzdDxHSUNv
bnY+KC0xKSkgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9IGVsc2UgewpA
QCAtMjMxLDgxICs3OSwzMjYgQEAgZ2Jvb2xlYW4gVGV4dENvZGVjR3RrOjppc0VuY29kaW5nQXZh
aWxhYmxlKGNvbnN0IGdjaGFyKiBlbmNOYW1lKQogICAgIH0KIH0KIAotdm9pZCBUZXh0Q29kZWNH
dGs6OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhFbmNvZGluZ05hbWVSZWdpc3RyYXIgcmVnaXN0cmFy
LCBib29sIGV4dGVuZGVkKQorc3RhdGljIGJvb2wgcmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWls
YWJsZShFbmNvZGluZ05hbWVSZWdpc3RyYXIgcmVnaXN0cmFyLCBjb25zdCBjaGFyKiBjYW5vbmlj
YWxOYW1lKQogewotICAgIGNvbnN0IHZvaWQqIGNvbnN0KiBlbmNvZGluZ0xpc3Q7Ci0gICAgdW5z
aWduZWQgaW50IGxpc3RMZW5ndGggPSAwOwotICAgIGlmIChleHRlbmRlZCkgewotICAgICAgICBl
bmNvZGluZ0xpc3QgPSBtX2ljb252RXh0ZW5kZWRDb2RlY0xpc3Q7Ci0gICAgICAgIGxpc3RMZW5n
dGggPSBzaXplb2YobV9pY29udkV4dGVuZGVkQ29kZWNMaXN0KS9zaXplb2YoZ3BvaW50ZXIpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGVuY29kaW5nTGlzdCA9IG1faWNvbnZCYXNlQ29kZWNMaXN0
OwotICAgICAgICBsaXN0TGVuZ3RoID0gc2l6ZW9mKG1faWNvbnZCYXNlQ29kZWNMaXN0KS9zaXpl
b2YoZ3BvaW50ZXIpOwotICAgIH0KLQotICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg
bGlzdExlbmd0aDsgKytpKSB7Ci0gICAgICAgIGNvZGVjQWxpYXNMaXN0ICpjb2RlY0FsaWFzZXMg
PSBzdGF0aWNfY2FzdDxjb2RlY0FsaWFzTGlzdCo+KGVuY29kaW5nTGlzdFtpXSk7Ci0gICAgICAg
IAotICAgICAgICAvLyBPdXIgY29udmVudGlvbiBpcywgdGhlIGZpcnN0IGVudHJ5IGluIGNvZGVj
QWxpYXNlcyBpcyB0aGUgY2Fub25pY2FsIG5hbWUsIAotICAgICAgICAvLyBzZWUgYWJvdmUgaW4g
dGhlIGxpc3Qgb2YgZGVjbGFyYXRpb25zLiAKLSAgICAgICAgLy8gUHJvYmUgR0xpYiBmb3IgdGhp
cyBvbmUgZmlyc3QuIElmIGl0J3Mgbm90IGF2YWlsYWJsZSwgd2Ugc2tpcCB0aGUgd2hvbGUgZ3Jv
dXAgb2YgYWxpYXNlcy4KLQotICAgICAgICBpbnQgY29kZWNDb3VudCA9IDA7Ci0gICAgICAgIGNv
bnN0IGNoYXIgKmNhbm9uaWNhbE5hbWU7Ci0gICAgICAgIGNhbm9uaWNhbE5hbWUgPSAoKmNvZGVj
QWxpYXNlcylbY29kZWNDb3VudF07Ci0KLSAgICAgICAgaWYgKCFpc0VuY29kaW5nQXZhaWxhYmxl
KGNhbm9uaWNhbE5hbWUpKQotICAgICAgICAgICAgY29udGludWU7CisgICAgaWYgKGlzRW5jb2Rp
bmdBdmFpbGFibGUoY2Fub25pY2FsTmFtZSkpIHsKICAgICAgICAgcmVnaXN0cmFyKGNhbm9uaWNh
bE5hbWUsIGNhbm9uaWNhbE5hbWUpOwotCi0gICAgICAgIGNvbnN0IGNoYXIgKmN1cnJlbnRBbGlh
czsKLSAgICAgICAgd2hpbGUgKChjdXJyZW50QWxpYXMgPSAoKmNvZGVjQWxpYXNlcylbKytjb2Rl
Y0NvdW50XSkpIHsKLSAgICAgICAgICAgIGlmIChpc0VuY29kaW5nQXZhaWxhYmxlKGN1cnJlbnRB
bGlhcykpCi0gICAgICAgICAgICAgICAgcmVnaXN0cmFyKGN1cnJlbnRBbGlhcywgY2Fub25pY2Fs
TmFtZSk7Ci0gICAgICAgIH0KLQorICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisKKyAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgVGV4dENvZGVjR3RrOjpyZWdpc3RlckNvZGVjcyhUZXh0
Q29kZWNSZWdpc3RyYXIgcmVnaXN0cmFyLCBib29sIGV4dGVuZGVkKQorc3RhdGljIHZvaWQgcmVn
aXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUoRW5jb2RpbmdOYW1lUmVnaXN0cmFyIHJlZ2lz
dHJhciwgY29uc3QgY2hhciogY2Fub25pY2FsTmFtZSwgY29uc3QgY2hhciogYWxpYXNOYW1lKQog
ewotICAgIGNvbnN0IHZvaWQqIGNvbnN0KiBlbmNvZGluZ0xpc3Q7Ci0gICAgdW5zaWduZWQgaW50
IGxpc3RMZW5ndGggPSAwOwotICAgIGlmIChleHRlbmRlZCkgewotICAgICAgICBlbmNvZGluZ0xp
c3QgPSBtX2ljb252RXh0ZW5kZWRDb2RlY0xpc3Q7Ci0gICAgICAgIGxpc3RMZW5ndGggPSBzaXpl
b2YobV9pY29udkV4dGVuZGVkQ29kZWNMaXN0KS9zaXplb2YoZ3BvaW50ZXIpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGVuY29kaW5nTGlzdCA9IG1faWNvbnZCYXNlQ29kZWNMaXN0OwotICAgICAg
ICBsaXN0TGVuZ3RoID0gc2l6ZW9mKG1faWNvbnZCYXNlQ29kZWNMaXN0KS9zaXplb2YoZ3BvaW50
ZXIpOwotICAgIH0KKyAgICBpZiAoaXNFbmNvZGluZ0F2YWlsYWJsZShhbGlhc05hbWUpKQorICAg
ICAgICByZWdpc3RyYXIoYWxpYXNOYW1lLCBjYW5vbmljYWxOYW1lKTsKK30KIAotICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGlzdExlbmd0aDsgKytpKSB7Ci0gICAgICAgIGNvZGVj
QWxpYXNMaXN0ICpjb2RlY0FsaWFzZXMgPSBzdGF0aWNfY2FzdDxjb2RlY0FsaWFzTGlzdCo+KGVu
Y29kaW5nTGlzdFtpXSk7Ci0gICAgICAgIC8vIGJ5IGNvbnZlbnRpb24sIHRoZSBmaXJzdCAiYWxp
YXMiIHNob3VsZCBiZSB0aGUgY2Fub25pY2FsIG5hbWUsIHNlZSB0aGUgZGVmaW5pdGlvbiBvZiB0
aGUgYWxpYXMgbGlzdHMgCi0gICAgICAgIGNvbnN0IGdjaGFyICpjb2RlY05hbWUgPSAoKmNvZGVj
QWxpYXNlcylbMF07Ci0gICAgICAgIGlmIChpc0VuY29kaW5nQXZhaWxhYmxlKGNvZGVjTmFtZSkp
Ci0gICAgICAgICAgICByZWdpc3RyYXIoY29kZWNOYW1lLCBuZXdUZXh0Q29kZWNHdGssIDApOwot
ICAgIH0KK3N0YXRpYyB2b2lkIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShUZXh0Q29kZWNSZWdp
c3RyYXIgcmVnaXN0cmFyLCBjb25zdCBjaGFyKiBjb2RlY05hbWUpCit7CisgICAgaWYgKGlzRW5j
b2RpbmdBdmFpbGFibGUoY29kZWNOYW1lKSkKKyAgICAgICAgcmVnaXN0cmFyKGNvZGVjTmFtZSwg
bmV3VGV4dENvZGVjR3RrLCAwKTsKIH0KIAogdm9pZCBUZXh0Q29kZWNHdGs6OnJlZ2lzdGVyQmFz
ZUVuY29kaW5nTmFtZXMoRW5jb2RpbmdOYW1lUmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKLSAgICBy
ZWdpc3RlckVuY29kaW5nTmFtZXMocmVnaXN0cmFyLCBmYWxzZSk7CisgICAgLy8gVW5pY29kZQor
ICAgIHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiVVRGLTgiKTsK
KworICAgIC8vIFdlc3Rlcm4KKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJs
ZShyZWdpc3RyYXIsICJJU08tODg1OS0xIikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0Fs
aWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMSIsICJDUDgxOSIpOworICAgICAg
ICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS0x
IiwgIklCTTgxOSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShy
ZWdpc3RyYXIsICJJU08tODg1OS0xIiwgIklTTy1JUi0xMDAiKTsKKyAgICAgICAgcmVnaXN0ZXJF
bmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMSIsICJJU084ODU5
LTEiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiSVNPLTg4NTktMSIsICJJU09fODg1OS0xIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdB
bGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTEiLCAiSVNPXzg4NTktMToxOTg3
Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwg
IklTTy04ODU5LTEiLCAiTDEiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMSIsICJMQVRJTjEiKTsKKyAgICAgICAgcmVnaXN0
ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMSIsICJDU0lT
T0xBVElOMSIpOworICAgIH0KIH0KIAogdm9pZCBUZXh0Q29kZWNHdGs6OnJlZ2lzdGVyQmFzZUNv
ZGVjcyhUZXh0Q29kZWNSZWdpc3RyYXIgcmVnaXN0cmFyKQogewotICAgIHJlZ2lzdGVyQ29kZWNz
KHJlZ2lzdHJhciwgZmFsc2UpOworICAgIC8vIFVuaWNvZGUKKyAgICByZWdpc3RlckNvZGVjSWZB
dmFpbGFibGUocmVnaXN0cmFyLCAiVVRGLTgiKTsKKworICAgIC8vIFdlc3Rlcm4KKyAgICByZWdp
c3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMSIpOwogfQogCiB2b2lk
IFRleHRDb2RlY0d0azo6cmVnaXN0ZXJFeHRlbmRlZEVuY29kaW5nTmFtZXMoRW5jb2RpbmdOYW1l
UmVnaXN0cmFyIHJlZ2lzdHJhcikKIHsKLSAgICByZWdpc3RlckVuY29kaW5nTmFtZXMocmVnaXN0
cmFyLCB0cnVlKTsKKyAgICAvLyBXZXN0ZXJuCisgICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1l
SWZBdmFpbGFibGUocmVnaXN0cmFyLCAiTUFDUk9NQU4iKSkgeworICAgICAgICByZWdpc3RlckVu
Y29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJNQUNST01BTiIsICJNQUMiKTsKKyAg
ICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiTUFDUk9N
QU4iLCAiTUFDSU5UT1NIIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIk1BQ1JPTUFOIiwgIkNTTUFDSU5UT1NIIik7CisgICAgfQorCisgICAg
Ly8gSmFwYW5lc2UKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJTaGlmdF9KSVMiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2
YWlsYWJsZShyZWdpc3RyYXIsICJTaGlmdF9KSVMiLCAiTVNfS0FOSkkiKTsKKyAgICAgICAgcmVn
aXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiU2hpZnRfSklTIiwgIlNI
SUZULUpJUyIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJTaGlmdF9KSVMiLCAiU0pJUyIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxp
YXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJTaGlmdF9KSVMiLCAiQ1NTSElGVEpJUyIpOworICAg
IH0KKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJF
VUMtSlAiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJFVUMtSlAiLCAiRVVDX0pQIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlh
c0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkVVQy1KUCIsICJFVUNKUCIpOworICAgICAgICByZWdp
c3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJFVUMtSlAiLCAiRVhURU5E
RURfVU5JWF9DT0RFX1BBQ0tFRF9GT1JNQVRfRk9SX0pBUEFORVNFIik7CisgICAgICAgIHJlZ2lz
dGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkVVQy1KUCIsICJDU0VVQ1BL
REZNVEpBUEFORVNFIik7CisgICAgfQorICAgIHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFi
bGUocmVnaXN0cmFyLCAiSVNPLTIwMjItSlAiKTsKKworICAgIC8vIFRyYWRpdGlvbmFsIENoaW5l
c2UKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJC
SUc1IikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiQklHNSIsICJCSUctNSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2
YWlsYWJsZShyZWdpc3RyYXIsICJCSUc1IiwgIkJJRy1GSVZFIik7CisgICAgICAgIHJlZ2lzdGVy
RW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkJJRzUiLCAiQklHRklWRSIpOwor
ICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJCSUc1
IiwgIkNOLUJJRzUiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUo
cmVnaXN0cmFyLCAiQklHNSIsICJDU0JJRzUiKTsKKyAgICB9CisgICAgaWYgKHJlZ2lzdGVyRW5j
b2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQklHNS1IS1NDUyIpKSB7CisgICAgICAg
IHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkJJRzUtSEtTQ1Mi
LCAiQklHNS1IS1NDUzoyMDA0Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZh
aWxhYmxlKHJlZ2lzdHJhciwgIkJJRzUtSEtTQ1MiLCAiQklHNUhLU0NTIik7CisgICAgfQorICAg
IHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1A5NTAiKTsKKwor
ICAgIC8vIEtvcmVhbgorICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJl
Z2lzdHJhciwgIklTTy0yMDIyLUtSIikpCisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lm
QXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy0yMDIyLUtSIiwgIkNTSVNPMjAyMktSIik7CisgICAg
aWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1A5NDkiKSkK
KyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1A5
NDkiLCAiVUhDIik7CisgICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVn
aXN0cmFyLCAiRVVDLUtSIikpCisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIkVVQy1LUiIsICJDU0VVQ0tSIik7CisKKyAgICAvLyBBcmFiaWMKKyAg
ICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1
OS02IikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiSVNPLTg4NTktNiIsICJBUkFCSUMiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0Fs
aWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNiIsICJBU01PLTcwOCIpOworICAg
ICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1
OS02IiwgIkVDTUEtMTE0Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTYiLCAiSVNPLUlSLTEyNyIpOworICAgICAgICByZWdp
c3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS02IiwgIklT
Tzg4NTktNiIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJJU08tODg1OS02IiwgIklTT184ODU5LTYiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNv
ZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNiIsICJJU09fODg1OS02
OjE5ODciKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiSVNPLTg4NTktNiIsICJDU0lTT0xBVElOQVJBQklDIik7CisgICAgfQorICAgIC8vIHJl
YXJyYW5nZWQsIHdpbmRvd3MtMTI1NiBub3cgZGVjbGFyZWQgdGhlIGNhbm9uaWNhbCBuYW1lIGFu
ZCBwdXQgdG8gbG93ZXJjYXNlIHRvIGZpeCAvZmFzdC9lbmNvZGluZy9haHJhbS1vcmctZWcuaHRt
bCB0ZXN0IGNhc2UKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJ3aW5kb3dzLTEyNTYiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJ3aW5kb3dzLTEyNTYiLCAiQ1AxMjU2Iik7CisgICAgICAg
IHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIndpbmRvd3MtMTI1
NiIsICJNUy1BUkFCIik7CisgICAgfQorCisgICAgLy8gSGVicmV3CisgICAgaWYgKHJlZ2lzdGVy
RW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktOCIpKSB7CisgICAg
ICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5
LTgiLCAiSEVCUkVXIik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxl
KHJlZ2lzdHJhciwgIklTTy04ODU5LTgiLCAiSVNPLTg4NTktOCIpOworICAgICAgICByZWdpc3Rl
ckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS04IiwgIklTTy1J
Ui0xMzgiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiSVNPLTg4NTktOCIsICJJU084ODU5LTgiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGlu
Z0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktOCIsICJJU09fODg1OS04Iik7
CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklT
Ty04ODU5LTgiLCAiSVNPXzg4NTktODoxOTg4Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdB
bGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTgiLCAiQ1NJU09MQVRJTkhFQlJF
VyIpOworICAgIH0KKyAgICAvLyByZWFycmFuZ2VkLCBtb3ZlZCB3aW5kb3dzLTEyNTUgYXMgY2Fu
b25pY2FsIGFuZCBsb3dlcmNhc2VkLCBmaXhpbmcgL2Zhc3QvZW5jb2RpbmcvbWV0YS1jaGFyc2V0
Lmh0bWwKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIs
ICJ3aW5kb3dzLTEyNTUiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJ3aW5kb3dzLTEyNTUiLCAiQ1AxMjU1Iik7CisgICAgICAgIHJlZ2lz
dGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIndpbmRvd3MtMTI1NSIsICJN
Uy1IRUJSIik7CisgICAgfQorCisgICAgLy8gR3JlZWsKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGlu
Z05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS03IikpIHsKKyAgICAgICAgcmVn
aXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNyIsICJF
Q01BLTExOCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJJU08tODg1OS03IiwgIkVMT1RfOTI4Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2Rp
bmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTciLCAiR1JFRUsiKTsKKyAg
ICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4
NTktNyIsICJHUkVFSzgiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFi
bGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNyIsICJJU08tSVItMTI2Iik7CisgICAgICAgIHJlZ2lz
dGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTciLCAiSVNP
ODg1OS03Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIklTTy04ODU5LTciLCAiSVNPXzg4NTktNyIpOworICAgICAgICByZWdpc3RlckVuY29k
aW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS03IiwgIklTT184ODU5LTc6
MTk4NyIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3Ry
YXIsICJJU08tODg1OS03IiwgIklTT184ODU5LTc6MjAwMyIpOworICAgICAgICByZWdpc3RlckVu
Y29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS03IiwgIkNTSSIpOwor
ICAgIH0KKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIs
ICJDUDg2OSIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJl
Z2lzdHJhciwgIkNQODY5IiwgIjg2OSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDg2OSIsICJDUC1HUiIpOworICAgICAgICByZWdpc3Rl
ckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDg2OSIsICJJQk04NjkiKTsK
KyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1A4
NjkiLCAiQ1NJQk04NjkiKTsKKyAgICB9CisgICAgcmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJXSU5ET1dTLTEyNTMiKTsKKworICAgIC8vIEN5cmlsbGljCisgICAg
aWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTkt
NSIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJh
ciwgIklTTy04ODU5LTUiLCAiQ1lSSUxMSUMiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0Fs
aWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNSIsICJJU08tSVItMTQ0Iik7Cisg
ICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04
ODU5LTUiLCAiSVNPODg1OS01Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZh
aWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTUiLCAiSVNPXzg4NTktNSIpOworICAgICAgICBy
ZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS01Iiwg
IklTT184ODU5LTU6MTk4OCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJJU08tODg1OS01IiwgIkNTSVNPTEFUSU5DWVJJTExJQyIpOworICAg
IH0KKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJL
T0k4LVIiKSkKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiS09JOC1SIiwgIkNTS09JOFIiKTsKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDg2NiIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2Rp
bmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQODY2IiwgIjg2NiIpOworICAgICAgICBy
ZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDg2NiIsICJJQk04
NjYiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiQ1A4NjYiLCAiQ1NJQk04NjYiKTsKKyAgICB9CisgICAgcmVnaXN0ZXJFbmNvZGluZ05hbWVJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJLT0k4LVUiKTsKKyAgICAvLyBDUDEyNTEgYWRkZWQgdG8g
cGFzcyAvZmFzdC9lbmNvZGluZy9jaGFyc2V0LWNwMTI1MS5odG1sCisgICAgaWYgKHJlZ2lzdGVy
RW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAid2luZG93cy0xMjUxIikpCisgICAg
ICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIndpbmRvd3Mt
MTI1MSIsICJDUDEyNTEiKTsKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJs
ZShyZWdpc3RyYXIsICJtYWMtY3lyaWxsaWMiKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5n
QWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJtYWMtY3lyaWxsaWMiLCAiTUFDQ1lSSUxMSUMi
KTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAi
bWFjLWN5cmlsbGljIiwgIngtbWFjLWN5cmlsbGljIik7CisgICAgfQorCisgICAgLy8gVGhhaQor
ICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQODc0
IikpCisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwg
IkNQODc0IiwgIldJTkRPV1MtODc0Iik7CisgICAgcmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJUSVMtNjIwIik7CisKKyAgICAvLyBTaW1wbGlmaWVkIENoaW5lc2UK
KyAgICByZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkdCSyIpOwor
ICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkhaIikp
CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkha
IiwgIkhaLUdCLTIzMTIiKTsKKyAgICByZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJl
Z2lzdHJhciwgIkdCMTgwMzAiKTsKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJFVUMtQ04iKSkgeworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxp
YXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJFVUMtQ04iLCAiRVVDQ04iKTsKKyAgICAgICAgcmVn
aXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiRVVDLUNOIiwgIkdCMjMx
MiIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIs
ICJFVUMtQ04iLCAiQ04tR0IiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiRVVDLUNOIiwgIkNTR0IyMzEyIik7CisgICAgICAgIHJlZ2lzdGVy
RW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkVVQy1DTiIsICJFVUNfQ04iKTsK
KyAgICB9CisgICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiR0JfMjMxMi04MCIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIkdCXzIzMTItODAiLCAiQ0hJTkVTRSIpOworICAgICAgICByZWdpc3Rl
ckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJHQl8yMzEyLTgwIiwgImNzSVNP
NThHQjIzMTI4MCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShy
ZWdpc3RyYXIsICJHQl8yMzEyLTgwIiwgIkdCMjMxMi4xOTgwLTAiKTsKKyAgICAgICAgcmVnaXN0
ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiR0JfMjMxMi04MCIsICJJU08t
SVItNTgiKTsKKyAgICB9CisKKyAgICAvLyBDZW50cmFsIEV1cm9wZWFuCisgICAgaWYgKHJlZ2lz
dGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMiIpKSB7Cisg
ICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04
ODU5LTIiLCAiSVNPLUlSLTEwMSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2
YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS0yIiwgIklTTzg4NTktMiIpOworICAgICAgICBy
ZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS0yIiwg
IklTT184ODU5LTIiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUo
cmVnaXN0cmFyLCAiSVNPLTg4NTktMiIsICJJU09fODg1OS0yOjE5ODciKTsKKyAgICAgICAgcmVn
aXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktMiIsICJM
MiIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIs
ICJJU08tODg1OS0yIiwgIkxBVElOMiIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS0yIiwgIkNTSVNPTEFUSU4yIik7CisgICAg
fQorICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQ
MTI1MCIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIkNQMTI1MCIsICJNUy1FRSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDEyNTAiLCAiV0lORE9XUy0xMjUwIik7CisgICAgfQor
ICAgIHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiTUFDLUNFTlRS
QUxFVVJPUEUiKTsKKworICAgIC8vIFZpZXRuYW1lc2UKKyAgICBpZiAocmVnaXN0ZXJFbmNvZGlu
Z05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDEyNTgiKSkKKyAgICAgICAgcmVnaXN0ZXJF
bmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1AxMjU4IiwgIldJTkRPV1MtMTI1
OCIpOworCisgICAgLy8gVHVya2lzaAorICAgIGlmIChyZWdpc3RlckVuY29kaW5nTmFtZUlmQXZh
aWxhYmxlKHJlZ2lzdHJhciwgIkNQMTI1NCIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdB
bGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQMTI1NCIsICJNUy1UVVJLIik7CisgICAgICAg
IHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQMTI1NCIsICJX
SU5ET1dTLTEyNTQiKTsKKyAgICB9CisgICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktOSIpKSB7CisgICAgICAgIHJlZ2lzdGVyRW5jb2Rp
bmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTkiLCAiSVNPLUlSLTE0OCIp
OworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJ
U08tODg1OS05IiwgIklTTzg4NTktOSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS05IiwgIklTT184ODU5LTkiKTsKKyAgICAg
ICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTkt
OSIsICJJU09fODg1OS05OjE5ODkiKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZB
dmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktOSIsICJMNSIpOworICAgICAgICByZWdpc3Rl
ckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS05IiwgIkxBVElO
NSIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIs
ICJJU08tODg1OS05IiwgIkNTSVNPTEFUSU41Iik7CisgICAgfQorCisgICAgLy8gQmFsdGljCisg
ICAgaWYgKHJlZ2lzdGVyRW5jb2RpbmdOYW1lSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1AxMjU3
IikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVnaXN0cmFy
LCAiQ1AxMjU3IiwgIldJTkJBTFRSSU0iKTsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFz
SWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQ1AxMjU3IiwgIldJTkRPV1MtMTI1NyIpOworICAgIH0K
KyAgICBpZiAocmVnaXN0ZXJFbmNvZGluZ05hbWVJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08t
ODg1OS00IikpIHsKKyAgICAgICAgcmVnaXN0ZXJFbmNvZGluZ0FsaWFzSWZBdmFpbGFibGUocmVn
aXN0cmFyLCAiSVNPLTg4NTktNCIsICJJU08tSVItMTEwIik7CisgICAgICAgIHJlZ2lzdGVyRW5j
b2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTQiLCAiSVNPODg1OS00
Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwg
IklTTy04ODU5LTQiLCAiSVNPXzg4NTktNCIpOworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxp
YXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS00IiwgIklTT184ODU5LTQ6MTk4OCIp
OworICAgICAgICByZWdpc3RlckVuY29kaW5nQWxpYXNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJ
U08tODg1OS00IiwgIkw0Iik7CisgICAgICAgIHJlZ2lzdGVyRW5jb2RpbmdBbGlhc0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTQiLCAiTEFUSU40Iik7CisgICAgICAgIHJlZ2lzdGVy
RW5jb2RpbmdBbGlhc0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTQiLCAiQ1NJU09M
QVRJTjQiKTsKKyAgICB9CiB9CiAKIHZvaWQgVGV4dENvZGVjR3RrOjpyZWdpc3RlckV4dGVuZGVk
Q29kZWNzKFRleHRDb2RlY1JlZ2lzdHJhciByZWdpc3RyYXIpCiB7Ci0gICAgcmVnaXN0ZXJDb2Rl
Y3MocmVnaXN0cmFyLCB0cnVlKTsKKyAgICAvLyBXZXN0ZXJuCisgICAgcmVnaXN0ZXJDb2RlY0lm
QXZhaWxhYmxlKHJlZ2lzdHJhciwgIk1BQ1JPTUFOIik7CisKKyAgICAvLyBKYXBhbmVzZQorICAg
IHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJTaGlmdF9KSVMiKTsKKyAgICBy
ZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiRVVDLUpQIik7CisgICAgcmVnaXN0
ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy0yMDIyLUpQIik7CisKKyAgICAvLyBU
cmFkaXRpb25hbCBDaGluZXNlCisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJh
ciwgIkJJRzUiKTsKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiQklH
NS1IS1NDUyIpOworICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDk1
MCIpOworCisgICAgLy8gS29yZWFuCisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIklTTy0yMDIyLUtSIik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lz
dHJhciwgIkNQOTQ5Iik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwg
IkVVQy1LUiIpOworCisgICAgLy8gQXJhYmljCisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxl
KHJlZ2lzdHJhciwgIklTTy04ODU5LTYiKTsKKyAgICAvLyByZWFycmFuZ2VkLCB3aW5kb3dzLTEy
NTYgbm93IGRlY2xhcmVkIHRoZSBjYW5vbmljYWwgbmFtZSBhbmQgcHV0IHRvIGxvd2VyY2FzZSB0
byBmaXggL2Zhc3QvZW5jb2RpbmcvYWhyYW0tb3JnLWVnLmh0bWwgdGVzdCBjYXNlCisgICAgcmVn
aXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIndpbmRvd3MtMTI1NiIpOworCisgICAg
Ly8gSGVicmV3CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIklTTy04
ODU5LTgiKTsKKyAgICAvLyByZWFycmFuZ2VkLCBtb3ZlZCB3aW5kb3dzLTEyNTUgYXMgY2Fub25p
Y2FsIGFuZCBsb3dlcmNhc2VkLCBmaXhpbmcgL2Zhc3QvZW5jb2RpbmcvbWV0YS1jaGFyc2V0Lmh0
bWwKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAid2luZG93cy0xMjU1
Iik7CisKKyAgICAvLyBHcmVlaworICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3Ry
YXIsICJJU08tODg1OS03Iik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJh
ciwgIkNQODY5Iik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIldJ
TkRPV1MtMTI1MyIpOworCisgICAgLy8gQ3lyaWxsaWMKKyAgICByZWdpc3RlckNvZGVjSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNSIpOworICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWls
YWJsZShyZWdpc3RyYXIsICJLT0k4LVIiKTsKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUo
cmVnaXN0cmFyLCAiQ1A4NjYiKTsKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0
cmFyLCAiS09JOC1VIik7CisgICAgLy8gQ1AxMjUxIGFkZGVkIHRvIHBhc3MgL2Zhc3QvZW5jb2Rp
bmcvY2hhcnNldC1jcDEyNTEuaHRtbAorICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJ3aW5kb3dzLTEyNTEiKTsKKyAgICByZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVn
aXN0cmFyLCAibWFjLWN5cmlsbGljIik7CisKKyAgICAvLyBUaGFpCisgICAgcmVnaXN0ZXJDb2Rl
Y0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQODc0Iik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZh
aWxhYmxlKHJlZ2lzdHJhciwgIlRJUy02MjAiKTsKKworICAgIC8vIFNpbXBsaWZpZWQgQ2hpbmVz
ZQorICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJHQksiKTsKKyAgICBy
ZWdpc3RlckNvZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSFoiKTsKKyAgICByZWdpc3RlckNv
ZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiR0IxODAzMCIpOworICAgIHJlZ2lzdGVyQ29kZWNJ
ZkF2YWlsYWJsZShyZWdpc3RyYXIsICJFVUMtQ04iKTsKKyAgICByZWdpc3RlckNvZGVjSWZBdmFp
bGFibGUocmVnaXN0cmFyLCAiR0JfMjMxMi04MCIpOworCisgICAgLy8gQ2VudHJhbCBFdXJvcGVh
bgorICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJJU08tODg1OS0yIik7
CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxhYmxlKHJlZ2lzdHJhciwgIkNQMTI1MCIpOworICAg
IHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJNQUMtQ0VOVFJBTEVVUk9QRSIp
OworCisgICAgLy8gVmlldG5hbWVzZQorICAgIHJlZ2lzdGVyQ29kZWNJZkF2YWlsYWJsZShyZWdp
c3RyYXIsICJDUDEyNTgiKTsKKworICAgIC8vIFR1cmtpc2gKKyAgICByZWdpc3RlckNvZGVjSWZB
dmFpbGFibGUocmVnaXN0cmFyLCAiQ1AxMjU0Iik7CisgICAgcmVnaXN0ZXJDb2RlY0lmQXZhaWxh
YmxlKHJlZ2lzdHJhciwgIklTTy04ODU5LTkiKTsKKworICAgIC8vIEJhbHRpYworICAgIHJlZ2lz
dGVyQ29kZWNJZkF2YWlsYWJsZShyZWdpc3RyYXIsICJDUDEyNTciKTsKKyAgICByZWdpc3RlckNv
ZGVjSWZBdmFpbGFibGUocmVnaXN0cmFyLCAiSVNPLTg4NTktNCIpOwogfQogCiBUZXh0Q29kZWNH
dGs6OlRleHRDb2RlY0d0ayhjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKQpAQCAtMzMyLDE0
ICs0MjUsMTQgQEAgdm9pZCBUZXh0Q29kZWNHdGs6OmNyZWF0ZUlDb252RGVjb2RlcigpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1faWNvbnZEZWNvZGVyID09IHJlaW50ZXJwcmV0X2Nhc3Q8R0lDb252
PigtMSkpOwogCi0gICAgbV9pY29udkRlY29kZXIgPSBnX2ljb252X29wZW4obV9pbnRlcm5hbEVu
Y29kaW5nTmFtZSwgbV9lbmNvZGluZy5uYW1lKCkpOworICAgIG1faWNvbnZEZWNvZGVyID0gZ19p
Y29udl9vcGVuKGludGVybmFsRW5jb2RpbmdOYW1lLCBtX2VuY29kaW5nLm5hbWUoKSk7CiB9CiAK
IHZvaWQgVGV4dENvZGVjR3RrOjpjcmVhdGVJQ29udkVuY29kZXIoKSBjb25zdAogewogICAgIEFT
U0VSVChtX2ljb252RGVjb2RlciA9PSByZWludGVycHJldF9jYXN0PEdJQ29udj4oLTEpKTsKIAot
ICAgIG1faWNvbnZFbmNvZGVyID0gZ19pY29udl9vcGVuKG1fZW5jb2RpbmcubmFtZSgpLCBtX2lu
dGVybmFsRW5jb2RpbmdOYW1lKTsKKyAgICBtX2ljb252RW5jb2RlciA9IGdfaWNvbnZfb3Blbiht
X2VuY29kaW5nLm5hbWUoKSwgaW50ZXJuYWxFbmNvZGluZ05hbWUpOwogfQogCiBTdHJpbmcgVGV4
dENvZGVjR3RrOjpkZWNvZGUoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIGJvb2wg
Zmx1c2gsIGJvb2wgc3RvcE9uRXJyb3IsIGJvb2wmIHNhd0Vycm9yKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsuaCBiL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9ndGsvVGV4dENvZGVjR3RrLmgKaW5kZXggYThhZjc1Mi4uNjVkZGZiOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsuaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDb2RlY0d0ay5oCkBAIC01Myw5MyArNTMsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNyZWF0ZUlDb252RGVjb2RlcigpIGNvbnN0
OwogICAgICAgICB2b2lkIGNyZWF0ZUlDb252RW5jb2RlcigpIGNvbnN0OwogCi0gICAgICAgIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhFbmNvZGluZ05hbWVSZWdpc3RyYXIgcmVn
aXN0cmFyLCBib29sIGV4dGVuZGVkKTsgICAgICAgIAotICAgICAgICBzdGF0aWMgdm9pZCByZWdp
c3RlckNvZGVjcyhUZXh0Q29kZWNSZWdpc3RyYXIgcmVnaXN0cmFyLCBib29sIGV4dGVuZGVkKTsK
LSAgICAgICAgc3RhdGljIGdib29sZWFuIGlzRW5jb2RpbmdBdmFpbGFibGUoY29uc3QgZ2NoYXIq
KTsKLQogICAgICAgICBUZXh0RW5jb2RpbmcgbV9lbmNvZGluZzsKICAgICAgICAgc2l6ZV90IG1f
bnVtQnVmZmVyZWRCeXRlczsKICAgICAgICAgdW5zaWduZWQgY2hhciBtX2J1ZmZlcmVkQnl0ZXNb
MTZdOyAvLyBiaWdnZXIgdGhhbiBhbnkgc2luZ2xlIG11bHRpLWJ5dGUgY2hhcmFjdGVyICAgICAg
ICAKICAgICAgICAgbXV0YWJsZSBHSUNvbnYgbV9pY29udkRlY29kZXI7CiAgICAgICAgIG11dGFi
bGUgR0lDb252IG1faWNvbnZFbmNvZGVyOwotCi0gICAgICAgIHN0YXRpYyBjb25zdCBnY2hhciog
bV9pbnRlcm5hbEVuY29kaW5nTmFtZTsKLQotICAgICAgICB0eXBlZGVmIGNvbnN0IGdjaGFyKiBj
b25zdCBjb2RlY0FsaWFzTGlzdFtdOwotCi0gICAgICAgIC8vIFVuaWNvZGUKLSAgICAgICAgc3Rh
dGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX1VURl84OwotCi0gICAgICAgIC8vIFdl
c3Rlcm4KLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0lTT184
ODU5XzE7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19NQUNS
T01BTjsKLQotICAgICAgICAvLyBKYXBhbmVzZQotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xp
c3QgbV9jb2RlY0FsaWFzZXNfU0hJRlRfSklTOwotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xp
c3QgbV9jb2RlY0FsaWFzZXNfRVVDX0pQOwotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3Qg
bV9jb2RlY0FsaWFzZXNfSVNPXzIwMjJfSlA7Ci0KLSAgICAgICAgLy8gVHJhZGl0aW9uYWwgQ2hp
bmVzZQotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfQklHNTsK
LSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0JJRzVfSEtTQ1M7
Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19DUDk1MDsKLQot
ICAgICAgICAvLyBLb3JlYW4KLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNB
bGlhc2VzX0lTT18yMDIyX0tSOwotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2Rl
Y0FsaWFzZXNfQ1A5NDk7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxp
YXNlc19FVUNfS1I7Ci0KLSAgICAgICAgLy8gQXJhYmljCi0gICAgICAgIHN0YXRpYyBjb2RlY0Fs
aWFzTGlzdCBtX2NvZGVjQWxpYXNlc19JU09fODg1OV82OwotICAgICAgICBzdGF0aWMgY29kZWNB
bGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfQ1AxMjU2OwotCi0gICAgICAgIC8vIEhlYnJldwotICAg
ICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfSVNPXzg4NTlfODsKLSAg
ICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0NQMTI1NTsKLQotICAg
ICAgICAvLyBHcmVlawotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFz
ZXNfSVNPXzg4NTlfNzsKLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlh
c2VzX0NQODY5OwotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNf
V0lORE9XU18xMjUzOwotCi0gICAgICAgIC8vIEN5cmlsbGljCi0gICAgICAgIHN0YXRpYyBjb2Rl
Y0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19JU09fODg1OV81OwotICAgICAgICBzdGF0aWMgY29k
ZWNBbGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfS09JOF9SOwotICAgICAgICBzdGF0aWMgY29kZWNB
bGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfQ1A4NjY7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFz
TGlzdCBtX2NvZGVjQWxpYXNlc19LT0k4X1U7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlz
dCBtX2NvZGVjQWxpYXNlc19XSU5ET1dTXzEyNTE7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFz
TGlzdCBtX2NvZGVjQWxpYXNlc19NQUNDWVJJTExJQzsKLQotICAgICAgICAvLyBUaGFpCi0gICAg
ICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19DUDg3NDsKLSAgICAgICAg
c3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX1RJU182MjA7Ci0KLSAgICAgICAg
Ly8gU2ltcGxpZmllZCBDaGluZXNlCi0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2Nv
ZGVjQWxpYXNlc19HQks7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxp
YXNlc19IWjsKLSAgICAgICAgc3RhdGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0dC
MTgwMzA7Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19FVUNf
Q047Ci0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc18yMzEyXzgw
OyAKLQotICAgICAgICAvLyBDZW50cmFsIEV1cm9wZWFuCi0gICAgICAgIHN0YXRpYyBjb2RlY0Fs
aWFzTGlzdCBtX2NvZGVjQWxpYXNlc19JU09fODg1OV8yOwotICAgICAgICBzdGF0aWMgY29kZWNB
bGlhc0xpc3QgbV9jb2RlY0FsaWFzZXNfQ1AxMjUwOwotICAgICAgICBzdGF0aWMgY29kZWNBbGlh
c0xpc3QgbV9jb2RlY0FsaWFzZXNfTUFDQ0VOVFJBTEVVUk9QRTsKLQotICAgICAgICAvLyBWaWV0
bmFtZXNlCi0gICAgICAgIHN0YXRpYyBjb2RlY0FsaWFzTGlzdCBtX2NvZGVjQWxpYXNlc19DUDEy
NTg7Ci0KLSAgICAgICAgLy8gVHVya2lzaAotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3Qg
bV9jb2RlY0FsaWFzZXNfQ1AxMjU0OwotICAgICAgICBzdGF0aWMgY29kZWNBbGlhc0xpc3QgbV9j
b2RlY0FsaWFzZXNfSVNPXzg4NTlfOTsKLQotICAgICAgICAvLyBCYWx0aWMKLSAgICAgICAgc3Rh
dGljIGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0NQMTI1NzsKLSAgICAgICAgc3RhdGlj
IGNvZGVjQWxpYXNMaXN0IG1fY29kZWNBbGlhc2VzX0lTT184ODU5XzQ7Ci0KLSAgICAgICAgc3Rh
dGljIGdjb25zdHBvaW50ZXIgY29uc3QgbV9pY29udkJhc2VDb2RlY0xpc3RbXTsKLSAgICAgICAg
c3RhdGljIGdjb25zdHBvaW50ZXIgY29uc3QgbV9pY29udkV4dGVuZGVkQ29kZWNMaXN0W107Ci0K
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="61440"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>