<?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>104285</bug_id>
          
          <creation_ts>2012-12-06 12:07:33 -0800</creation_ts>
          <short_desc>[GTK] Add authentication support to DRT and fix exposed issues in the libsoup backend</short_desc>
          <delta_ts>2012-12-12 11:21:11 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>104448</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>785129</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-06 12:07:33 -0800</bug_when>
    <thetext>This bug covers adding authentication support to DumpRenderTree and fixing any issues in ResourceHandleSoup that this exposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786561</commentid>
    <comment_count>1</comment_count>
      <attachid>178368</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-08 11:22:06 -0800</bug_when>
    <thetext>Created attachment 178368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786563</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-08 11:24:09 -0800</bug_when>
    <thetext>This also requires a bump to the libsoup version in the jhbuild modules to fix a libsoup bug. I&apos;ll handle that in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786652</commentid>
    <comment_count>3</comment_count>
      <attachid>178386</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-08 16:42:04 -0800</bug_when>
    <thetext>Created attachment 178386
Properly handle authentication restarts in restartedCallback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786711</commentid>
    <comment_count>4</comment_count>
      <attachid>178386</attachid>
    <who name="Dan Winship">danw</who>
    <bug_when>2012-12-09 01:56:18 -0800</bug_when>
    <thetext>Comment on attachment 178386
Properly handle authentication restarts in restartedCallback

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

&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:146
&gt; +    // soup_uri_new will convert empty usernames and passwords into null. Some parts of
&gt; +    // soup like the SoupAuthenticationManager will only be active when both the username
&gt; +    // and password are non-null. When we have credentials, empty usernames and passwords
&gt; +    // should be empty strings instead of null.

This didn&apos;t sound right to me, so I added a test, and it does seem to work: http://git.gnome.org/browse/libsoup/commit/?id=66650e5

So, not sure what was failing for you.

&gt; Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp:170
&gt; +    // soup_uri_to_string does not insert the password into the string, so we need to create the
&gt; +    // URI string and then reinsert any credentials that were present in the SoupURI. All tests that
&gt; +    // use URL-embedded credentials use HTTP, so it&apos;s safe here.

you could add a soup_uri_to_string_with_password() (or something) if you want. Other people have wanted that before...

&gt; LayoutTests/platform/gtk/TestExpectations:-879
&gt; -# No authentication challenge handling

woooo

&gt; LayoutTests/platform/gtk/http/tests/misc/401-alternative-content-expected.txt:-1
&gt; -PASS

any reason we don&apos;t just print out the debug message to match the default expectation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786712</commentid>
    <comment_count>5</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2012-12-09 01:57:03 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; LayoutTests/platform/gtk/http/tests/misc/401-alternative-content-expected.txt:-1
&gt; &gt; -PASS
&gt; 
&gt; any reason we don&apos;t just print out the debug message to match the default expectation?

oh, oops, that&apos;s a removal not an addition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786726</commentid>
    <comment_count>6</comment_count>
      <attachid>178401</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-09 02:45:09 -0800</bug_when>
    <thetext>Created attachment 178401
New patch with better comment explaining the null password issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788213</commentid>
    <comment_count>7</comment_count>
      <attachid>178401</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-12-11 02:11:52 -0800</bug_when>
    <thetext>Comment on attachment 178401
New patch with better comment explaining the null password issue

LGTM!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789730</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-12-12 11:21:11 -0800</bug_when>
    <thetext>Committed r137487: &lt;http://trac.webkit.org/changeset/137487&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178368</attachid>
            <date>2012-12-08 11:22:06 -0800</date>
            <delta_ts>2012-12-08 16:42:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104285-20121208201928.patch</filename>
            <type>text/plain</type>
            <size>26835</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM4ODQ3NWIyNjhhODNi
