<?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>205517</bug_id>
          
          <creation_ts>2019-12-20 13:56:34 -0800</creation_ts>
          <short_desc>Make JSString values from literals in a single consistent style</short_desc>
          <delta_ts>2019-12-21 16:44:23 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600914</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-20 13:56:34 -0800</bug_when>
    <thetext>Make JSString values from literals in a single consistent style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600915</commentid>
    <comment_count>1</comment_count>
      <attachid>386248</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-20 13:59:00 -0800</bug_when>
    <thetext>Created attachment 386248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600917</commentid>
    <comment_count>2</comment_count>
      <attachid>386248</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-20 14:02:50 -0800</bug_when>
    <thetext>Comment on attachment 386248
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +            jsNontrivialString(vm, &quot;literal&quot;)

Could we use literal string as template to turn this code into what you did?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600953</commentid>
    <comment_count>3</comment_count>
      <attachid>386248</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-20 14:50:54 -0800</bug_when>
    <thetext>Comment on attachment 386248
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:15
&gt;&gt; +            jsNontrivialString(vm, &quot;literal&quot;)
&gt; 
&gt; Could we use literal string as template to turn this code into what you did?

Yes and no.

The two things we need to know:

1) These characters are immortal, so we can point to them instead of copying.
2) The string is not 1 character long.

We can make a function template that takes an array of char. This matches a literal and does not match things like &quot;const char*&apos;. That is what we do in various places like the equalLettersIgnoringASCIICase function template. However, this does not distinguish literals from other arrays of char, nor does it determine that the last character of the array is a NUL.

However, if we were OK with that limitation, then we could deduce the length of the string from the length of the array (subtracting one), and emit the appropriate code for that case.

I don’t think it’s worth it but it’s something I considered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600955</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-20 14:51:42 -0800</bug_when>
    <thetext>More accurately: the string is more than 1 character long</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601113</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-12-21 16:43:09 -0800</bug_when>
    <thetext>Committed r253865: &lt;https://trac.webkit.org/changeset/253865&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601114</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-21 16:44:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/58138961&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386248</attachid>
            <date>2019-12-20 13:59:00 -0800</date>
            <delta_ts>2019-12-20 14:02:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205517-20191220135856.patch</filename>
            <type>text/plain</type>
            <size>35657</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MjQ3MmNjNGJlMzExMzY2MDhjY2U3NzRlNWVlYjkxY2EwMDM4Y2Y1Li5kNDJmNWNhYmU4N2Y3ZTEz