Yjc2MGJiZGVhNWU0MDVmYjQzNGI2ZTlhYi4uNTM1OTczMzMxN2NlMDk1MzlhOWJkNTQ0MmNlNTUw
ZDg4YTA0ZTM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTEyLTA2ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQg
YXV0aGVudGljYXRpb24gc3VwcG9ydCB0byBEUlQgYW5kIGZpeCBleHBvc2VkIGlzc3VlcyBpbiB0
aGUgbGlic291cCBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDQyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggaXNzdWVzIGluIHRoZSBsaWJzb3VwIG5ldHdvcmtpbmcgYmFja2VuZCB0
aGF0IHdlcmUgY2F1c2luZyB0ZXN0CisgICAgICAgIGZhaWx1cmVzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gVGhpcyBwYXRjaCB1bnNraXBzIGF1dGhlbnRpY2F0aW9uIHRlc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphcHBseUF1dGhlbnRpY2F0aW9uVG9SZXF1ZXN0KTogVXNlIGFuIGVhcmx5
IHJldHVybiBpbnN0ZWFkIG9mIGFuIGlmLXN0YXRlbWVudAorICAgICAgICBhbmQgaW5zdGVhZCBv
ZiBhbHdheXMgdXNpbmcgbWFudWFsbHkgc3BlY2lmaWVkIGNyZWRlbnRpYWxzLCBhcHBseSB0aG9z
ZSBmb3VuZCBpbiB0aGUgc2Vzc2lvbgorICAgICAgICBzdG9yYWdlIGFzIHdlbGwuIEluc3RlYWQg
b2YgYXBwbHlpbmcgdGhlIGNyZWRlbnRpYWxzIHRvIGZpcnN0UmVxdWVzdCBhbHdheXMsIGFjY2Vw
dCB0aGUgcmVxdWVzdAorICAgICAgICBhcyBhIHBhcmFtZXRlciwgc28gdGhpcyBtZXRob2QgY2Fu
IGJlIHByb3Blcmx5IHVzZWQgd2l0aCByZWRpcmVjdHMuCisgICAgICAgIChXZWJDb3JlOjpyZXN0
YXJ0ZWRDYWxsYmFjayk6IEluc3RlYWQgb2YgY3JlYXRpbmcgdGhlIEtVUkwgZGlyZWN0bHkgZnJv
bSBzb3VwX3VyaV90b19zdHJpbmcKKyAgICAgICAgdXNlIHNvdXBVUklUb0tVUkwsIHdoaWNoIHBy
ZXNlcnZlcyB0aGUgcGFzc3dvcmQgZnJvbSB0aGUgU291cFVSSS4gc291cF91cmlfdG9fc3RyaW5n
IGRvZXNuJ3QKKyAgICAgICAgaW5jbHVkZSB0aGUgcGFzc3dvcmQuIFdoZW4gY2FsbGluZyBhcHBs
eUF1dGhlbnRpY2F0aW9uVG9SZXF1ZXN0IHVwZGF0ZSB0aGUgbmV3IHJlcXVlc3QuIEJlZm9yZQor
ICAgICAgICBhcHBseUF1dGhlbnRpY2F0aW9uVG9SZXF1ZXN0IGFsd2F5cyB1cGRhdGVkIHRoZSBm
aXJzdFJlcXVlc3QuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTb3VwUmVxdWVzdEFuZE1lc3Nh
Z2VGb3JIYW5kbGUpOiBVc2Ugc291cF9yZXF1ZXN0ZXJfcmVxdWVzdF91cmkgaW5zdGVhZCBvZgor
ICAgICAgICBzb3VwX3JlcXVlc3Rlcl9yZXF1ZXN0LiBSZXF1ZXN0Ojpzb3VwVVJJIHByb3Blcmx5
IGNyZWF0ZXMgYSBTb3VwVVJJIHdpdGggbm9uLW51bGwgZW1wdHkgc3RyaW5ncworICAgICAgICB3
aGVuIGVpdGhlciB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGFyZSBlbXB0eS4gIEEgbnVsbCB1
c2VybmFtZSBvciBwYXNzd29yZCBkb2VzIG5vdCB0cmlnZ2VyCisgICAgICAgIHRoZSBVUkktZW1i
ZWRkZWQgY3JlZGVudGlhbCBvdmVycmlkZSBpbiBTb3VwQXV0aGVudGljYXRpb25NYW5hZ2VyIHdp
dGhpbiBsaWJzb3VwLiBUaGlzIGlzIGltcG9ydGFudAorICAgICAgICBiZWNhdXNlIHNvbWV0aW1l
cyBlaXRoZXIgdGhlIHVzZXJuYW1lIG9yIHBhc3N3b3JkIG1pZ2h0IGVtcHR5IGZvciBhIHJlcXVl
c3QsIGJ1dCB0aGUgb3RoZXIKKyAgICAgICAgcGFydCBvZiB0aGUgY3JlZGVudGlhbCBzaG91bGQg
c3RpbGwgb3ZlcnJpZGUgdGhlIHBlci1zZXNzaW9uIGNyZWRlbnRpYWwgc3RvcmFnZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6IFdlIGRvbid0IG5lZWQgdG8gY2xl
YXIgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmcm9tIHRoZQorICAgICAgICBpbnRlcm5hbCBk
YXRhIHN0cnVjdHVyZSBhbnkgbG9uZ2VyLiBUaGVzZSBuZWVkIHRvIGJlIGNsZWFyZWQgaW4gdGhl
IENGTmV0d29yayBiYWNrZW5kIGJlY2F1c2UKKyAgICAgICAgaXQgcHJldmVudHMgdGhlIHNhbWUg
ZmFpbGVkIHBlci1yZXF1ZXN0IGNyZWRlbnRpYWxzIGZyb20gYmVpbmcgdXNlZCBvdmVyIGFuZCBv
dmVyIGFnYWluLiBJbiBvdXIKKyAgICAgICAgY2FzZSB3ZSBkb24ndCB1c2UgdGhlc2UgbWVtYmVy
cyBkdXJpbmcgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBzbyB0aGlzIGlzbid0
IGFuIGlzc3VlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IERvbid0IGxvb2sgYXQgdGhlIHBlci1yZXF1ZXN0Cisg
ICAgICAgIG1fdXNlci9tX3Bhc3MgcGFpciBoZXJlIGFueSBsb25nZXIuIFdlIHVzZSB0aGVzZSB3
aGVuIGluaXRpYWxseSBjcmVhdGluZyBhIHJlcXVlc3QsIHNvIHdlIGRvbid0CisgICAgICAgIHdh
bnQgdG8gcmUtdXNlIHRoZW0gaWYgdGhleSBmYWlsLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFJlc291cmNlUmVxdWVzdCk6IFJl
bmFtZSB1cmxTdHJpbmdGb3JTb3VwIHRvIHNvdXBVUkkuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Ojpzb3VwVVJJKTogSW5zdGVhZCBvZiByZXR1cm5pbmcgYSBzdHJpbmcgZm9y
IHRoZSBzb3VwLWJvdW5kIFVSTAorICAgICAgICByZXR1cm4gYSBTb3VwVVJJIHRoYXQgcHJvcGVy
bHkgZW1iZWRzIGVtcHR5IHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzLgorCiAyMDEyLTEyLTA0ICBF
bGxpb3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIHBhcnNlciog
bWV0aG9kcyBpbiBDb250YWluZXJOb2RlIHNob3VsZCBub3Qgc3VwcG9ydCBEb2N1bWVudEZyYWdt
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZGFkYzJiNmQwNjgwNmNlZmY1YzU0ZmU3M2U5OWJkY2Qw
MDRmOWI3OS4uNWMzMjIwNDJjNmQ2Njg3NDQ2ZjViNmVmNDZjNGIwZjE5NGEwYzljOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTA2ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgYXV0aGVudGljYXRp
b24gc3VwcG9ydCB0byBEUlQgYW5kIGZpeCBleHBvc2VkIGlzc3VlcyBpbiB0aGUgbGlic291cCBi
YWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDQyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgc3VwcG9ydCB0byBEdW1wUmVuZGVyVHJlZSBmb3IgcnVubmluZyBhdXRoZW50aWNhdGlvbiB0
ZXN0cy4gU2luY2UgdGhlIERSVAorICAgICAgICBleHBlY3RzIGFuIGF1dGhlbnRpY2F0aW9uIGNh
bGxiYWNrLCB3ZSBhZGQgb25lIHRvIERSVFN1cHBvcnQgdG8gYXZvaWQgI2lmZGVmcworICAgICAg
ICBpbiBwbGF0Zm9ybS1pbmRlcGVuZGVudCBjb2RlIGZvciBHVEsrLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0QXV0aGVudGljYXRpb25DYWxsYmFjayk6IEFkZGVkLgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKTogQWRkIGEgbWV0aG9kIHRvIHNldCB0aGUg
YXV0aGVudGljYXRpb24gY2FsbGJhY2suCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOiBXaGVuCisgICAgICAg
IGluIERSVCBtb2RlIHdlIG5lZWQgdG8gY2FsbCB0aGUgYXV0aGVudGljYXRpb24gY2FsbGJhY2sg
aW5zdGVhZCBvZiBwb3BwaW5nCisgICAgICAgIHVwIHRoZSBkaWFsb2cgb3IgaWdub3JpbmcgdGhl
IHJlcXVlc3QuCisKIDIwMTItMTItMDggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBzb21lIG1pc3NpbmcgRnJhbWVMb2Fk
ZXJDbGllbnQgbWVzc2FnZSBpbiBEUlQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggYTVmZjkw
ZTU3NjJmNzkxYThkNzY3MWZmYjE5ODdmZDQxOWIyMDI0Yi4uOWJkZmQwMTgxN2Q3M2M1ZjEwMTgx
OTMzZjIwMGNhNDNhNTI3MTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQ3LDYgKzQ3
LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlNv
dXBVUklVdGlscy5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUgPGVycm5v
Lmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KQEAgLTMxOSwxNCArMzIwLDExIEBAIHN0YXRpYyB2b2lk
IGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkK
ICAgICBkLT5tX3Jlc3BvbnNlID0gcmVzcG9uc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGx5QXV0
aGVudGljYXRpb25Ub1JlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgYm9vbCByZWRpcmVj
dCkKK3N0YXRpYyB2b2lkIGFwcGx5QXV0aGVudGljYXRpb25Ub1JlcXVlc3QoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHJlZGlyZWN0KQogewog
ICAgIC8vIG1fdXNlci9tX3Bhc3MgYXJlIGNyZWRlbnRpYWxzIGdpdmVuIG1hbnVhbGx5LCBmb3Ig
aW5zdGFuY2UsIGJ5IHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIFhNTEh0dHBSZXF1ZXN0Lm9wZW4o
KS4KICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgp
OwotICAgIFN0cmluZyB1c2VyID0gZC0+bV91c2VyOwotICAgIFN0cmluZyBwYXNzd29yZCA9IGQt
Pm1fcGFzczsKIAotICAgIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGQtPm1fZmlyc3RSZXF1
ZXN0OwogICAgIGlmIChoYW5kbGUtPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkpIHsKICAg
ICAgICAgaWYgKGQtPm1fdXNlci5pc0VtcHR5KCkgJiYgZC0+bV9wYXNzLmlzRW1wdHkoKSkKICAg
ICAgICAgICAgIGQtPm1faW5pdGlhbENyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0
KHJlcXVlc3QudXJsKCkpOwpAQCAtMzM5LDIwICszMzcsMjMgQEAgc3RhdGljIHZvaWQgYXBwbHlB
dXRoZW50aWNhdGlvblRvUmVxdWVzdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBib29sIHJlZGly
ZWN0KQogICAgICAgICB9CiAgICAgfQogCisgICAgU3RyaW5nIHVzZXIgPSBkLT5tX3VzZXI7Cisg
ICAgU3RyaW5nIHBhc3N3b3JkID0gZC0+bV9wYXNzOwogICAgIGlmICghZC0+bV9pbml0aWFsQ3Jl
ZGVudGlhbC5pc0VtcHR5KCkpIHsKICAgICAgICAgdXNlciA9IGQtPm1faW5pdGlhbENyZWRlbnRp
YWwudXNlcigpOwogICAgICAgICBwYXNzd29yZCA9IGQtPm1faW5pdGlhbENyZWRlbnRpYWwucGFz
c3dvcmQoKTsKICAgICB9CiAKKyAgICBpZiAodXNlci5pc0VtcHR5KCkgJiYgcGFzc3dvcmQuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBXZSBhbHdheXMgcHV0IHRoZSBjcmVk
ZW50aWFscyBpbnRvIHRoZSBVUkwuIEluIHRoZSBDRk5ldHdvcmstcG9ydCBIVFRQIGZhbWlseSBj
cmVkZW50aWFscyBhcmUgYXBwbGllZCBpbgogICAgIC8vIHRoZSBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2FsbGJhY2ssIGJ1dCBsaWJzb3VwIHJlcXVpcmVzIHVzIHRvIHVzZSB0
aGlzIG1ldGhvZCB0byBvdmVycmlkZQogICAgIC8vIGFueSBwcmV2aW91c2x5IHJlbWVtYmVyZWQg
Y3JlZGVudGlhbHMuIEl0IGhhcyBpdHMgb3duIHBlci1zZXNzaW9uIGNyZWRlbnRpYWwgc3RvcmFn
ZS4KLSAgICBpZiAoIXVzZXIuaXNFbXB0eSgpIHx8ICFwYXNzd29yZC5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgS1VSTCB1cmxXaXRoQ3JlZGVudGlhbHMocmVxdWVzdC51cmwoKSk7Ci0gICAgICAgIHVy
bFdpdGhDcmVkZW50aWFscy5zZXRVc2VyKGQtPm1fdXNlcik7Ci0gICAgICAgIHVybFdpdGhDcmVk
ZW50aWFscy5zZXRQYXNzKGQtPm1fcGFzcyk7Ci0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybFdp
dGhDcmVkZW50aWFscyk7Ci0gICAgfQorICAgIEtVUkwgdXJsV2l0aENyZWRlbnRpYWxzKHJlcXVl
c3QudXJsKCkpOworICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRVc2VyKHVzZXIpOworICAgIHVy
bFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKHBhc3N3b3JkKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1
cmxXaXRoQ3JlZGVudGlhbHMpOwogfQogCiAvLyBDYWxsZWQgZWFjaCB0aW1lIHRoZSBtZXNzYWdl
IGlzIGdvaW5nIHRvIGJlIHNlbnQgYWdhaW4gZXhjZXB0IHRoZSBmaXJzdCB0aW1lLgpAQCAtMzY2
LDEyICszNjcsOCBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2FnZSog
bWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKICAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEdPd25QdHI8Y2hhcj4gdXJpKHNvdXBfdXJpX3RvX3N0cmluZyhzb3Vw
X21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSwgZmFsc2UpKTsKLSAgICBTdHJpbmcgbG9jYXRpb24g
PSBTdHJpbmc6OmZyb21VVEY4KHVyaS5nZXQoKSk7Ci0gICAgS1VSTCBuZXdVUkwgPSBLVVJMKGhh
bmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvY2F0aW9uKTsKLQogICAgIFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0ID0gaGFuZGxlLT5maXJzdFJlcXVlc3QoKTsKLSAgICByZXF1ZXN0LnNldFVS
TChuZXdVUkwpOworICAgIHJlcXVlc3Quc2V0VVJMKEtVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS51cmwoKSwgc291cFVSSVRvS1VSTChzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSkpKTsK
ICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QobWVzc2FnZS0+bWV0aG9kKTsKIAogICAgIC8vIFNo
b3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291
cmNlIHRvIG5vbi1zZWN1cmUgb25lLgpAQCAtMzk1LDEwICszOTIsMTAgQEAgc3RhdGljIHZvaWQg
cmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpCiAg
ICAgICAgIC8vIFRPRE86IFdlIGFyZSBsb3NpbmcgYW55IHVzZXJuYW1lIGFuZCBwYXNzd29yZCBz
cGVjaWZpZWQgaW4gdGhlIHJlZGlyZWN0IFVSTCwgYXMgdGhpcyBpcyB0aGUgCiAgICAgICAgIC8v
IHNhbWUgYmVoYXZpb3IgYXMgdGhlIENGTmV0IHBvcnQuIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSBp
ZiB0aGlzIGlzIHJlYWxseSB3aGF0IHdlIHdhbnQuCiAgICAgfSBlbHNlCi0gICAgICAgIGFwcGx5
QXV0aGVudGljYXRpb25Ub1JlcXVlc3QoaGFuZGxlLCB0cnVlKTsKKyAgICAgICAgYXBwbHlBdXRo
ZW50aWNhdGlvblRvUmVxdWVzdChoYW5kbGUsIHJlcXVlc3QsIHRydWUpOwogCiAgICAgLy8gUGVy
LXJlcXVlc3QgYXV0aGVudGljYXRpb24gaXMgaGFuZGxlZCB2aWEgdGhlIFVSSS1lbWJlZGRlZCB1
c2VybmFtZS9wYXNzd29yZC4KLSAgICBHT3duUHRyPFNvdXBVUkk+IG5ld1NvdXBVUkkoc291cF91
cmlfbmV3KHJlcXVlc3QudXJsU3RyaW5nRm9yU291cCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBH
T3duUHRyPFNvdXBVUkk+IG5ld1NvdXBVUkkocmVxdWVzdC5zb3VwVVJJKCkpOwogICAgIHNvdXBf
bWVzc2FnZV9zZXRfdXJpKG1lc3NhZ2UsIG5ld1NvdXBVUkkuZ2V0KCkpOwogCiAgICAgaWYgKGQt
PmNsaWVudCgpKQpAQCAtODI1LDcgKzgyMiw4IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBSZXF1
ZXN0QW5kTWVzc2FnZUZvckhhbmRsZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBib29sIGlzCiAg
ICAgR093blB0cjxHRXJyb3I+IGVycm9yOwogICAgIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCA9
IGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCk7CiAKLSAgICBkLT5tX3NvdXBSZXF1ZXN0ID0gYWRvcHRH
UmVmKHNvdXBfcmVxdWVzdGVyX3JlcXVlc3QocmVxdWVzdGVyLCByZXF1ZXN0LnVybFN0cmluZ0Zv
clNvdXAoKS51dGY4KCkuZGF0YSgpLCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICBHT3duUHRyPFNv
dXBVUkk+IHNvdXBVUkkocmVxdWVzdC5zb3VwVVJJKCkpOworICAgIGQtPm1fc291cFJlcXVlc3Qg
PSBhZG9wdEdSZWYoc291cF9yZXF1ZXN0ZXJfcmVxdWVzdF91cmkocmVxdWVzdGVyLCBzb3VwVVJJ
LmdldCgpLCAmZXJyb3Iub3V0UHRyKCkpKTsKICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgZC0+
bV9zb3VwUmVxdWVzdC5jbGVhcigpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04NjMsMTAg
Kzg2MSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBhcHBseUF1dGhlbnRp
Y2F0aW9uVG9SZXF1ZXN0KHRoaXMsIGZhbHNlKTsKLSAgICAvLyBUaGUgQ0ZOZXQgYmFja2VuZCBj
bGVhcnMgdGhlc2UsIHNvIHdlIGRvIGFzIHdlbGwuCi0gICAgZC0+bV91c2VyID0gU3RyaW5nKCk7
Ci0gICAgZC0+bV9wYXNzID0gU3RyaW5nKCk7CisgICAgYXBwbHlBdXRoZW50aWNhdGlvblRvUmVx
dWVzdCh0aGlzLCBmaXJzdFJlcXVlc3QoKSwgZmFsc2UpOwogCiAgICAgaWYgKCFjcmVhdGVTb3Vw
UmVxdWVzdEFuZE1lc3NhZ2VGb3JIYW5kbGUodGhpcywgaXNIVFRQRmFtaWx5UmVxdWVzdCkpIHsK
ICAgICAgICAgdGhpcy0+c2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWlsdXJlKTsgLy8gRXJy
b3IgbXVzdCBub3QgYmUgcmVwb3J0ZWQgaW1tZWRpYXRlbHkKQEAgLTk2NCwxNyArOTU5LDggQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGwKIHsKICAgICBBU1NFUlQoZC0+bV9jdXJyZW50V2ViQ2hh
bGxlbmdlLmlzTnVsbCgpKTsKIAotICAgIGJvb2wgdXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSBzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOwotICAgIGlmICghZC0+bV91c2VyLmlzTnVsbCgpICYm
ICFkLT5tX3Bhc3MuaXNOdWxsKCkpIHsKLSAgICAgICAgQ3JlZGVudGlhbCBjcmVkZW50aWFsID0g
Q3JlZGVudGlhbChkLT5tX3VzZXIsIGQtPm1fcGFzcywgQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9y
U2Vzc2lvbik7Ci0gICAgICAgIGlmICh1c2VDcmVkZW50aWFsU3RvcmFnZSkKLSAgICAgICAgICAg
IENyZWRlbnRpYWxTdG9yYWdlOjpzZXQoY3JlZGVudGlhbCwgY2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZSgpLCBjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkudXJsKCkpOwotICAgICAgICBzb3Vw
X2F1dGhfYXV0aGVudGljYXRlKGNoYWxsZW5nZS5zb3VwQXV0aCgpLCBjcmVkZW50aWFsLnVzZXIo
KS51dGY4KCkuZGF0YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSk7Ci0K
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEZJWE1FOiBQZXIgdGhlIHNwZWNpZmlj
YXRpb24sIHRoZSB1c2VyIHNob3VsZG4ndCBiZSBhc2tlZCBmb3IgY3JlZGVudGlhbHMgaWYgdGhl
cmUgd2VyZSBpbmNvcnJlY3Qgb25lcyBwcm92aWRlZCBleHBsaWNpdGx5LgorICAgIGJvb2wgdXNl
Q3JlZGVudGlhbFN0b3JhZ2UgPSBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOwogICAgIGlm
ICh1c2VDcmVkZW50aWFsU3RvcmFnZSkgewogICAgICAgICBpZiAoIWQtPm1faW5pdGlhbENyZWRl
bnRpYWwuaXNFbXB0eSgpIHx8IGNoYWxsZW5nZS5wcmV2aW91c0ZhaWx1cmVDb3VudCgpKSB7CiAg
ICAgICAgICAgICAvLyBUaGUgc3RvcmVkIGNyZWRlbnRpYWwgd2Fzbid0IGFjY2VwdGVkLCBzdG9w
IHVzaW5nIGl0LiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggOGNl
MDBmYjczNDg5NzYzZWJiMDk2N2YzYjdiZjBkMTc5NDRmZTRiYy4uZDhmZTAxMTMzOTEyNDIzZDBk
MzFkZjNmY2VkNGYxOWM1NTgwNjg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaApAQCAtNzQsNyArNzQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFNvdXBNZXNzYWdlRmxhZ3Mgc291cE1lc3NhZ2VG
bGFncygpIGNvbnN0IHsgcmV0dXJuIG1fc291cEZsYWdzOyB9CiAgICAgICAgIHZvaWQgc2V0U291
cE1lc3NhZ2VGbGFncyhTb3VwTWVzc2FnZUZsYWdzIHNvdXBGbGFncykgeyBtX3NvdXBGbGFncyA9
IHNvdXBGbGFnczsgfQogCi0gICAgICAgIFN0cmluZyB1cmxTdHJpbmdGb3JTb3VwKCkgY29uc3Q7
CisgICAgICAgIFNvdXBVUkkqIHNvdXBVUkkoKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAu
Y3BwCmluZGV4IDYyZDg2OTZlZGNiNGFmNjNmMjg2YTRmOTVjZDZmZGI0OWNkMjk5YTIuLjg2Yzkz
MmEyNmYzOTNkYmQzZGU2YTBiY2E0MTc0YjBiODUxY2I4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0U291
cC5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCB1bnNpZ25lZCBpbml0aWFsaXplTWF4aW11bUhUVFBD
b25uZWN0aW9uQ291bnRQZXJIb3N0KCkKICAgICByZXR1cm4gMTAwMDA7CiB9CiAKLVN0cmluZyBS
ZXNvdXJjZVJlcXVlc3Q6OnVybFN0cmluZ0ZvclNvdXAoKSBjb25zdAorU291cFVSSSogUmVzb3Vy
Y2VSZXF1ZXN0Ojpzb3VwVVJJKCkgY29uc3QKIHsKICAgICAvLyBXZWJLaXQgZG9lcyBub3Qgc3Vw
cG9ydCBmcmFnbWVudCBpZGVudGlmaWVycyBpbiBkYXRhIFVSTHMsIGJ1dCBzb3VwIGRvZXMuCiAg
ICAgLy8gQmVmb3JlIHBhc3NpbmcgdGhlIFVSTCB0byBzb3VwLCB3ZSBzaG91bGQgbWFrZSBzdXJl
IHRvIHVybGVuY29kZSBhbnkgJyMnCkBAIC0xMzMsMTIgKzEzMywyMiBAQCBTdHJpbmcgUmVzb3Vy
Y2VSZXF1ZXN0Ojp1cmxTdHJpbmdGb3JTb3VwKCkgY29uc3QKICAgICBpZiAobV91cmwucHJvdG9j
b2xJc0RhdGEoKSkgewogICAgICAgICBTdHJpbmcgdXJsU3RyaW5nID0gbV91cmwuc3RyaW5nKCk7
CiAgICAgICAgIHVybFN0cmluZy5yZXBsYWNlKCIjIiwgIiUyMyIpOwotICAgICAgICByZXR1cm4g
dXJsU3RyaW5nOworICAgICAgICByZXR1cm4gc291cF91cmlfbmV3KHVybFN0cmluZy51dGY4KCku
ZGF0YSgpKTsKICAgICB9CiAKICAgICBLVVJMIHVybCA9IG1fdXJsOwogICAgIHVybC5yZW1vdmVG
cmFnbWVudElkZW50aWZpZXIoKTsKLSAgICByZXR1cm4gdXJsLnN0cmluZygpOworICAgIFNvdXBV
UkkqIHVyaSA9IHNvdXBfdXJpX25ldyh1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyAg
ICAvLyBzb3VwX3VyaV9uZXcgd2lsbCBjb252ZXJ0IGVtcHR5IHVzZXJuYW1lcyBhbmQgcGFzc3dv
cmRzIGludG8gbnVsbC4gU29tZSBwYXJ0cyBvZgorICAgIC8vIHNvdXAgbGlrZSB0aGUgU291cEF1
dGhlbnRpY2F0aW9uTWFuYWdlciB3aWxsIG9ubHkgYmUgYWN0aXZlIHdoZW4gYm90aCB0aGUgdXNl
cm5hbWUKKyAgICAvLyBhbmQgcGFzc3dvcmQgYXJlIG5vbi1udWxsLiBXaGVuIHdlIGhhdmUgY3Jl
ZGVudGlhbHMsIGVtcHR5IHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzCisgICAgLy8gc2hvdWxkIGJl
IGVtcHR5IHN0cmluZ3MgaW5zdGVhZCBvZiBudWxsLgorICAgIGlmICghdXJsLnVzZXIoKS5pc0Vt
cHR5KCkgfHwgIXVybC5wYXNzKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIHNvdXBfdXJpX3NldF91
c2VyKHVyaSwgdXJsLnVzZXIoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgc291cF91cmlfc2V0
X3Bhc3N3b3JkKHVyaSwgdXJsLnBhc3MoKS51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisgICAgcmV0
dXJuIHVyaTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggYjBmMjgwYTMy
ZjFmZjNlNTc4MjY4ZDYxNzQxODcwNmZiM2NmYzFhYy4uZTI4YmEzZjZiNDFkZDYwMjNhNzFiYmM0
YTdiYWI5MTdlNDRiNzJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04NSw2ICs4
NSw3IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2RydFJ1biA9IGZhbHNlOwog
Ym9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4g
PSB0cnVlOwogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFt
ZUxvYWRFdmVudENhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRF
dmVudENhbGxiYWNrID0gMDsKK0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRp
b25DYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxs
YmFjayA9IDA7CiAKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6RHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrKCkKIHsKQEAgLTg0NCwzICs4NDUsOCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2V0RnJhbWVMb2FkRXZlbnRDYWxsYmFjayhGcmFtZUxvYWRFdmVudENhbGxiYWNrCiB7
CiAgICAgc19mcmFtZUxvYWRFdmVudENhbGxiYWNrID0gZnJhbWVMb2FkRXZlbnRDYWxsYmFjazsK
IH0KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldEF1dGhlbnRpY2F0aW9uQ2Fs
bGJhY2soQXV0aGVudGljYXRpb25DYWxsYmFjayBhdXRoZW50aWNhdGlvbkNhbGxiYWNrKQorewor
ICAgIHNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9IGF1dGhlbnRpY2F0aW9uQ2FsbGJhY2s7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4IDVhNzRkMTZhZTc1OGQ1YjUxNjBhOTNhODQ1ZDU3
MTU2YTA2NWE2MjAuLjNiMjRmNjU4ZmM0OGE0MTc5MmEzZTNkZGNmMDVjZDAwNGQ5YjEzMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC0xNDYsNiArMTQ2LDEwIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgdm9pZCBzZXRGcmFtZUxvYWRFdmVudENhbGxiYWNrKEZyYW1lTG9hZEV2ZW50Q2FsbGJh
Y2spOwogICAgIHN0YXRpYyBGcmFtZUxvYWRFdmVudENhbGxiYWNrIHNfZnJhbWVMb2FkRXZlbnRD
YWxsYmFjazsKIAorICAgIHR5cGVkZWYgYm9vbCAoKkF1dGhlbnRpY2F0aW9uQ2FsbGJhY2spIChD
U3RyaW5nJiB1c2VybmFtZSwgQ1N0cmluZyYgcGFzc3dvcmQpOworICAgIHN0YXRpYyB2b2lkIHNl
dEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2soQXV0aGVudGljYXRpb25DYWxsYmFjayk7CisgICAgc3Rh
dGljIEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgc19hdXRoZW50aWNhdGlvbkNhbGxiYWNrOworCiBw
cml2YXRlOgogICAgIHN0YXRpYyBib29sIHNfZHJ0UnVuOwogICAgIHN0YXRpYyBib29sIHNfbGlu
a3NJbmNsdWRlZEluVGFiQ2hhaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggMmUxMTU4NzdmMzFm
Zjk5ZmM2ZTY3N2QxM2Y0NmYxNmJhYTQ5ZGM5Ni4uNzc0MDhjMmMwOWY3YmIzY2QxODk0NDRiZDJl
ODc2YmFjZGJkNmNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMTkzLDcgKzE5MywxNCBAQCBi
b29sIEZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVucwogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nICBpZGVudGlmaWVyLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY2hhbGxlbmdlKQogewogICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBS
ZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkgewotICAgICAgICBjaGFsbGVuZ2UuYXV0aGVudGljYXRp
b25DbGllbnQoKS0+cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNo
YWxsZW5nZSk7CisgICAgICAgIENTdHJpbmcgdXNlcm5hbWU7CisgICAgICAgIENTdHJpbmcgcGFz
c3dvcmQ7CisgICAgICAgIGlmICghRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2F1dGhlbnRp
Y2F0aW9uQ2FsbGJhY2sgfHwgIUR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50aWNh
dGlvbkNhbGxiYWNrKHVzZXJuYW1lLCBwYXNzd29yZCkpIHsKKyAgICAgICAgICAgIGNoYWxsZW5n
ZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpLT5yZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91
dENyZWRlbnRpYWwoY2hhbGxlbmdlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGNoYWxsZW5nZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpLT5yZWNlaXZlZENyZWRl
bnRpYWwoY2hhbGxlbmdlLCBDcmVkZW50aWFsKFN0cmluZzo6ZnJvbVVURjgodXNlcm5hbWUuZGF0
YSgpKSwgU3RyaW5nOjpmcm9tVVRGOChwYXNzd29yZC5kYXRhKCkpLCBDcmVkZW50aWFsUGVyc2lz
dGVuY2VGb3JTZXNzaW9uKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwYTM0NTQxMWJmNDBjZDNl
NzliODU2MTJhMGY4N2JmYjYwYTg1ZTgxLi5lNTU5NDA2YmNhZWRjOTFmZTJhNDg4YWRjNDU4Y2E5
NzNmYTFhZDBlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTItMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2Jp
bnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFkZCBhdXRoZW50aWNhdGlvbiBzdXBw
b3J0IHRvIERSVCBhbmQgZml4IGV4cG9zZWQgaXNzdWVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDI4NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBw
b3J0IHRvIER1bXBSZW5kZXJUcmVlIGZvciBydW5uaW5nIGF1dGhlbnRpY2F0aW9uIHRlc3RzLiBT
aW5jZSB0aGUgRFJUCisgICAgICAgIGV4cGVjdHMgYW4gYXV0aGVudGljYXRpb24gY2FsbGJhY2ss
IHdlIGFkZCBvbmUgdG8gRFJUU3VwcG9ydCB0byBhdm9pZCAjaWZkZWZzCisgICAgICAgIGluIHBs
YXRmb3JtLWluZGVwZW5kZW50IGNvZGUgZm9yIEdUSysuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29u
c2lzdGVudFZhbHVlcyk6IFJlc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBwYXNzd29yZCBhbmQgdXNl
cm5hbWUuCisgICAgICAgIChhdXRoZW50aWNhdGlvbkNhbGxiYWNrKTogQWRkZWQuCisgICAgICAg
IChjcmVhdGVXZWJWaWV3KTogQXR0YWNoIHRoZSBhdXRoZW50aWF0aW9uIGNhbGxiYWNrIGR1cmlu
ZyBzdGFydHVwLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNw
cDoKKyAgICAgICAgKHNvdXBVUklUb0tVUkwpOiBzb3VwX3VyaV90b19zdHJpbmcgZG9lcyBub3Qg
cHJlc2VydmUgcGFzc3dvcmRzIGVtYmVkZGVkCisgICAgICAgIGluIHRoZSBVUkwgc28gd2UgYWRk
IGEgc29tZXdoYXQgbWVzc3kgbWV0aG9kIG9mIHJlLWFkZGluZyB0aGVtIHdoZW4gdGhleSBleGlz
dC4KKyAgICAgICAgSXQgd291bGQgYmUgbmljZSB0byB1c2Ugc291cFVSSVRvS1VSTCBoZXJlLCBi
dXQgaXQgc2VlbXMgd2UgY2Fubm90IHVzZSBLVVJMIHdpdGhvdXQKKyAgICAgICAgcHVsbGluZyBp
biBsb3RzIG9mIFdlYkNvcmUgY29kZSBzbyB3ZSB1c2Ugc3RyaW5nIHNlYXJjaCBhbmQgcmVwbGFj
ZS4KKyAgICAgICAgKFRlc3RSdW5uZXI6OnF1ZXVlTG9hZCk6IFVzZSB0aGUgbmV3IGhlbHBlci4K
KwogMjAxMi0xMi0wOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gSW1wbGVtZW50IHNvbWUgbWlzc2luZyBGcmFtZUxvYWRlckNsaWVudCBt
ZXNzYWdlIGluIERSVApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBS
ZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggNDIwMGEzNTc2OGNkMzJlYWM3OTcyMTBjMWMwY2ZhYWRkOTlkMDk5Ni4uYTJlODdm
ODEwY2YxYjdkYTQyNzhiNmVjMDI1Mjc5MDhiOTQ1OTQ5MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC01MjEsNiArNTIxLDEyIEBAIHN0YXRpYyB2
b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0RXhwZXJpbWVudGFsQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZXNF
bmFibGVkKHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2hhZG93RE9N
RW5hYmxlZCh0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFN0eWxlU2Nv
cGVkRW5hYmxlZCh0cnVlKTsKKworICAgIGlmIChnVGVzdFJ1bm5lcikgeworICAgICAgICBnVGVz
dFJ1bm5lci0+c2V0QXV0aGVudGljYXRpb25QYXNzd29yZCgiIik7CisgICAgICAgIGdUZXN0UnVu
bmVyLT5zZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lKCIiKTsKKyAgICAgICAgZ1Rlc3RSdW5uZXIt
PnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMoZmFsc2UpOworICAgIH0KIH0KIAog
c3RhdGljIGJvb2wgdXNlTG9uZ1J1bm5pbmdTZXJ2ZXJNb2RlKGludCBhcmdjLCBjaGFyICphcmd2
W10pCkBAIC0xMzY2LDYgKzEzNzIsMTkgQEAgc3RhdGljIHZvaWQgZnJhbWVMb2FkRXZlbnRDYWxs
YmFjayhXZWJLaXRXZWJGcmFtZSogZnJhbWUsIER1bXBSZW5kZXJUcmVlU3VwcG9ydEcKICAgICB9
CiB9CiAKK3N0YXRpYyBib29sIGF1dGhlbnRpY2F0aW9uQ2FsbGJhY2soQ1N0cmluZyYgdXNlcm5h
bWUsIENTdHJpbmcmIHBhc3N3b3JkKQoreworICAgIGlmICghZ1Rlc3RSdW5uZXItPmhhbmRsZXNB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZXMoKSkgeworICAgICAgICBwcmludGYoIjx1bmtub3duPiAt
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFNpbXVsYXRpbmcgY2FuY2VsbGVk
IGF1dGhlbnRpY2F0aW9uIHNoZWV0XG4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIHVzZXJuYW1lID0gZ1Rlc3RSdW5uZXItPmF1dGhlbnRpY2F0aW9uVXNlcm5hbWUoKS5j
X3N0cigpOworICAgIHBhc3N3b3JkID0gZ1Rlc3RSdW5uZXItPmF1dGhlbnRpY2F0aW9uUGFzc3dv
cmQoKS5jX3N0cigpOworICAgIHByaW50ZigiPHVua25vd24+IC0gZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlIC0gUmVzcG9uZGluZyB3aXRoICVzOiVzXG4iLCB1c2VybmFtZS5kYXRh
KCksIHBhc3N3b3JkLmRhdGEoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBXZWJL
aXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKIHsKICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8g
ZGVjbGFyZSBEUlQgaXMgcnVubmluZyBlYXJseSBzbyB3aGVuIGNyZWF0aW5nCkBAIC0xMzczLDYg
KzEzOTIsNyBAQCBzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmlldygpCiAgICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXREdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKHRydWUp
OwogCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRGcmFtZUxvYWRFdmVudENhbGxi
YWNrKGZyYW1lTG9hZEV2ZW50Q2FsbGJhY2spOworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0QXV0aGVudGljYXRpb25DYWxsYmFjayhhdXRoZW50aWNhdGlvbkNhbGxiYWNrKTsKIAog
ICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcoc2VsZl9zY3JvbGxpbmdf
d2Via2l0X3dlYl92aWV3X25ldygpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwCmluZGV4IGU4ODdjYTFjNGExNWViZjE4MTA3N2Q2NDRmMTFmZDgzMjgwOWQz
MGYuLjdhZmM0Njc3OTdjNzBkNmJiODkwYjZkNDA1ZmUyZDRmMDc0ZDU4OTcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNp
bmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAjaW5j
bHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBleHRlcm4gIkMiIHsKIHZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfZXhlY3V0ZV9z
Y3JpcHQoV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IsIGxvbmcgY2FsbElkLCBjb25zdCBn
Y2hhciogc2NyaXB0KTsKQEAgLTE1NywyNiArMTU4LDQzIEBAIEpTU3RyaW5nUmVmIFRlc3RSdW5u
ZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVm
IHVyCiAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHRlc3RVUkkuZ2V0
KCkpOwogfQogCitzdGF0aWMgQ1N0cmluZyBzb3VwVVJJVG9TdHJpbmdQcmVzZXJ2aW5nUGFzc3dv
cmQoU291cFVSSSogc291cFVSSSkKK3sKKyAgICBpZiAoIXNvdXBVUkktPnBhc3N3b3JkKSB7Cisg
ICAgICAgIEdPd25QdHI8Y2hhcj4gdXJpU3RyaW5nKHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwVVJJ
LCBGQUxTRSkpOworICAgICAgICByZXR1cm4gdXJpU3RyaW5nLmdldCgpOworICAgIH0KKworICAg
IC8vIHNvdXBfdXJpX3RvX3N0cmluZyBkb2VzIG5vdCBpbnNlcnQgdGhlIHBhc3N3b3JkIGludG8g
dGhlIHN0cmluZywgc28gd2UgbmVlZCB0byBjcmVhdGUgdGhlCisgICAgLy8gVVJJIHN0cmluZyBh
bmQgdGhlbiByZWluc2VydCBhbnkgY3JlZGVudGlhbHMgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhl
IFNvdXBVUkkuIEFsbCB0ZXN0cyB0aGF0CisgICAgLy8gdXNlIFVSTC1lbWJlZGRlZCBjcmVkZW50
aWFscyB1c2UgSFRUUCwgc28gaXQncyBzYWZlIGhlcmUuCisgICAgR093blB0cjxjaGFyPiBwYXNz
d29yZChzb3VwVVJJLT5wYXNzd29yZCk7CisgICAgR093blB0cjxjaGFyPiB1c2VyKHNvdXBVUkkt
PnVzZXIpOworICAgIHNvdXBVUkktPnBhc3N3b3JkID0gMDsKKyAgICBzb3VwVVJJLT51c2VyID0g
MDsKKworICAgIEdPd25QdHI8Y2hhcj4gdXJpU3RyaW5nKHNvdXBfdXJpX3RvX3N0cmluZyhzb3Vw
VVJJLCBGQUxTRSkpOworICAgIFN0cmluZyBhYnNvbHV0ZVVSSVdpdGhvdXRDcmVkZW50aWFsU3Ry
aW5nID0gU3RyaW5nOjpmcm9tVVRGOCh1cmlTdHJpbmcuZ2V0KCkpOworICAgIFN0cmluZyBwcm90
b2NvbEFuZENyZWRlbnRpYWwgPSBTdHJpbmc6OmZvcm1hdCgiaHR0cDovLyVzOiVzQCIsIHVzZXIg
PyB1c2VyLmdldCgpIDogIiIsIHBhc3N3b3JkLmdldCgpKTsKKyAgICByZXR1cm4gYWJzb2x1dGVV
UklXaXRob3V0Q3JlZGVudGlhbFN0cmluZy5yZXBsYWNlKCJodHRwOi8vIiwgcHJvdG9jb2xBbmRD
cmVkZW50aWFsKS51dGY4KCk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6cXVldWVMb2FkKEpTU3Ry
aW5nUmVmIHVybCwgSlNTdHJpbmdSZWYgdGFyZ2V0KQogewotICAgIGdjaGFyKiByZWxhdGl2ZVVS
TCA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKHVybCk7CisgICAgR093blB0cjxnY2hhcj4gcmVs
YXRpdmVVUkwoSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcodXJsKSk7CiAgICAgU291cFVSSSogYmFz
ZVVSSSA9IHNvdXBfdXJpX25ldyh3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkobWFpbkZyYW1lKSk7
Ci0KLSAgICBTb3VwVVJJKiBhYnNvbHV0ZVVSSSA9IHNvdXBfdXJpX25ld193aXRoX2Jhc2UoYmFz
ZVVSSSwgcmVsYXRpdmVVUkwpOworICAgIFNvdXBVUkkqIGFic29sdXRlVVJJID0gc291cF91cmlf
bmV3X3dpdGhfYmFzZShiYXNlVVJJLCByZWxhdGl2ZVVSTC5nZXQoKSk7CiAgICAgc291cF91cmlf
ZnJlZShiYXNlVVJJKTsKLSAgICBnX2ZyZWUocmVsYXRpdmVVUkwpOwotCi0gICAgZ2NoYXIqIGFi
c29sdXRlQ1N0cmluZzsKLSAgICBpZiAoYWJzb2x1dGVVUkkpIHsKLSAgICAgICAgYWJzb2x1dGVD
U3RyaW5nID0gc291cF91cmlfdG9fc3RyaW5nKGFic29sdXRlVVJJLCBGQUxTRSk7Ci0gICAgICAg
IHNvdXBfdXJpX2ZyZWUoYWJzb2x1dGVVUkkpOwotICAgIH0gZWxzZQotICAgICAgICBhYnNvbHV0
ZUNTdHJpbmcgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyh1cmwpOwogCi0gICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IGFic29sdXRlVVJMKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZyhhYnNvbHV0ZUNTdHJpbmcpKTsKLSAgICBnX2ZyZWUoYWJzb2x1dGVDU3RyaW5nKTsK
KyAgICBpZiAoIWFic29sdXRlVVJJKSB7CisgICAgICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnF1
ZXVlKG5ldyBMb2FkSXRlbSh1cmwsIHRhcmdldCkpOworICAgICAgICByZXR1cm47CisgICAgfQog
CisgICAgQ1N0cmluZyBhYnNvbHV0ZVVSSVN0cmluZyA9IHNvdXBVUklUb1N0cmluZ1ByZXNlcnZp
bmdQYXNzd29yZChhYnNvbHV0ZVVSSSk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGFi
c29sdXRlVVJMKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhhYnNvbHV0ZVVS
SVN0cmluZy5kYXRhKCkpKTsKICAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5xdWV1ZShuZXcgTG9h
ZEl0ZW0oYWJzb2x1dGVVUkwuZ2V0KCksIHRhcmdldCkpOworICAgIHNvdXBfdXJpX2ZyZWUoYWJz
b2x1dGVVUkkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldEFjY2VwdHNFZGl0aW5nKGJvb2wg
YWNjZXB0c0VkaXRpbmcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjhiMWYxYjdlNTI3ZmMzYjUxNGY3ZjYzMTAyMDIwMTQx
YWFkN2E3Zi4uMDZiYThhNjk1YjVmNzJhNzZiYjYwNGU0ZTUzYzJiNjUyZDc3OGM0NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgYXV0aGVudGljYXRpb24gc3VwcG9ydCB0
byBEUlQgYW5kIGZpeCBleHBvc2VkIGlzc3VlcyBpbiB0aGUgbGlic291cCBiYWNrZW5kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQyODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbnNraXAgYXV0aGVu
dGljYXRpb24gdGVzdHMgbm93IHRoYXQgYXV0aGVudGljYXRpb24gc3VwcG9ydCBpcyBpbgorICAg
ICAgICB0aGUgaGFybmVzcyBhbmQgaXNzdWVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQgYXJlIGZp
eGVkLiBBbHNvIHJlbW92ZQorICAgICAgICB0d28gZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdGVzdHMg
dGhhdCBub3cgaGF2ZSB0aGUgc2FtZSBvdXRwdXQgYXMKKyAgICAgICAgb3RoZXIgcGxhdGZvcm1z
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy80MDEtYWx0ZXJuYXRpdmUtY29udGVudC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvZmFpbGVkLWF1dGgtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDEyLTEy
LTA0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBo
dHRwL3Rlc3RzL2xvYWRpbmcvYXV0aGVudGljYXRpb24tYWZ0ZXItcmVkaXJlY3Qtc3RvcmVzLXdy
b25nLWNyZWRlbnRpYWxzL3Jlc291cmNlcy93cm9uZy1jcmVkZW50aWFsLTItYXV0aC10aGVuLXJl
ZGlyZWN0LXRvLWZpbmlzaC5waHAgcmV0dXJucyBhIG1hbGZvcm1lZCBhdXRoZW50aWNhdGlvbiBo
ZWFkZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2Mw
MWFkZWE1Y2M0NWFhN2JjMTc3OTY1N2M1NWI1ZDM3MTNiODY2Yy4uYzg2ZThmMTE0NDgwODYxNzc3
ZWY4OWM1MDg4ZDBhOTljZjI5OGQ2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTg3NiwxOCArODc2LDYgQEAgd2Via2l0Lm9yZy9iLzMwNjIwIGZhc3Qv
eHNsL3NvcnQtbG9jYWxlLnhtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvNTM5ODYgc3Zn
L3RleHQvY2FyZXQtaW4tc3ZnLXRleHQueGh0bWwgWyBGYWlsdXJlIF0KIAotIyBObyBhdXRoZW50
aWNhdGlvbiBjaGFsbGVuZ2UgaGFuZGxpbmcKLXdlYmtpdC5vcmcvYi81MTEwNCBodHRwL3Rlc3Rz
L2xvYWRpbmcvYXV0aGVudGljYXRpb24tYWZ0ZXItcmVkaXJlY3Qtc3RvcmVzLXdyb25nLWNyZWRl
bnRpYWxzL2F1dGhlbnRpY2F0aW9uLWFmdGVyLXJlZGlyZWN0LXN0b3Jlcy13cm9uZy1jcmVkZW50
aWFscy5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy9sb2FkaW5n
L2Jhc2ljLWF1dGgtcmVzZW5kLXdyb25nLWNyZWRlbnRpYWxzLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi81MTEwNCBodHRwL3Rlc3RzL2xvYWRpbmcvYmFzaWMtY3JlZGVudGlhbHMtc2Vu
dC1hdXRvbWF0aWNhbGx5Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi81MTEwNCBodHRw
L3Rlc3RzL21pc2MvYXV0aGVudGljYXRpb24tcmVkaXJlY3QtMS9hdXRoZW50aWNhdGlvbi1zZW50
LXRvLXJlZGlyZWN0LWNyb3NzLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
NTExMDQgaHR0cC90ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTIvYXV0aGVudGlj
YXRpb24tc2VudC10by1yZWRpcmVjdC1zYW1lLW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMv
YXV0aGVudGljYXRpb24tc2VudC10by1yZWRpcmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9u
LWNyZWRlbnRpYWxzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi81MTEwNCBodHRwL3Rl
c3RzL3NlY3VyaXR5LzQwMS1sb2dvdXQvNDAxLWxvZ291dC5waHAgWyBTa2lwIF0KLXdlYmtpdC5v
cmcvYi81MTEwNCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGgtbm91c2VyLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi81MTEwNCBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2Jhc2ljLWF1dGgtbm9wYXNzd29yZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
NTExMDQgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZW1lbWJlci1iYWQtcGFzc3dvcmQuaHRt
bCBbIEZhaWx1cmUgXQotCiAjIFRoaXMgcG9ydCBkb2Vzbid0IGhhdmUgYSBnbG9iYWwgaGlzdG9y
eSBkZWxlZ2F0ZSB5ZXQKIEJ1ZyhHVEspIGh0dHAvdGVzdHMvZ2xvYmFsaGlzdG9yeSBbIEZhaWx1
cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy9t
aXNjLzQwMS1hbHRlcm5hdGl2ZS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2MvNDAxLWFsdGVybmF0aXZlLWNvbnRlbnQtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZWYyMmU5YTQzMWFkMDI3Mjcx
M2I3MWZkYzg3OTQwMTZjOGVmMTJmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2MvNDAx
LWFsdGVybmF0aXZlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvZmFpbGVkLWF1dGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZmFpbGVkLWF1dGgtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzI3Yzg0NGQ5ODJmZDIxNGZj
MWFiOTA5MjE4NDA3YWMzOTAyZGVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2ZhaWxlZC1hdXRoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAs
MCBAQAotVGVzdCBmb3IgYnVnIDEzMDc1OiBYTUxIdHRwUmVxdWVzdCB3aXRoIGZhaWxlZCBhdXRo
ZW50aWNhdGlvbiBzaG91bGQgc2V0IHN0YXR1cyB0byA0MDEuCi0KLVN5bmMsIG5vIGNyZWRlbnRp
YWxzOiBPSwotU3luYywgaW5jb3JyZWN0IGNyZWRlbnRpYWxzOiBPSwotQXN5bmMsIG5vIGNyZWRl
bnRpYWxzOiBPSwotQXN5bmMsIGluY29ycmVjdCBjcmVkZW50aWFsczogT0sK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178386</attachid>
            <date>2012-12-08 16:42:04 -0800</date>
            <delta_ts>2012-12-09 02:45:05 -0800</delta_ts>
            <desc>Properly handle authentication restarts in restartedCallback</desc>
            <filename>bug-104285-20121209013926.patch</filename>
            <type>text/plain</type>
            <size>30733</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM4ODQ3NWIyNjhhODNi
Yjc2MGJiZGVhNWU0MDVmYjQzNGI2ZTlhYi4uZDE1OTUzYjhhYzZmMGY2NzY2OGI0ZWMzOTdmY2Zl
M2Y0OGVkNDE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTEyLTA2ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQg
YXV0aGVudGljYXRpb24gc3VwcG9ydCB0byBEUlQgYW5kIGZpeCBleHBvc2VkIGlzc3VlcyBpbiB0
aGUgbGlic291cCBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDQyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggaXNzdWVzIGluIHRoZSBsaWJzb3VwIG5ldHdvcmtpbmcgYmFja2VuZCB0
aGF0IHdlcmUgY2F1c2luZyB0ZXN0CisgICAgICAgIGZhaWx1cmVzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gVGhpcyBwYXRjaCB1bnNraXBzIGF1dGhlbnRpY2F0aW9uIHRlc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc0F1dGhlbnRpY2F0aW9uRmFpbHVyZVN0YXR1c0NvZGUpOiBBZGRlZCB0
aGlzIGhlbHBlciB0byBjYXRjaCBhdXRoZW50aWNhdGlvbiBzdGF0dXMgY29kZXMKKyAgICAgICAg
YW5kIHVzZSBpdCBldmVyeXdoZXJlLgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlBdXRoZW50aWNh
dGlvblRvUmVxdWVzdCk6IFVzZSBhbiBlYXJseSByZXR1cm4gaW5zdGVhZCBvZiBhbiBpZi1zdGF0
ZW1lbnQKKyAgICAgICAgYW5kIGluc3RlYWQgb2YgYWx3YXlzIHVzaW5nIG1hbnVhbGx5IHNwZWNp
ZmllZCBjcmVkZW50aWFscywgYXBwbHkgdGhvc2UgZm91bmQgaW4gdGhlIHNlc3Npb24KKyAgICAg
ICAgc3RvcmFnZSBhcyB3ZWxsLiBJbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBjcmVkZW50aWFscyB0
byBmaXJzdFJlcXVlc3QgYWx3YXlzLCBhY2NlcHQgdGhlIHJlcXVlc3QKKyAgICAgICAgYXMgYSBw
YXJhbWV0ZXIsIHNvIHRoaXMgbWV0aG9kIGNhbiBiZSBwcm9wZXJseSB1c2VkIHdpdGggcmVkaXJl
Y3RzLgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOiBJbnN0ZWFkIG9mIGNy
ZWF0aW5nIHRoZSBLVVJMIGRpcmVjdGx5IGZyb20gc291cF91cmlfdG9fc3RyaW5nCisgICAgICAg
IHVzZSBzb3VwVVJJVG9LVVJMLCB3aGljaCBwcmVzZXJ2ZXMgdGhlIHBhc3N3b3JkIGZyb20gdGhl
IFNvdXBVUkkuIHNvdXBfdXJpX3RvX3N0cmluZyBkb2Vzbid0CisgICAgICAgIGluY2x1ZGUgdGhl
IHBhc3N3b3JkLiBXaGVuIGNhbGxpbmcgYXBwbHlBdXRoZW50aWNhdGlvblRvUmVxdWVzdCB1cGRh
dGUgdGhlIG5ldyByZXF1ZXN0LiBCZWZvcmUKKyAgICAgICAgYXBwbHlBdXRoZW50aWNhdGlvblRv
UmVxdWVzdCBhbHdheXMgdXBkYXRlZCB0aGUgZmlyc3RSZXF1ZXN0LiBEbyBub3QgY2FsbCB3aWxs
U2VuZFJlcXVlc3QgZm9yCisgICAgICAgIGluc3RhbmNlcyB3aGVuIHRoaXMgbWV0aG9kIGlzIGNh
bGxlZCBmb3IgYXV0aGVudGljYXRpb24gaGFuZGxpbmcuIHdpbGxTZW5kUmVxdWVzdCBzaG91bGQg
b25seQorICAgICAgICBiZSBjYWxsZWQgZm9yIHNlcnZlci1zaWRlIHJlZGlyZWN0cy4KKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVNvdXBSZXF1ZXN0QW5kTWVzc2FnZUZvckhhbmRsZSk6IFVzZSBz
b3VwX3JlcXVlc3Rlcl9yZXF1ZXN0X3VyaSBpbnN0ZWFkIG9mCisgICAgICAgIHNvdXBfcmVxdWVz
dGVyX3JlcXVlc3QuIFJlcXVlc3Q6OnNvdXBVUkkgcHJvcGVybHkgY3JlYXRlcyBhIFNvdXBVUkkg
d2l0aCBub24tbnVsbCBlbXB0eSBzdHJpbmdzCisgICAgICAgIHdoZW4gZWl0aGVyIHRoZSB1c2Vy
bmFtZSBhbmQgcGFzc3dvcmQgYXJlIGVtcHR5LiAgQSBudWxsIHVzZXJuYW1lIG9yIHBhc3N3b3Jk
IGRvZXMgbm90IHRyaWdnZXIKKyAgICAgICAgdGhlIFVSSS1lbWJlZGRlZCBjcmVkZW50aWFsIG92
ZXJyaWRlIGluIFNvdXBBdXRoZW50aWNhdGlvbk1hbmFnZXIgd2l0aGluIGxpYnNvdXAuIFRoaXMg
aXMgaW1wb3J0YW50CisgICAgICAgIGJlY2F1c2Ugc29tZXRpbWVzIGVpdGhlciB0aGUgdXNlcm5h
bWUgb3IgcGFzc3dvcmQgbWlnaHQgZW1wdHkgZm9yIGEgcmVxdWVzdCwgYnV0IHRoZSBvdGhlcgor
ICAgICAgICBwYXJ0IG9mIHRoZSBjcmVkZW50aWFsIHNob3VsZCBzdGlsbCBvdmVycmlkZSB0aGUg
cGVyLXNlc3Npb24gY3JlZGVudGlhbCBzdG9yYWdlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KTogV2UgZG9uJ3QgbmVlZCB0byBjbGVhciB0aGUgdXNlcm5hbWUgYW5k
IHBhc3N3b3JkIGZyb20gdGhlCisgICAgICAgIGludGVybmFsIGRhdGEgc3RydWN0dXJlIGFueSBs
b25nZXIuIFRoZXNlIG5lZWQgdG8gYmUgY2xlYXJlZCBpbiB0aGUgQ0ZOZXR3b3JrIGJhY2tlbmQg
YmVjYXVzZQorICAgICAgICBpdCBwcmV2ZW50cyB0aGUgc2FtZSBmYWlsZWQgcGVyLXJlcXVlc3Qg
Y3JlZGVudGlhbHMgZnJvbSBiZWluZyB1c2VkIG92ZXIgYW5kIG92ZXIgYWdhaW4uIEluIG91cgor
ICAgICAgICBjYXNlIHdlIGRvbid0IHVzZSB0aGVzZSBtZW1iZXJzIGR1cmluZyBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIHNvIHRoaXMgaXNuJ3QgYW4gaXNzdWUuCisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKTogRG9uJ3QgbG9vayBhdCB0aGUgcGVyLXJlcXVlc3QKKyAgICAgICAgbV91c2VyL21fcGFz
cyBwYWlyIGhlcmUgYW55IGxvbmdlci4gV2UgdXNlIHRoZXNlIHdoZW4gaW5pdGlhbGx5IGNyZWF0
aW5nIGEgcmVxdWVzdCwgc28gd2UgZG9uJ3QKKyAgICAgICAgd2FudCB0byByZS11c2UgdGhlbSBp
ZiB0aGV5IGZhaWwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVx
dWVzdC5oOgorICAgICAgICAoUmVzb3VyY2VSZXF1ZXN0KTogUmVuYW1lIHVybFN0cmluZ0ZvclNv
dXAgdG8gc291cFVSSS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXF1ZXN0U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnNvdXBV
UkkpOiBJbnN0ZWFkIG9mIHJldHVybmluZyBhIHN0cmluZyBmb3IgdGhlIHNvdXAtYm91bmQgVVJM
CisgICAgICAgIHJldHVybiBhIFNvdXBVUkkgdGhhdCBwcm9wZXJseSBlbWJlZHMgZW1wdHkgdXNl
cm5hbWVzIGFuZCBwYXNzd29yZHMuCisKIDIwMTItMTItMDQgIEVsbGlvdHQgU3ByZWhuICA8ZXNw
cmVobkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgcGFyc2VyKiBtZXRob2RzIGluIENvbnRhaW5l
ck5vZGUgc2hvdWxkIG5vdCBzdXBwb3J0IERvY3VtZW50RnJhZ21lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpp
bmRleCBkYWRjMmI2ZDA2ODA2Y2VmZjVjNTRmZTczZTk5YmRjZDAwNGY5Yjc5Li41YzMyMjA0MmM2
ZDY2ODc0NDZmNWI2ZWY0NmM0YjBmMTk0YTBjOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTItMTItMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdIEFkZCBhdXRoZW50aWNhdGlvbiBzdXBwb3J0IHRvIERSVCBh
bmQgZml4IGV4cG9zZWQgaXNzdWVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDI4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IHRvIER1bXBS
ZW5kZXJUcmVlIGZvciBydW5uaW5nIGF1dGhlbnRpY2F0aW9uIHRlc3RzLiBTaW5jZSB0aGUgRFJU
CisgICAgICAgIGV4cGVjdHMgYW4gYXV0aGVudGljYXRpb24gY2FsbGJhY2ssIHdlIGFkZCBvbmUg
dG8gRFJUU3VwcG9ydCB0byBhdm9pZCAjaWZkZWZzCisgICAgICAgIGluIHBsYXRmb3JtLWluZGVw
ZW5kZW50IGNvZGUgZm9yIEdUSysuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRBdXRoZW50aWNhdGlvbkNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGspOiBBZGQgYSBtZXRob2QgdG8gc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBjYWxs
YmFjay4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IFdoZW4KKyAgICAgICAgaW4gRFJUIG1vZGUgd2UgbmVl
ZCB0byBjYWxsIHRoZSBhdXRoZW50aWNhdGlvbiBjYWxsYmFjayBpbnN0ZWFkIG9mIHBvcHBpbmcK
KyAgICAgICAgdXAgdGhlIGRpYWxvZyBvciBpZ25vcmluZyB0aGUgcmVxdWVzdC4KKwogMjAxMi0x
Mi0wOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gSW1wbGVtZW50IHNvbWUgbWlzc2luZyBGcmFtZUxvYWRlckNsaWVudCBtZXNzYWdlIGlu
IERSVApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCBhNWZmOTBlNTc2MmY3OTFhOGQ3NjcxZmZi
MTk4N2ZkNDE5YjIwMjRiLi5hNzdmYzQ4ZWZmODFhMjIwMTM3OGJiYzk0MTQ5NGNhYTllNzczNjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiU291cFVSSVV0aWxzLmgiCiAjaW5j
bHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250
bC5oPgpAQCAtMjg1LDYgKzI4NiwxMSBAQCBTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6c291cFNlc3Npb24oKQogICAgIHJldHVybiBzZXNzaW9uOwogfQogCitzdGF0aWMgYm9v
bCBpc0F1dGhlbnRpY2F0aW9uRmFpbHVyZVN0YXR1c0NvZGUoaW50IGh0dHBTdGF0dXNDb2RlKQor
eworICAgIHJldHVybiBodHRwU3RhdHVzQ29kZSA9PSBTT1VQX1NUQVRVU19QUk9YWV9BVVRIRU5U
SUNBVElPTl9SRVFVSVJFRCB8fCBodHRwU3RhdHVzQ29kZSA9PSBTT1VQX1NUQVRVU19VTkFVVEhP
UklaRUQ7Cit9CisKIHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2FnZSog
bWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0g
c3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKQEAgLTMwNCw3ICszMTAsNyBAQCBz
dGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2lu
dGVyIGRhdGEpCiAgICAgLy8gc2luY2Ugd2UgYXJlIHdhaXRpbmcgdW50aWwgd2Uga25vdyB0aGF0
IHRoaXMgYXV0aGVudGljYXRpb24gc3VjY2VlZGVkIGJlZm9yZSBhY3R1YWxseSBzdG9yaW5nLgog
ICAgIC8vIFRoaXMgaXMgYmVjYXVzZSB3ZSB3YW50IHRvIGF2b2lkIGhpdHRpbmcgdGhlIGRpc2sg
dHdpY2UgKG9uY2UgdG8gYWRkIGFuZCBvbmNlIHRvIHJlbW92ZSkgZm9yCiAgICAgLy8gaW5jb3Jy
ZWN0IGNyZWRlbnRpYWxzIG9yIHBvbGx1dGluZyB0aGUga2V5Y2hhaW4gd2l0aCBpbnZhbGlkIGNy
ZWRlbnRpYWxzLgotICAgIGlmIChtZXNzYWdlLT5zdGF0dXNfY29kZSAhPSA0MDEgJiYgbWVzc2Fn
ZS0+c3RhdHVzX2NvZGUgPCA1MDAgJiYgIWQtPm1fY3JlZGVudGlhbERhdGFUb1NhdmVJblBlcnNp
c3RlbnRTdG9yZS5jcmVkZW50aWFsLmlzRW1wdHkoKSkgeworICAgIGlmICghaXNBdXRoZW50aWNh
dGlvbkZhaWx1cmVTdGF0dXNDb2RlKG1lc3NhZ2UtPnN0YXR1c19jb2RlKSAmJiBtZXNzYWdlLT5z
dGF0dXNfY29kZSA8IDUwMCAmJiAhZC0+bV9jcmVkZW50aWFsRGF0YVRvU2F2ZUluUGVyc2lzdGVu
dFN0b3JlLmNyZWRlbnRpYWwuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNyZWRlbnRpYWxCYWNraW5n
U3RvcmUoKS5zdG9yZUNyZWRlbnRpYWxzRm9yQ2hhbGxlbmdlKAogICAgICAgICAgICAgZC0+bV9j
cmVkZW50aWFsRGF0YVRvU2F2ZUluUGVyc2lzdGVudFN0b3JlLmNoYWxsZW5nZSwKICAgICAgICAg
ICAgIGQtPm1fY3JlZGVudGlhbERhdGFUb1NhdmVJblBlcnNpc3RlbnRTdG9yZS5jcmVkZW50aWFs
KTsKQEAgLTMxOSwxNCArMzI1LDExIEBAIHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhT
b3VwTWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKICAgICBkLT5tX3Jlc3BvbnNlID0g
cmVzcG9uc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGx5QXV0aGVudGljYXRpb25Ub1JlcXVlc3Qo
UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgYm9vbCByZWRpcmVjdCkKK3N0YXRpYyB2b2lkIGFwcGx5
QXV0aGVudGljYXRpb25Ub1JlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBib29sIHJlZGlyZWN0KQogewogICAgIC8vIG1fdXNlci9tX3Bhc3Mg
YXJlIGNyZWRlbnRpYWxzIGdpdmVuIG1hbnVhbGx5LCBmb3IgaW5zdGFuY2UsIGJ5IHRoZSBhcmd1
bWVudHMgcGFzc2VkIHRvIFhNTEh0dHBSZXF1ZXN0Lm9wZW4oKS4KICAgICBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIFN0cmluZyB1c2VyID0g
ZC0+bV91c2VyOwotICAgIFN0cmluZyBwYXNzd29yZCA9IGQtPm1fcGFzczsKIAotICAgIFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGQtPm1fZmlyc3RSZXF1ZXN0OwogICAgIGlmIChoYW5kbGUt
PnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkpIHsKICAgICAgICAgaWYgKGQtPm1fdXNlci5p
c0VtcHR5KCkgJiYgZC0+bV9wYXNzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGQtPm1faW5pdGlh
bENyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0KHJlcXVlc3QudXJsKCkpOwpAQCAt
MzM5LDIwICszNDIsMjMgQEAgc3RhdGljIHZvaWQgYXBwbHlBdXRoZW50aWNhdGlvblRvUmVxdWVz
dChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBib29sIHJlZGlyZWN0KQogICAgICAgICB9CiAgICAg
fQogCisgICAgU3RyaW5nIHVzZXIgPSBkLT5tX3VzZXI7CisgICAgU3RyaW5nIHBhc3N3b3JkID0g
ZC0+bV9wYXNzOwogICAgIGlmICghZC0+bV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgdXNlciA9IGQtPm1faW5pdGlhbENyZWRlbnRpYWwudXNlcigpOwogICAgICAgICBw
YXNzd29yZCA9IGQtPm1faW5pdGlhbENyZWRlbnRpYWwucGFzc3dvcmQoKTsKICAgICB9CiAKKyAg
ICBpZiAodXNlci5pc0VtcHR5KCkgJiYgcGFzc3dvcmQuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKICAgICAvLyBXZSBhbHdheXMgcHV0IHRoZSBjcmVkZW50aWFscyBpbnRvIHRoZSBVUkwu
IEluIHRoZSBDRk5ldHdvcmstcG9ydCBIVFRQIGZhbWlseSBjcmVkZW50aWFscyBhcmUgYXBwbGll
ZCBpbgogICAgIC8vIHRoZSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2FsbGJh
Y2ssIGJ1dCBsaWJzb3VwIHJlcXVpcmVzIHVzIHRvIHVzZSB0aGlzIG1ldGhvZCB0byBvdmVycmlk
ZQogICAgIC8vIGFueSBwcmV2aW91c2x5IHJlbWVtYmVyZWQgY3JlZGVudGlhbHMuIEl0IGhhcyBp
dHMgb3duIHBlci1zZXNzaW9uIGNyZWRlbnRpYWwgc3RvcmFnZS4KLSAgICBpZiAoIXVzZXIuaXNF
bXB0eSgpIHx8ICFwYXNzd29yZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgS1VSTCB1cmxXaXRoQ3Jl
ZGVudGlhbHMocmVxdWVzdC51cmwoKSk7Ci0gICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRV
c2VyKGQtPm1fdXNlcik7Ci0gICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1f
cGFzcyk7Ci0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7Ci0gICAg
fQorICAgIEtVUkwgdXJsV2l0aENyZWRlbnRpYWxzKHJlcXVlc3QudXJsKCkpOworICAgIHVybFdp
dGhDcmVkZW50aWFscy5zZXRVc2VyKHVzZXIpOworICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQ
YXNzKHBhc3N3b3JkKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwog
fQogCiAvLyBDYWxsZWQgZWFjaCB0aW1lIHRoZSBtZXNzYWdlIGlzIGdvaW5nIHRvIGJlIHNlbnQg
YWdhaW4gZXhjZXB0IHRoZSBmaXJzdCB0aW1lLgpAQCAtMzY2LDEyICszNzIsMjAgQEAgc3RhdGlj
IHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRh
dGEpCiAgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBHT3du
UHRyPGNoYXI+IHVyaShzb3VwX3VyaV90b19zdHJpbmcoc291cF9tZXNzYWdlX2dldF91cmkobWVz
c2FnZSksIGZhbHNlKSk7Ci0gICAgU3RyaW5nIGxvY2F0aW9uID0gU3RyaW5nOjpmcm9tVVRGOCh1
cmkuZ2V0KCkpOwotICAgIEtVUkwgbmV3VVJMID0gS1VSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgp
LnVybCgpLCBsb2NhdGlvbik7CisgICAgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSA9IGQtPm1fcmVzcG9uc2U7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgcmVkaXJlY3RS
ZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUo
KSk7CisgICAgcmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRp
bWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyNlbmRpZgorCisgICAgLy8gV2Vi
Q29yZSBvbmx5IGV4cGVjdHMgdXMgdG8gY2FsbCB3aWxsU2VuZFJlcXVlc3Qgd2hlbiB3ZSBhcmUg
cmVkaXJlY3RpbmcuIHNvdXAKKyAgICAvLyBmaXJlcyB0aGlzIHNpZ25hbCBhbHNvIHdoZW4gaXQn
cyBoYW5kbGluZyBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2VzLCBzbyBpbiB0aGF0CisgICAgLy8g
Y2FzZSB3ZSBzaG91bGQgbm90IHdpbGxTZW5kUmVxdWVzdC4KKyAgICBpZiAoaXNBdXRoZW50aWNh
dGlvbkZhaWx1cmVTdGF0dXNDb2RlKHJlZGlyZWN0UmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSkp
CisgICAgICAgIHJldHVybjsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gaGFuZGxl
LT5maXJzdFJlcXVlc3QoKTsKLSAgICByZXF1ZXN0LnNldFVSTChuZXdVUkwpOworICAgIHJlcXVl
c3Quc2V0VVJMKEtVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSwgc291cFVSSVRvS1VS
TChzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSkpKTsKICAgICByZXF1ZXN0LnNldEhUVFBN
ZXRob2QobWVzc2FnZS0+bWV0aG9kKTsKIAogICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVyZXIg
YWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUgb25l
LgpAQCAtMzg1LDcgKzM5OSw2IEBAIHN0YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNvdXBN
ZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciBkYXRhKQogICAgIGQtPm1fcGFzcyA9IHVybC5wYXNz
KCk7CiAgICAgcmVxdWVzdC5yZW1vdmVDcmVkZW50aWFscygpOwogCi0gICAgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSA9IGQtPm1fcmVzcG9uc2U7CiAgICAgaWYgKCFwcm90b2Nv
bEhvc3RBbmRQb3J0QXJlRXF1YWwocmVxdWVzdC51cmwoKSwgcmVkaXJlY3RSZXNwb25zZS51cmwo
KSkpIHsKICAgICAgICAgLy8gSWYgdGhlIG5ldHdvcmsgbGF5ZXIgY2FycmllcyBvdmVyIGF1dGhl
bnRpY2F0aW9uIGhlYWRlcnMgZnJvbSB0aGUgb3JpZ2luYWwgcmVxdWVzdAogICAgICAgICAvLyBp
biBhIGNyb3NzLW9yaWdpbiByZWRpcmVjdCwgd2Ugd2FudCB0byBjbGVhciB0aG9zZSBoZWFkZXJz
IGhlcmUuIApAQCAtMzk1LDEwICs0MDgsMTAgQEAgc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJh
Y2soU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpCiAgICAgICAgIC8vIFRPRE86
IFdlIGFyZSBsb3NpbmcgYW55IHVzZXJuYW1lIGFuZCBwYXNzd29yZCBzcGVjaWZpZWQgaW4gdGhl
IHJlZGlyZWN0IFVSTCwgYXMgdGhpcyBpcyB0aGUgCiAgICAgICAgIC8vIHNhbWUgYmVoYXZpb3Ig
YXMgdGhlIENGTmV0IHBvcnQuIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSBpZiB0aGlzIGlzIHJlYWxs
eSB3aGF0IHdlIHdhbnQuCiAgICAgfSBlbHNlCi0gICAgICAgIGFwcGx5QXV0aGVudGljYXRpb25U
b1JlcXVlc3QoaGFuZGxlLCB0cnVlKTsKKyAgICAgICAgYXBwbHlBdXRoZW50aWNhdGlvblRvUmVx
dWVzdChoYW5kbGUsIHJlcXVlc3QsIHRydWUpOwogCiAgICAgLy8gUGVyLXJlcXVlc3QgYXV0aGVu
dGljYXRpb24gaXMgaGFuZGxlZCB2aWEgdGhlIFVSSS1lbWJlZGRlZCB1c2VybmFtZS9wYXNzd29y
ZC4KLSAgICBHT3duUHRyPFNvdXBVUkk+IG5ld1NvdXBVUkkoc291cF91cmlfbmV3KHJlcXVlc3Qu
dXJsU3RyaW5nRm9yU291cCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBHT3duUHRyPFNvdXBVUkk+
IG5ld1NvdXBVUkkocmVxdWVzdC5zb3VwVVJJKCkpOwogICAgIHNvdXBfbWVzc2FnZV9zZXRfdXJp
KG1lc3NhZ2UsIG5ld1NvdXBVUkkuZ2V0KCkpOwogCiAgICAgaWYgKGQtPmNsaWVudCgpKQpAQCAt
NDA3LDExICs0MjAsNiBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2Fn
ZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKICAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgIHJlZGlyZWN0UmVzcG9u
c2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOwot
ICAgIHJlZGlyZWN0UmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0jZW5kaWYKLQogICAgIC8vIFVwZGF0ZSB0
aGUgZmlyc3QgcGFydHkgaW4gY2FzZSB0aGUgYmFzZSBVUkwgY2hhbmdlZCB3aXRoIHRoZSByZWRp
cmVjdAogICAgIFN0cmluZyBmaXJzdFBhcnR5U3RyaW5nID0gcmVxdWVzdC5maXJzdFBhcnR5Rm9y
Q29va2llcygpLnN0cmluZygpOwogICAgIGlmICghZmlyc3RQYXJ0eVN0cmluZy5pc0VtcHR5KCkp
IHsKQEAgLTgyNSw3ICs4MzMsOCBAQCBzdGF0aWMgYm9vbCBjcmVhdGVTb3VwUmVxdWVzdEFuZE1l
c3NhZ2VGb3JIYW5kbGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgYm9vbCBpcwogICAgIEdPd25Q
dHI8R0Vycm9yPiBlcnJvcjsKICAgICBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QgPSBoYW5kbGUt
PmZpcnN0UmVxdWVzdCgpOwogCi0gICAgZC0+bV9zb3VwUmVxdWVzdCA9IGFkb3B0R1JlZihzb3Vw
X3JlcXVlc3Rlcl9yZXF1ZXN0KHJlcXVlc3RlciwgcmVxdWVzdC51cmxTdHJpbmdGb3JTb3VwKCku
dXRmOCgpLmRhdGEoKSwgJmVycm9yLm91dFB0cigpKSk7CisgICAgR093blB0cjxTb3VwVVJJPiBz
b3VwVVJJKHJlcXVlc3Quc291cFVSSSgpKTsKKyAgICBkLT5tX3NvdXBSZXF1ZXN0ID0gYWRvcHRH
UmVmKHNvdXBfcmVxdWVzdGVyX3JlcXVlc3RfdXJpKHJlcXVlc3Rlciwgc291cFVSSS5nZXQoKSwg
JmVycm9yLm91dFB0cigpKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIGQtPm1fc291cFJl
cXVlc3QuY2xlYXIoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODYzLDEwICs4NzIsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgYXBwbHlBdXRoZW50aWNhdGlvblRv
UmVxdWVzdCh0aGlzLCBmYWxzZSk7Ci0gICAgLy8gVGhlIENGTmV0IGJhY2tlbmQgY2xlYXJzIHRo
ZXNlLCBzbyB3ZSBkbyBhcyB3ZWxsLgotICAgIGQtPm1fdXNlciA9IFN0cmluZygpOwotICAgIGQt
Pm1fcGFzcyA9IFN0cmluZygpOworICAgIGFwcGx5QXV0aGVudGljYXRpb25Ub1JlcXVlc3QodGhp
cywgZmlyc3RSZXF1ZXN0KCksIGZhbHNlKTsKIAogICAgIGlmICghY3JlYXRlU291cFJlcXVlc3RB
bmRNZXNzYWdlRm9ySGFuZGxlKHRoaXMsIGlzSFRUUEZhbWlseVJlcXVlc3QpKSB7CiAgICAgICAg
IHRoaXMtPnNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7IC8vIEVycm9yIG11c3Qg
bm90IGJlIHJlcG9ydGVkIGltbWVkaWF0ZWx5CkBAIC05NjQsMTcgKzk3MCw4IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsCiB7CiAgICAgQVNTRVJUKGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZS5p
c051bGwoKSk7CiAKLSAgICBib29sIHVzZUNyZWRlbnRpYWxTdG9yYWdlID0gc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoKTsKLSAgICBpZiAoIWQtPm1fdXNlci5pc051bGwoKSAmJiAhZC0+bV9w
YXNzLmlzTnVsbCgpKSB7Ci0gICAgICAgIENyZWRlbnRpYWwgY3JlZGVudGlhbCA9IENyZWRlbnRp
YWwoZC0+bV91c2VyLCBkLT5tX3Bhc3MsIENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24p
OwotICAgICAgICBpZiAodXNlQ3JlZGVudGlhbFN0b3JhZ2UpCi0gICAgICAgICAgICBDcmVkZW50
aWFsU3RvcmFnZTo6c2V0KGNyZWRlbnRpYWwsIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwg
Y2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLnVybCgpKTsKLSAgICAgICAgc291cF9hdXRoX2F1
dGhlbnRpY2F0ZShjaGFsbGVuZ2Uuc291cEF1dGgoKSwgY3JlZGVudGlhbC51c2VyKCkudXRmOCgp
LmRhdGEoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogUGVyIHRoZSBzcGVjaWZpY2F0aW9uLCB0
aGUgdXNlciBzaG91bGRuJ3QgYmUgYXNrZWQgZm9yIGNyZWRlbnRpYWxzIGlmIHRoZXJlIHdlcmUg
aW5jb3JyZWN0IG9uZXMgcHJvdmlkZWQgZXhwbGljaXRseS4KKyAgICBib29sIHVzZUNyZWRlbnRp
YWxTdG9yYWdlID0gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsKICAgICBpZiAodXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UpIHsKICAgICAgICAgaWYgKCFkLT5tX2luaXRpYWxDcmVkZW50aWFsLmlz
RW1wdHkoKSB8fCBjaGFsbGVuZ2UucHJldmlvdXNGYWlsdXJlQ291bnQoKSkgewogICAgICAgICAg
ICAgLy8gVGhlIHN0b3JlZCBjcmVkZW50aWFsIHdhc24ndCBhY2NlcHRlZCwgc3RvcCB1c2luZyBp
dC4gVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbgpAQCAtOTg5LDcgKzk4Niw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsCiAgICAgICAgICAgICAgICAgQVNTRVJUKGNyZWRlbnRpYWwucGVyc2lz
dGVuY2UoKSA9PSBDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKIAogICAgICAgICAgICAgICAg
IC8vIFN0b3JlIHRoZSBjcmVkZW50aWFsIGJhY2ssIHBvc3NpYmx5IGFkZGluZyBpdCBhcyBhIGRl
ZmF1bHQgZm9yIHRoaXMgZGlyZWN0b3J5LgotICAgICAgICAgICAgICAgIGlmIChjaGFsbGVuZ2Uu
ZmFpbHVyZVJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSA9PSA0MDEpCisgICAgICAgICAgICAg
ICAgaWYgKGlzQXV0aGVudGljYXRpb25GYWlsdXJlU3RhdHVzQ29kZShjaGFsbGVuZ2UuZmFpbHVy
ZVJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSkpCiAgICAgICAgICAgICAgICAgICAgIENyZWRl
bnRpYWxTdG9yYWdlOjpzZXQoY3JlZGVudGlhbCwgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgp
LCBjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkudXJsKCkpOwogCiAgICAgICAgICAgICAgICAg
c291cF9hdXRoX2F1dGhlbnRpY2F0ZShjaGFsbGVuZ2Uuc291cEF1dGgoKSwgY3JlZGVudGlhbC51
c2VyKCkudXRmOCgpLmRhdGEoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlUmVxdWVzdC5oCmluZGV4IDhjZTAwZmI3MzQ4OTc2M2ViYjA5NjdmM2I3YmYwZDE3OTQ0ZmU0
YmMuLmQ4ZmUwMTEzMzkxMjQyM2QwZDMxZGYzZmNlZDRmMTljNTU4MDY4NzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0
LmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTb3VwTWVz
c2FnZUZsYWdzIHNvdXBNZXNzYWdlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NvdXBGbGFnczsg
fQogICAgICAgICB2b2lkIHNldFNvdXBNZXNzYWdlRmxhZ3MoU291cE1lc3NhZ2VGbGFncyBzb3Vw
RmxhZ3MpIHsgbV9zb3VwRmxhZ3MgPSBzb3VwRmxhZ3M7IH0KIAotICAgICAgICBTdHJpbmcgdXJs
U3RyaW5nRm9yU291cCgpIGNvbnN0OworICAgICAgICBTb3VwVVJJKiBzb3VwVVJJKCkgY29uc3Q7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0QmFz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZVJlcXVlc3RTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAppbmRleCA2MmQ4Njk2ZWRjYjRhZjYzZjI4NmE0Zjk1
Y2Q2ZmRiNDljZDI5OWEyLi44NmM5MzJhMjZmMzkzZGJkM2RlNmEwYmNhNDE3NGIwYjg1MWNiOGM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXF1ZXN0U291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdW5zaWduZWQg
aW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgcmV0dXJu
IDEwMDAwOwogfQogCi1TdHJpbmcgUmVzb3VyY2VSZXF1ZXN0Ojp1cmxTdHJpbmdGb3JTb3VwKCkg
Y29uc3QKK1NvdXBVUkkqIFJlc291cmNlUmVxdWVzdDo6c291cFVSSSgpIGNvbnN0CiB7CiAgICAg
Ly8gV2ViS2l0IGRvZXMgbm90IHN1cHBvcnQgZnJhZ21lbnQgaWRlbnRpZmllcnMgaW4gZGF0YSBV
UkxzLCBidXQgc291cCBkb2VzLgogICAgIC8vIEJlZm9yZSBwYXNzaW5nIHRoZSBVUkwgdG8gc291
cCwgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0byB1cmxlbmNvZGUgYW55ICcjJwpAQCAtMTMzLDEyICsx
MzMsMjIgQEAgU3RyaW5nIFJlc291cmNlUmVxdWVzdDo6dXJsU3RyaW5nRm9yU291cCgpIGNvbnN0
CiAgICAgaWYgKG1fdXJsLnByb3RvY29sSXNEYXRhKCkpIHsKICAgICAgICAgU3RyaW5nIHVybFN0
cmluZyA9IG1fdXJsLnN0cmluZygpOwogICAgICAgICB1cmxTdHJpbmcucmVwbGFjZSgiIyIsICIl
MjMiKTsKLSAgICAgICAgcmV0dXJuIHVybFN0cmluZzsKKyAgICAgICAgcmV0dXJuIHNvdXBfdXJp
X25ldyh1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogCiAgICAgS1VSTCB1cmwgPSBt
X3VybDsKICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7Ci0gICAgcmV0dXJuIHVy
bC5zdHJpbmcoKTsKKyAgICBTb3VwVVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcodXJsLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworCisgICAgLy8gc291cF91cmlfbmV3IHdpbGwgY29udmVydCBlbXB0
eSB1c2VybmFtZXMgYW5kIHBhc3N3b3JkcyBpbnRvIG51bGwuIFNvbWUgcGFydHMgb2YKKyAgICAv
LyBzb3VwIGxpa2UgdGhlIFNvdXBBdXRoZW50aWNhdGlvbk1hbmFnZXIgd2lsbCBvbmx5IGJlIGFj
dGl2ZSB3aGVuIGJvdGggdGhlIHVzZXJuYW1lCisgICAgLy8gYW5kIHBhc3N3b3JkIGFyZSBub24t
bnVsbC4gV2hlbiB3ZSBoYXZlIGNyZWRlbnRpYWxzLCBlbXB0eSB1c2VybmFtZXMgYW5kIHBhc3N3
b3JkcworICAgIC8vIHNob3VsZCBiZSBlbXB0eSBzdHJpbmdzIGluc3RlYWQgb2YgbnVsbC4KKyAg
ICBpZiAoIXVybC51c2VyKCkuaXNFbXB0eSgpIHx8ICF1cmwucGFzcygpLmlzRW1wdHkoKSkgewor
ICAgICAgICBzb3VwX3VyaV9zZXRfdXNlcih1cmksIHVybC51c2VyKCkudXRmOCgpLmRhdGEoKSk7
CisgICAgICAgIHNvdXBfdXJpX3NldF9wYXNzd29yZCh1cmksIHVybC5wYXNzKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgfQorICAgIHJldHVybiB1cmk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwCmluZGV4IGIwZjI4MGEzMmYxZmYzZTU3ODI2OGQ2MTc0MTg3MDZmYjNjZmMxYWMuLmUy
OGJhM2Y2YjQxZGQ2MDIzYTcxYmJjNGE3YmFiOTE3ZTQ0YjcyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcApAQCAtODUsNiArODUsNyBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c19kcnRSdW4gPSBmYWxzZTsKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2xp
bmtzSW5jbHVkZWRJblRhYkNoYWluID0gdHJ1ZTsKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6RnJhbWVMb2FkRXZlbnRDYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNfZnJhbWVMb2FkRXZlbnRDYWxsYmFjayA9IDA7CitEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OkF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzX2F1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgPSAwOwogCiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0aygpCiB7CkBAIC04NDQsMyArODQ1LDggQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldEZyYW1lTG9hZEV2ZW50Q2FsbGJhY2soRnJh
bWVMb2FkRXZlbnRDYWxsYmFjawogewogICAgIHNfZnJhbWVMb2FkRXZlbnRDYWxsYmFjayA9IGZy
YW1lTG9hZEV2ZW50Q2FsbGJhY2s7CiB9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRBdXRoZW50aWNhdGlvbkNhbGxiYWNrKEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgYXV0aGVu
dGljYXRpb25DYWxsYmFjaykKK3sKKyAgICBzX2F1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgPSBhdXRo
ZW50aWNhdGlvbkNhbGxiYWNrOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCA1YTc0ZDE2
YWU3NThkNWI1MTYwYTkzYTg0NWQ1NzE1NmEwNjVhNjIwLi4zYjI0ZjY1OGZjNDhhNDE3OTJhM2Uz
ZGRjZjA1Y2QwMDRkOWIxMzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtMTQ2LDYgKzE0
NiwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0RnJhbWVMb2FkRXZlbnRDYWxsYmFj
ayhGcmFtZUxvYWRFdmVudENhbGxiYWNrKTsKICAgICBzdGF0aWMgRnJhbWVMb2FkRXZlbnRDYWxs
YmFjayBzX2ZyYW1lTG9hZEV2ZW50Q2FsbGJhY2s7CiAKKyAgICB0eXBlZGVmIGJvb2wgKCpBdXRo
ZW50aWNhdGlvbkNhbGxiYWNrKSAoQ1N0cmluZyYgdXNlcm5hbWUsIENTdHJpbmcmIHBhc3N3b3Jk
KTsKKyAgICBzdGF0aWMgdm9pZCBzZXRBdXRoZW50aWNhdGlvbkNhbGxiYWNrKEF1dGhlbnRpY2F0
aW9uQ2FsbGJhY2spOworICAgIHN0YXRpYyBBdXRoZW50aWNhdGlvbkNhbGxiYWNrIHNfYXV0aGVu
dGljYXRpb25DYWxsYmFjazsKKwogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsK
ICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwCmluZGV4IDJlMTE1ODc3ZjMxZmY5OWZjNmU2NzdkMTNmNDZmMTZiYWE0OWRjOTYuLjc3NDA4
YzJjMDlmN2JiM2NkMTg5NDQ0YmQyZTg3NmJhY2RiZDZjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAK
QEAgLTE5Myw3ICsxOTMsMTQgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnMKIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3Qg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKIHsKICAgICBpZiAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpIHsKLSAgICAgICAg
Y2hhbGxlbmdlLmF1dGhlbnRpY2F0aW9uQ2xpZW50KCktPnJlY2VpdmVkUmVxdWVzdFRvQ29udGlu
dWVXaXRob3V0Q3JlZGVudGlhbChjaGFsbGVuZ2UpOworICAgICAgICBDU3RyaW5nIHVzZXJuYW1l
OworICAgICAgICBDU3RyaW5nIHBhc3N3b3JkOworICAgICAgICBpZiAoIUR1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c19hdXRoZW50aWNhdGlvbkNhbGxiYWNrIHx8ICFEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayh1c2VybmFtZSwgcGFzc3dvcmQpKSB7
CisgICAgICAgICAgICBjaGFsbGVuZ2UuYXV0aGVudGljYXRpb25DbGllbnQoKS0+cmVjZWl2ZWRS
ZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNoYWxsZW5nZSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjaGFsbGVuZ2UuYXV0aGVudGljYXRpb25D
bGllbnQoKS0+cmVjZWl2ZWRDcmVkZW50aWFsKGNoYWxsZW5nZSwgQ3JlZGVudGlhbChTdHJpbmc6
OmZyb21VVEY4KHVzZXJuYW1lLmRhdGEoKSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQuZGF0
YSgpKSwgQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbikpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMGEzNDU0MTFiZjQwY2QzZTc5Yjg1NjEyYTBmODdiZmI2MGE4NWU4MS4uZTU1OTQwNmJj
YWVkYzkxZmUyYTQ4OGFkYzQ1OGNhOTczZmExYWQwZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEyLTA2ICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBB
ZGQgYXV0aGVudGljYXRpb24gc3VwcG9ydCB0byBEUlQgYW5kIGZpeCBleHBvc2VkIGlzc3VlcyBp
biB0aGUgbGlic291cCBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDQyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgc3VwcG9ydCB0byBEdW1wUmVuZGVyVHJlZSBmb3IgcnVubmluZyBh
dXRoZW50aWNhdGlvbiB0ZXN0cy4gU2luY2UgdGhlIERSVAorICAgICAgICBleHBlY3RzIGFuIGF1
dGhlbnRpY2F0aW9uIGNhbGxiYWNrLCB3ZSBhZGQgb25lIHRvIERSVFN1cHBvcnQgdG8gYXZvaWQg
I2lmZGVmcworICAgICAgICBpbiBwbGF0Zm9ybS1pbmRlcGVuZGVudCBjb2RlIGZvciBHVEsrLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAg
ICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOiBSZXNldCB0aGUgYXV0aGVudGlj
YXRpb24gcGFzc3dvcmQgYW5kIHVzZXJuYW1lLgorICAgICAgICAoYXV0aGVudGljYXRpb25DYWxs
YmFjayk6IEFkZGVkLgorICAgICAgICAoY3JlYXRlV2ViVmlldyk6IEF0dGFjaCB0aGUgYXV0aGVu
dGlhdGlvbiBjYWxsYmFjayBkdXJpbmcgc3RhcnR1cC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6CisgICAgICAgIChzb3VwVVJJVG9LVVJMKTogc291cF91
cmlfdG9fc3RyaW5nIGRvZXMgbm90IHByZXNlcnZlIHBhc3N3b3JkcyBlbWJlZGRlZAorICAgICAg
ICBpbiB0aGUgVVJMIHNvIHdlIGFkZCBhIHNvbWV3aGF0IG1lc3N5IG1ldGhvZCBvZiByZS1hZGRp
bmcgdGhlbSB3aGVuIHRoZXkgZXhpc3QuCisgICAgICAgIEl0IHdvdWxkIGJlIG5pY2UgdG8gdXNl
IHNvdXBVUklUb0tVUkwgaGVyZSwgYnV0IGl0IHNlZW1zIHdlIGNhbm5vdCB1c2UgS1VSTCB3aXRo
b3V0CisgICAgICAgIHB1bGxpbmcgaW4gbG90cyBvZiBXZWJDb3JlIGNvZGUgc28gd2UgdXNlIHN0
cmluZyBzZWFyY2ggYW5kIHJlcGxhY2UuCisgICAgICAgIChUZXN0UnVubmVyOjpxdWV1ZUxvYWQp
OiBVc2UgdGhlIG5ldyBoZWxwZXIuCisKIDIwMTItMTItMDggIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBzb21lIG1pc3Np
bmcgRnJhbWVMb2FkZXJDbGllbnQgbWVzc2FnZSBpbiBEUlQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDQyMDBhMzU3NjhjZDMyZWFjNzk3MjEwYzFj
MGNmYWFkZDk5ZDA5OTYuLmEyZTg3ZjgxMGNmMWI3ZGE0Mjc4YjZlYzAyNTI3OTA4Yjk0NTk0OTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTIx
LDYgKzUyMSwxMiBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVz
KCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldEV4cGVyaW1lbnRhbENvbnRlbnRT
ZWN1cml0eVBvbGljeUZlYXR1cmVzRW5hYmxlZCh0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldFNoYWRvd0RPTUVuYWJsZWQodHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpzZXRTdHlsZVNjb3BlZEVuYWJsZWQodHJ1ZSk7CisKKyAgICBpZiAoZ1Rlc3RS
dW5uZXIpIHsKKyAgICAgICAgZ1Rlc3RSdW5uZXItPnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQo
IiIpOworICAgICAgICBnVGVzdFJ1bm5lci0+c2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgiIik7
CisgICAgICAgIGdUZXN0UnVubmVyLT5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2Vz
KGZhbHNlKTsKKyAgICB9CiB9CiAKIHN0YXRpYyBib29sIHVzZUxvbmdSdW5uaW5nU2VydmVyTW9k
ZShpbnQgYXJnYywgY2hhciAqYXJndltdKQpAQCAtMTM2Niw2ICsxMzcyLDE5IEBAIHN0YXRpYyB2
b2lkIGZyYW1lTG9hZEV2ZW50Q2FsbGJhY2soV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCBhdXRoZW50aWNhdGlvbkNh
bGxiYWNrKENTdHJpbmcmIHVzZXJuYW1lLCBDU3RyaW5nJiBwYXNzd29yZCkKK3sKKyAgICBpZiAo
IWdUZXN0UnVubmVyLT5oYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKCkpIHsKKyAgICAg
ICAgcHJpbnRmKCI8dW5rbm93bj4gLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
LSBTaW11bGF0aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNhdGlvbiBzaGVldFxuIik7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICB1c2VybmFtZSA9IGdUZXN0UnVubmVyLT5hdXRo
ZW50aWNhdGlvblVzZXJuYW1lKCkuY19zdHIoKTsKKyAgICBwYXNzd29yZCA9IGdUZXN0UnVubmVy
LT5hdXRoZW50aWNhdGlvblBhc3N3b3JkKCkuY19zdHIoKTsKKyAgICBwcmludGYoIjx1bmtub3du
PiAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFJlc3BvbmRpbmcgd2l0aCAl
czolc1xuIiwgdXNlcm5hbWUuZGF0YSgpLCBwYXNzd29yZC5kYXRhKCkpOworICAgIHJldHVybiB0
cnVlOworfQorCiBzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmlldygpCiB7CiAgICAg
Ly8gSXQgaXMgaW1wb3J0YW50IHRvIGRlY2xhcmUgRFJUIGlzIHJ1bm5pbmcgZWFybHkgc28gd2hl
biBjcmVhdGluZwpAQCAtMTM3Myw2ICsxMzkyLDcgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNy
ZWF0ZVdlYlZpZXcoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RHVtcFJlbmRl
clRyZWVNb2RlRW5hYmxlZCh0cnVlKTsKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0RnJhbWVMb2FkRXZlbnRDYWxsYmFjayhmcmFtZUxvYWRFdmVudENhbGxiYWNrKTsKKyAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2soYXV0aGVu
dGljYXRpb25DYWxsYmFjayk7CiAKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gV0VCS0lUX1dF
Ql9WSUVXKHNlbGZfc2Nyb2xsaW5nX3dlYmtpdF93ZWJfdmlld19uZXcoKSk7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCBlODg3Y2ExYzRhMTVlYmYx
ODEwNzdkNjQ0ZjExZmQ4MzI4MDlkMzBmLi43YWZjNDY3Nzk3YzcwZDZiYjg5MGI2ZDQwNWZlMmQ0
ZjA3NGQ1ODk3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5l
ckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3Bw
CkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAjaW5jbHVkZSA8
d2Via2l0L3dlYmtpdC5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogZXh0ZXJuICJDIiB7CiB2b2lkIHdlYmtpdF93
ZWJfaW5zcGVjdG9yX2V4ZWN1dGVfc2NyaXB0KFdlYktpdFdlYkluc3BlY3RvciogaW5zcGVjdG9y
LCBsb25nIGNhbGxJZCwgY29uc3QgZ2NoYXIqIHNjcmlwdCk7CkBAIC0xNTcsMjYgKzE1OCw0MyBA
QCBKU1N0cmluZ1JlZiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU1N0cmluZ1JlZiB1cgogICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZyh0ZXN0VVJJLmdldCgpKTsKIH0KIAorc3RhdGljIENTdHJpbmcgc291cFVSSVRv
U3RyaW5nUHJlc2VydmluZ1Bhc3N3b3JkKFNvdXBVUkkqIHNvdXBVUkkpCit7CisgICAgaWYgKCFz
b3VwVVJJLT5wYXNzd29yZCkgeworICAgICAgICBHT3duUHRyPGNoYXI+IHVyaVN0cmluZyhzb3Vw
X3VyaV90b19zdHJpbmcoc291cFVSSSwgRkFMU0UpKTsKKyAgICAgICAgcmV0dXJuIHVyaVN0cmlu
Zy5nZXQoKTsKKyAgICB9CisKKyAgICAvLyBzb3VwX3VyaV90b19zdHJpbmcgZG9lcyBub3QgaW5z
ZXJ0IHRoZSBwYXNzd29yZCBpbnRvIHRoZSBzdHJpbmcsIHNvIHdlIG5lZWQgdG8gY3JlYXRlIHRo
ZQorICAgIC8vIFVSSSBzdHJpbmcgYW5kIHRoZW4gcmVpbnNlcnQgYW55IGNyZWRlbnRpYWxzIHRo
YXQgd2VyZSBwcmVzZW50IGluIHRoZSBTb3VwVVJJLiBBbGwgdGVzdHMgdGhhdAorICAgIC8vIHVz
ZSBVUkwtZW1iZWRkZWQgY3JlZGVudGlhbHMgdXNlIEhUVFAsIHNvIGl0J3Mgc2FmZSBoZXJlLgor
ICAgIEdPd25QdHI8Y2hhcj4gcGFzc3dvcmQoc291cFVSSS0+cGFzc3dvcmQpOworICAgIEdPd25Q
dHI8Y2hhcj4gdXNlcihzb3VwVVJJLT51c2VyKTsKKyAgICBzb3VwVVJJLT5wYXNzd29yZCA9IDA7
CisgICAgc291cFVSSS0+dXNlciA9IDA7CisKKyAgICBHT3duUHRyPGNoYXI+IHVyaVN0cmluZyhz
b3VwX3VyaV90b19zdHJpbmcoc291cFVSSSwgRkFMU0UpKTsKKyAgICBTdHJpbmcgYWJzb2x1dGVV
UklXaXRob3V0Q3JlZGVudGlhbFN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgodXJpU3RyaW5nLmdl
dCgpKTsKKyAgICBTdHJpbmcgcHJvdG9jb2xBbmRDcmVkZW50aWFsID0gU3RyaW5nOjpmb3JtYXQo
Imh0dHA6Ly8lczolc0AiLCB1c2VyID8gdXNlci5nZXQoKSA6ICIiLCBwYXNzd29yZC5nZXQoKSk7
CisgICAgcmV0dXJuIGFic29sdXRlVVJJV2l0aG91dENyZWRlbnRpYWxTdHJpbmcucmVwbGFjZSgi
aHR0cDovLyIsIHByb3RvY29sQW5kQ3JlZGVudGlhbCkudXRmOCgpOworfQorCiB2b2lkIFRlc3RS
dW5uZXI6OnF1ZXVlTG9hZChKU1N0cmluZ1JlZiB1cmwsIEpTU3RyaW5nUmVmIHRhcmdldCkKIHsK
LSAgICBnY2hhciogcmVsYXRpdmVVUkwgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyh1cmwpOwor
ICAgIEdPd25QdHI8Z2NoYXI+IHJlbGF0aXZlVVJMKEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKHVy
bCkpOwogICAgIFNvdXBVUkkqIGJhc2VVUkkgPSBzb3VwX3VyaV9uZXcod2Via2l0X3dlYl9mcmFt
ZV9nZXRfdXJpKG1haW5GcmFtZSkpOwotCi0gICAgU291cFVSSSogYWJzb2x1dGVVUkkgPSBzb3Vw
X3VyaV9uZXdfd2l0aF9iYXNlKGJhc2VVUkksIHJlbGF0aXZlVVJMKTsKKyAgICBTb3VwVVJJKiBh
YnNvbHV0ZVVSSSA9IHNvdXBfdXJpX25ld193aXRoX2Jhc2UoYmFzZVVSSSwgcmVsYXRpdmVVUkwu
Z2V0KCkpOwogICAgIHNvdXBfdXJpX2ZyZWUoYmFzZVVSSSk7Ci0gICAgZ19mcmVlKHJlbGF0aXZl
VVJMKTsKLQotICAgIGdjaGFyKiBhYnNvbHV0ZUNTdHJpbmc7Ci0gICAgaWYgKGFic29sdXRlVVJJ
KSB7Ci0gICAgICAgIGFic29sdXRlQ1N0cmluZyA9IHNvdXBfdXJpX3RvX3N0cmluZyhhYnNvbHV0
ZVVSSSwgRkFMU0UpOwotICAgICAgICBzb3VwX3VyaV9mcmVlKGFic29sdXRlVVJJKTsKLSAgICB9
IGVsc2UKLSAgICAgICAgYWJzb2x1dGVDU3RyaW5nID0gSlNTdHJpbmdDb3B5VVRGOENTdHJpbmco
dXJsKTsKIAotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBhYnNvbHV0ZVVSTChBZG9wdCwg
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoYWJzb2x1dGVDU3RyaW5nKSk7Ci0gICAgZ19m
cmVlKGFic29sdXRlQ1N0cmluZyk7CisgICAgaWYgKCFhYnNvbHV0ZVVSSSkgeworICAgICAgICBX
b3JrUXVldWU6OnNoYXJlZCgpLT5xdWV1ZShuZXcgTG9hZEl0ZW0odXJsLCB0YXJnZXQpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KIAorICAgIENTdHJpbmcgYWJzb2x1dGVVUklTdHJpbmcgPSBz
b3VwVVJJVG9TdHJpbmdQcmVzZXJ2aW5nUGFzc3dvcmQoYWJzb2x1dGVVUkkpOworICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBhYnNvbHV0ZVVSTChBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoYWJzb2x1dGVVUklTdHJpbmcuZGF0YSgpKSk7CiAgICAgV29ya1F1ZXVlOjpz
aGFyZWQoKS0+cXVldWUobmV3IExvYWRJdGVtKGFic29sdXRlVVJMLmdldCgpLCB0YXJnZXQpKTsK
KyAgICBzb3VwX3VyaV9mcmVlKGFic29sdXRlVVJJKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpz
ZXRBY2NlcHRzRWRpdGluZyhib29sIGFjY2VwdHNFZGl0aW5nKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4YjFmMWI3ZTUy
N2ZjM2I1MTRmN2Y2MzEwMjAyMDE0MWFhZDdhN2YuLjA2YmE4YTY5NWI1ZjcyYTc2YmI2MDRlNGU1
M2MyYjY1MmQ3NzhjNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0xMi0wNiAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIGF1
dGhlbnRpY2F0aW9uIHN1cHBvcnQgdG8gRFJUIGFuZCBmaXggZXhwb3NlZCBpc3N1ZXMgaW4gdGhl
IGxpYnNvdXAgYmFja2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0Mjg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVW5za2lwIGF1dGhlbnRpY2F0aW9uIHRlc3RzIG5vdyB0aGF0IGF1dGhlbnRpY2F0
aW9uIHN1cHBvcnQgaXMgaW4KKyAgICAgICAgdGhlIGhhcm5lc3MgYW5kIGlzc3VlcyBpbiB0aGUg
bGlic291cCBiYWNrZW5kIGFyZSBmaXhlZC4gQWxzbyByZW1vdmUKKyAgICAgICAgdHdvIGV4cGVj
dGVkIHJlc3VsdHMgZm9yIHRlc3RzIHRoYXQgbm93IGhhdmUgdGhlIHNhbWUgb3V0cHV0IGFzCisg
ICAgICAgIG90aGVyIHBsYXRmb3Jtcy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2MvNDAxLWFs
dGVybmF0aXZlLWNvbnRlbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2ZhaWxlZC1hdXRoLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKwogMjAxMi0xMi0wNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGln
YWxpYS5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0cy9sb2FkaW5nL2F1dGhlbnRpY2F0aW9uLWFm
dGVyLXJlZGlyZWN0LXN0b3Jlcy13cm9uZy1jcmVkZW50aWFscy9yZXNvdXJjZXMvd3JvbmctY3Jl
ZGVudGlhbC0yLWF1dGgtdGhlbi1yZWRpcmVjdC10by1maW5pc2gucGhwIHJldHVybnMgYSBtYWxm
b3JtZWQgYXV0aGVudGljYXRpb24gaGVhZGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDNjMDFhZGVhNWNjNDVhYTdiYzE3Nzk2NTdjNTViNWQzNzEzYjg2
NmMuLmM4NmU4ZjExNDQ4MDg2MTc3N2VmODljNTA4OGQwYTk5Y2YyOThkNjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC04NzYsMTggKzg3Niw2IEBAIHdl
YmtpdC5vcmcvYi8zMDYyMCBmYXN0L3hzbC9zb3J0LWxvY2FsZS54bWwgWyBGYWlsdXJlIF0KIAog
d2Via2l0Lm9yZy9iLzUzOTg2IHN2Zy90ZXh0L2NhcmV0LWluLXN2Zy10ZXh0LnhodG1sIFsgRmFp
bHVyZSBdCiAKLSMgTm8gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIGhhbmRsaW5nCi13ZWJraXQu
b3JnL2IvNTExMDQgaHR0cC90ZXN0cy9sb2FkaW5nL2F1dGhlbnRpY2F0aW9uLWFmdGVyLXJlZGly
ZWN0LXN0b3Jlcy13cm9uZy1jcmVkZW50aWFscy9hdXRoZW50aWNhdGlvbi1hZnRlci1yZWRpcmVj
dC1zdG9yZXMtd3JvbmctY3JlZGVudGlhbHMuaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzUx
MTA0IGh0dHAvdGVzdHMvbG9hZGluZy9iYXNpYy1hdXRoLXJlc2VuZC13cm9uZy1jcmVkZW50aWFs
cy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy9sb2FkaW5n
L2Jhc2ljLWNyZWRlbnRpYWxzLXNlbnQtYXV0b21hdGljYWxseS5odG1sIFsgRmFpbHVyZSBdCi13
ZWJraXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy9taXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0
LTEvYXV0aGVudGljYXRpb24tc2VudC10by1yZWRpcmVjdC1jcm9zcy1vcmlnaW4uaHRtbCBbIEZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzUxMTA0IGh0dHAvdGVzdHMvbWlzYy9hdXRoZW50aWNhdGlv
bi1yZWRpcmVjdC0yL2F1dGhlbnRpY2F0aW9uLXNlbnQtdG8tcmVkaXJlY3Qtc2FtZS1vcmlnaW4u
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzUxMTA0IGh0dHAvdGVzdHMvbWlzYy9hdXRo
ZW50aWNhdGlvbi1yZWRpcmVjdC0zL2F1dGhlbnRpY2F0aW9uLXNlbnQtdG8tcmVkaXJlY3Qtc2Ft
ZS1vcmlnaW4td2l0aC1sb2NhdGlvbi1jcmVkZW50aWFscy5odG1sIFsgRmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy9zZWN1cml0eS80MDEtbG9nb3V0LzQwMS1sb2dvdXQu
cGhwIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9iYXNpYy1hdXRoLW5vdXNlci5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvNTExMDQg
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRoLW5vcGFzc3dvcmQuaHRtbCBbIEZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzUxMTA0IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVt
ZW1iZXItYmFkLXBhc3N3b3JkLmh0bWwgWyBGYWlsdXJlIF0KLQogIyBUaGlzIHBvcnQgZG9lc24n
dCBoYXZlIGEgZ2xvYmFsIGhpc3RvcnkgZGVsZWdhdGUgeWV0CiBCdWcoR1RLKSBodHRwL3Rlc3Rz
L2dsb2JhbGhpc3RvcnkgWyBGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlzYy80MDEtYWx0ZXJuYXRpdmUtY29udGVudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRl
cm5hdGl2ZS1jb250ZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2VmMjJlOWE0MzFhZDAyNzI3MTNiNzFmZGM4Nzk0MDE2YzhlZjEyZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRlcm5hdGl2ZS1jb250ZW50LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2ZhaWxlZC1hdXRoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2ZhaWxlZC1hdXRoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggY2MyN2M4NDRkOTgyZmQyMTRmYzFhYjkwOTIxODQwN2FjMzkwMmRlYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9mYWlsZWQtYXV0aC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLVRlc3QgZm9yIGJ1ZyAxMzA3NTogWE1MSHR0cFJl
cXVlc3Qgd2l0aCBmYWlsZWQgYXV0aGVudGljYXRpb24gc2hvdWxkIHNldCBzdGF0dXMgdG8gNDAx
LgotCi1TeW5jLCBubyBjcmVkZW50aWFsczogT0sKLVN5bmMsIGluY29ycmVjdCBjcmVkZW50aWFs
czogT0sKLUFzeW5jLCBubyBjcmVkZW50aWFsczogT0sKLUFzeW5jLCBpbmNvcnJlY3QgY3JlZGVu
dGlhbHM6IE9LCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178401</attachid>
            <date>2012-12-09 02:45:09 -0800</date>
            <delta_ts>2012-12-11 02:11:51 -0800</delta_ts>
            <desc>New patch with better comment explaining the null password issue</desc>
            <filename>bug-104285-20121209114231.patch</filename>
            <type>text/plain</type>
            <size>30798</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM4ODQ3NWIyNjhhODNi