MDBiOWZmMTI3MGVjZmE1NTc5MzhhMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MyBAQAorMjAxOS0xMi0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgTWFrZSBKU1N0cmluZyB2YWx1ZXMgZnJvbSBsaXRlcmFscyBpbiBhIHNpbmdsZSBj
b25zaXN0ZW50IHN0eWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU1MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTb21lIGNhbGwgc2l0ZXMgZGlkIGl0IGxpa2UgdGhpczoKKworICAgICAgICAgICAg
anNOb250cml2aWFsU3RyaW5nKHZtLCAibGl0ZXJhbCJfcykKKworICAgICAgICBPdGhlcnMgZGlk
IGl0IG9uZSBvZiB0aGVzZToKKworICAgICAgICAgICAganNTdHJpbmcodm0sICJsaXRlcmFsIikK
KyAgICAgICAgICAgIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImxpdGVyYWwiKQorCisgICAgICAg
IENoYW5nZWQgYWxsIHRoZSBjYWxsIHNpdGVzIHRvIGRvIGl0IHRoZSBmaXJzdCwgKnNsaWdodGx5
KiBtb3JlIGVmZmljaWVudCwgd2F5LgorCisgICAgICAgICogcnVudGltZS9BcnJheUl0ZXJhdG9y
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlvblByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkFzeW5jRnVuY3Rpb25Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpBc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9Bc3luY0dlbmVyYXRvclByb3RvdHlwZS5jcHA6
CisgICAgICAgIChKU0M6OkFzeW5jR2VuZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogcnVudGltZS9CaWdJbnRQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpC
aWdJbnRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0dlbmVy
YXRvckZ1bmN0aW9uUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6R2VuZXJhdG9yRnVuY3Rp
b25Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0dlbmVyYXRv
clByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkdlbmVyYXRvclByb3RvdHlwZTo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJ
bnRsRGF0ZVRpbWVGb3JtYXQ6OmZvcm1hdFRvUGFydHMpOgorICAgICAgICAqIHJ1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1l
Rm9ybWF0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdDo6Zm9ybWF0
VG9QYXJ0cyk6CisgICAgICAgICogcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNEYXRhVmlld1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
SlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU01vZHVsZU5hbWVz
cGFjZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTT05PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAg
ICAgKiBydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTUHJv
bWlzZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJv
dG9HZXR0ZXJGdW5jVG9TdHJpbmdUYWcpOgorICAgICAgICAqIHJ1bnRpbWUvTWFwSXRlcmF0b3JQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpNYXBJdGVyYXRvclByb3RvdHlwZTo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvTWFwUHJvdG90eXBlLmNwcDoKKyAgICAgICAg
KEpTQzo6TWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9N
YXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24p
OgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
cmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwU3RyaW5n
SXRlcmF0b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBTdHJpbmdJdGVyYXRv
clByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvU2V0SXRlcmF0
b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTZXRJdGVyYXRvclByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvU2V0UHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6U2V0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGlt
ZS9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9TeW1ib2xQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTeW1ib2xQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwOgorICAgICAgICAo
SlNDOjpXZWFrTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGlt
ZS9XZWFrT2JqZWN0UmVmUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6V2Vha09iamVjdFJl
ZlByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha1NldFBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OldlYWtTZXRQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgQ2FsbCBqc05vbnRyaXZpYWxTdHJpbmcgaW5zdGVhZCBvZiBqc1N0cmlu
ZyBhbmQgdXNlIHRoZSBfcyBzdWZmaXguCisKIDIwMTktMTItMTkgIFNhYW0gQmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgY2FjaGUgc2VsZiBjdXN0b21zIG9uIGRp
Y3Rpb25hcmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCAzYzBmNGY1MmViZTNhNzZkYmEwMjY0MTVm
ODliYThmNTE5Zjg0YmZhLi45Y2E1MjA0MDhjMDMyOGRjMzVmYTFiMTRmYzFhNmYyYzk5ZTRiNDg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9y
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtNDMsMTAgKzQzLDggQEAgdm9pZCBBcnJheUl0ZXJhdG9y
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVy
aXRzKHZtLCBpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZtLCAiQXJyYXkgSXRl
cmF0b3IiKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIkFycmF5
IEl0ZXJhdG9yIl9zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5KTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04odm0ucHJvcGVydHlOYW1lcy0+bmV4dCwgYXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHRD
b2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSk7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBcnJheSBG
dW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rp
b25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5j
dGlvblByb3RvdHlwZS5jcHAKaW5kZXggYTc0ZGU4NTgwM2M5ZTRlMzljOWI3NDQ0NmNlMTkzMmMy
ZDMxZDFiYi4uNjE0MmI1YWUyMThiMWE0ZmFhMGM3NTRiZTZjODg0NzBjNzY2YTk4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvblByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvblBy
b3RvdHlwZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBBc3luY0Z1bmN0aW9uUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZt
LCAiQXN5bmNGdW5jdGlvbiIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNOb250cml2aWFsU3RyaW5n
KHZtLCAiQXN5bmNGdW5jdGlvbiJfcyksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5j
dGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dl
bmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCA1OTljODE5ODM0MGM0MWQ0NjYwNWI0
ZDZiNzdlMTg4ZDJmNzNhYTdlLi5hMjgyMGVlMGQ1OTUxMjcyNTM0Yjg1OWU3Y2U4YWMxNzVkYWJh
YjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVy
YXRvckZ1bmN0aW9uUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtNTAsNyArNTAsNyBA
QCB2b2lkIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSkKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRz
KHZtLCBpbmZvKCkpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRE
ZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNTdHJpbmcodm0sICJBc3luY0dlbmVyYXRvckZ1
bmN0aW9uIiksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJBc3lu
Y0dlbmVyYXRvckZ1bmN0aW9uIl9zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvclByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvclBy
b3RvdHlwZS5jcHAKaW5kZXggN2M3NmVjNzU0NzM2OTcyYWE4NGYyM2I3MDM3ZWQ3MjBkNTVmZmUz
ZS4uYTAxMDFkM2QwYzZjZWViYWQ5YTUyM2JjYWYyZDI5NDgxYmU5ZTBlMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yUHJvdG90
eXBlLmNwcApAQCAtNDksNyArNDksNyBAQCB2b2lkIEFzeW5jR2VuZXJhdG9yUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0pCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmlu
Zyh2bSwgIkFzeW5jR2VuZXJhdG9yIiksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc05vbnRyaXZpYWxT
dHJpbmcodm0sICJBc3luY0dlbmVyYXRvciJfcyksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludFByb3RvdHlwZS5j
cHAKaW5kZXggZDQ2MzgzYzk1M2U5MTYzOGI0MzE4ZTlhZmU4YjQzYjNhNGRhMGNmNC4uZGI0YTYx
ODg5OWQ1M2FlNWI1YzIwZmMwOTVkNDE5YTFlZTk5NmVmOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRQcm90b3R5cGUuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHZvaWQgQmlnSW50UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVy
aXRzKHZtLCBpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZtLCAiQmlnSW50Iiks
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PnRvU3RyaW5nVGFnU3ltYm9sLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJCaWdJbnQiX3MpLCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkp
OwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IGY2NWE4
MzRlYjM4ZjExZDQzZjIzNzJmMTMyY2Q2YjM2ODg4MTI1YmUuLmU0MGQ4NTAzYTAxMDRlY2FkMmNm
YWU3NWMwYzE1NDljMWE5NGIxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTUyLDcg
KzUyLDcgQEAgdm9pZCBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtKQogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJp
dHModm0sIGluZm8oKSkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNT
dHJpbmcodm0sICJHZW5lcmF0b3JGdW5jdGlvbiIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNOb250
cml2aWFsU3RyaW5nKHZtLCAiR2VuZXJhdG9yRnVuY3Rpb24iX3MpLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5l
cmF0b3JQcm90b3R5cGUuY3BwCmluZGV4IDk5ODIzYWEwNzVkNWNhZWNjODAyYThhZGUwMDk2ZWEy
ODk3ZjhmMTIuLjgyN2Y2MzgwNWQ1NTgxODUyNmJjOGM3OWZhMTVjOWI1ZjZkOGNlNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyYXRvclByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yUHJvdG90eXBl
LmNwcApAQCAtNDksNyArNDksNyBAQCB2b2lkIEdlbmVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NF
UlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNTdHJpbmcodm0sICJH
ZW5lcmF0b3IiKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIkdl
bmVyYXRvciJfcyksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKaW5k
ZXggMjM3NzBlY2EzYmVlMDBjMzhjNTQ1MjVhYWZkYzE2ZmM4MWUwZjE5NC4uZDQ0MjMyYWM2MTg0
YWFmMjU5M2VmMmViZGJkZjk5Njg3N2NhNGQxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwCkBAIC03NSw3ICs3
NSw3IEBAIHZvaWQgSW50bENvbGxhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0p
CiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogCi0gICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0
cmluZyh2bSwgIk9iamVjdCIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNOb250cml2aWFsU3RyaW5n
KHZtLCAiT2JqZWN0Il9zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bENvbGxhdG9yRnVuY0NvbXBhcmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAppbmRleCBmZGYyZjY4Mjk3ZTc1N2IyZTFk
YjNlOWJhZTI1YThkNTNkZTIxNjRmLi45MTI4M2QyMTI4ZGFmYjg0NWZhYzQ2NDNjZmFjYWIwNDM1
ZGJlZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdC5jcHAKQEAgLTEwMTMsNyArMTAxMyw3IEBAIEpTVmFsdWUgSW50bERhdGVU
aW1lRm9ybWF0Ojpmb3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRv
dWJsZSB2CiAKICAgICBhdXRvIHJlc3VsdFN0cmluZyA9IFN0cmluZyhyZXN1bHQuZGF0YSgpLCBy
ZXN1bHRMZW5ndGgpOwogICAgIGF1dG8gdHlwZVByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJ0eXBlIik7Ci0gICAgYXV0byBsaXRlcmFsU3RyaW5nID0ganNTdHJpbmco
dm0sICJsaXRlcmFsIl9zKTsKKyAgICBhdXRvIGxpdGVyYWxTdHJpbmcgPSBqc05vbnRyaXZpYWxT
dHJpbmcodm0sICJsaXRlcmFsIl9zKTsKIAogICAgIGludDMyX3QgcHJldmlvdXNFbmRJbmRleCA9
IDA7CiAgICAgaW50MzJfdCBiZWdpbkluZGV4ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3Bw
CmluZGV4IGQwNDNlZjdmZmQ2MDA1YmQxODc1M2E0ZDIyYTIxN2I3YzgwY2NkNTQuLjE4ODFlODQy
M2VhNDU4OGFjZDMyOTU2NWNkMTM3M2FmMDc4NDExYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBl
LmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIFVOVVNF
RF9QQVJBTShnbG9iYWxPYmplY3QpOwogI2VuZGlmCiAKLSAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5n
KHZtLCAiT2JqZWN0IiksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc05vbnRyaXZpYWxTdHJpbmcodm0s
ICJPYmplY3QiX3MpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsRGF0ZVRpbWVGb3JtYXRGdW5jRm9ybWF0RGF0ZVRpbWUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4IDY3MTEyYzZlNTUyMDk2
YjZlYjBkMWNkNjAyZjI3ZWI2ZDFhNzIzNzMuLmQ3NTdiY2MzNjRhYmFlYzcwMzc4MzNmY2I5NzFh
YTcwYWI4MjEwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxOdW1iZXJGb3JtYXQuY3BwCkBAIC01MjksNyArNTI5LDcgQEAgSlNWYWx1ZSBJbnRsTnVtYmVy
Rm9ybWF0Ojpmb3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWJs
ZSB2YWwKIAogICAgIGF1dG8gcmVzdWx0U3RyaW5nID0gU3RyaW5nKHJlc3VsdC5kYXRhKCksIHJl
c3VsdExlbmd0aCk7CiAgICAgYXV0byB0eXBlUHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgInR5cGUiKTsKLSAgICBhdXRvIGxpdGVyYWxTdHJpbmcgPSBqc1N0cmluZyh2
bSwgImxpdGVyYWwiX3MpOworICAgIGF1dG8gbGl0ZXJhbFN0cmluZyA9IGpzTm9udHJpdmlhbFN0
cmluZyh2bSwgImxpdGVyYWwiX3MpOwogCiAgICAgaW50MzJfdCBjdXJyZW50SW5kZXggPSAwOwog
ICAgIHdoaWxlIChjdXJyZW50SW5kZXggPCByZXN1bHRMZW5ndGgpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlw
ZS5jcHAKaW5kZXggOTFiNDgzZjI5YjNlZjU5NjBhZDM1MmFlZmE2ZmUzNDkwMjMzODA3ZC4uMThi
OTJiNmE5MTE1OGE5NjU0NDIzODA4ZmQ2ZjhiOThkMTI5NTMzYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlw
ZS5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBVTlVT
RURfUEFSQU0oZ2xvYmFsT2JqZWN0KTsKICNlbmRpZgogCi0gICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmlu
Zyh2bSwgIk9iamVjdCIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNOb250cml2aWFsU3RyaW5nKHZt
LCAiT2JqZWN0Il9zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bE51bWJlckZvcm1hdEZ1bmNGb3JtYXROdW1iZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlLmNwcAppbmRleCAy
M2Y4MTJjYjIxOTRmNzE1ZTg4Y2Q5MzEwNWNmODgyMTE3YjE1ZWRjLi4wN2U1NTA0ZWQ1OTNlMDQ4
ZDFlZmU0ZTc1ZTU5Y2MyMjZiNDNjMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5jcHAKQEAgLTc1LDcg
Kzc1LDcgQEAgdm9pZCBJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgU3RydWN0dXJlKikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAKLSAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJp
bmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZtLCAiT2JqZWN0IiksIFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBq
c05vbnRyaXZpYWxTdHJpbmcodm0sICJPYmplY3QiX3MpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCmlu
ZGV4IDIyYmVjOTJlZmY5ZDk0OTM4ZmY2MjAzMWU1ZGJiYWQxMjA3NGRiMDIuLjVlNjFmMDY3MDQ5
YzcxYjdmYThjOTk1ZWU2YTYzM2MwNGUyMzQ2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCkBAIC0xMDksNyArMTA5
LDcgQEAgSlNEYXRhVmlld1Byb3RvdHlwZSogSlNEYXRhVmlld1Byb3RvdHlwZTo6Y3JlYXRlKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB2b2lkIEpTRGF0YVZpZXdQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKEpTQzo6Vk0mIHZtKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZtLCAiRGF0YVZpZXciKSwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdT
eW1ib2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIkRhdGFWaWV3Il9zKSwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAogU3Ry
dWN0dXJlKiBKU0RhdGFWaWV3UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVj
dC5jcHAKaW5kZXggMjU5OWFjZDIwYzhkZjgwYjQyNjRmYWI1OTc0YzRhOTQyMTgyY2VjYS4uMTc1
Njg2ZGNjNjgzYmVmMmY3YzNkYmRkMTBkNDgwYTIyODYwNzRiMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNw
cApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0OjpmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBBYnN0cgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5
bWJvbCwganNTdHJpbmcodm0sICJNb2R1bGUiKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkpOworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdT
eW1ib2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIk1vZHVsZSJfcyksIFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5KTsKIAogICAgIC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlv
bmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1tb2R1bGUtbmFtZXNwYWNlLWV4b3RpYy1vYmplY3Rz
LWdldHByb3RvdHlwZW9mCiAgICAgLy8gaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3Jn
L2VjbWEtMjYyLzYuMC8jc2VjLW1vZHVsZS1uYW1lc3BhY2UtZXhvdGljLW9iamVjdHMtc2V0cHJv
dG90eXBlb2YtdgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
Tk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cAppbmRleCA0YjkyYTQ1YWRmYWQ2ODhmNGQ4YTNkZDYyNTY5YmE2MmFlYmQ2MThhLi4wY2ZkYmU5
ZWUwZGM1OGQwMzdhNjY0ZDM1MjQzMzAyNjhlZjAxYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEpTT05P
YmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKIAotICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwg
anNTdHJpbmcodm0sICJKU09OIiksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc05vbnRyaXZpYWxTdHJp
bmcodm0sICJKU09OIl9zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAogLy8gUHJvcGVydHlOYW1lRm9yRnVuY3Rpb25DYWxs
IG9iamVjdHMgbXVzdCBiZSBvbiB0aGUgc3RhY2ssIHNpbmNlIHRoZSBKU1ZhbHVlIHRoYXQgdGhl
eSBjcmVhdGUgaXMgbm90IG1hcmtlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwCmluZGV4IDgzOGZmZjMzNmQ5YTkwODdhYzQ2
YTc5MTE4NTVlMTViZDMzZDg0OWMuLmRiYzIzMWUxMWM5YzZiZTFkMTllYTEwNjZiZGQ5NTIzNGVi
ZmFjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9t
aXNlUHJvdG90eXBlLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIEpTUHJvbWlzZVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQog
ewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudGhlblB1YmxpY05h
bWUoKSwgZ2xvYmFsT2JqZWN0LT5wcm9taXNlUHJvdG9UaGVuRnVuY3Rpb24oKSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJv
bCwganNTdHJpbmcodm0sICJQcm9taXNlIiksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc05vbnRyaXZp
YWxTdHJpbmcodm0sICJQcm9taXNlIl9zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAogdm9pZCBKU1Byb21pc2VQcm90b3R5
cGU6OmFkZE93bkludGVybmFsU2xvdHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFy
cmF5Vmlld1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcAppbmRleCAzMTU2MjIxNzQwMzQxYWRlMDBiOWQ4YjAw
N2NhOWM2NTYwMjI5Nzg4Li5iZjQzYzY0NGQwNjAwZGI3MDI1ZTc0NzUxYTk4ZmU4YTI2NTdhNzI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcApAQCAtMjU2LDIzICsyNTYsMjMgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNU
b1N0cmluZ1RhZyhKU0cKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgc3dp
dGNoICh0aGlzVmFsdWUuZ2V0T2JqZWN0KCktPmNsYXNzSW5mbyh2bSktPnR5cGVkQXJyYXlTdG9y
YWdlVHlwZSkgewogICAgIGNhc2UgVHlwZVVpbnQ4Q2xhbXBlZDoKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgIlVpbnQ4Q2xhbXBlZEFycmF5IikpOworICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlVpbnQ4Q2xh
bXBlZEFycmF5Il9zKSk7CiAgICAgY2FzZSBUeXBlSW50MzI6Ci0gICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNTdHJpbmcodm0sICJJbnQzMkFycmF5IikpOworICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIkludDMyQXJyYXkiX3MpKTsK
ICAgICBjYXNlIFR5cGVVaW50MzI6Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNT
dHJpbmcodm0sICJVaW50MzJBcnJheSIpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc05vbnRyaXZpYWxTdHJpbmcodm0sICJVaW50MzJBcnJheSJfcykpOwogICAgIGNhc2UgVHlw
ZUZsb2F0NjQ6Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sICJG
bG9hdDY0QXJyYXkiKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2
aWFsU3RyaW5nKHZtLCAiRmxvYXQ2NEFycmF5Il9zKSk7CiAgICAgY2FzZSBUeXBlRmxvYXQzMjoK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgIkZsb2F0MzJBcnJh
eSIpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmco
dm0sICJGbG9hdDMyQXJyYXkiX3MpKTsKICAgICBjYXNlIFR5cGVJbnQ4OgotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCAiSW50OEFycmF5IikpOworICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIkludDhBcnJheSJf
cykpOwogICAgIGNhc2UgVHlwZVVpbnQ4OgotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzU3RyaW5nKHZtLCAiVWludDhBcnJheSIpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sICJVaW50OEFycmF5Il9zKSk7CiAgICAgY2FzZSBU
eXBlSW50MTY6Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sICJJ
bnQxNkFycmF5IikpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlh
bFN0cmluZyh2bSwgIkludDE2QXJyYXkiX3MpKTsKICAgICBjYXNlIFR5cGVVaW50MTY6Ci0gICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sICJVaW50MTZBcnJheSIpKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sICJV
aW50MTZBcnJheSJfcykpOwogICAgIGNhc2UgTm90VHlwZWRBcnJheToKICAgICBjYXNlIFR5cGVE
YXRhVmlldzoKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcEl0ZXJhdG9yUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcEl0ZXJhdG9yUHJv
dG90eXBlLmNwcAppbmRleCBhOTJmOTY4YjBlMjU1YWMwYzI3ZGM2YWQ1YWE3ODMyN2VhMTcwNjU5
Li40ODhiYTI3ZjVmNzEzNTY5MDYxNzZkZjNiZjQ1MzM5MDcyNDNiYmFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBJdGVyYXRvclByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0b3JQcm90b3R5cGUuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgTWFwSXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKIAotICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmlu
Z1RhZ1N5bWJvbCwganNTdHJpbmcodm0sICJNYXAgSXRlcmF0b3IiKSwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1i
b2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIk1hcCBJdGVyYXRvciJfcyksIFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiAgICAgSlND
X0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPm5l
eHQsIG1hcEl0ZXJhdG9yUHJvdG90eXBlTmV4dENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKaW5kZXggMWI1OWQ5ODhhMGFh
OTg1ZDA5ZjY5NWE4NzQ4MTM2ZjZhNDVhYmE0Zi4uM2JhZTg3ZWI1NDY5ZGQ2OWI0MGJmNWQxM2Jh
NDdkOTEwNTNkMTY2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQ
cm90b3R5cGUuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgTWFwUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgSlNGdW5j
dGlvbiogZW50cmllcyA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgbWFwUHJvdG90eXBlRW50cmll
c0NvZGVHZW5lcmF0b3Iodm0pLCBnbG9iYWxPYmplY3QpOwogICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVi
bGljTmFtZSgpLCBlbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBlbnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmlu
Zyh2bSwgIk1hcCIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNOb250cml2aWFsU3RyaW5nKHZtLCAi
TWFwIl9zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KTsKIAogICAgIEpTQ19OQVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5zaXplLCBtYXBQcm90b0Z1bmNTaXplLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmluZGV4IGFmNWNhNDY3MWYyZGRk
MmYwMDIzZmIwNGYxMjUzOGQ1ZDNiZWE1Y2EuLjk2ODllM2Y0NWJhZDI5ZDJjZjk3YzFlMjg3ZGFk
OTU3YTgyNzU5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmpl
Y3QuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiUEkiKSwganNOdW1i
ZXIocGlEb3VibGUpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJT
UVJUMV8yIiksIGpzTnVtYmVyKHNxcnQoMC41KSksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVs
ZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5KTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgIlNRUlQyIiksIGpzTnVtYmVyKHNxcnQoMi4wKSksIFByb3BlcnR5QXR0
cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZtLCAiTWF0
aCIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNOb250cml2aWFsU3RyaW5nKHZtLCAiTWF0aCJfcyks
IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSk7CiAKICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJhYnMiKSwgMSwgbWF0aFBy
b3RvRnVuY0FicywgQWJzSW50cmluc2ljLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb25XaXRob3V0
VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
YWNvcyIpLCAxLCBtYXRoUHJvdG9GdW5jQUNvcywgQUNvc0ludHJpbnNpYywgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggMmExMDNhYjBi
ZjRhZmIzMmE0MzM1ZDkxMWJmMzRiMzI5NmZjMzQ2Ni4uYWUxMTJkZTJiNTYwYzE1YmM0MTEzODE3
NjlmZmYzZjA2OTc5YWY4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC00NjMsNyArNDYzLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNvdXJjZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWMKICAgICBhdXRvKiByZWdleHAgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cE9iamVjdCo+
KHZtLCB0aGlzVmFsdWUpOwogICAgIGlmIChVTkxJS0VMWSghcmVnZXhwKSkgewogICAgICAgICBp
ZiAodGhpc1ZhbHVlLmluaGVyaXRzPFJlZ0V4cFByb3RvdHlwZT4odm0pKQotICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgIig/OikiX3MpKTsKKyAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFsU3RyaW5nKHZtLCAiKD86KSJf
cykpOwogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiVGhlIFJlZ0V4cC5wcm90b3R5cGUuc291cmNlIGdldHRlciBjYW4gb25seSBiZSBjYWxsZWQg
b24gYSBSZWdFeHAgb2JqZWN0Il9zKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBl
LmNwcAppbmRleCA2Y2Q0ZDBhZTVhOTdkMGM4NjU1MDA0MmMxYTk5M2MxYmM3MjkzM2JjLi4yMWNj
YWNlNDYxYjU4NDFlMGI5NGM1ZWJkZmRlZjM4MmJhMDQ2Nzk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwU3RyaW5nSXRlcmF0b3JQ
cm90b3R5cGUuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgUmVnRXhwU3RyaW5nSXRlcmF0b3JQ
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhCiB7
CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyh2bSwg
aW5mbygpKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZyh2bSwgIlJlZ0V4cCBTdHJpbmcgSXRl
cmF0b3IiKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlJlZ0V4
cCBTdHJpbmcgSXRlcmF0b3IiX3MpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5uZXh0LCByZWdFeHBTdHJpbmdJdGVyYXRv
clByb3RvdHlwZU5leHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NldEl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCAxN2NmZGNiYTgy
ZjE5YzQ0YmQyM2MxNmZkOTFjMDExZmM2Y2ViMjQzLi5kYWUxNTEzZjI2ZjlkMTA2OGU3ZjFlM2Mw
Njk2MDhjNGI3MmJlNjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TZXRJdGVyYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2V0SXRlcmF0b3JQcm90b3R5cGUuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHZvaWQgU2V0
SXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogCiAgICAg
SlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJuZXh0Iiwgc2V0SXRlcmF0
b3JQcm90b3R5cGVOZXh0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNTdHJpbmcodm0sICJT
ZXQgSXRlcmF0b3IiKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwg
IlNldCBJdGVyYXRvciJfcyksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TZXRQcm90b3R5cGUuY3BwCmluZGV4IGUxOTc0MzNmMzBjMTlkNzI0ZGM4Mzg4ZDA5
ZjQ1MWRkMzAyZmU4NzIuLjcxNzU5ZDRhMjIwZDU0NTBiYzBlMzMwNDE4MzQ4Y2JjZjdlYjRjNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcApA
QCAtNzEsNyArNzEsNyBAQCB2b2lkIFNldFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS52YWx1ZXNQdWJsaWNO
YW1lKCksIHZhbHVlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5rZXlzUHVibGljTmFtZSgpLCB2YWx1ZXMsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2ws
IHZhbHVlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT50b1N0cmluZ1RhZ1N5bWJvbCwganNTdHJpbmcodm0sICJTZXQiKSwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1i
b2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlNldCJfcyksIFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiAKICAgICBKU0NfTkFUSVZF
X0dFVFRFUl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+c2l6ZSwgc2V0UHJv
dG9GdW5jU2l6ZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1
dGU6OkFjY2Vzc29yKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuY3BwCmluZGV4IDU5NDY5YzEyZDJjMzc3NDA3
ZTUzNGVjMDU3ZjljMjI4YjlhZmVmZTkuLmNmMjZlZGIzZjE1ODkwMTRlZDkwMmYxNjVlN2NlMDAy
ZWRhMGIwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z0l0ZXJhdG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgdm9pZCBTdHJp
bmdJdGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWMKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNT
RVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZtLCAi
U3RyaW5nIEl0ZXJhdG9yIiksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc05vbnRyaXZpYWxTdHJpbmco
dm0sICJTdHJpbmcgSXRlcmF0b3IiX3MpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5uZXh0LCBzdHJpbmdJdGVyYXRvclBy
b3RvdHlwZU5leHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCmluZGV4IGYzZjQ2NTRiOWZhYmU4ODlkMzI3Y2Vm
MmY1ZWI4M2Q0NWI2ZGZmNDYuLjc3Yjc3YzQ5NWJmNjNjYzdhMzJkMWQ1YjUyNTQ4OWRhNTY1MGRk
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90
eXBlLmNwcApAQCAtNjIsNyArNjIsNyBAQCBTeW1ib2xQcm90b3R5cGU6OlN5bWJvbFByb3RvdHlw
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogdm9pZCBTeW1ib2xQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZyh2bSwg
IlN5bWJvbCIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNOb250cml2aWFsU3RyaW5nKHZtLCAiU3lt
Ym9sIl9zKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogCiAgICAgSlNG
dW5jdGlvbiogdG9QcmltaXRpdmVGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LCAxLCAiW1N5bWJvbC50b1ByaW1pdGl2ZV0iX3MsIHN5bWJvbFByb3RvRnVuY1Zh
bHVlT2YsIE5vSW50cmluc2ljKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2Vha01hcFByb3RvdHlwZS5jcHAKaW5kZXggMzVkYzQyYjJhOWM4MzgwYzFjNmVmMGE0YmUx
MjA2YmY2NDQ5YmRmNC4uY2JiYTIyMzRlOTMyNWRhNjU1ZGZlMDg1ZTQ3YWUwZWE4MWM2ZGFiNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlw
ZS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBXZWFrTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgSlNDX05BVElW
RV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmhhcywgcHJvdG9GdW5jV2Vha01hcEhhcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIDEsIEpTV2Vha01hcEhhc0ludHJpbnNpYyk7CiAgICAgSlND
X05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPnNldCwgcHJvdG9GdW5jV2Vha01hcFNldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIsIEpTV2Vha01hcFNldEludHJpbnNpYyk7CiAK
LSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9T
dHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZtLCAiV2Vha01hcCIpLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJv
bCwganNOb250cml2aWFsU3RyaW5nKHZtLCAiV2Vha01hcCJfcyksIFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKIEFMV0FZU19J
TkxJTkUgc3RhdGljIEpTV2Vha01hcCogZ2V0V2Vha01hcChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2Vha09iamVjdFJlZlByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9XZWFrT2JqZWN0UmVmUHJvdG90eXBlLmNwcAppbmRleCAyOWYyMjNlNDU5MjUw
NDM0NDQ4NjA2YzliODRiNGNjYzA0MzU5YmViLi5hMjNiOTkxN2VkOWVmOWNkNjcyMGQ2ZTEyYzMz
N2FjN2NhYWEyNjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrT2JqZWN0UmVmUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9XZWFrT2JqZWN0UmVmUHJvdG90eXBlLmNwcApAQCAtNDQsNyArNDQsNyBAQCB2b2lkIFdl
YWtPYmplY3RSZWZQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdAogICAgIC8vIEZJWE1FOiBJdCB3b3VsZG4ndCBiZSBoYXJkIHRvIG1h
a2UgdGhpcyBhbiBpbnRyaW5zaWMuCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+ZGVyZWYsIHByb3RvRnVuY1dlYWtSZWZEZXJlZiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwog
Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRv
U3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZyh2bSwgIldlYWtSZWYiKSwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1i
b2wsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIldlYWtSZWYiX3MpLCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCiBBTFdBWVNf
SU5MSU5FIHN0YXRpYyBKU1dlYWtPYmplY3RSZWYqIGdldFdlYWtSZWYoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5jcHAKaW5kZXggNTZhMjJiMDIyMGY2YTgyMzVi
MDA4OWU3OTVkZTFmMjkxODgxM2MwYy4uMmMxZmQ5ZDJiNTZjMTU5ZDUyZjkwZGQ3MzU4NDc4ZGY0
OTBkNDI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1Nl
dFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1Nl
dFByb3RvdHlwZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBXZWFrU2V0UHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAg
SlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmhhcywgcHJvdG9GdW5jV2Vha1NldEhhcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEsIEpTV2Vha1NldEhhc0ludHJpbnNpYyk7
CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmFkZCwgcHJvdG9GdW5jV2Vha1NldEFkZCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEsIEpTV2Vha1NldEFkZEludHJp
bnNpYyk7CiAKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKHZtLCAiV2Vha1NldCIpLCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmlu
Z1RhZ1N5bWJvbCwganNOb250cml2aWFsU3RyaW5nKHZtLCAiV2Vha1NldCJfcyksIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAK
IEFMV0FZU19JTkxJTkUgc3RhdGljIEpTV2Vha1NldCogZ2V0V2Vha1NldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQo=
</data>
<flag name="review"
          id="402067"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>