Yjc2MGJiZGVhNWU0MDVmYjQzNGI2ZTlhYi4uZDE1OTUzYjhhYzZmMGY2NzY2OGI0ZWMzOTdmY2Zl
M2Y0OGVkNDE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTEyLTA2ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQg
YXV0aGVudGljYXRpb24gc3VwcG9ydCB0byBEUlQgYW5kIGZpeCBleHBvc2VkIGlzc3VlcyBpbiB0
aGUgbGlic291cCBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDQyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggaXNzdWVzIGluIHRoZSBsaWJzb3VwIG5ldHdvcmtpbmcgYmFja2VuZCB0
aGF0IHdlcmUgY2F1c2luZyB0ZXN0CisgICAgICAgIGZhaWx1cmVzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gVGhpcyBwYXRjaCB1bnNraXBzIGF1dGhlbnRpY2F0aW9uIHRlc3RzLgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc0F1dGhlbnRpY2F0aW9uRmFpbHVyZVN0YXR1c0NvZGUpOiBBZGRlZCB0
aGlzIGhlbHBlciB0byBjYXRjaCBhdXRoZW50aWNhdGlvbiBzdGF0dXMgY29kZXMKKyAgICAgICAg
YW5kIHVzZSBpdCBldmVyeXdoZXJlLgorICAgICAgICAoV2ViQ29yZTo6YXBwbHlBdXRoZW50aWNh
dGlvblRvUmVxdWVzdCk6IFVzZSBhbiBlYXJseSByZXR1cm4gaW5zdGVhZCBvZiBhbiBpZi1zdGF0
ZW1lbnQKKyAgICAgICAgYW5kIGluc3RlYWQgb2YgYWx3YXlzIHVzaW5nIG1hbnVhbGx5IHNwZWNp
ZmllZCBjcmVkZW50aWFscywgYXBwbHkgdGhvc2UgZm91bmQgaW4gdGhlIHNlc3Npb24KKyAgICAg
ICAgc3RvcmFnZSBhcyB3ZWxsLiBJbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBjcmVkZW50aWFscyB0
byBmaXJzdFJlcXVlc3QgYWx3YXlzLCBhY2NlcHQgdGhlIHJlcXVlc3QKKyAgICAgICAgYXMgYSBw
YXJhbWV0ZXIsIHNvIHRoaXMgbWV0aG9kIGNhbiBiZSBwcm9wZXJseSB1c2VkIHdpdGggcmVkaXJl
Y3RzLgorICAgICAgICAoV2ViQ29yZTo6cmVzdGFydGVkQ2FsbGJhY2spOiBJbnN0ZWFkIG9mIGNy
ZWF0aW5nIHRoZSBLVVJMIGRpcmVjdGx5IGZyb20gc291cF91cmlfdG9fc3RyaW5nCisgICAgICAg
IHVzZSBzb3VwVVJJVG9LVVJMLCB3aGljaCBwcmVzZXJ2ZXMgdGhlIHBhc3N3b3JkIGZyb20gdGhl
IFNvdXBVUkkuIHNvdXBfdXJpX3RvX3N0cmluZyBkb2Vzbid0CisgICAgICAgIGluY2x1ZGUgdGhl
IHBhc3N3b3JkLiBXaGVuIGNhbGxpbmcgYXBwbHlBdXRoZW50aWNhdGlvblRvUmVxdWVzdCB1cGRh
dGUgdGhlIG5ldyByZXF1ZXN0LiBCZWZvcmUKKyAgICAgICAgYXBwbHlBdXRoZW50aWNhdGlvblRv
UmVxdWVzdCBhbHdheXMgdXBkYXRlZCB0aGUgZmlyc3RSZXF1ZXN0LiBEbyBub3QgY2FsbCB3aWxs
U2VuZFJlcXVlc3QgZm9yCisgICAgICAgIGluc3RhbmNlcyB3aGVuIHRoaXMgbWV0aG9kIGlzIGNh
bGxlZCBmb3IgYXV0aGVudGljYXRpb24gaGFuZGxpbmcuIHdpbGxTZW5kUmVxdWVzdCBzaG91bGQg
b25seQorICAgICAgICBiZSBjYWxsZWQgZm9yIHNlcnZlci1zaWRlIHJlZGlyZWN0cy4KKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVNvdXBSZXF1ZXN0QW5kTWVzc2FnZUZvckhhbmRsZSk6IFVzZSBz
b3VwX3JlcXVlc3Rlcl9yZXF1ZXN0X3VyaSBpbnN0ZWFkIG9mCisgICAgICAgIHNvdXBfcmVxdWVz
dGVyX3JlcXVlc3QuIFJlcXVlc3Q6OnNvdXBVUkkgcHJvcGVybHkgY3JlYXRlcyBhIFNvdXBVUkkg
d2l0aCBub24tbnVsbCBlbXB0eSBzdHJpbmdzCisgICAgICAgIHdoZW4gZWl0aGVyIHRoZSB1c2Vy
bmFtZSBhbmQgcGFzc3dvcmQgYXJlIGVtcHR5LiAgQSBudWxsIHVzZXJuYW1lIG9yIHBhc3N3b3Jk
IGRvZXMgbm90IHRyaWdnZXIKKyAgICAgICAgdGhlIFVSSS1lbWJlZGRlZCBjcmVkZW50aWFsIG92
ZXJyaWRlIGluIFNvdXBBdXRoZW50aWNhdGlvbk1hbmFnZXIgd2l0aGluIGxpYnNvdXAuIFRoaXMg
aXMgaW1wb3J0YW50CisgICAgICAgIGJlY2F1c2Ugc29tZXRpbWVzIGVpdGhlciB0aGUgdXNlcm5h
bWUgb3IgcGFzc3dvcmQgbWlnaHQgZW1wdHkgZm9yIGEgcmVxdWVzdCwgYnV0IHRoZSBvdGhlcgor
ICAgICAgICBwYXJ0IG9mIHRoZSBjcmVkZW50aWFsIHNob3VsZCBzdGlsbCBvdmVycmlkZSB0aGUg
cGVyLXNlc3Npb24gY3JlZGVudGlhbCBzdG9yYWdlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KTogV2UgZG9uJ3QgbmVlZCB0byBjbGVhciB0aGUgdXNlcm5hbWUgYW5k
IHBhc3N3b3JkIGZyb20gdGhlCisgICAgICAgIGludGVybmFsIGRhdGEgc3RydWN0dXJlIGFueSBs
b25nZXIuIFRoZXNlIG5lZWQgdG8gYmUgY2xlYXJlZCBpbiB0aGUgQ0ZOZXR3b3JrIGJhY2tlbmQg
YmVjYXVzZQorICAgICAgICBpdCBwcmV2ZW50cyB0aGUgc2FtZSBmYWlsZWQgcGVyLXJlcXVlc3Qg
Y3JlZGVudGlhbHMgZnJvbSBiZWluZyB1c2VkIG92ZXIgYW5kIG92ZXIgYWdhaW4uIEluIG91cgor
ICAgICAgICBjYXNlIHdlIGRvbid0IHVzZSB0aGVzZSBtZW1iZXJzIGR1cmluZyBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIHNvIHRoaXMgaXNuJ3QgYW4gaXNzdWUuCisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKTogRG9uJ3QgbG9vayBhdCB0aGUgcGVyLXJlcXVlc3QKKyAgICAgICAgbV91c2VyL21fcGFz
cyBwYWlyIGhlcmUgYW55IGxvbmdlci4gV2UgdXNlIHRoZXNlIHdoZW4gaW5pdGlhbGx5IGNyZWF0
aW5nIGEgcmVxdWVzdCwgc28gd2UgZG9uJ3QKKyAgICAgICAgd2FudCB0byByZS11c2UgdGhlbSBp
ZiB0aGV5IGZhaWwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVx
dWVzdC5oOgorICAgICAgICAoUmVzb3VyY2VSZXF1ZXN0KTogUmVuYW1lIHVybFN0cmluZ0ZvclNv
dXAgdG8gc291cFVSSS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXF1ZXN0U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnNvdXBV
UkkpOiBJbnN0ZWFkIG9mIHJldHVybmluZyBhIHN0cmluZyBmb3IgdGhlIHNvdXAtYm91bmQgVVJM
CisgICAgICAgIHJldHVybiBhIFNvdXBVUkkgdGhhdCBwcm9wZXJseSBlbWJlZHMgZW1wdHkgdXNl
cm5hbWVzIGFuZCBwYXNzd29yZHMuCisKIDIwMTItMTItMDQgIEVsbGlvdHQgU3ByZWhuICA8ZXNw
cmVobkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgcGFyc2VyKiBtZXRob2RzIGluIENvbnRhaW5l
ck5vZGUgc2hvdWxkIG5vdCBzdXBwb3J0IERvY3VtZW50RnJhZ21lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpp
bmRleCBkYWRjMmI2ZDA2ODA2Y2VmZjVjNTRmZTczZTk5YmRjZDAwNGY5Yjc5Li41YzMyMjA0MmM2
ZDY2ODc0NDZmNWI2ZWY0NmM0YjBmMTk0YTBjOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTItMTItMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdIEFkZCBhdXRoZW50aWNhdGlvbiBzdXBwb3J0IHRvIERSVCBh
bmQgZml4IGV4cG9zZWQgaXNzdWVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDI4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IHRvIER1bXBS
ZW5kZXJUcmVlIGZvciBydW5uaW5nIGF1dGhlbnRpY2F0aW9uIHRlc3RzLiBTaW5jZSB0aGUgRFJU
CisgICAgICAgIGV4cGVjdHMgYW4gYXV0aGVudGljYXRpb24gY2FsbGJhY2ssIHdlIGFkZCBvbmUg
dG8gRFJUU3VwcG9ydCB0byBhdm9pZCAjaWZkZWZzCisgICAgICAgIGluIHBsYXRmb3JtLWluZGVw
ZW5kZW50IGNvZGUgZm9yIEdUSysuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRBdXRoZW50aWNhdGlvbkNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGspOiBBZGQgYSBtZXRob2QgdG8gc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBjYWxs
YmFjay4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IFdoZW4KKyAgICAgICAgaW4gRFJUIG1vZGUgd2UgbmVl
ZCB0byBjYWxsIHRoZSBhdXRoZW50aWNhdGlvbiBjYWxsYmFjayBpbnN0ZWFkIG9mIHBvcHBpbmcK
KyAgICAgICAgdXAgdGhlIGRpYWxvZyBvciBpZ25vcmluZyB0aGUgcmVxdWVzdC4KKwogMjAxMi0x
Mi0wOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gSW1wbGVtZW50IHNvbWUgbWlzc2luZyBGcmFtZUxvYWRlckNsaWVudCBtZXNzYWdlIGlu
IERSVApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCBhNWZmOTBlNTc2MmY3OTFhOGQ3NjcxZmZi
MTk4N2ZkNDE5YjIwMjRiLi5hNzdmYzQ4ZWZmODFhMjIwMTM3OGJiYzk0MTQ5NGNhYTllNzczNjYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiU291cFVSSVV0aWxzLmgiCiAjaW5j
bHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250
bC5oPgpAQCAtMjg1LDYgKzI4NiwxMSBAQCBTb3VwU2Vzc2lvbiogUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6c291cFNlc3Npb24oKQogICAgIHJldHVybiBzZXNzaW9uOwogfQogCitzdGF0aWMgYm9v
bCBpc0F1dGhlbnRpY2F0aW9uRmFpbHVyZVN0YXR1c0NvZGUoaW50IGh0dHBTdGF0dXNDb2RlKQor
eworICAgIHJldHVybiBodHRwU3RhdHVzQ29kZSA9PSBTT1VQX1NUQVRVU19QUk9YWV9BVVRIRU5U
SUNBVElPTl9SRVFVSVJFRCB8fCBodHRwU3RhdHVzQ29kZSA9PSBTT1VQX1NUQVRVU19VTkFVVEhP
UklaRUQ7Cit9CisKIHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhTb3VwTWVzc2FnZSog
bWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKIHsKICAgICBSZXNvdXJjZUhhbmRsZSogaGFuZGxlID0g
c3RhdGljX2Nhc3Q8UmVzb3VyY2VIYW5kbGUqPihkYXRhKTsKQEAgLTMwNCw3ICszMTAsNyBAQCBz
dGF0aWMgdm9pZCBnb3RIZWFkZXJzQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2lu
dGVyIGRhdGEpCiAgICAgLy8gc2luY2Ugd2UgYXJlIHdhaXRpbmcgdW50aWwgd2Uga25vdyB0aGF0
IHRoaXMgYXV0aGVudGljYXRpb24gc3VjY2VlZGVkIGJlZm9yZSBhY3R1YWxseSBzdG9yaW5nLgog
ICAgIC8vIFRoaXMgaXMgYmVjYXVzZSB3ZSB3YW50IHRvIGF2b2lkIGhpdHRpbmcgdGhlIGRpc2sg
dHdpY2UgKG9uY2UgdG8gYWRkIGFuZCBvbmNlIHRvIHJlbW92ZSkgZm9yCiAgICAgLy8gaW5jb3Jy
ZWN0IGNyZWRlbnRpYWxzIG9yIHBvbGx1dGluZyB0aGUga2V5Y2hhaW4gd2l0aCBpbnZhbGlkIGNy
ZWRlbnRpYWxzLgotICAgIGlmIChtZXNzYWdlLT5zdGF0dXNfY29kZSAhPSA0MDEgJiYgbWVzc2Fn
ZS0+c3RhdHVzX2NvZGUgPCA1MDAgJiYgIWQtPm1fY3JlZGVudGlhbERhdGFUb1NhdmVJblBlcnNp
c3RlbnRTdG9yZS5jcmVkZW50aWFsLmlzRW1wdHkoKSkgeworICAgIGlmICghaXNBdXRoZW50aWNh
dGlvbkZhaWx1cmVTdGF0dXNDb2RlKG1lc3NhZ2UtPnN0YXR1c19jb2RlKSAmJiBtZXNzYWdlLT5z
dGF0dXNfY29kZSA8IDUwMCAmJiAhZC0+bV9jcmVkZW50aWFsRGF0YVRvU2F2ZUluUGVyc2lzdGVu
dFN0b3JlLmNyZWRlbnRpYWwuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNyZWRlbnRpYWxCYWNraW5n
U3RvcmUoKS5zdG9yZUNyZWRlbnRpYWxzRm9yQ2hhbGxlbmdlKAogICAgICAgICAgICAgZC0+bV9j
cmVkZW50aWFsRGF0YVRvU2F2ZUluUGVyc2lzdGVudFN0b3JlLmNoYWxsZW5nZSwKICAgICAgICAg
ICAgIGQtPm1fY3JlZGVudGlhbERhdGFUb1NhdmVJblBlcnNpc3RlbnRTdG9yZS5jcmVkZW50aWFs
KTsKQEAgLTMxOSwxNCArMzI1LDExIEBAIHN0YXRpYyB2b2lkIGdvdEhlYWRlcnNDYWxsYmFjayhT
b3VwTWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKICAgICBkLT5tX3Jlc3BvbnNlID0g
cmVzcG9uc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGx5QXV0aGVudGljYXRpb25Ub1JlcXVlc3Qo
UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgYm9vbCByZWRpcmVjdCkKK3N0YXRpYyB2b2lkIGFwcGx5
QXV0aGVudGljYXRpb25Ub1JlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBib29sIHJlZGlyZWN0KQogewogICAgIC8vIG1fdXNlci9tX3Bhc3Mg
YXJlIGNyZWRlbnRpYWxzIGdpdmVuIG1hbnVhbGx5LCBmb3IgaW5zdGFuY2UsIGJ5IHRoZSBhcmd1
bWVudHMgcGFzc2VkIHRvIFhNTEh0dHBSZXF1ZXN0Lm9wZW4oKS4KICAgICBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwotICAgIFN0cmluZyB1c2VyID0g
ZC0+bV91c2VyOwotICAgIFN0cmluZyBwYXNzd29yZCA9IGQtPm1fcGFzczsKIAotICAgIFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGQtPm1fZmlyc3RSZXF1ZXN0OwogICAgIGlmIChoYW5kbGUt
PnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkpIHsKICAgICAgICAgaWYgKGQtPm1fdXNlci5p
c0VtcHR5KCkgJiYgZC0+bV9wYXNzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGQtPm1faW5pdGlh
bENyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0KHJlcXVlc3QudXJsKCkpOwpAQCAt
MzM5LDIwICszNDIsMjMgQEAgc3RhdGljIHZvaWQgYXBwbHlBdXRoZW50aWNhdGlvblRvUmVxdWVz
dChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBib29sIHJlZGlyZWN0KQogICAgICAgICB9CiAgICAg
fQogCisgICAgU3RyaW5nIHVzZXIgPSBkLT5tX3VzZXI7CisgICAgU3RyaW5nIHBhc3N3b3JkID0g
ZC0+bV9wYXNzOwogICAgIGlmICghZC0+bV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgdXNlciA9IGQtPm1faW5pdGlhbENyZWRlbnRpYWwudXNlcigpOwogICAgICAgICBw
YXNzd29yZCA9IGQtPm1faW5pdGlhbENyZWRlbnRpYWwucGFzc3dvcmQoKTsKICAgICB9CiAKKyAg
ICBpZiAodXNlci5pc0VtcHR5KCkgJiYgcGFzc3dvcmQuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKICAgICAvLyBXZSBhbHdheXMgcHV0IHRoZSBjcmVkZW50aWFscyBpbnRvIHRoZSBVUkwu
IEluIHRoZSBDRk5ldHdvcmstcG9ydCBIVFRQIGZhbWlseSBjcmVkZW50aWFscyBhcmUgYXBwbGll
ZCBpbgogICAgIC8vIHRoZSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2FsbGJh
Y2ssIGJ1dCBsaWJzb3VwIHJlcXVpcmVzIHVzIHRvIHVzZSB0aGlzIG1ldGhvZCB0byBvdmVycmlk
ZQogICAgIC8vIGFueSBwcmV2aW91c2x5IHJlbWVtYmVyZWQgY3JlZGVudGlhbHMuIEl0IGhhcyBp
dHMgb3duIHBlci1zZXNzaW9uIGNyZWRlbnRpYWwgc3RvcmFnZS4KLSAgICBpZiAoIXVzZXIuaXNF
bXB0eSgpIHx8ICFwYXNzd29yZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgS1VSTCB1cmxXaXRoQ3Jl
ZGVudGlhbHMocmVxdWVzdC51cmwoKSk7Ci0gICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRV
c2VyKGQtPm1fdXNlcik7Ci0gICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQYXNzKGQtPm1f
cGFzcyk7Ci0gICAgICAgIHJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7Ci0gICAg
fQorICAgIEtVUkwgdXJsV2l0aENyZWRlbnRpYWxzKHJlcXVlc3QudXJsKCkpOworICAgIHVybFdp
dGhDcmVkZW50aWFscy5zZXRVc2VyKHVzZXIpOworICAgIHVybFdpdGhDcmVkZW50aWFscy5zZXRQ
YXNzKHBhc3N3b3JkKTsKKyAgICByZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwog
fQogCiAvLyBDYWxsZWQgZWFjaCB0aW1lIHRoZSBtZXNzYWdlIGlzIGdvaW5nIHRvIGJlIHNlbnQg
YWdhaW4gZXhjZXB0IHRoZSBmaXJzdCB0aW1lLgpAQCAtMzY2LDEyICszNzIsMjAgQEAgc3RhdGlj
IHZvaWQgcmVzdGFydGVkQ2FsbGJhY2soU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRh
dGEpCiAgICAgaWYgKGQtPm1fY2FuY2VsbGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBHT3du
UHRyPGNoYXI+IHVyaShzb3VwX3VyaV90b19zdHJpbmcoc291cF9tZXNzYWdlX2dldF91cmkobWVz
c2FnZSksIGZhbHNlKSk7Ci0gICAgU3RyaW5nIGxvY2F0aW9uID0gU3RyaW5nOjpmcm9tVVRGOCh1
cmkuZ2V0KCkpOwotICAgIEtVUkwgbmV3VVJMID0gS1VSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgp
LnVybCgpLCBsb2NhdGlvbik7CisgICAgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSA9IGQtPm1fcmVzcG9uc2U7CisjaWYgRU5BQkxFKFdFQl9USU1JTkcpCisgICAgcmVkaXJlY3RS
ZXNwb25zZS5zZXRSZXNvdXJjZUxvYWRUaW1pbmcoUmVzb3VyY2VMb2FkVGltaW5nOjpjcmVhdGUo
KSk7CisgICAgcmVkaXJlY3RSZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKS0+cmVxdWVzdFRp
bWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyNlbmRpZgorCisgICAgLy8gV2Vi
Q29yZSBvbmx5IGV4cGVjdHMgdXMgdG8gY2FsbCB3aWxsU2VuZFJlcXVlc3Qgd2hlbiB3ZSBhcmUg
cmVkaXJlY3RpbmcuIHNvdXAKKyAgICAvLyBmaXJlcyB0aGlzIHNpZ25hbCBhbHNvIHdoZW4gaXQn
cyBoYW5kbGluZyBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2VzLCBzbyBpbiB0aGF0CisgICAgLy8g
Y2FzZSB3ZSBzaG91bGQgbm90IHdpbGxTZW5kUmVxdWVzdC4KKyAgICBpZiAoaXNBdXRoZW50aWNh
dGlvbkZhaWx1cmVTdGF0dXNDb2RlKHJlZGlyZWN0UmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSkp
CisgICAgICAgIHJldHVybjsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gaGFuZGxl
LT5maXJzdFJlcXVlc3QoKTsKLSAgICByZXF1ZXN0LnNldFVSTChuZXdVUkwpOworICAgIHJlcXVl
c3Quc2V0VVJMKEtVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSwgc291cFVSSVRvS1VS
TChzb3VwX21lc3NhZ2VfZ2V0X3VyaShtZXNzYWdlKSkpKTsKICAgICByZXF1ZXN0LnNldEhUVFBN
ZXRob2QobWVzc2FnZS0+bWV0aG9kKTsKIAogICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVyZXIg
YWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUgb25l
LgpAQCAtMzg1LDcgKzM5OSw2IEBAIHN0YXRpYyB2b2lkIHJlc3RhcnRlZENhbGxiYWNrKFNvdXBN
ZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciBkYXRhKQogICAgIGQtPm1fcGFzcyA9IHVybC5wYXNz
KCk7CiAgICAgcmVxdWVzdC5yZW1vdmVDcmVkZW50aWFscygpOwogCi0gICAgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSA9IGQtPm1fcmVzcG9uc2U7CiAgICAgaWYgKCFwcm90b2Nv
bEhvc3RBbmRQb3J0QXJlRXF1YWwocmVxdWVzdC51cmwoKSwgcmVkaXJlY3RSZXNwb25zZS51cmwo
KSkpIHsKICAgICAgICAgLy8gSWYgdGhlIG5ldHdvcmsgbGF5ZXIgY2FycmllcyBvdmVyIGF1dGhl
bnRpY2F0aW9uIGhlYWRlcnMgZnJvbSB0aGUgb3JpZ2luYWwgcmVxdWVzdAogICAgICAgICAvLyBp
biBhIGNyb3NzLW9yaWdpbiByZWRpcmVjdCwgd2Ugd2FudCB0byBjbGVhciB0aG9zZSBoZWFkZXJz
IGhlcmUuIApAQCAtMzk1LDEwICs0MDgsMTAgQEAgc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJh
Y2soU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpCiAgICAgICAgIC8vIFRPRE86
IFdlIGFyZSBsb3NpbmcgYW55IHVzZXJuYW1lIGFuZCBwYXNzd29yZCBzcGVjaWZpZWQgaW4gdGhl
IHJlZGlyZWN0IFVSTCwgYXMgdGhpcyBpcyB0aGUgCiAgICAgICAgIC8vIHNhbWUgYmVoYXZpb3Ig
YXMgdGhlIENGTmV0IHBvcnQuIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSBpZiB0aGlzIGlzIHJlYWxs
eSB3aGF0IHdlIHdhbnQuCiAgICAgfSBlbHNlCi0gICAgICAgIGFwcGx5QXV0aGVudGljYXRpb25U
b1JlcXVlc3QoaGFuZGxlLCB0cnVlKTsKKyAgICAgICAgYXBwbHlBdXRoZW50aWNhdGlvblRvUmVx
dWVzdChoYW5kbGUsIHJlcXVlc3QsIHRydWUpOwogCiAgICAgLy8gUGVyLXJlcXVlc3QgYXV0aGVu
dGljYXRpb24gaXMgaGFuZGxlZCB2aWEgdGhlIFVSSS1lbWJlZGRlZCB1c2VybmFtZS9wYXNzd29y
ZC4KLSAgICBHT3duUHRyPFNvdXBVUkk+IG5ld1NvdXBVUkkoc291cF91cmlfbmV3KHJlcXVlc3Qu
dXJsU3RyaW5nRm9yU291cCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBHT3duUHRyPFNvdXBVUkk+
IG5ld1NvdXBVUkkocmVxdWVzdC5zb3VwVVJJKCkpOwogICAgIHNvdXBfbWVzc2FnZV9zZXRfdXJp
KG1lc3NhZ2UsIG5ld1NvdXBVUkkuZ2V0KCkpOwogCiAgICAgaWYgKGQtPmNsaWVudCgpKQpAQCAt
NDA3LDExICs0MjAsNiBAQCBzdGF0aWMgdm9pZCByZXN0YXJ0ZWRDYWxsYmFjayhTb3VwTWVzc2Fn
ZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKICAgICBpZiAoZC0+bV9jYW5jZWxsZWQpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIEVOQUJMRShXRUJfVElNSU5HKQotICAgIHJlZGlyZWN0UmVzcG9u
c2Uuc2V0UmVzb3VyY2VMb2FkVGltaW5nKFJlc291cmNlTG9hZFRpbWluZzo6Y3JlYXRlKCkpOwot
ICAgIHJlZGlyZWN0UmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCktPnJlcXVlc3RUaW1lID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0jZW5kaWYKLQogICAgIC8vIFVwZGF0ZSB0
aGUgZmlyc3QgcGFydHkgaW4gY2FzZSB0aGUgYmFzZSBVUkwgY2hhbmdlZCB3aXRoIHRoZSByZWRp
cmVjdAogICAgIFN0cmluZyBmaXJzdFBhcnR5U3RyaW5nID0gcmVxdWVzdC5maXJzdFBhcnR5Rm9y
Q29va2llcygpLnN0cmluZygpOwogICAgIGlmICghZmlyc3RQYXJ0eVN0cmluZy5pc0VtcHR5KCkp
IHsKQEAgLTgyNSw3ICs4MzMsOCBAQCBzdGF0aWMgYm9vbCBjcmVhdGVTb3VwUmVxdWVzdEFuZE1l
c3NhZ2VGb3JIYW5kbGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgYm9vbCBpcwogICAgIEdPd25Q
dHI8R0Vycm9yPiBlcnJvcjsKICAgICBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QgPSBoYW5kbGUt
PmZpcnN0UmVxdWVzdCgpOwogCi0gICAgZC0+bV9zb3VwUmVxdWVzdCA9IGFkb3B0R1JlZihzb3Vw
X3JlcXVlc3Rlcl9yZXF1ZXN0KHJlcXVlc3RlciwgcmVxdWVzdC51cmxTdHJpbmdGb3JTb3VwKCku
dXRmOCgpLmRhdGEoKSwgJmVycm9yLm91dFB0cigpKSk7CisgICAgR093blB0cjxTb3VwVVJJPiBz
b3VwVVJJKHJlcXVlc3Quc291cFVSSSgpKTsKKyAgICBkLT5tX3NvdXBSZXF1ZXN0ID0gYWRvcHRH
UmVmKHNvdXBfcmVxdWVzdGVyX3JlcXVlc3RfdXJpKHJlcXVlc3Rlciwgc291cFVSSS5nZXQoKSwg
JmVycm9yLm91dFB0cigpKSk7CiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIGQtPm1fc291cFJl
cXVlc3QuY2xlYXIoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODYzLDEwICs4NzIsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgYXBwbHlBdXRoZW50aWNhdGlvblRv
UmVxdWVzdCh0aGlzLCBmYWxzZSk7Ci0gICAgLy8gVGhlIENGTmV0IGJhY2tlbmQgY2xlYXJzIHRo
ZXNlLCBzbyB3ZSBkbyBhcyB3ZWxsLgotICAgIGQtPm1fdXNlciA9IFN0cmluZygpOwotICAgIGQt
Pm1fcGFzcyA9IFN0cmluZygpOworICAgIGFwcGx5QXV0aGVudGljYXRpb25Ub1JlcXVlc3QodGhp
cywgZmlyc3RSZXF1ZXN0KCksIGZhbHNlKTsKIAogICAgIGlmICghY3JlYXRlU291cFJlcXVlc3RB
bmRNZXNzYWdlRm9ySGFuZGxlKHRoaXMsIGlzSFRUUEZhbWlseVJlcXVlc3QpKSB7CiAgICAgICAg
IHRoaXMtPnNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7IC8vIEVycm9yIG11c3Qg
bm90IGJlIHJlcG9ydGVkIGltbWVkaWF0ZWx5CkBAIC05NjQsMTcgKzk3MCw4IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsCiB7CiAgICAgQVNTRVJUKGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZS5p
c051bGwoKSk7CiAKLSAgICBib29sIHVzZUNyZWRlbnRpYWxTdG9yYWdlID0gc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoKTsKLSAgICBpZiAoIWQtPm1fdXNlci5pc051bGwoKSAmJiAhZC0+bV9w
YXNzLmlzTnVsbCgpKSB7Ci0gICAgICAgIENyZWRlbnRpYWwgY3JlZGVudGlhbCA9IENyZWRlbnRp
YWwoZC0+bV91c2VyLCBkLT5tX3Bhc3MsIENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24p
OwotICAgICAgICBpZiAodXNlQ3JlZGVudGlhbFN0b3JhZ2UpCi0gICAgICAgICAgICBDcmVkZW50
aWFsU3RvcmFnZTo6c2V0KGNyZWRlbnRpYWwsIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwg
Y2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLnVybCgpKTsKLSAgICAgICAgc291cF9hdXRoX2F1
dGhlbnRpY2F0ZShjaGFsbGVuZ2Uuc291cEF1dGgoKSwgY3JlZGVudGlhbC51c2VyKCkudXRmOCgp
LmRhdGEoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBGSVhNRTogUGVyIHRoZSBzcGVjaWZpY2F0aW9uLCB0
aGUgdXNlciBzaG91bGRuJ3QgYmUgYXNrZWQgZm9yIGNyZWRlbnRpYWxzIGlmIHRoZXJlIHdlcmUg
aW5jb3JyZWN0IG9uZXMgcHJvdmlkZWQgZXhwbGljaXRseS4KKyAgICBib29sIHVzZUNyZWRlbnRp
YWxTdG9yYWdlID0gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsKICAgICBpZiAodXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UpIHsKICAgICAgICAgaWYgKCFkLT5tX2luaXRpYWxDcmVkZW50aWFsLmlz
RW1wdHkoKSB8fCBjaGFsbGVuZ2UucHJldmlvdXNGYWlsdXJlQ291bnQoKSkgewogICAgICAgICAg
ICAgLy8gVGhlIHN0b3JlZCBjcmVkZW50aWFsIHdhc24ndCBhY2NlcHRlZCwgc3RvcCB1c2luZyBp
dC4gVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbgpAQCAtOTg5LDcgKzk4Niw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsCiAgICAgICAgICAgICAgICAgQVNTRVJUKGNyZWRlbnRpYWwucGVyc2lz
dGVuY2UoKSA9PSBDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKIAogICAgICAgICAgICAgICAg
IC8vIFN0b3JlIHRoZSBjcmVkZW50aWFsIGJhY2ssIHBvc3NpYmx5IGFkZGluZyBpdCBhcyBhIGRl
ZmF1bHQgZm9yIHRoaXMgZGlyZWN0b3J5LgotICAgICAgICAgICAgICAgIGlmIChjaGFsbGVuZ2Uu
ZmFpbHVyZVJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSA9PSA0MDEpCisgICAgICAgICAgICAg
ICAgaWYgKGlzQXV0aGVudGljYXRpb25GYWlsdXJlU3RhdHVzQ29kZShjaGFsbGVuZ2UuZmFpbHVy
ZVJlc3BvbnNlKCkuaHR0cFN0YXR1c0NvZGUoKSkpCiAgICAgICAgICAgICAgICAgICAgIENyZWRl
bnRpYWxTdG9yYWdlOjpzZXQoY3JlZGVudGlhbCwgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgp
LCBjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkudXJsKCkpOwogCiAgICAgICAgICAgICAgICAg
c291cF9hdXRoX2F1dGhlbnRpY2F0ZShjaGFsbGVuZ2Uuc291cEF1dGgoKSwgY3JlZGVudGlhbC51
c2VyKCkudXRmOCgpLmRhdGEoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlUmVxdWVzdC5oCmluZGV4IDhjZTAwZmI3MzQ4OTc2M2ViYjA5NjdmM2I3YmYwZDE3OTQ0ZmU0
YmMuLmQ4ZmUwMTEzMzkxMjQyM2QwZDMxZGYzZmNlZDRmMTljNTU4MDY4NzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0
LmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTb3VwTWVz
c2FnZUZsYWdzIHNvdXBNZXNzYWdlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NvdXBGbGFnczsg
fQogICAgICAgICB2b2lkIHNldFNvdXBNZXNzYWdlRmxhZ3MoU291cE1lc3NhZ2VGbGFncyBzb3Vw
RmxhZ3MpIHsgbV9zb3VwRmxhZ3MgPSBzb3VwRmxhZ3M7IH0KIAotICAgICAgICBTdHJpbmcgdXJs
U3RyaW5nRm9yU291cCgpIGNvbnN0OworICAgICAgICBTb3VwVVJJKiBzb3VwVVJJKCkgY29uc3Q7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0QmFz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZVJlcXVlc3RTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNwcAppbmRleCA2MmQ4Njk2ZWRjYjRhZjYzZjI4NmE0Zjk1
Y2Q2ZmRiNDljZDI5OWEyLi45ZWZiNDdiNzcyMzI3ZTliOTY2YjcxOWNiNTI0Zjc0NWQxMTA3MWY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXF1ZXN0U291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdW5zaWduZWQg
aW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCgpCiAgICAgcmV0dXJu
IDEwMDAwOwogfQogCi1TdHJpbmcgUmVzb3VyY2VSZXF1ZXN0Ojp1cmxTdHJpbmdGb3JTb3VwKCkg
Y29uc3QKK1NvdXBVUkkqIFJlc291cmNlUmVxdWVzdDo6c291cFVSSSgpIGNvbnN0CiB7CiAgICAg
Ly8gV2ViS2l0IGRvZXMgbm90IHN1cHBvcnQgZnJhZ21lbnQgaWRlbnRpZmllcnMgaW4gZGF0YSBV
UkxzLCBidXQgc291cCBkb2VzLgogICAgIC8vIEJlZm9yZSBwYXNzaW5nIHRoZSBVUkwgdG8gc291
cCwgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0byB1cmxlbmNvZGUgYW55ICcjJwpAQCAtMTMzLDEyICsx
MzMsMjIgQEAgU3RyaW5nIFJlc291cmNlUmVxdWVzdDo6dXJsU3RyaW5nRm9yU291cCgpIGNvbnN0
CiAgICAgaWYgKG1fdXJsLnByb3RvY29sSXNEYXRhKCkpIHsKICAgICAgICAgU3RyaW5nIHVybFN0
cmluZyA9IG1fdXJsLnN0cmluZygpOwogICAgICAgICB1cmxTdHJpbmcucmVwbGFjZSgiIyIsICIl
MjMiKTsKLSAgICAgICAgcmV0dXJuIHVybFN0cmluZzsKKyAgICAgICAgcmV0dXJuIHNvdXBfdXJp
X25ldyh1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogCiAgICAgS1VSTCB1cmwgPSBt
X3VybDsKICAgICB1cmwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7Ci0gICAgcmV0dXJuIHVy
bC5zdHJpbmcoKTsKKyAgICBTb3VwVVJJKiB1cmkgPSBzb3VwX3VyaV9uZXcodXJsLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworCisgICAgLy8gVmVyc2lvbnMgb2YgbGlic291cCBwcmlvciB0byAy
LjQyIGhhdmUgYSBzb3VwX3VyaV9uZXcgdGhhdCB3aWxsIGNvbnZlcnQgZW1wdHkgcGFzc3dvcmRz
IHRoYXQgYXJlIG5vdAorICAgIC8vIHByZWZpeGVkIGJ5IGEgY29sb24gaW50byBudWxsLiBTb21l
IHBhcnRzIG9mIHNvdXAgbGlrZSB0aGUgU291cEF1dGhlbnRpY2F0aW9uTWFuYWdlciB3aWxsIG9u
bHkgYmUgYWN0aXZlCisgICAgLy8gd2hlbiBib3RoIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQg
YXJlIG5vbi1udWxsLiBXaGVuIHdlIGhhdmUgY3JlZGVudGlhbHMsIGVtcHR5IHVzZXJuYW1lcyBh
bmQgcGFzc3dvcmRzCisgICAgLy8gc2hvdWxkIGJlIGVtcHR5IHN0cmluZ3MgaW5zdGVhZCBvZiBu
dWxsLgorICAgIGlmICghdXJsLnVzZXIoKS5pc0VtcHR5KCkgfHwgIXVybC5wYXNzKCkuaXNFbXB0
eSgpKSB7CisgICAgICAgIHNvdXBfdXJpX3NldF91c2VyKHVyaSwgdXJsLnVzZXIoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgc291cF91cmlfc2V0X3Bhc3N3b3JkKHVyaSwgdXJsLnBhc3MoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICB9CisgICAgcmV0dXJuIHVyaTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHAKaW5kZXggYjBmMjgwYTMyZjFmZjNlNTc4MjY4ZDYxNzQxODcwNmZiM2Nm
YzFhYy4uZTI4YmEzZjZiNDFkZDYwMjNhNzFiYmM0YTdiYWI5MTdlNDRiNzJkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04NSw2ICs4NSw3IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpzX2RydFJ1biA9IGZhbHNlOwogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4gPSB0cnVlOwogYm9vbCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OnNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwog
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFtZUxvYWRFdmVudENhbGxiYWNrIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrID0gMDsKK0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRpb25DYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9IDA7CiAKIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKCkKIHsKQEAgLTg0NCwzICs4NDUs
OCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RnJhbWVMb2FkRXZlbnRDYWxs
YmFjayhGcmFtZUxvYWRFdmVudENhbGxiYWNrCiB7CiAgICAgc19mcmFtZUxvYWRFdmVudENhbGxi
YWNrID0gZnJhbWVMb2FkRXZlbnRDYWxsYmFjazsKIH0KKwordm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2soQXV0aGVudGljYXRpb25DYWxsYmFj
ayBhdXRoZW50aWNhdGlvbkNhbGxiYWNrKQoreworICAgIHNfYXV0aGVudGljYXRpb25DYWxsYmFj
ayA9IGF1dGhlbnRpY2F0aW9uQ2FsbGJhY2s7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4
IDVhNzRkMTZhZTc1OGQ1YjUxNjBhOTNhODQ1ZDU3MTU2YTA2NWE2MjAuLjNiMjRmNjU4ZmM0OGE0
MTc5MmEzZTNkZGNmMDVjZDAwNGQ5YjEzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC0x
NDYsNiArMTQ2LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRGcmFtZUxvYWRFdmVu
dENhbGxiYWNrKEZyYW1lTG9hZEV2ZW50Q2FsbGJhY2spOwogICAgIHN0YXRpYyBGcmFtZUxvYWRF
dmVudENhbGxiYWNrIHNfZnJhbWVMb2FkRXZlbnRDYWxsYmFjazsKIAorICAgIHR5cGVkZWYgYm9v
bCAoKkF1dGhlbnRpY2F0aW9uQ2FsbGJhY2spIChDU3RyaW5nJiB1c2VybmFtZSwgQ1N0cmluZyYg
cGFzc3dvcmQpOworICAgIHN0YXRpYyB2b2lkIHNldEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2soQXV0
aGVudGljYXRpb25DYWxsYmFjayk7CisgICAgc3RhdGljIEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sg
c19hdXRoZW50aWNhdGlvbkNhbGxiYWNrOworCiBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNf
ZHJ0UnVuOwogICAgIHN0YXRpYyBib29sIHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHAKaW5kZXggMmUxMTU4NzdmMzFmZjk5ZmM2ZTY3N2QxM2Y0NmYxNmJhYTQ5ZGM5
Ni4uNzc0MDhjMmMwOWY3YmIzY2QxODk0NDRiZDJlODc2YmFjZGJkNmNmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcApAQCAtMTkzLDcgKzE5MywxNCBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVucwogdm9p
ZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nICBpZGVudGlmaWVy
LCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQogewogICAgIGlmIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkgewot
ICAgICAgICBjaGFsbGVuZ2UuYXV0aGVudGljYXRpb25DbGllbnQoKS0+cmVjZWl2ZWRSZXF1ZXN0
VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNoYWxsZW5nZSk7CisgICAgICAgIENTdHJpbmcg
dXNlcm5hbWU7CisgICAgICAgIENTdHJpbmcgcGFzc3dvcmQ7CisgICAgICAgIGlmICghRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzX2F1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgfHwgIUR1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50aWNhdGlvbkNhbGxiYWNrKHVzZXJuYW1lLCBwYXNz
d29yZCkpIHsKKyAgICAgICAgICAgIGNoYWxsZW5nZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpLT5y
ZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY2hhbGxlbmdlKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNoYWxsZW5nZS5hdXRoZW50
aWNhdGlvbkNsaWVudCgpLT5yZWNlaXZlZENyZWRlbnRpYWwoY2hhbGxlbmdlLCBDcmVkZW50aWFs
KFN0cmluZzo6ZnJvbVVURjgodXNlcm5hbWUuZGF0YSgpKSwgU3RyaW5nOjpmcm9tVVRGOChwYXNz
d29yZC5kYXRhKCkpLCBDcmVkZW50aWFsUGVyc2lzdGVuY2VGb3JTZXNzaW9uKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAwYTM0NTQxMWJmNDBjZDNlNzliODU2MTJhMGY4N2JmYjYwYTg1ZTgxLi5l
NTU5NDA2YmNhZWRjOTFmZTJhNDg4YWRjNDU4Y2E5NzNmYTFhZDBlIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTIt
MTItMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtHVEtdIEFkZCBhdXRoZW50aWNhdGlvbiBzdXBwb3J0IHRvIERSVCBhbmQgZml4IGV4cG9zZWQg
aXNzdWVzIGluIHRoZSBsaWJzb3VwIGJhY2tlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDI4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IHRvIER1bXBSZW5kZXJUcmVlIGZvciBy
dW5uaW5nIGF1dGhlbnRpY2F0aW9uIHRlc3RzLiBTaW5jZSB0aGUgRFJUCisgICAgICAgIGV4cGVj
dHMgYW4gYXV0aGVudGljYXRpb24gY2FsbGJhY2ssIHdlIGFkZCBvbmUgdG8gRFJUU3VwcG9ydCB0
byBhdm9pZCAjaWZkZWZzCisgICAgICAgIGluIHBsYXRmb3JtLWluZGVwZW5kZW50IGNvZGUgZm9y
IEdUSysuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3Bw
OgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6IFJlc2V0IHRoZSBh
dXRoZW50aWNhdGlvbiBwYXNzd29yZCBhbmQgdXNlcm5hbWUuCisgICAgICAgIChhdXRoZW50aWNh
dGlvbkNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChjcmVhdGVXZWJWaWV3KTogQXR0YWNoIHRo
ZSBhdXRoZW50aWF0aW9uIGNhbGxiYWNrIGR1cmluZyBzdGFydHVwLgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKHNvdXBVUklUb0tVUkwp
OiBzb3VwX3VyaV90b19zdHJpbmcgZG9lcyBub3QgcHJlc2VydmUgcGFzc3dvcmRzIGVtYmVkZGVk
CisgICAgICAgIGluIHRoZSBVUkwgc28gd2UgYWRkIGEgc29tZXdoYXQgbWVzc3kgbWV0aG9kIG9m
IHJlLWFkZGluZyB0aGVtIHdoZW4gdGhleSBleGlzdC4KKyAgICAgICAgSXQgd291bGQgYmUgbmlj
ZSB0byB1c2Ugc291cFVSSVRvS1VSTCBoZXJlLCBidXQgaXQgc2VlbXMgd2UgY2Fubm90IHVzZSBL
VVJMIHdpdGhvdXQKKyAgICAgICAgcHVsbGluZyBpbiBsb3RzIG9mIFdlYkNvcmUgY29kZSBzbyB3
ZSB1c2Ugc3RyaW5nIHNlYXJjaCBhbmQgcmVwbGFjZS4KKyAgICAgICAgKFRlc3RSdW5uZXI6OnF1
ZXVlTG9hZCk6IFVzZSB0aGUgbmV3IGhlbHBlci4KKwogMjAxMi0xMi0wOCAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW1wbGVtZW50IHNv
bWUgbWlzc2luZyBGcmFtZUxvYWRlckNsaWVudCBtZXNzYWdlIGluIERSVApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNDIwMGEzNTc2OGNkMzJlYWM3
OTcyMTBjMWMwY2ZhYWRkOTlkMDk5Ni4uYTJlODdmODEwY2YxYjdkYTQyNzhiNmVjMDI1Mjc5MDhi
OTQ1OTQ5MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJU
cmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3Bw
CkBAIC01MjEsNiArNTIxLDEyIEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3Rl
bnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RXhwZXJpbWVudGFs
Q29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZXNFbmFibGVkKHRydWUpOwogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6c2V0U2hhZG93RE9NRW5hYmxlZCh0cnVlKTsKICAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldFN0eWxlU2NvcGVkRW5hYmxlZCh0cnVlKTsKKworICAgIGlm
IChnVGVzdFJ1bm5lcikgeworICAgICAgICBnVGVzdFJ1bm5lci0+c2V0QXV0aGVudGljYXRpb25Q
YXNzd29yZCgiIik7CisgICAgICAgIGdUZXN0UnVubmVyLT5zZXRBdXRoZW50aWNhdGlvblVzZXJu
YW1lKCIiKTsKKyAgICAgICAgZ1Rlc3RSdW5uZXItPnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZXMoZmFsc2UpOworICAgIH0KIH0KIAogc3RhdGljIGJvb2wgdXNlTG9uZ1J1bm5pbmdT
ZXJ2ZXJNb2RlKGludCBhcmdjLCBjaGFyICphcmd2W10pCkBAIC0xMzY2LDYgKzEzNzIsMTkgQEAg
c3RhdGljIHZvaWQgZnJhbWVMb2FkRXZlbnRDYWxsYmFjayhXZWJLaXRXZWJGcmFtZSogZnJhbWUs
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEcKICAgICB9CiB9CiAKK3N0YXRpYyBib29sIGF1dGhlbnRp
Y2F0aW9uQ2FsbGJhY2soQ1N0cmluZyYgdXNlcm5hbWUsIENTdHJpbmcmIHBhc3N3b3JkKQorewor
ICAgIGlmICghZ1Rlc3RSdW5uZXItPmhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMoKSkg
eworICAgICAgICBwcmludGYoIjx1bmtub3duPiAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSAtIFNpbXVsYXRpbmcgY2FuY2VsbGVkIGF1dGhlbnRpY2F0aW9uIHNoZWV0XG4iKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHVzZXJuYW1lID0gZ1Rlc3RSdW5u
ZXItPmF1dGhlbnRpY2F0aW9uVXNlcm5hbWUoKS5jX3N0cigpOworICAgIHBhc3N3b3JkID0gZ1Rl
c3RSdW5uZXItPmF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoKS5jX3N0cigpOworICAgIHByaW50Zigi
PHVua25vd24+IC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0gUmVzcG9uZGlu
ZyB3aXRoICVzOiVzXG4iLCB1c2VybmFtZS5kYXRhKCksIHBhc3N3b3JkLmRhdGEoKSk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkK
IHsKICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8gZGVjbGFyZSBEUlQgaXMgcnVubmluZyBlYXJs
eSBzbyB3aGVuIGNyZWF0aW5nCkBAIC0xMzczLDYgKzEzOTIsNyBAQCBzdGF0aWMgV2ViS2l0V2Vi
VmlldyogY3JlYXRlV2ViVmlldygpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRE
dW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKHRydWUpOwogCiAgICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZXRGcmFtZUxvYWRFdmVudENhbGxiYWNrKGZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sp
OworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0QXV0aGVudGljYXRpb25DYWxsYmFj
ayhhdXRoZW50aWNhdGlvbkNhbGxiYWNrKTsKIAogICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSBX
RUJLSVRfV0VCX1ZJRVcoc2VsZl9zY3JvbGxpbmdfd2Via2l0X3dlYl92aWV3X25ldygpKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IGU4ODdjYTFj
NGExNWViZjE4MTA3N2Q2NDRmMTFmZDgzMjgwOWQzMGYuLjdhZmM0Njc3OTdjNzBkNmJiODkwYjZk
NDA1ZmUyZDRmMDc0ZDU4OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9U
ZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5l
ckd0ay5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNp
bmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBleHRlcm4gIkMiIHsKIHZvaWQg
d2Via2l0X3dlYl9pbnNwZWN0b3JfZXhlY3V0ZV9zY3JpcHQoV2ViS2l0V2ViSW5zcGVjdG9yKiBp
bnNwZWN0b3IsIGxvbmcgY2FsbElkLCBjb25zdCBnY2hhciogc2NyaXB0KTsKQEAgLTE1NywyNiAr
MTU4LDQzIEBAIEpTU3RyaW5nUmVmIFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTU3RyaW5nUmVmIHVyCiAgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHRlc3RVUkkuZ2V0KCkpOwogfQogCitzdGF0aWMgQ1N0cmluZyBz
b3VwVVJJVG9TdHJpbmdQcmVzZXJ2aW5nUGFzc3dvcmQoU291cFVSSSogc291cFVSSSkKK3sKKyAg
ICBpZiAoIXNvdXBVUkktPnBhc3N3b3JkKSB7CisgICAgICAgIEdPd25QdHI8Y2hhcj4gdXJpU3Ry
aW5nKHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSkpOworICAgICAgICByZXR1cm4g
dXJpU3RyaW5nLmdldCgpOworICAgIH0KKworICAgIC8vIHNvdXBfdXJpX3RvX3N0cmluZyBkb2Vz
IG5vdCBpbnNlcnQgdGhlIHBhc3N3b3JkIGludG8gdGhlIHN0cmluZywgc28gd2UgbmVlZCB0byBj
cmVhdGUgdGhlCisgICAgLy8gVVJJIHN0cmluZyBhbmQgdGhlbiByZWluc2VydCBhbnkgY3JlZGVu
dGlhbHMgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhlIFNvdXBVUkkuIEFsbCB0ZXN0cyB0aGF0Cisg
ICAgLy8gdXNlIFVSTC1lbWJlZGRlZCBjcmVkZW50aWFscyB1c2UgSFRUUCwgc28gaXQncyBzYWZl
IGhlcmUuCisgICAgR093blB0cjxjaGFyPiBwYXNzd29yZChzb3VwVVJJLT5wYXNzd29yZCk7Cisg
ICAgR093blB0cjxjaGFyPiB1c2VyKHNvdXBVUkktPnVzZXIpOworICAgIHNvdXBVUkktPnBhc3N3
b3JkID0gMDsKKyAgICBzb3VwVVJJLT51c2VyID0gMDsKKworICAgIEdPd25QdHI8Y2hhcj4gdXJp
U3RyaW5nKHNvdXBfdXJpX3RvX3N0cmluZyhzb3VwVVJJLCBGQUxTRSkpOworICAgIFN0cmluZyBh
YnNvbHV0ZVVSSVdpdGhvdXRDcmVkZW50aWFsU3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOCh1cmlT
dHJpbmcuZ2V0KCkpOworICAgIFN0cmluZyBwcm90b2NvbEFuZENyZWRlbnRpYWwgPSBTdHJpbmc6
OmZvcm1hdCgiaHR0cDovLyVzOiVzQCIsIHVzZXIgPyB1c2VyLmdldCgpIDogIiIsIHBhc3N3b3Jk
LmdldCgpKTsKKyAgICByZXR1cm4gYWJzb2x1dGVVUklXaXRob3V0Q3JlZGVudGlhbFN0cmluZy5y
ZXBsYWNlKCJodHRwOi8vIiwgcHJvdG9jb2xBbmRDcmVkZW50aWFsKS51dGY4KCk7Cit9CisKIHZv
aWQgVGVzdFJ1bm5lcjo6cXVldWVMb2FkKEpTU3RyaW5nUmVmIHVybCwgSlNTdHJpbmdSZWYgdGFy
Z2V0KQogewotICAgIGdjaGFyKiByZWxhdGl2ZVVSTCA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5n
KHVybCk7CisgICAgR093blB0cjxnY2hhcj4gcmVsYXRpdmVVUkwoSlNTdHJpbmdDb3B5VVRGOENT
dHJpbmcodXJsKSk7CiAgICAgU291cFVSSSogYmFzZVVSSSA9IHNvdXBfdXJpX25ldyh3ZWJraXRf
d2ViX2ZyYW1lX2dldF91cmkobWFpbkZyYW1lKSk7Ci0KLSAgICBTb3VwVVJJKiBhYnNvbHV0ZVVS
SSA9IHNvdXBfdXJpX25ld193aXRoX2Jhc2UoYmFzZVVSSSwgcmVsYXRpdmVVUkwpOworICAgIFNv
dXBVUkkqIGFic29sdXRlVVJJID0gc291cF91cmlfbmV3X3dpdGhfYmFzZShiYXNlVVJJLCByZWxh
dGl2ZVVSTC5nZXQoKSk7CiAgICAgc291cF91cmlfZnJlZShiYXNlVVJJKTsKLSAgICBnX2ZyZWUo
cmVsYXRpdmVVUkwpOwotCi0gICAgZ2NoYXIqIGFic29sdXRlQ1N0cmluZzsKLSAgICBpZiAoYWJz
b2x1dGVVUkkpIHsKLSAgICAgICAgYWJzb2x1dGVDU3RyaW5nID0gc291cF91cmlfdG9fc3RyaW5n
KGFic29sdXRlVVJJLCBGQUxTRSk7Ci0gICAgICAgIHNvdXBfdXJpX2ZyZWUoYWJzb2x1dGVVUkkp
OwotICAgIH0gZWxzZQotICAgICAgICBhYnNvbHV0ZUNTdHJpbmcgPSBKU1N0cmluZ0NvcHlVVEY4
Q1N0cmluZyh1cmwpOwogCi0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGFic29sdXRlVVJM
KEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhhYnNvbHV0ZUNTdHJpbmcpKTsK
LSAgICBnX2ZyZWUoYWJzb2x1dGVDU3RyaW5nKTsKKyAgICBpZiAoIWFic29sdXRlVVJJKSB7Cisg
ICAgICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnF1ZXVlKG5ldyBMb2FkSXRlbSh1cmwsIHRhcmdl
dCkpOworICAgICAgICByZXR1cm47CisgICAgfQogCisgICAgQ1N0cmluZyBhYnNvbHV0ZVVSSVN0
cmluZyA9IHNvdXBVUklUb1N0cmluZ1ByZXNlcnZpbmdQYXNzd29yZChhYnNvbHV0ZVVSSSk7Cisg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGFic29sdXRlVVJMKEFkb3B0LCBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyhhYnNvbHV0ZVVSSVN0cmluZy5kYXRhKCkpKTsKICAgICBXb3Jr
UXVldWU6OnNoYXJlZCgpLT5xdWV1ZShuZXcgTG9hZEl0ZW0oYWJzb2x1dGVVUkwuZ2V0KCksIHRh
cmdldCkpOworICAgIHNvdXBfdXJpX2ZyZWUoYWJzb2x1dGVVUkkpOwogfQogCiB2b2lkIFRlc3RS
dW5uZXI6OnNldEFjY2VwdHNFZGl0aW5nKGJvb2wgYWNjZXB0c0VkaXRpbmcpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjhi
MWYxYjdlNTI3ZmMzYjUxNGY3ZjYzMTAyMDIwMTQxYWFkN2E3Zi4uMDZiYThhNjk1YjVmNzJhNzZi
YjYwNGU0ZTUzYzJiNjUyZDc3OGM0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTA2
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RL
XSBBZGQgYXV0aGVudGljYXRpb24gc3VwcG9ydCB0byBEUlQgYW5kIGZpeCBleHBvc2VkIGlzc3Vl
cyBpbiB0aGUgbGlic291cCBiYWNrZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDQyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVbnNraXAgYXV0aGVudGljYXRpb24gdGVzdHMgbm93IHRoYXQgYXV0
aGVudGljYXRpb24gc3VwcG9ydCBpcyBpbgorICAgICAgICB0aGUgaGFybmVzcyBhbmQgaXNzdWVz
IGluIHRoZSBsaWJzb3VwIGJhY2tlbmQgYXJlIGZpeGVkLiBBbHNvIHJlbW92ZQorICAgICAgICB0
d28gZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdGVzdHMgdGhhdCBub3cgaGF2ZSB0aGUgc2FtZSBvdXRw
dXQgYXMKKyAgICAgICAgb3RoZXIgcGxhdGZvcm1zLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvbWlz
Yy80MDEtYWx0ZXJuYXRpdmUtY29udGVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZmFpbGVkLWF1dGgtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDEyLTEyLTA0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBodHRwL3Rlc3RzL2xvYWRpbmcvYXV0aGVudGlj
YXRpb24tYWZ0ZXItcmVkaXJlY3Qtc3RvcmVzLXdyb25nLWNyZWRlbnRpYWxzL3Jlc291cmNlcy93
cm9uZy1jcmVkZW50aWFsLTItYXV0aC10aGVuLXJlZGlyZWN0LXRvLWZpbmlzaC5waHAgcmV0dXJu
cyBhIG1hbGZvcm1lZCBhdXRoZW50aWNhdGlvbiBoZWFkZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2MwMWFkZWE1Y2M0NWFhN2JjMTc3OTY1N2M1NWI1
ZDM3MTNiODY2Yy4uYzg2ZThmMTE0NDgwODYxNzc3ZWY4OWM1MDg4ZDBhOTljZjI5OGQ2NCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTg3NiwxOCArODc2
LDYgQEAgd2Via2l0Lm9yZy9iLzMwNjIwIGZhc3QveHNsL3NvcnQtbG9jYWxlLnhtbCBbIEZhaWx1
cmUgXQogCiB3ZWJraXQub3JnL2IvNTM5ODYgc3ZnL3RleHQvY2FyZXQtaW4tc3ZnLXRleHQueGh0
bWwgWyBGYWlsdXJlIF0KIAotIyBObyBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgaGFuZGxpbmcK
LXdlYmtpdC5vcmcvYi81MTEwNCBodHRwL3Rlc3RzL2xvYWRpbmcvYXV0aGVudGljYXRpb24tYWZ0
ZXItcmVkaXJlY3Qtc3RvcmVzLXdyb25nLWNyZWRlbnRpYWxzL2F1dGhlbnRpY2F0aW9uLWFmdGVy
LXJlZGlyZWN0LXN0b3Jlcy13cm9uZy1jcmVkZW50aWFscy5odG1sIFsgU2tpcCBdCi13ZWJraXQu
b3JnL2IvNTExMDQgaHR0cC90ZXN0cy9sb2FkaW5nL2Jhc2ljLWF1dGgtcmVzZW5kLXdyb25nLWNy
ZWRlbnRpYWxzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi81MTEwNCBodHRwL3Rlc3Rz
L2xvYWRpbmcvYmFzaWMtY3JlZGVudGlhbHMtc2VudC1hdXRvbWF0aWNhbGx5Lmh0bWwgWyBGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi81MTEwNCBodHRwL3Rlc3RzL21pc2MvYXV0aGVudGljYXRpb24t
cmVkaXJlY3QtMS9hdXRoZW50aWNhdGlvbi1zZW50LXRvLXJlZGlyZWN0LWNyb3NzLW9yaWdpbi5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy9taXNjL2F1dGhl
bnRpY2F0aW9uLXJlZGlyZWN0LTIvYXV0aGVudGljYXRpb24tc2VudC10by1yZWRpcmVjdC1zYW1l
LW9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy9t
aXNjL2F1dGhlbnRpY2F0aW9uLXJlZGlyZWN0LTMvYXV0aGVudGljYXRpb24tc2VudC10by1yZWRp
cmVjdC1zYW1lLW9yaWdpbi13aXRoLWxvY2F0aW9uLWNyZWRlbnRpYWxzLmh0bWwgWyBGYWlsdXJl
IF0KLXdlYmtpdC5vcmcvYi81MTEwNCBodHRwL3Rlc3RzL3NlY3VyaXR5LzQwMS1sb2dvdXQvNDAx
LWxvZ291dC5waHAgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi81MTEwNCBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2Jhc2ljLWF1dGgtbm91c2VyLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi81MTEwNCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGgtbm9wYXNzd29yZC5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvNTExMDQgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9yZW1lbWJlci1iYWQtcGFzc3dvcmQuaHRtbCBbIEZhaWx1cmUgXQotCiAjIFRoaXMgcG9y
dCBkb2Vzbid0IGhhdmUgYSBnbG9iYWwgaGlzdG9yeSBkZWxlZ2F0ZSB5ZXQKIEJ1ZyhHVEspIGh0
dHAvdGVzdHMvZ2xvYmFsaGlzdG9yeSBbIEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRlcm5hdGl2ZS1jb250ZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2Mv
NDAxLWFsdGVybmF0aXZlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQwMTZjOGVmMTJmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9odHRwL3Rlc3RzL21pc2MvNDAxLWFsdGVybmF0aXZlLWNvbnRlbnQtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotUEFTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZmFpbGVkLWF1
dGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvZmFpbGVkLWF1dGgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjYzI3Yzg0NGQ5ODJmZDIxNGZjMWFiOTA5MjE4NDA3YWMzOTAyZGVjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2ZhaWxlZC1hdXRoLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGVzdCBmb3IgYnVnIDEzMDc1OiBY
TUxIdHRwUmVxdWVzdCB3aXRoIGZhaWxlZCBhdXRoZW50aWNhdGlvbiBzaG91bGQgc2V0IHN0YXR1
cyB0byA0MDEuCi0KLVN5bmMsIG5vIGNyZWRlbnRpYWxzOiBPSwotU3luYywgaW5jb3JyZWN0IGNy
ZWRlbnRpYWxzOiBPSwotQXN5bmMsIG5vIGNyZWRlbnRpYWxzOiBPSwotQXN5bmMsIGluY29ycmVj
dCBjcmVkZW50aWFsczogT0sK
</data>
<flag name="review"
          id="194926"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>