<?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>149449</bug_id>
          
          <creation_ts>2015-09-21 23:16:10 -0700</creation_ts>
          <short_desc>Reduce almost uses of PassRefPtr in Webcore/testing</short_desc>
          <delta_ts>2015-09-24 07:57:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1127942</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-21 23:16:10 -0700</bug_when>
    <thetext>I fail to remove PassRefPtr in nternals::serializeObject() and Internals::deserializeObject(). I want to remove it in next patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1127943</commentid>
    <comment_count>1</comment_count>
      <attachid>261728</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-21 23:17:21 -0700</bug_when>
    <thetext>Created attachment 261728
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128000</commentid>
    <comment_count>2</comment_count>
      <attachid>261743</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-22 08:22:48 -0700</bug_when>
    <thetext>Created attachment 261743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128012</commentid>
    <comment_count>3</comment_count>
      <attachid>261743</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-22 09:23:17 -0700</bug_when>
    <thetext>Comment on attachment 261743
Patch

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

r=me but please don’t land the incorrect change to JSTestOverrideBuiltins.cpp

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:220
&gt; -    JSValue result = toJS(state, castedThis-&gt;globalObject(), WTF::getPtr(impl.namedItem(name)));
&gt; +    JSValue result = toJS(state, castedThis-&gt;globalObject(), WTF::getPtr(impl.namedItem(WTF::move(name))));

This is an expected test result for the bindings generator test, not a source file.

To fix this, we need to change the code that generates this file, not change the file itself.

If you land this change as is, it will just cause the test to start failing because this file doesn’t match what the generator generates. The code for this is deep inside the GenerateImplementation function in the file CodeGeneratorJS.pm.

&gt; Source/WebCore/testing/MallocStatistics.h:36
&gt; +    static Ref&lt;MallocStatistics&gt; create() { return adoptRef(*new MallocStatistics()); }

No need for the () after MallocStatistics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128324</commentid>
    <comment_count>4</comment_count>
      <attachid>261824</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-23 09:01:23 -0700</bug_when>
    <thetext>Created attachment 261824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128327</commentid>
    <comment_count>5</comment_count>
      <attachid>261743</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-23 09:06:09 -0700</bug_when>
    <thetext>Comment on attachment 261743
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:220
&gt;&gt; +    JSValue result = toJS(state, castedThis-&gt;globalObject(), WTF::getPtr(impl.namedItem(WTF::move(name))));
&gt; 
&gt; This is an expected test result for the bindings generator test, not a source file.
&gt; 
&gt; To fix this, we need to change the code that generates this file, not change the file itself.
&gt; 
&gt; If you land this change as is, it will just cause the test to start failing because this file doesn’t match what the generator generates. The code for this is deep inside the GenerateImplementation function in the file CodeGeneratorJS.pm.

I see. I was wrong. I remove WTF::move() in this line. Thanks.

&gt;&gt; Source/WebCore/testing/MallocStatistics.h:36
&gt;&gt; +    static Ref&lt;MallocStatistics&gt; create() { return adoptRef(*new MallocStatistics()); }
&gt; 
&gt; No need for the () after MallocStatistics.

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128490</commentid>
    <comment_count>6</comment_count>
      <attachid>261824</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-24 07:57:13 -0700</bug_when>
    <thetext>Comment on attachment 261824
Patch

Clearing flags on attachment: 261824

Committed r190202: &lt;http://trac.webkit.org/changeset/190202&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128491</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-24 07:57:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261728</attachid>
            <date>2015-09-21 23:17:21 -0700</date>
            <delta_ts>2015-09-22 08:22:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149449-20150922151704.patch</filename>
            <type>text/plain</type>
            <size>25877</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQ5NmFiNzhkNDg4OWVh
NmEzN2U5YTU1MGZmNzQxY2IyMTZkNzlmZi4uNjBmZWQwOGFkMjhmMjY5ZDMxOTcwZGJjMjE5Nzhj
NDBjZDgwMmE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE1LTA5LTIxICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZWR1Y2UgYWxt
b3N0IHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJjb3JlL3Rlc3RpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTQ0OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwg
dXNlcyBvZiBQYXNzUmVmUHRyIGV4Y2VwdCBmb3IgSW50ZXJuYWxzOjpzZXJpYWxpemVPYmplY3Qo
KSBhbmQgSW50ZXJuYWxzOjpkZXNlcmlhbGl6ZU9iamVjdCgpLgorICAgICAgICBJdCB3aWxsIGJl
IHJlbW92ZWQgYnkgdXBjb21pbmcgcGF0Y2guCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNz
aW9uQ2xlYXJLZXk6OmdlbmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6Z2VuZXJhdGVLZXlS
ZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDOjpnZW5lcmF0ZUtleVJlcXVlc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpn
ZW5lcmF0ZUtleVJlcXVlc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6Y3JlYXRlKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNvbXB1dGVkU3R5bGVJbmNsdWRp
bmdWaXNpdGVkSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1hcmtlclJhbmdl
Rm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJhbmdlRnJvbUxvY2F0aW9u
QW5kTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c3VicmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6bWFsbG9jU3RhdGlzdGljcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnR5cGVDb252ZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1l
bW9yeUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXJpYWxpemVPYmplY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpkZXNlcmlhbGl6ZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNyZWF0ZVRpbWVSYW5nZXMpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9NYWxsb2NTdGF0aXN0aWNzLmg6
CisgICAgICAgIChXZWJDb3JlOjpNYWxsb2NTdGF0aXN0aWNzOjpjcmVhdGUpOgorICAgICAgICAq
IHRlc3RpbmcvTWVtb3J5SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5mbzo6Y3Jl
YXRlKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDRE0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja0NETVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgICogdGVzdGluZy9U
eXBlQ29udmVyc2lvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVDb252ZXJzaW9uczo6Y3Jl
YXRlKToKKwogMjAxNS0wOS0yMSAgR3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4K
IAogICAgICAgICBbVGhyZWFkZWQgQ29tcG9zaXRvcl0gTW9kaWZpZWQgdG8gdXNlIHJlZmVyZW5j
ZSBvZiBHcmFwaGljc0NvbnRleHQgaW5zdGVhZCBvZiBwb2ludGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktl
eS5jcHAKaW5kZXggMDEzYjNiMjBkMGJhNzk3MjYwN2EyYzU1MmQ3MmI1NWE0Y2RmMjFhNC4uOGMx
MmJkMmI3ZWZhYTUxMWE3ODM0NzM0ZTRhODZhMGE4ZWUzNmRlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFy
S2V5LmNwcApAQCAtNjgsNyArNjgsNyBAQCBDRE1TZXNzaW9uQ2xlYXJLZXk6On5DRE1TZXNzaW9u
Q2xlYXJLZXkoKQogewogfQogCi1QYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25DbGVh
cktleTo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENE
TVNlc3Npb25DbGVhcktleTo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQogewogICAgIFVO
VVNFRF9QQVJBTShtaW1lVHlwZSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uVVJMKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vz
c2lvbkNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NE
TVNlc3Npb25DbGVhcktleS5oCmluZGV4IDBhOWRkN2UzNzg1Zjg2MzVlZjEyZjJmNjc5NTU2ZTE3
Mzk2ZjdlMjguLmE5MzFkMzZlYmJkMzIyNGEyYzNmNDk2NWMzZmNmYzI1NzYwOGVjMzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNs
ZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1T
ZXNzaW9uQ2xlYXJLZXkuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBD
RE1TZXNzaW9uVHlwZSB0eXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVDbGVh
cktleTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xp
ZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBjb25zdCBT
dHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklkOyB9
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiwgU3RyaW5nJiwgdW5zaWduZWQgc2hv
cnQmLCB1bnNpZ25lZCBsb25nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8VWludDhB
cnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqLCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mLCB1bnNpZ25lZCBzaG9y
dCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZlB0cjxBcnJheUJ1
ZmZlcj4gY2FjaGVkS2V5Rm9yS2V5SUQoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggOTJlODhlODIxZjVkMzA1Zjg4
OTgyOWNjMmNmYTVlM2U1NjhiMGZiOC4uYTdmM2JhMmQ4NmQzOTViNWViMmRlNTQ2NDkxNjcxYzhk
NzBjZjNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcApAQCAtMjE3LDcg
KzIxNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T3ZlcnJpZGVCdWls
dGluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtKEV4CiAgICAgU3RyaW5nIG5hbWUgPSBzdGF0
ZS0+YXJndW1lbnQoMCkudG9TdHJpbmcoc3RhdGUpLT52YWx1ZShzdGF0ZSk7CiAgICAgaWYgKFVO
TElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKHN0YXRlLCBj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5uYW1lZEl0ZW0obmFt
ZSkpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLm5hbWVkSXRlbShXVEY6Om1vdmUobmFtZSkpKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmgKaW5kZXggNWNmZjlkYTg4ZGI3MWY4
YjU4OWMwMTU2NWM4NjIwZmIyNDUxMTI5NC4uZDMwYmZlMzAzNWUzNjExZTc2NmIwNjJmZjc2NGNl
ZThkNGZmYTFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q0RNU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NETVNl
c3Npb24uaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDRE1TZXNzaW9u
VHlwZSB0eXBlKCkgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVVbmtub3duOyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldENsaWVudChDRE1TZXNzaW9uQ2xpZW50KikgPSAwOwogICAgIHZpcnR1YWwgY29u
c3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBV
aW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hv
cnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAwOworICAgIHZpcnR1
YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5z
aWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSA9IDA7CiAgICAg
dmlydHVhbCBSZWZQdHI8QXJyYXlCdWZmZXI+IGNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9u
Q0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggMDAwMDk3NzEyMTNmMzMyMjI1NmY1
ODI5Y2NmNDkyNTZjOTkyNGU1YS4uNDM2YmQ1NjkwMjc0NjhhZTU5ZDM5MjgzOGMzZDA1ZmQxODgz
MGZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRp
b25DRi5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGOjpDRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW8KIHsKIH0K
IAotUGFzc1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Y6OmdlbmVy
YXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0
YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5z
aWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZG
b3VuZGF0aW9uQ0Y6OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBV
aW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hv
cnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURf
UEFSQU0obWltZVR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDcxMGU4NWRkMGJhZDA4ZjFhYzE2MmFmYzAw
NzUxNDQ0MTQxOTRhOWUuLjI0ZGQxMDgxNDJmNTJjMTU2MzBjYTMyZmM4ODI0ZTU3NWQ5YjJhZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC01Myw3ICs1Myw3IEBAIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpD
RE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kCiB7CiB9
CiAKLVBhc3NSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6Omdl
bmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0
RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9u
QVZGb3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQogewogICAgIFVO
VVNFRF9QQVJBTShtaW1lVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDMwMzk5NmUzMTk5YmE3MjA2
MzYyMThiNmQ2ZTdkMGVlMjI4NTJjZjYuLmZjOTc3M2U5YmZiZGNiY2E3ZTFlZjJhNjg0NmYyN2My
ZmZkNzZjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lv
bk1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTEzLDcgKzExMyw3IEBAIENETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakM6On5DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDKCkKICAgICBzZXRT
dHJlYW1TZXNzaW9uKG51bGxwdHIpOwogfQogCi1QYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwg
dW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKK1Jl
ZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpnZW5lcmF0ZUtl
eVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0
cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcmIHN5c3RlbUNvZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKICAgICBV
TlVTRURfUEFSQU0oZGVzdGluYXRpb25VUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaAppbmRleCA1MjQzNGI0NDc1ZGY3M2I5MTEwYWNhYTk5YjcyNGZjMWNjMzNk
MGFkLi5lOGU2MGUwYzQzZmQzYmI3YTMzZDgyMTdjYWE2YzU5NmI0NmM3MDRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMzUsNyArMzUsNiBAQAogI2lu
Y2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwMyw5ICsxMDIsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIGJvb2wgbV9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJp
YnV0ZTsKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50ZXJuYWxTZXR0aW5ncz4g
Y3JlYXRlKFBhZ2UqIHBhZ2UpCisgICAgc3RhdGljIFJlZjxJbnRlcm5hbFNldHRpbmdzPiBjcmVh
dGUoUGFnZSogcGFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW50ZXJu
YWxTZXR0aW5ncyhwYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEludGVybmFs
U2V0dGluZ3MocGFnZSkpOwogICAgIH0KICAgICBzdGF0aWMgSW50ZXJuYWxTZXR0aW5ncyogZnJv
bShQYWdlKik7CiAgICAgdm9pZCBob3N0RGVzdHJveWVkKCkgeyBtX3BhZ2UgPSAwOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggM2VkZDIwNDA3YWJhZjg5MmQ2ODBjZDBh
MTI1MjA5NzI5YTFkMjUwNS4uNTg4NTcwNGVhZmNiOTNiNzYxYzU3NDI0M2E3OThiNDQwNDkyZmRl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzE2LDkgKzMxNiw5IEBA
IHN0YXRpYyBib29sIG1hcmtlclR5cGVzRnJvbShjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIERv
Y3VtZW50TWFya2VyOjpNYXJrZXJUeXBlCiAKIGNvbnN0IGNoYXIqIEludGVybmFsczo6aW50ZXJu
YWxzSWQgPSAiaW50ZXJuYWxzIjsKIAotUGFzc1JlZlB0cjxJbnRlcm5hbHM+IEludGVybmFsczo6
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1JlZjxJbnRlcm5hbHM+IEludGVybmFsczo6Y3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEludGVy
bmFscyhkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEludGVybmFscyhkb2N1
bWVudCkpOwogfQogCiBJbnRlcm5hbHM6On5JbnRlcm5hbHMoKQpAQCAtNzM4LDExICs3MzgsMTEg
QEAgYm9vbCBJbnRlcm5hbHM6Omhhc1BhdXNlZEltYWdlQW5pbWF0aW9ucyhFbGVtZW50KiBlbGVt
ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gZWxlbWVudC0+cmVuZGVyZXIoKSAm
JiBlbGVtZW50LT5yZW5kZXJlcigpLT5oYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMoKTsKIH0KIAot
UGFzc1JlZlB0cjxDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24+IEludGVybmFsczo6Y29tcHV0
ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAorUmVmUHRyPENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbj4gSW50ZXJuYWxzOjpj
b21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCFub2RlKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCiAgICAgYm9vbCBhbGxvd1Zpc2l0ZWRTdHlsZSA9IHRydWU7CkBAIC0xMDI4LDcgKzEw
MjgsNyBAQCBSZW5kZXJlZERvY3VtZW50TWFya2VyKiBJbnRlcm5hbHM6Om1hcmtlckF0KE5vZGUq
IG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZQogICAgIHJldHVybiBtYXJrZXJzW2luZGV4
XTsKIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjptYXJrZXJSYW5nZUZvck5vZGUo
Tm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25lZCBpbmRleCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6bWFya2VyUmFuZ2VGb3JO
b2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIqIG1hcmtl
ciA9IG1hcmtlckF0KG5vZGUsIG1hcmtlclR5cGUsIGluZGV4LCBlYyk7CiAgICAgaWYgKCFtYXJr
ZXIpCkBAIC0xMjM0LDExICsxMjM0LDExIEBAIHZvaWQgSW50ZXJuYWxzOjpwYWludENvbnRyb2xU
aW50cyhFeGNlcHRpb25Db2RlJiBlYykKICAgICBmcmFtZVZpZXctPnBhaW50Q29udHJvbFRpbnRz
KCk7CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6cmFuZ2VGcm9tTG9jYXRpb25B
bmRMZW5ndGgoRWxlbWVudCogc2NvcGUsIGludCByYW5nZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5n
dGgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6OnJhbmdlRnJv
bUxvY2F0aW9uQW5kTGVuZ3RoKEVsZW1lbnQqIHNjb3BlLCBpbnQgcmFuZ2VMb2NhdGlvbiwgaW50
IHJhbmdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIXNjb3BlKSB7CiAg
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgcmV0dXJuIFRleHRJdGVyYXRvcjo6cmFu
Z2VGcm9tTG9jYXRpb25BbmRMZW5ndGgoc2NvcGUsIHJhbmdlTG9jYXRpb24sIHJhbmdlTGVuZ3Ro
KTsKQEAgLTEyODAsMTEgKzEyODAsMTEgQEAgU3RyaW5nIEludGVybmFsczo6cmFuZ2VBc1RleHQo
Y29uc3QgUmFuZ2UqIHJhbmdlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gcmFuZ2Ut
PnRleHQoKTsKIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjpzdWJyYW5nZShSYW5n
ZSogcmFuZ2UsIGludCByYW5nZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5ndGgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6OnN1YnJhbmdlKFJhbmdlKiByYW5nZSwg
aW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxlbmd0aCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKCFyYW5nZSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIHJl
dHVybiBUZXh0SXRlcmF0b3I6OnN1YnJhbmdlKHJhbmdlLCByYW5nZUxvY2F0aW9uLCByYW5nZUxl
bmd0aCk7CkBAIC0xNDA2LDE5ICsxNDA2LDE5IEBAIHVuc2lnbmVkIEludGVybmFsczo6dG91Y2hF
dmVudEhhbmRsZXJDb3VudChFeGNlcHRpb25Db2RlJiBlYykKIC8vIGNvbnRleHREb2N1bWVudCgp
LCB3aXRoIHRoZSBleGNlcHRpb24gb2YgYSBmZXcgdGVzdHMgdGhhdCBwYXNzIGEKIC8vIGRpZmZl
cmVudCBkb2N1bWVudCwgYW5kIGNvdWxkIGp1c3QgbWFrZSB0aGUgY2FsbCB0aHJvdWdoIGFub3Ro
ZXIgSW50ZXJuYWxzCiAvLyBpbnN0YW5jZSBpbnN0ZWFkLgotUGFzc1JlZlB0cjxOb2RlTGlzdD4g
SW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0KERvY3VtZW50KiBkb2N1bWVudCwgaW50IGNlbnRlclgs
IGludCBjZW50ZXJZLCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcs
CitSZWZQdHI8Tm9kZUxpc3Q+IEludGVybmFsczo6bm9kZXNGcm9tUmVjdChEb2N1bWVudCogZG9j
dW1lbnQsIGludCBjZW50ZXJYLCBpbnQgY2VudGVyWSwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5z
aWduZWQgcmlnaHRQYWRkaW5nLAogICAgIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVk
IGxlZnRQYWRkaW5nLCBib29sIGlnbm9yZUNsaXBwaW5nLCBib29sIGFsbG93U2hhZG93Q29udGVu
dCwgYm9vbCBhbGxvd0NoaWxkRnJhbWVDb250ZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
IHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQt
PmZyYW1lKCktPnZpZXcoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOwogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gZG9jdW1lbnQtPnZpZXcoKTsKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZG9jdW1l
bnQtPnJlbmRlclZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIApAQCAtMTQzNyw3ICsxNDM3LDcgQEAgUGFzc1Jl
ZlB0cjxOb2RlTGlzdD4gSW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0KERvY3VtZW50KiBkb2N1bWVu
dCwgaW50IGNlbnRlclgsIGkKIAogICAgIC8vIFdoZW4gaWdub3JlQ2xpcHBpbmcgaXMgZmFsc2Us
IHRoaXMgbWV0aG9kIHJldHVybnMgbnVsbCBmb3IgY29vcmRpbmF0ZXMgb3V0c2lkZSBvZiB0aGUg
dmlld3BvcnQuCiAgICAgaWYgKCFyZXF1ZXN0Lmlnbm9yZUNsaXBwaW5nKCkgJiYgIWZyYW1lVmll
dy0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuaW50ZXJzZWN0cyhIaXRUZXN0TG9jYXRpb246OnJlY3RG
b3JQb2ludChwb2ludCwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBs
ZWZ0UGFkZGluZykpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBWZWN0b3I8UmVmPE5vZGU+PiBtYXRjaGVzOwogCkBAIC0yMTUxLDE3ICsyMTUxLDE3
IEBAIHZvaWQgSW50ZXJuYWxzOjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNCeXBhc3NpbmdD
b250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QKICAgICBTY2hlbWVSZWdpc3RyeTo6cmVtb3ZlVVJM
U2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KHNjaGVtZSk7
CiB9CiAKLVBhc3NSZWZQdHI8TWFsbG9jU3RhdGlzdGljcz4gSW50ZXJuYWxzOjptYWxsb2NTdGF0
aXN0aWNzKCkgY29uc3QKK1JlZjxNYWxsb2NTdGF0aXN0aWNzPiBJbnRlcm5hbHM6Om1hbGxvY1N0
YXRpc3RpY3MoKSBjb25zdAogewogICAgIHJldHVybiBNYWxsb2NTdGF0aXN0aWNzOjpjcmVhdGUo
KTsKIH0KIAotUGFzc1JlZlB0cjxUeXBlQ29udmVyc2lvbnM+IEludGVybmFsczo6dHlwZUNvbnZl
cnNpb25zKCkgY29uc3QKK1JlZjxUeXBlQ29udmVyc2lvbnM+IEludGVybmFsczo6dHlwZUNvbnZl
cnNpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gVHlwZUNvbnZlcnNpb25zOjpjcmVhdGUoKTsK
IH0KIAotUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBJbnRlcm5hbHM6Om1lbW9yeUluZm8oKSBjb25z
dAorUmVmPE1lbW9yeUluZm8+IEludGVybmFsczo6bWVtb3J5SW5mbygpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIE1lbW9yeUluZm86OmNyZWF0ZSgpOwogfQpAQCAtMjM4NCwxMyArMjM4NCwxMyBAQCBT
dHJpbmcgSW50ZXJuYWxzOjpnZXRDdXJyZW50Q3Vyc29ySW5mbyhFeGNlcHRpb25Db2RlJiBlYykK
ICNlbmRpZgogfQogCi1QYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBJbnRlcm5hbHM6OnNlcmlhbGl6
ZU9iamVjdChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpIGNvbnN0CitS
ZWZQdHI8QXJyYXlCdWZmZXI+IEludGVybmFsczo6c2VyaWFsaXplT2JqZWN0KFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSkgY29uc3QKIHsKICAgICBWZWN0b3I8dWludDhf
dD4gYnl0ZXMgPSB2YWx1ZS0+ZGF0YSgpOwogICAgIHJldHVybiBBcnJheUJ1ZmZlcjo6Y3JlYXRl
KGJ5dGVzLmRhdGEoKSwgYnl0ZXMuc2l6ZSgpKTsKIH0KIAotUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IEludGVybmFsczo6ZGVzZXJpYWxpemVCdWZmZXIoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyKSBjb25zdAorUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSW50
ZXJuYWxzOjpkZXNlcmlhbGl6ZUJ1ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIp
IGNvbnN0CiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOwogICAgIGJ5dGVzLmFwcGVuZChz
dGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmJ5dGVM
ZW5ndGgoKSk7CkBAIC0yNTc0LDExICsyNTc0LDExIEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRDYXB0
aW9uRGlzcGxheU1vZGUoY29uc3QgU3RyaW5nJiBtb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKIH0K
IAogI2lmIEVOQUJMRShWSURFTykKLVBhc3NSZWZQdHI8VGltZVJhbmdlcz4gSW50ZXJuYWxzOjpj
cmVhdGVUaW1lUmFuZ2VzKEZsb2F0MzJBcnJheSogc3RhcnRUaW1lcywgRmxvYXQzMkFycmF5KiBl
bmRUaW1lcykKK1JlZjxUaW1lUmFuZ2VzPiBJbnRlcm5hbHM6OmNyZWF0ZVRpbWVSYW5nZXMoRmxv
YXQzMkFycmF5KiBzdGFydFRpbWVzLCBGbG9hdDMyQXJyYXkqIGVuZFRpbWVzKQogewogICAgIEFT
U0VSVChzdGFydFRpbWVzICYmIGVuZFRpbWVzKTsKICAgICBBU1NFUlQoc3RhcnRUaW1lcy0+bGVu
Z3RoKCkgPT0gZW5kVGltZXMtPmxlbmd0aCgpKTsKLSAgICBSZWZQdHI8VGltZVJhbmdlcz4gcmFu
Z2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7CisgICAgUmVmPFRpbWVSYW5nZXM+IHJhbmdlcyA9
IFRpbWVSYW5nZXM6OmNyZWF0ZSgpOwogCiAgICAgdW5zaWduZWQgY291bnQgPSBzdGQ6Om1pbihz
dGFydFRpbWVzLT5sZW5ndGgoKSwgZW5kVGltZXMtPmxlbmd0aCgpKTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmlu
ZGV4IDRjZDEwOTBjYzJjNDQ5OTY0OGM3YTc0MGY5OTAxNGM3MTMzY2JhMzYuLjdlYmY0NjE2N2Jj
NGMyZGQ4NTMxNmM2NmRkYjhhYzI2ZGJhMmVlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRmxv
YXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03OCw3
ICs3Nyw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiBjbGFzcyBJbnRlcm5hbHMgOiBw
dWJsaWMgUmVmQ291bnRlZDxJbnRlcm5hbHM+CiAgICAgICAgICAgICAgICAgLCBwdWJsaWMgQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEludGVybmFscz4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFJlZjxJbnRlcm5hbHM+
IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfkludGVybmFscygpOwogCiAgICAgc3Rh
dGljIHZvaWQgcmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKik7CkBAIC0xMDYsNyArMTA1LDcg
QEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKICAgICB1bnNpZ25lZCBwYWdl
Q2FjaGVTaXplKCkgY29uc3Q7CiAKLSAgICBQYXNzUmVmUHRyPENTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbj4gY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKE5vZGUqLCBFeGNlcHRp
b25Db2RlJikgY29uc3Q7CisgICAgUmVmUHRyPENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbj4g
Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKE5vZGUqLCBFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAKICAgICBOb2RlKiBlbnN1cmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBOb2RlKiBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KEVsZW1lbnQq
IGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTE1Nyw3ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIGluc3BlY3RvckhpZ2hsaWdodE9iamVjdChFeGNlcHRpb25Db2RlJik7CiAKICAgICB1
bnNpZ25lZCBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSos
IGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiwgY29uc3QgU3Ry
aW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0
cmluZyBtYXJrZXJEZXNjcmlwdGlvbkZvck5vZGUoTm9kZSosIGNvbnN0IFN0cmluZyYgbWFya2Vy
VHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGFkZFRleHRN
YXRjaE1hcmtlcihjb25zdCBSYW5nZSosIGJvb2wgaXNBY3RpdmUpOwogICAgIHZvaWQgc2V0TWFy
a2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZChib29sLCBFeGNlcHRpb25Db2RlJik7CkBAIC0x
ODAsMTEgKzE3OSwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhaW50Q29udHJvbFRpbnRzKEV4
Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlRnJvbUxvY2F0aW9u
QW5kTGVuZ3RoKEVsZW1lbnQqIHNjb3BlLCBpbnQgcmFuZ2VMb2NhdGlvbiwgaW50IHJhbmdlTGVu
Z3RoLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZUZyb21Mb2NhdGlv
bkFuZExlbmd0aChFbGVtZW50KiBzY29wZSwgaW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxl
bmd0aCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIGxvY2F0aW9uRnJvbVJhbmdlKEVs
ZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25l
ZCBsZW5ndGhGcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFN0cmluZyByYW5nZUFzVGV4dChjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBzdWJyYW5nZShSYW5nZSogcmFuZ2UsIGludCBy
YW5nZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQ
dHI8UmFuZ2U+IHN1YnJhbmdlKFJhbmdlKiwgaW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxl
bmd0aCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VGb3JEaWN0aW9u
YXJ5TG9va3VwQXRMb2NhdGlvbihpbnQgeCwgaW50IHksIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAg
IHZvaWQgc2V0RGVsZWdhdGVzU2Nyb2xsaW5nKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYp
OwpAQCAtMjAxLDcgKzIwMCw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB3aGVlbEV2ZW50SGFu
ZGxlckNvdW50KEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25lZCB0b3VjaEV2ZW50SGFuZGxl
ckNvdW50KEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVz
RnJvbVJlY3QoRG9jdW1lbnQqLCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVu
c2lnbmVkIHJpZ2h0UGFkZGluZywKKyAgICBSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVzRnJvbVJlY3Qo
RG9jdW1lbnQqLCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJp
Z2h0UGFkZGluZywKICAgICAgICAgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVm
dFBhZGRpbmcsIGJvb2wgaWdub3JlQ2xpcHBpbmcsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBi
b29sIGFsbG93Q2hpbGRGcmFtZUNvbnRlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAogICAg
IFN0cmluZyBwYXJzZXJNZXRhRGF0YShEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSA9IERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlKCkpOwpAQCAtMzAyLDkgKzMwMSw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3Qg
U3RyaW5nJiBzY2hlbWUpOwogICAgIHZvaWQgcmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlw
YXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIAotICAg
IFBhc3NSZWZQdHI8TWFsbG9jU3RhdGlzdGljcz4gbWFsbG9jU3RhdGlzdGljcygpIGNvbnN0Owot
ICAgIFBhc3NSZWZQdHI8VHlwZUNvbnZlcnNpb25zPiB0eXBlQ29udmVyc2lvbnMoKSBjb25zdDsK
LSAgICBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IG1lbW9yeUluZm8oKSBjb25zdDsKKyAgICBSZWY8
TWFsbG9jU3RhdGlzdGljcz4gbWFsbG9jU3RhdGlzdGljcygpIGNvbnN0OworICAgIFJlZjxUeXBl
Q29udmVyc2lvbnM+IHR5cGVDb252ZXJzaW9ucygpIGNvbnN0OworICAgIFJlZjxNZW1vcnlJbmZv
PiBtZW1vcnlJbmZvKCkgY29uc3Q7CiAKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRSZWZlcmVuY2Vk
RmlsZVBhdGhzKCkgY29uc3Q7CiAKQEAgLTMyNCw4ICszMjMsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNBbmRSdW5Qb3N0TGF5b3V0VGFz
a3MoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNv
bnN0OwogCi0gICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gc2VyaWFsaXplT2JqZWN0KFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IGRlc2VyaWFsaXplQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+KSBjb25zdDsKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IHNlcmlhbGl6ZU9iamVjdChQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIGNvbnN0OworICAgIFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IGRlc2VyaWFsaXplQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
KSBjb25zdDsKIAogICAgIGJvb2wgaXNGcm9tQ3VycmVudFdvcmxkKERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlKSBjb25zdDsKIApAQCAtMzY2LDcgKzM2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dENhcHRpb25EaXNwbGF5TW9kZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAKICNp
ZiBFTkFCTEUoVklERU8pCi0gICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBjcmVhdGVUaW1lUmFu
Z2VzKEZsb2F0MzJBcnJheSogc3RhcnRUaW1lcywgRmxvYXQzMkFycmF5KiBlbmRUaW1lcyk7Cisg
ICAgUmVmPFRpbWVSYW5nZXM+IGNyZWF0ZVRpbWVSYW5nZXMoRmxvYXQzMkFycmF5KiBzdGFydFRp
bWVzLCBGbG9hdDMyQXJyYXkqIGVuZFRpbWVzKTsKICAgICBkb3VibGUgY2xvc2VzdFRpbWVUb1Rp
bWVSYW5nZXMoZG91YmxlIHRpbWUsIFRpbWVSYW5nZXMqKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01hbGxvY1N0YXRpc3RpY3MuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTWFsbG9jU3RhdGlzdGljcy5oCmluZGV4IDNmMDdiYmQ5ZjcxYjBkYjEzNTFh
ZGUyZWQ4OGUzYzBiOWZhNjlmYTYuLjNjMGM2NWRmZjZiM2YwYTdiYTE2OTcwYWY5MWM1OTRhNmM1
NmI3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTWFsbG9jU3RhdGlzdGlj
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTWFsbG9jU3RhdGlzdGljcy5oCkBAIC0y
NywxNCArMjcsMTMgQEAKICNkZWZpbmUgTWFsbG9jU3RhdGlzdGljc19oCiAKICNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNYWxsb2NT
dGF0aXN0aWNzIDogcHVibGljIFJlZkNvdW50ZWQ8TWFsbG9jU3RhdGlzdGljcz4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hbGxvY1N0YXRpc3RpY3M+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNYWxsb2NTdGF0aXN0aWNzKCkpOyB9CisgICAgc3RhdGljIFJlZjxN
YWxsb2NTdGF0aXN0aWNzPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1hbGxvY1N0
YXRpc3RpY3MoKSk7IH0KIAogICAgIHNpemVfdCByZXNlcnZlZFZNQnl0ZXMoKSBjb25zdCB7IHJl
dHVybiBtX3N0YXRzLnJlc2VydmVkVk1CeXRlczsgfQogICAgIHNpemVfdCBjb21taXR0ZWRWTUJ5
dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0cy5jb21taXR0ZWRWTUJ5dGVzOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01lbW9yeUluZm8uaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTWVtb3J5SW5mby5oCmluZGV4IDNhY2M5MGVhNGNjNDBhMGJkM2VhMWNjYWQ5OWI3
ZDE4ZGYwMjg0NTEuLmJmMzExY2FkNjI2MTM2NTM2MGMxNmIyMTI1ZDg3NmE1ZjhhMWVlNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTWVtb3J5SW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTWVtb3J5SW5mby5oCkBAIC0zMiwxNCArMzIsMTMgQEAKICNkZWZp
bmUgTWVtb3J5SW5mb19oCiAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNZW1vcnlJbmZvIDogcHVibGljIFJlZkNvdW50ZWQ8TWVtb3J5
SW5mbz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IGNyZWF0
ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZW1vcnlJbmZvKTsgfQorICAgIHN0YXRpYyBSZWY8
TWVtb3J5SW5mbz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZW1vcnlJbmZvKTsg
fQogCiAgICAgc2l6ZV90IHVzZWRKU0hlYXBTaXplKCkgY29uc3QgeyByZXR1cm4gbV91c2VkSlNI
ZWFwU2l6ZTsgfQogICAgIHNpemVfdCB0b3RhbEpTSGVhcFNpemUoKSBjb25zdCB7IHJldHVybiBt
X3RvdGFsSlNIZWFwU2l6ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrQ0RNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5jcHAKaW5kZXggYTQ4
NTA1MTRlNTAwYWUwMTg1ZWMxZjQ4OGFkZDUzMjcyMjg3NWQ4MC4uZGYyNTE4ZmViODhlOWM3NGQ4
NDQxZTZlNDZlYzkyMDVhMDAwOGRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE0uY3BwCkBA
IC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RN
U2Vzc2lvbkNsaWVudCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAg
ICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fc2Vzc2lvbklkOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGdl
bmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0
RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8
VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVp
bnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9y
dCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsK
IApAQCAtMTExLDEyICsxMTEsMTIgQEAgTW9ja0NETVNlc3Npb246Ok1vY2tDRE1TZXNzaW9uKCkK
IHsKIH0KIAotUGFzc1JlZlB0cjxVaW50OEFycmF5PiBNb2NrQ0RNU2Vzc2lvbjo6Z2VuZXJhdGVL
ZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmLCB1
bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJikKK1JlZlB0cjxVaW50OEFy
cmF5PiBNb2NrQ0RNU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYsIFVp
bnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1
bnNpZ25lZCBsb25nJikKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5pdERhdGFQ
cmVmaXgoKS0+bGVuZ3RoKCk7ICsraSkgewogICAgICAgICBpZiAoIWluaXREYXRhIHx8IGkgPj0g
aW5pdERhdGEtPmxlbmd0aCgpIHx8IGluaXREYXRhLT5pdGVtKGkpICE9IGluaXREYXRhUHJlZml4
KCktPml0ZW0oaSkpIHsKICAgICAgICAgICAgIGVycm9yQ29kZSA9IE1lZGlhS2V5RXJyb3I6Ok1F
RElBX0tFWUVSUl9VTktOT1dOOwotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4ga2V5UmVxdWVzdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9UeXBlQ29udmVyc2lvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmgKaW5kZXggODI2Mzg3NTAy
MmFiMmQ2OTExMGRiNTkzNjA5YTA3NzNkNTBlNTQyMS4uYTg5OWVhNGNmMGZmNDI3ZTkxMGQxYzEz
Yjc5Y2VhMmYxZmZiMTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9UeXBl
Q29udmVyc2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1R5cGVDb252ZXJzaW9u
cy5oCkBAIC0yNywxNCArMjcsMTMgQEAKICNkZWZpbmUgVHlwZUNvbnZlcnNpb25zX2gKIAogI2lu
Y2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFR5cGVDb252ZXJzaW9ucyA6IHB1YmxpYyBSZWZDb3VudGVkPFR5cGVDb252ZXJzaW9ucz4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFR5cGVDb252ZXJzaW9ucz4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IFR5cGVDb252ZXJzaW9ucygpKTsgfQorICAgIHN0YXRpYyBS
ZWY8VHlwZUNvbnZlcnNpb25zPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFR5cGVD
b252ZXJzaW9ucygpKTsgfQogCiAgICAgbG9uZyB0ZXN0TG9uZygpIHsgcmV0dXJuIG1fbG9uZzsg
fQogICAgIHZvaWQgc2V0VGVzdExvbmcobG9uZyB2YWx1ZSkgeyBtX2xvbmcgPSB2YWx1ZTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261743</attachid>
            <date>2015-09-22 08:22:48 -0700</date>
            <delta_ts>2015-09-23 09:01:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149449-20150923002230.patch</filename>
            <type>text/plain</type>
            <size>29802</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJhYmU5NTI4YTcyNzdj
NTg1ZmFjMzEzMzI0NmVjOTE0YTAxMGI1NS4uMmRmZTcxMWU5NzNmM2UxNjNmNDgzOTliMWRhMzhh
Y2U5ZjJlYjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTA5LTIyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZWR1Y2UgYWxt
b3N0IHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJjb3JlL3Rlc3RpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTQ0OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwg
dXNlcyBvZiBQYXNzUmVmUHRyIGV4Y2VwdCBmb3IgSW50ZXJuYWxzOjpzZXJpYWxpemVPYmplY3Qo
KSBhbmQgSW50ZXJuYWxzOjpkZXNlcmlhbGl6ZU9iamVjdCgpLgorICAgICAgICBJdCB3aWxsIGJl
IHJlbW92ZWQgYnkgdXBjb21pbmcgcGF0Y2guCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNz
aW9uQ2xlYXJLZXk6OmdlbmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6Z2VuZXJhdGVLZXlS
ZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RN
U2Vzc2lvbkFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9u
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpn
ZW5lcmF0ZUtleVJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6
Z2VuZXJhdGVLZXlSZXF1ZXN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OmNyZWF0ZSk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjb21wdXRlZFN0eWxlSW5jbHVk
aW5nVmlzaXRlZEluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptYXJrZXJSYW5n
ZUZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyYW5nZUZyb21Mb2NhdGlv
bkFuZExlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnN1YnJhbmdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bm9kZXNGcm9tUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6Om1hbGxvY1N0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjp0eXBlQ29udmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpt
ZW1vcnlJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2VyaWFsaXplT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZGVzZXJpYWxpemVCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjcmVhdGVUaW1lUmFuZ2VzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvTWFsbG9jU3RhdGlzdGljcy5o
OgorICAgICAgICAoV2ViQ29yZTo6TWFsbG9jU3RhdGlzdGljczo6Y3JlYXRlKToKKyAgICAgICAg
KiB0ZXN0aW5nL01lbW9yeUluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluZm86OmNy
ZWF0ZSk6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1vY2tDRE1TZXNzaW9uOjpnZW5lcmF0ZUtleVJlcXVlc3QpOgorICAgICAgICAqIHRlc3Rpbmcv
VHlwZUNvbnZlcnNpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQ29udmVyc2lvbnM6OmNy
ZWF0ZSk6CisKIDIwMTUtMDktMjIgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtIE1hY10gaW1wbGVtZW50IFdlYkF1ZGlvU291cmNl
UHJvdmlkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcAppbmRleCAwMTNiM2IyMGQwYmE3OTcyNjA3
YTJjNTUyZDcyYjU1YTRjZGYyMWE0Li44YzEyYmQyYjdlZmFhNTExYTc4MzQ3MzRlNGE4NmEwYThl
ZTM2ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETVNlc3Npb25DbGVhcktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCkBAIC02OCw3ICs2OCw3IEBAIENETVNl
c3Npb25DbGVhcktleTo6fkNETVNlc3Npb25DbGVhcktleSgpCiB7CiB9CiAKLVBhc3NSZWZQdHI8
VWludDhBcnJheT4gQ0RNU2Vzc2lvbkNsZWFyS2V5OjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRp
b25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNv
ZGUpCitSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lvbkNsZWFyS2V5OjpnZW5lcmF0ZUtleVJl
cXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmlu
ZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxv
bmcmIHN5c3RlbUNvZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKICAgICBVTlVT
RURfUEFSQU0oZGVzdGluYXRpb25VUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmgKaW5kZXggMGE5ZGQ3
ZTM3ODVmODYzNWVmMTJmMmY2Nzk1NTZlMTczOTZmN2UyOC4uYTkzMWQzNmViYmQzMjI0YTJjM2Y0
OTY1YzNmY2ZjMjU3NjA4ZWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5oCkBAIC00Miw3ICs0Miw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENETVNlc3Npb25UeXBlIHR5cGUoKSBvdmVycmlkZSB7
IHJldHVybiBDRE1TZXNzaW9uVHlwZUNsZWFyS2V5OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldENs
aWVudChDRE1TZXNzaW9uQ2xpZW50KiBjbGllbnQpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBjbGll
bnQ7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VWludDhB
cnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqLCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSosIFN0cmluZyYsIHVuc2lnbmVkIHNob3J0Jiwg
dW5zaWduZWQgbG9uZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxV
aW50OEFycmF5PiYsIHVuc2lnbmVkIHNob3J0JiwgdW5zaWduZWQgbG9uZyYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgUmVmUHRyPEFycmF5QnVmZmVyPiBjYWNoZWRLZXlGb3JLZXlJRChjb25zdCBT
dHJpbmcmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNw
cAppbmRleCA4YjZmZDgxMDIwOWVlOGI4Mzg2MWI3M2E4NTM1OWRmOTBkNzhjYTdlLi5lNjVmM2Iz
OGUxYTM1ZWMwMjRlZmZhMjczNmYyMTM4NzAzOWYyZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJy
aWRlQnVpbHRpbnMuY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0o
RXgKICAgICBTdHJpbmcgbmFtZSA9IHN0YXRlLT5hcmd1bWVudCgwKS50b1N0cmluZyhzdGF0ZSkt
PnZhbHVlKHN0YXRlKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBKU1Zh
bHVlIHJlc3VsdCA9IHRvSlMoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6
OmdldFB0cihpbXBsLm5hbWVkSXRlbShuYW1lKSkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9K
UyhzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwubmFt
ZWRJdGVtKFdURjo6bW92ZShuYW1lKSkpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NETVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Np
b24uaAppbmRleCA1Y2ZmOWRhODhkYjcxZjhiNTg5YzAxNTY1Yzg2MjBmYjI0NTExMjk0Li5kMzBi
ZmUzMDM1ZTM2MTFlNzY2YjA2MmZmNzY0Y2VlOGQ0ZmZhMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lvbi5oCkBAIC02OSw3ICs2OSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIENETVNlc3Npb25UeXBlIHR5cGUoKSB7IHJldHVybiBDRE1TZXNzaW9u
VHlwZVVua25vd247IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGll
bnQqKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBz
eXN0ZW1Db2RlKSA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVL
ZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25l
ZCBsb25nJiBzeXN0ZW1Db2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VLZXlzKCkg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50OEFy
cmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxv
bmcmIHN5c3RlbUNvZGUpID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxBcnJheUJ1ZmZlcj4gY2Fj
aGVkS2V5Rm9yS2V5SUQoY29uc3QgU3RyaW5nJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmNwcApp
bmRleCAwMDAwOTc3MTIxM2YzMzIyMjU2ZjU4MjljY2Y0OTI1NmM5OTI0ZTVhLi40MzZiZDU2OTAy
NzQ2OGFlNTlkMzkyODM4YzNkMDVmZDE4ODMwZmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlv
bkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmNwcApAQCAtNTEsNyArNTEsNyBAQCBDRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uQ0Y6OkNETVNlc3Npb25BVkZvdW5kYXRpb25DRihNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpbwogewogfQogCi1QYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNl
c3Npb25BVkZvdW5kYXRpb25DRjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNp
Z25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQorUmVmUHRy
PFVpbnQ4QXJyYXk+IENETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6Z2VuZXJhdGVLZXlSZXF1ZXN0
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBz
eXN0ZW1Db2RlKQogewogICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNz
aW9uQVZGb3VuZGF0aW9uQ0YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuaAppbmRleCA4MWVkMDUyMWEy
ZjNhMDQzYmRjYTA3Yzg0NjNiMGEzZDNiZTdhNzFjLi40YmYyZmZhYjU3MjY3MTQxMjNlNTFhNzhj
NTQ4MGRkODliZjIyZjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25B
VkZvdW5kYXRpb25DRi5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xp
ZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklkOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQg
c2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2Rl
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5l
eHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0
ZW1Db2RlKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25BVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggZTdlOGUyYjAyNzZkZDA0NTFlODg3MGIyYjY2
ZDYzNWFmMzdmMmU2NC4uMjE4NWZmMjY3YjBmY2Q4NGQ0ODI1MTRiY2NhOThlZjQzOTE1OGYzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9u
T2JqQy5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENETVNlc3Npb25U
eXBlIHR5cGUoKSBvdmVycmlkZSB7IHJldHVybiBDRE1TZXNzaW9uVHlwZUFWRm91bmRhdGlvbk9i
akM7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQqIGNsaWVu
dCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1YWwgY29uc3QgU3Ry
aW5nJiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25JZDsgfQot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGlu
YXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3Rl
bUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRl
S2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwg
U3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWdu
ZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VL
ZXlzKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5KiwgUmVm
UHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwg
dW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25B
VkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggNzEwZTg1
ZGQwYmFkMDhmMWFjMTYyYWZjMDA3NTE0NDQxNDE5NGE5ZS4uMjRkZDEwODE0MmY1MmMxNTYzMGNh
MzJmYzg4MjRlNTc1ZDliMmFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMubW0KQEAgLTUzLDcgKzUzLDcgQEAgQ0RNU2Vzc2lv
bkFWRm91bmRhdGlvbk9iakM6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDKE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmQKIHsKIH0KIAotUGFzc1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9u
QVZGb3VuZGF0aW9uT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVp
bnQ4QXJyYXk+IENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpnZW5lcmF0ZUtleVJlcXVlc3Qo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVz
dGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5
c3RlbUNvZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4
IDNhOTc1YWZhNjAzZWViNjdiMjIwMmU0OGYwOGVkMGEyMDQ3MDBhNTcuLjY4MGU1ZWY5YjQzNzg5
N2U5MWQ2MDQ4ZDM5NjFiMDJjZWM4YWM2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgQ0RNU2Vzc2lvblR5cGUgdHlwZSgpIG92ZXJyaWRlIHsgcmV0
dXJuIENETVNlc3Npb25UeXBlTWVkaWFTb3VyY2VBVkZPYmpDOyB9CiAgICAgdmlydHVhbCB2b2lk
IHNldENsaWVudChDRE1TZXNzaW9uQ2xpZW50KiBjbGllbnQpIG92ZXJyaWRlIHsgbV9jbGllbnQg
PSBjbGllbnQ7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVp
bnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9y
dCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkws
IHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCB1cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1l
c3NhZ2UsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNv
ZGUpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAzMDM5OTZlMzE5OWJhNzIwNjM2MjE4YjZk
NmU3ZDBlZTIyODUyY2Y2Li5mYzk3NzNlOWJmYmRjYmNhN2UxZWYyYTY4NDZmMjdjMmZmZDc2Yzky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNv
dXJjZUFWRk9iakMubW0KQEAgLTExMyw3ICsxMTMsNyBAQCBDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDOjp+Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQygpCiAgICAgc2V0U3RyZWFtU2Vz
c2lvbihudWxscHRyKTsKIH0KIAotUGFzc1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDOjpnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVk
IHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpCitSZWZQdHI8VWlu
dDhBcnJheT4gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBz
eXN0ZW1Db2RlKQogewogICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7CiAgICAgVU5VU0VEX1BB
UkFNKGRlc3RpbmF0aW9uVVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmgKaW5kZXggNTI0MzRiNDQ3NWRmNzNiOTExMGFjYWE5OWI3MjRmYzFjYzMzZDBhZC4uZThl
NjBlMGM0M2ZkM2JiN2EzM2Q4MjE3Y2FhNmM1OTZiNDZjNzA0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJJ
bnRTaXplLmgiCiAjaW5jbHVkZSAiSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDMsOSArMTAyLDkgQEAgcHVibGljOgogICAgICAgICBi
b29sIG1faW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU7CiAg
ICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludGVybmFsU2V0dGluZ3M+IGNyZWF0ZShQ
YWdlKiBwYWdlKQorICAgIHN0YXRpYyBSZWY8SW50ZXJuYWxTZXR0aW5ncz4gY3JlYXRlKFBhZ2Uq
IHBhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEludGVybmFsU2V0dGlu
Z3MocGFnZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnRlcm5hbFNldHRpbmdz
KHBhZ2UpKTsKICAgICB9CiAgICAgc3RhdGljIEludGVybmFsU2V0dGluZ3MqIGZyb20oUGFnZSop
OwogICAgIHZvaWQgaG9zdERlc3Ryb3llZCgpIHsgbV9wYWdlID0gMDsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDNlZGQyMDQwN2FiYWY4OTJkNjgwY2QwYTEyNTIwOTcy
OWExZDI1MDUuLjU4ODU3MDRlYWZjYjkzYjc2MWM1NzQyNDNhNzk4YjQ0MDQ5MmZkZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMxNiw5ICszMTYsOSBAQCBzdGF0aWMg
Ym9vbCBtYXJrZXJUeXBlc0Zyb20oY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCBEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZQogCiBjb25zdCBjaGFyKiBJbnRlcm5hbHM6OmludGVybmFsc0lkID0g
ImludGVybmFscyI7CiAKLVBhc3NSZWZQdHI8SW50ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQpCitSZWY8SW50ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnRlcm5hbHMoZG9j
dW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbnRlcm5hbHMoZG9jdW1lbnQpKTsK
IH0KIAogSW50ZXJuYWxzOjp+SW50ZXJuYWxzKCkKQEAgLTczOCwxMSArNzM4LDExIEBAIGJvb2wg
SW50ZXJuYWxzOjpoYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMoRWxlbWVudCogZWxlbWVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVu
dC0+cmVuZGVyZXIoKS0+aGFzUGF1c2VkSW1hZ2VBbmltYXRpb25zKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBJbnRlcm5hbHM6OmNvbXB1dGVkU3R5bGVJ
bmNsdWRpbmdWaXNpdGVkSW5mbyhOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
K1JlZlB0cjxDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24+IEludGVybmFsczo6Y29tcHV0ZWRT
dHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b25zdAogewogICAgIGlmICghbm9kZSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAog
ICAgIGJvb2wgYWxsb3dWaXNpdGVkU3R5bGUgPSB0cnVlOwpAQCAtMTAyOCw3ICsxMDI4LDcgQEAg
UmVuZGVyZWREb2N1bWVudE1hcmtlciogSW50ZXJuYWxzOjptYXJrZXJBdChOb2RlKiBub2RlLCBj
b25zdCBTdHJpbmcmIG1hcmtlclR5cGUKICAgICByZXR1cm4gbWFya2Vyc1tpbmRleF07CiB9CiAK
LVBhc3NSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5v
ZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2Rl
KiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBSZW5kZXJlZERvY3VtZW50TWFya2VyKiBtYXJrZXIgPSBtYXJr
ZXJBdChub2RlLCBtYXJrZXJUeXBlLCBpbmRleCwgZWMpOwogICAgIGlmICghbWFya2VyKQpAQCAt
MTIzNCwxMSArMTIzNCwxMSBAQCB2b2lkIEludGVybmFsczo6cGFpbnRDb250cm9sVGludHMoRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgZnJhbWVWaWV3LT5wYWludENvbnRyb2xUaW50cygpOwogfQog
Ci1QYXNzUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6OnJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3Ro
KEVsZW1lbnQqIHNjb3BlLCBpbnQgcmFuZ2VMb2NhdGlvbiwgaW50IHJhbmdlTGVuZ3RoLCBFeGNl
cHRpb25Db2RlJiBlYykKK1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjpyYW5nZUZyb21Mb2NhdGlv
bkFuZExlbmd0aChFbGVtZW50KiBzY29wZSwgaW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxl
bmd0aCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFzY29wZSkgewogICAgICAgICBl
YyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAogICAgIHJldHVybiBUZXh0SXRlcmF0b3I6OnJhbmdlRnJvbUxv
Y2F0aW9uQW5kTGVuZ3RoKHNjb3BlLCByYW5nZUxvY2F0aW9uLCByYW5nZUxlbmd0aCk7CkBAIC0x
MjgwLDExICsxMjgwLDExIEBAIFN0cmluZyBJbnRlcm5hbHM6OnJhbmdlQXNUZXh0KGNvbnN0IFJh
bmdlKiByYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIHJhbmdlLT50ZXh0KCk7
CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6c3VicmFuZ2UoUmFuZ2UqIHJhbmdl
LCBpbnQgcmFuZ2VMb2NhdGlvbiwgaW50IHJhbmdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJiBlYykK
K1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjpzdWJyYW5nZShSYW5nZSogcmFuZ2UsIGludCByYW5n
ZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlm
ICghcmFuZ2UpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICByZXR1cm4gVGV4
dEl0ZXJhdG9yOjpzdWJyYW5nZShyYW5nZSwgcmFuZ2VMb2NhdGlvbiwgcmFuZ2VMZW5ndGgpOwpA
QCAtMTQwNiwxOSArMTQwNiwxOSBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6OnRvdWNoRXZlbnRIYW5k
bGVyQ291bnQoRXhjZXB0aW9uQ29kZSYgZWMpCiAvLyBjb250ZXh0RG9jdW1lbnQoKSwgd2l0aCB0
aGUgZXhjZXB0aW9uIG9mIGEgZmV3IHRlc3RzIHRoYXQgcGFzcyBhCiAvLyBkaWZmZXJlbnQgZG9j
dW1lbnQsIGFuZCBjb3VsZCBqdXN0IG1ha2UgdGhlIGNhbGwgdGhyb3VnaCBhbm90aGVyIEludGVy
bmFscwogLy8gaW5zdGFuY2UgaW5zdGVhZC4KLVBhc3NSZWZQdHI8Tm9kZUxpc3Q+IEludGVybmFs
czo6bm9kZXNGcm9tUmVjdChEb2N1bWVudCogZG9jdW1lbnQsIGludCBjZW50ZXJYLCBpbnQgY2Vu
dGVyWSwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLAorUmVmUHRy
PE5vZGVMaXN0PiBJbnRlcm5hbHM6Om5vZGVzRnJvbVJlY3QoRG9jdW1lbnQqIGRvY3VtZW50LCBp
bnQgY2VudGVyWCwgaW50IGNlbnRlclksIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJp
Z2h0UGFkZGluZywKICAgICB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFk
ZGluZywgYm9vbCBpZ25vcmVDbGlwcGluZywgYm9vbCBhbGxvd1NoYWRvd0NvbnRlbnQsIGJvb2wg
YWxsb3dDaGlsZEZyYW1lQ29udGVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAg
aWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkgfHwgIWRvY3VtZW50LT5mcmFtZSgp
LT52aWV3KCkpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBGcmFtZSogZnJh
bWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGRvY3Vt
ZW50LT52aWV3KCk7CiAgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGRvY3VtZW50LT5yZW5k
ZXJWaWV3KCk7CiAgICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CiAKQEAgLTE0MzcsNyArMTQzNyw3IEBAIFBhc3NSZWZQdHI8Tm9k
ZUxpc3Q+IEludGVybmFsczo6bm9kZXNGcm9tUmVjdChEb2N1bWVudCogZG9jdW1lbnQsIGludCBj
ZW50ZXJYLCBpCiAKICAgICAvLyBXaGVuIGlnbm9yZUNsaXBwaW5nIGlzIGZhbHNlLCB0aGlzIG1l
dGhvZCByZXR1cm5zIG51bGwgZm9yIGNvb3JkaW5hdGVzIG91dHNpZGUgb2YgdGhlIHZpZXdwb3J0
LgogICAgIGlmICghcmVxdWVzdC5pZ25vcmVDbGlwcGluZygpICYmICFmcmFtZVZpZXctPnZpc2li
bGVDb250ZW50UmVjdCgpLmludGVyc2VjdHMoSGl0VGVzdExvY2F0aW9uOjpyZWN0Rm9yUG9pbnQo
cG9pbnQsIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRp
bmcpKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
VmVjdG9yPFJlZjxOb2RlPj4gbWF0Y2hlczsKIApAQCAtMjE1MSwxNyArMjE1MSwxNyBAQCB2b2lk
IEludGVybmFsczo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVudFNl
Y3VyaXR5UG9saWN5KGNvbnN0CiAgICAgU2NoZW1lUmVnaXN0cnk6OnJlbW92ZVVSTFNjaGVtZVJl
Z2lzdGVyZWRBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShzY2hlbWUpOwogfQogCi1Q
YXNzUmVmUHRyPE1hbGxvY1N0YXRpc3RpY3M+IEludGVybmFsczo6bWFsbG9jU3RhdGlzdGljcygp
IGNvbnN0CitSZWY8TWFsbG9jU3RhdGlzdGljcz4gSW50ZXJuYWxzOjptYWxsb2NTdGF0aXN0aWNz
KCkgY29uc3QKIHsKICAgICByZXR1cm4gTWFsbG9jU3RhdGlzdGljczo6Y3JlYXRlKCk7CiB9CiAK
LVBhc3NSZWZQdHI8VHlwZUNvbnZlcnNpb25zPiBJbnRlcm5hbHM6OnR5cGVDb252ZXJzaW9ucygp
IGNvbnN0CitSZWY8VHlwZUNvbnZlcnNpb25zPiBJbnRlcm5hbHM6OnR5cGVDb252ZXJzaW9ucygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFR5cGVDb252ZXJzaW9uczo6Y3JlYXRlKCk7CiB9CiAKLVBh
c3NSZWZQdHI8TWVtb3J5SW5mbz4gSW50ZXJuYWxzOjptZW1vcnlJbmZvKCkgY29uc3QKK1JlZjxN
ZW1vcnlJbmZvPiBJbnRlcm5hbHM6Om1lbW9yeUluZm8oKSBjb25zdAogewogICAgIHJldHVybiBN
ZW1vcnlJbmZvOjpjcmVhdGUoKTsKIH0KQEAgLTIzODQsMTMgKzIzODQsMTMgQEAgU3RyaW5nIElu
dGVybmFsczo6Z2V0Q3VycmVudEN1cnNvckluZm8oRXhjZXB0aW9uQ29kZSYgZWMpCiAjZW5kaWYK
IH0KIAotUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gSW50ZXJuYWxzOjpzZXJpYWxpemVPYmplY3Qo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKSBjb25zdAorUmVmUHRyPEFy
cmF5QnVmZmVyPiBJbnRlcm5hbHM6OnNlcmlhbGl6ZU9iamVjdChQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpIGNvbnN0CiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVz
ID0gdmFsdWUtPmRhdGEoKTsKICAgICByZXR1cm4gQXJyYXlCdWZmZXI6OmNyZWF0ZShieXRlcy5k
YXRhKCksIGJ5dGVzLnNpemUoKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBJbnRlcm5hbHM6OmRlc2VyaWFsaXplQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IGJ1ZmZlcikgY29uc3QKK1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IEludGVybmFsczo6
ZGVzZXJpYWxpemVCdWZmZXIoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyKSBjb25zdAog
ewogICAgIFZlY3Rvcjx1aW50OF90PiBieXRlczsKICAgICBieXRlcy5hcHBlbmQoc3RhdGljX2Nh
c3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkp
OwpAQCAtMjU3NCwxMSArMjU3NCwxMSBAQCB2b2lkIEludGVybmFsczo6c2V0Q2FwdGlvbkRpc3Bs
YXlNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB9CiAKICNpZiBF
TkFCTEUoVklERU8pCi1QYXNzUmVmUHRyPFRpbWVSYW5nZXM+IEludGVybmFsczo6Y3JlYXRlVGlt
ZVJhbmdlcyhGbG9hdDMyQXJyYXkqIHN0YXJ0VGltZXMsIEZsb2F0MzJBcnJheSogZW5kVGltZXMp
CitSZWY8VGltZVJhbmdlcz4gSW50ZXJuYWxzOjpjcmVhdGVUaW1lUmFuZ2VzKEZsb2F0MzJBcnJh
eSogc3RhcnRUaW1lcywgRmxvYXQzMkFycmF5KiBlbmRUaW1lcykKIHsKICAgICBBU1NFUlQoc3Rh
cnRUaW1lcyAmJiBlbmRUaW1lcyk7CiAgICAgQVNTRVJUKHN0YXJ0VGltZXMtPmxlbmd0aCgpID09
IGVuZFRpbWVzLT5sZW5ndGgoKSk7Ci0gICAgUmVmUHRyPFRpbWVSYW5nZXM+IHJhbmdlcyA9IFRp
bWVSYW5nZXM6OmNyZWF0ZSgpOworICAgIFJlZjxUaW1lUmFuZ2VzPiByYW5nZXMgPSBUaW1lUmFu
Z2VzOjpjcmVhdGUoKTsKIAogICAgIHVuc2lnbmVkIGNvdW50ID0gc3RkOjptaW4oc3RhcnRUaW1l
cy0+bGVuZ3RoKCksIGVuZFRpbWVzLT5sZW5ndGgoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGNvdW50OyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA0Y2Qx
MDkwY2MyYzQ0OTk2NDhjN2E3NDBmOTkwMTRjNzEzM2NiYTM2Li43ZWJmNDYxNjdiYzRjMmRkODUz
MTZjNjZkZGI4YWMyNmRiYTJlZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDxydW50aW1lL0Zsb2F0MzJBcnJh
eS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNzgsNyArNzcsNyBA
QCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogY2xhc3MgSW50ZXJuYWxzIDogcHVibGljIFJl
ZkNvdW50ZWQ8SW50ZXJuYWxzPgogICAgICAgICAgICAgICAgICwgcHVibGljIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnRlcm5h
bHM+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBSZWY8SW50ZXJuYWxzPiBjcmVhdGUo
RG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5JbnRlcm5hbHMoKTsKIAogICAgIHN0YXRpYyB2b2lk
IHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSopOwpAQCAtMTA2LDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsZWFyUGFnZUNhY2hlKCk7CiAgICAgdW5zaWduZWQgcGFnZUNhY2hlU2l6
ZSgpIGNvbnN0OwogCi0gICAgUGFzc1JlZlB0cjxDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24+
IGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhOb2RlKiwgRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OworICAgIFJlZlB0cjxDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24+IGNvbXB1dGVk
U3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhOb2RlKiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owog
CiAgICAgTm9kZSogZW5zdXJlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgTm9kZSogZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBF
eGNlcHRpb25Db2RlJik7CkBAIC0xNTcsNyArMTU2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBp
bnNwZWN0b3JIaWdobGlnaHRPYmplY3QoRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdW5zaWduZWQg
bWFya2VyQ291bnRGb3JOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqLCBjb25zdCBT
dHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CisgICAg
UmVmUHRyPFJhbmdlPiBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSosIGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTdHJpbmcgbWFy
a2VyRGVzY3JpcHRpb25Gb3JOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVu
c2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBhZGRUZXh0TWF0Y2hNYXJr
ZXIoY29uc3QgUmFuZ2UqLCBib29sIGlzQWN0aXZlKTsKICAgICB2b2lkIHNldE1hcmtlZFRleHRN
YXRjaGVzQXJlSGlnaGxpZ2h0ZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTgwLDExICsx
NzksMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhFeGNlcHRpb25D
b2RlJik7CiAKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0
aChFbGVtZW50KiBzY29wZSwgaW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxlbmd0aCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5n
dGgoRWxlbWVudCogc2NvcGUsIGludCByYW5nZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5ndGgsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25lZCBsb2NhdGlvbkZyb21SYW5nZShFbGVtZW50KiBz
Y29wZSwgY29uc3QgUmFuZ2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgbGVuZ3Ro
RnJvbVJhbmdlKEVsZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBTdHJpbmcgcmFuZ2VBc1RleHQoY29uc3QgUmFuZ2UqLCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgUGFzc1JlZlB0cjxSYW5nZT4gc3VicmFuZ2UoUmFuZ2UqIHJhbmdlLCBpbnQgcmFuZ2VMb2Nh
dGlvbiwgaW50IHJhbmdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRyPFJhbmdl
PiBzdWJyYW5nZShSYW5nZSosIGludCByYW5nZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5ndGgsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlRm9yRGljdGlvbmFyeUxvb2t1
cEF0TG9jYXRpb24oaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIHNl
dERlbGVnYXRlc1Njcm9sbGluZyhib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTIw
MSw3ICsyMDAsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgd2hlZWxFdmVudEhhbmRsZXJDb3Vu
dChFeGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgdG91Y2hFdmVudEhhbmRsZXJDb3VudChF
eGNlcHRpb25Db2RlJik7CiAKLSAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBub2Rlc0Zyb21SZWN0
KERvY3VtZW50KiwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCBy
aWdodFBhZGRpbmcsCisgICAgUmVmUHRyPE5vZGVMaXN0PiBub2Rlc0Zyb21SZWN0KERvY3VtZW50
KiwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRp
bmcsCiAgICAgICAgIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5n
LCBib29sIGlnbm9yZUNsaXBwaW5nLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBhbGxv
d0NoaWxkRnJhbWVDb250ZW50LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAgICBTdHJpbmcg
cGFyc2VyTWV0YURhdGEoRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgPSBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSgpKTsKQEAgLTMwMiw5ICszMDEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rl
clVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYg
c2NoZW1lKTsKICAgICB2b2lkIHJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRBc0J5cGFzc2luZ0Nv
bnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAKLSAgICBQYXNzUmVm
UHRyPE1hbGxvY1N0YXRpc3RpY3M+IG1hbGxvY1N0YXRpc3RpY3MoKSBjb25zdDsKLSAgICBQYXNz
UmVmUHRyPFR5cGVDb252ZXJzaW9ucz4gdHlwZUNvbnZlcnNpb25zKCkgY29uc3Q7Ci0gICAgUGFz
c1JlZlB0cjxNZW1vcnlJbmZvPiBtZW1vcnlJbmZvKCkgY29uc3Q7CisgICAgUmVmPE1hbGxvY1N0
YXRpc3RpY3M+IG1hbGxvY1N0YXRpc3RpY3MoKSBjb25zdDsKKyAgICBSZWY8VHlwZUNvbnZlcnNp
b25zPiB0eXBlQ29udmVyc2lvbnMoKSBjb25zdDsKKyAgICBSZWY8TWVtb3J5SW5mbz4gbWVtb3J5
SW5mbygpIGNvbnN0OwogCiAgICAgVmVjdG9yPFN0cmluZz4gZ2V0UmVmZXJlbmNlZEZpbGVQYXRo
cygpIGNvbnN0OwogCkBAIC0zMjQsOCArMzIzLDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQW5kUnVuUG9zdExheW91dFRhc2tzKE5vZGUq
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgbGF5b3V0Q291bnQoKSBjb25zdDsKIAot
ICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IHNlcmlhbGl6ZU9iamVjdChQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBkZXNlcmlhbGl6ZUJ1ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmVyPikgY29u
c3Q7CisgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBzZXJpYWxpemVPYmplY3QoUGFzc1JlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBjb25zdDsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBkZXNlcmlhbGl6ZUJ1ZmZlcihQYXNzUmVmUHRyPEFycmF5QnVmZmVyPikgY29uc3Q7
CiAKICAgICBib29sIGlzRnJvbUN1cnJlbnRXb3JsZChEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSkg
Y29uc3Q7CiAKQEAgLTM2Niw3ICszNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYXB0aW9u
RGlzcGxheU1vZGUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5BQkxF
KFZJREVPKQotICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gY3JlYXRlVGltZVJhbmdlcyhGbG9h
dDMyQXJyYXkqIHN0YXJ0VGltZXMsIEZsb2F0MzJBcnJheSogZW5kVGltZXMpOworICAgIFJlZjxU
aW1lUmFuZ2VzPiBjcmVhdGVUaW1lUmFuZ2VzKEZsb2F0MzJBcnJheSogc3RhcnRUaW1lcywgRmxv
YXQzMkFycmF5KiBlbmRUaW1lcyk7CiAgICAgZG91YmxlIGNsb3Nlc3RUaW1lVG9UaW1lUmFuZ2Vz
KGRvdWJsZSB0aW1lLCBUaW1lUmFuZ2VzKik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9NYWxsb2NTdGF0aXN0aWNzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01hbGxvY1N0YXRpc3RpY3MuaAppbmRleCAzZjA3YmJkOWY3MWIwZGIxMzUxYWRlMmVkODhl
M2MwYjlmYTY5ZmE2Li4zYzBjNjVkZmY2YjNmMGE3YmExNjk3MGFmOTFjNTk0YTZjNTZiNzkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01hbGxvY1N0YXRpc3RpY3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01hbGxvY1N0YXRpc3RpY3MuaApAQCAtMjcsMTQgKzI3
LDEzIEBACiAjZGVmaW5lIE1hbGxvY1N0YXRpc3RpY3NfaAogCiAjaW5jbHVkZSA8d3RmL0Zhc3RN
YWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWFsbG9jU3RhdGlzdGlj
cyA6IHB1YmxpYyBSZWZDb3VudGVkPE1hbGxvY1N0YXRpc3RpY3M+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNYWxsb2NTdGF0aXN0aWNzPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgTWFsbG9jU3RhdGlzdGljcygpKTsgfQorICAgIHN0YXRpYyBSZWY8TWFsbG9jU3Rh
dGlzdGljcz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBNYWxsb2NTdGF0aXN0aWNz
KCkpOyB9CiAKICAgICBzaXplX3QgcmVzZXJ2ZWRWTUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9z
dGF0cy5yZXNlcnZlZFZNQnl0ZXM7IH0KICAgICBzaXplX3QgY29tbWl0dGVkVk1CeXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1fc3RhdHMuY29tbWl0dGVkVk1CeXRlczsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9NZW1vcnlJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01lbW9yeUluZm8uaAppbmRleCAzYWNjOTBlYTRjYzQwYTBiZDNlYTFjY2FkOTliN2QxOGRmMDI4
NDUxLi5iZjMxMWNhZDYyNjEzNjUzNjBjMTZiMjEyNWQ4NzZhNWY4YTFlZTY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01lbW9yeUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01lbW9yeUluZm8uaApAQCAtMzIsMTQgKzMyLDEzIEBACiAjZGVmaW5lIE1lbW9y
eUluZm9faAogCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgTWVtb3J5SW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPE1lbW9yeUluZm8+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgTWVtb3J5SW5mbyk7IH0KKyAgICBzdGF0aWMgUmVmPE1lbW9yeUlu
Zm8+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVtb3J5SW5mbyk7IH0KIAogICAg
IHNpemVfdCB1c2VkSlNIZWFwU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZEpTSGVhcFNpemU7
IH0KICAgICBzaXplX3QgdG90YWxKU0hlYXBTaXplKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbEpT
SGVhcFNpemU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE0uY3BwCmluZGV4IGE0ODUwNTE0ZTUw
MGFlMDE4NWVjMWY0ODhhZGQ1MzI3MjI4NzVkODAuLmRmMjUxOGZlYjg4ZTljNzRkODQ0MWU2ZTQ2
ZWM5MjA1YTAwMDhkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NE
TS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNLmNwcApAQCAtNDQsNyAr
NDQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25D
bGllbnQqIGNsaWVudCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1
YWwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nl
c3Npb25JZDsgfQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtl
eVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0
cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVk
IGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJy
YXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5
KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9y
Q29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHJlbGVhc2VLZXlzKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50
OEFycmF5KiwgUmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQm
IGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAKQEAgLTEx
MSwxMiArMTExLDEyIEBAIE1vY2tDRE1TZXNzaW9uOjpNb2NrQ0RNU2Vzc2lvbigpCiB7CiB9CiAK
LVBhc3NSZWZQdHI8VWludDhBcnJheT4gTW9ja0NETVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVz
dChjb25zdCBTdHJpbmcmLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiwgdW5zaWduZWQg
c2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYpCitSZWZQdHI8VWludDhBcnJheT4gTW9j
a0NETVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmLCBVaW50OEFycmF5
KiBpbml0RGF0YSwgU3RyaW5nJiwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQg
bG9uZyYpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGluaXREYXRhUHJlZml4KCkt
Pmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgaWYgKCFpbml0RGF0YSB8fCBpID49IGluaXREYXRh
LT5sZW5ndGgoKSB8fCBpbml0RGF0YS0+aXRlbShpKSAhPSBpbml0RGF0YVByZWZpeCgpLT5pdGVt
KGkpKSB7CiAgICAgICAgICAgICBlcnJvckNvZGUgPSBNZWRpYUtleUVycm9yOjpNRURJQV9LRVlF
UlJfVU5LTk9XTjsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGtleVJlcXVlc3QoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL1R5cGVDb252ZXJzaW9ucy5oCmluZGV4IDgyNjM4NzUwMjJhYjJkNjkx
MTBkYjU5MzYwOWEwNzczZDUwZTU0MjEuLmE4OTllYTRjZjBmZjQyN2U5MTBkMWMxM2I3OWNlYTJm
MWZmYjE4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNp
b25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9UeXBlQ29udmVyc2lvbnMuaApAQCAt
MjcsMTQgKzI3LDEzIEBACiAjZGVmaW5lIFR5cGVDb252ZXJzaW9uc19oCiAKICNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBUeXBlQ29u
dmVyc2lvbnMgOiBwdWJsaWMgUmVmQ291bnRlZDxUeXBlQ29udmVyc2lvbnM+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUeXBlQ29udmVyc2lvbnM+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBUeXBlQ29udmVyc2lvbnMoKSk7IH0KKyAgICBzdGF0aWMgUmVmPFR5cGVD
b252ZXJzaW9ucz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBUeXBlQ29udmVyc2lv
bnMoKSk7IH0KIAogICAgIGxvbmcgdGVzdExvbmcoKSB7IHJldHVybiBtX2xvbmc7IH0KICAgICB2
b2lkIHNldFRlc3RMb25nKGxvbmcgdmFsdWUpIHsgbV9sb25nID0gdmFsdWU7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261824</attachid>
            <date>2015-09-23 09:01:23 -0700</date>
            <delta_ts>2015-09-24 07:57:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149449-20150924010103.patch</filename>
            <type>text/plain</type>
            <size>28853</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBjNzRmNWIxZmNhODkz
NzgwZjI0NjMzN2NlYjg3MzZiZTE3ZWJlYy4uZmNiMzkzYmVmOWQ4MjkwOGYyYTQ4OTdjY2Y2MjJi
YTg3ODNhZDFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTA5LTIzICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZWR1Y2UgYWxt
b3N0IHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJjb3JlL3Rlc3RpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTQ0OQorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwgdXNl
cyBvZiBQYXNzUmVmUHRyIGV4Y2VwdCBmb3IgSW50ZXJuYWxzOjpzZXJpYWxpemVPYmplY3QoKSBh
bmQgSW50ZXJuYWxzOjpkZXNlcmlhbGl6ZU9iamVjdCgpLgorICAgICAgICBJdCB3aWxsIGJlIHJl
bW92ZWQgYnkgdXBjb21pbmcgcGF0Y2guCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNzaW9u
Q2xlYXJLZXk6OmdlbmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25DRjo6Z2VuZXJhdGVLZXlSZXF1
ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vz
c2lvbkFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2Jq
Qy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpnZW5l
cmF0ZUtleVJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Z2Vu
ZXJhdGVLZXlSZXF1ZXN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OmNyZWF0ZSk6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjb21wdXRlZFN0eWxlSW5jbHVkaW5n
VmlzaXRlZEluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptYXJrZXJSYW5nZUZv
ck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyYW5nZUZyb21Mb2NhdGlvbkFu
ZExlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnN1YnJhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6bm9kZXNGcm9tUmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6Om1hbGxvY1N0YXRpc3RpY3MpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjp0eXBlQ29udmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZW1v
cnlJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2VyaWFsaXplT2JqZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZGVzZXJpYWxpemVCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjcmVhdGVUaW1lUmFuZ2VzKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvTWFsbG9jU3RhdGlzdGljcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWFsbG9jU3RhdGlzdGljczo6Y3JlYXRlKToKKyAgICAgICAgKiB0
ZXN0aW5nL01lbW9yeUluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluZm86OmNyZWF0
ZSk6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tDRE1TZXNzaW9uOjpnZW5lcmF0ZUtleVJlcXVlc3QpOgorICAgICAgICAqIHRlc3RpbmcvVHlw
ZUNvbnZlcnNpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQ29udmVyc2lvbnM6OmNyZWF0
ZSk6CisKIDIwMTUtMDktMjMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCBzb3J0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5jcHAKaW5kZXggMDEzYjNiMjBk
MGJhNzk3MjYwN2EyYzU1MmQ3MmI1NWE0Y2RmMjFhNC4uOGMxMmJkMmI3ZWZhYTUxMWE3ODM0NzM0
ZTRhODZhMGE4ZWUzNmRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmNwcApAQCAtNjgsNyArNjgs
NyBAQCBDRE1TZXNzaW9uQ2xlYXJLZXk6On5DRE1TZXNzaW9uQ2xlYXJLZXkoKQogewogfQogCi1Q
YXNzUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25DbGVhcktleTo6Z2VuZXJhdGVLZXlSZXF1
ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25n
JiBzeXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25DbGVhcktleTo6Z2Vu
ZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXRE
YXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1
bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQogewogICAgIFVOVVNFRF9QQVJBTShtaW1lVHlwZSk7
CiAgICAgVU5VU0VEX1BBUkFNKGRlc3RpbmF0aW9uVVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVNlc3Npb25DbGVhcktleS5oCmlu
ZGV4IDBhOWRkN2UzNzg1Zjg2MzVlZjEyZjJmNjc5NTU2ZTE3Mzk2ZjdlMjguLmE5MzFkMzZlYmJk
MzIyNGEyYzNmNDk2NWMzZmNmYzI1NzYwOGVjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNU2Vzc2lvbkNsZWFyS2V5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1TZXNzaW9uQ2xlYXJLZXkuaApAQCAt
NDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDRE1TZXNzaW9uVHlwZSB0eXBlKCkg
b3ZlcnJpZGUgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVDbGVhcktleTsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xp
ZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklkOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBVaW50OEFycmF5KiwgU3RyaW5nJiwgdW5zaWduZWQgc2hvcnQmLCB1bnNpZ25lZCBsb25nJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1
ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqLCBTdHJpbmcmLCB1bnNpZ25l
ZCBzaG9ydCYsIHVuc2lnbmVkIGxvbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVs
ZWFzZUtleXMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkq
LCBSZWZQdHI8VWludDhBcnJheT4mLCB1bnNpZ25lZCBzaG9ydCYsIHVuc2lnbmVkIGxvbmcmKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIFJlZlB0cjxBcnJheUJ1ZmZlcj4gY2FjaGVkS2V5Rm9yS2V5
SUQoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9DRE1TZXNzaW9uLmgKaW5kZXggNWNmZjlkYTg4ZGI3MWY4YjU4OWMwMTU2
NWM4NjIwZmIyNDUxMTI5NC4uZDMwYmZlMzAzNWUzNjExZTc2NmIwNjJmZjc2NGNlZThkNGZmYTFk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ0RNU2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NETVNlc3Npb24uaApA
QCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDRE1TZXNzaW9uVHlwZSB0eXBl
KCkgeyByZXR1cm4gQ0RNU2Vzc2lvblR5cGVVbmtub3duOyB9CiAgICAgdmlydHVhbCB2b2lkIHNl
dENsaWVudChDRE1TZXNzaW9uQ2xpZW50KikgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgU3RyaW5n
JiBzZXNzaW9uSWQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFVpbnQ4QXJy
YXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5
KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9y
Q29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAwOworICAgIHZpcnR1YWwgUmVmUHRy
PFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBV
aW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hv
cnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCByZWxlYXNlS2V5cygpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4
QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYg
ZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSA9IDA7CiAgICAgdmlydHVhbCBS
ZWZQdHI8QXJyYXlCdWZmZXI+IGNhY2hlZEtleUZvcktleUlEKGNvbnN0IFN0cmluZyYpIGNvbnN0
IHsgcmV0dXJuIG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Np
b25BVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggMDAwMDk3NzEyMTNmMzMyMjI1NmY1ODI5Y2NmNDky
NTZjOTkyNGU1YS4uNDM2YmQ1NjkwMjc0NjhhZTU5ZDM5MjgzOGMzZDA1ZmQxODgzMGZhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZvdW5kYXRpb25DRi5jcHAK
QEAgLTUxLDcgKzUxLDcgQEAgQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGOjpDRE1TZXNzaW9uQVZG
b3VuZGF0aW9uQ0YoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW8KIHsKIH0KIAotUGFzc1Jl
ZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0Y6OmdlbmVyYXRlS2V5UmVx
dWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9u
ZyYgc3lzdGVtQ29kZSkKK1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9u
Q0Y6OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5
KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9y
Q29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWlt
ZVR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvQ0RNU2Vzc2lvbkFWRm91bmRhdGlv
bkNGLmgKaW5kZXggODFlZDA1MjFhMmYzYTA0M2JkY2EwN2M4NDYzYjBhM2QzYmU3YTcxYy4uNGJm
MmZmYWI1NzI2NzE0MTIzZTUxYTc4YzU0ODBkZDg5YmYyMmY5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0NETVNlc3Npb25BVkZv
dW5kYXRpb25DRi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uQ0YuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KENETVNlc3Npb25DbGllbnQqIGNs
aWVudCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIHZpcnR1YWwgY29uc3Qg
U3RyaW5nJiBzZXNzaW9uSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25JZDsg
fQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3Qo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgVWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVz
dGluYXRpb25VUkwsIHVuc2lnbmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5
c3RlbUNvZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVy
YXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0
YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5z
aWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVh
c2VLZXlzKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZShVaW50OEFycmF5Kiwg
UmVmUHRyPFVpbnQ4QXJyYXk+JiBuZXh0TWVzc2FnZSwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29k
ZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGU3ZThl
MmIwMjc2ZGQwNDUxZTg4NzBiMmI2NmQ2MzVhZjM3ZjJlNjQuLjIxODVmZjI2N2IwZmNkODRkNDgy
NTE0YmNjYTk4ZWY0MzkxNThmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
Q0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakMuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBDRE1TZXNzaW9uVHlwZSB0eXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gQ0RNU2Vz
c2lvblR5cGVBVkZvdW5kYXRpb25PYmpDOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChD
RE1TZXNzaW9uQ2xpZW50KiBjbGllbnQpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0K
ICAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9zZXNzaW9uSWQ7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VWludDhBcnJheT4g
Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGlu
aXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2Rl
LCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZlB0
cjxVaW50OEFycmF5PiBnZW5lcmF0ZUtleVJlcXVlc3QoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
VWludDhBcnJheSogaW5pdERhdGEsIFN0cmluZyYgZGVzdGluYXRpb25VUkwsIHVuc2lnbmVkIHNo
b3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCByZWxlYXNlS2V5cygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCB1
cGRhdGUoVWludDhBcnJheSosIFJlZlB0cjxVaW50OEFycmF5PiYgbmV4dE1lc3NhZ2UsIHVuc2ln
bmVkIHNob3J0JiBlcnJvckNvZGUsIHVuc2lnbmVkIGxvbmcmIHN5c3RlbUNvZGUpIG92ZXJyaWRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRp
b25PYmpDLm1tCmluZGV4IDcxMGU4NWRkMGJhZDA4ZjFhYzE2MmFmYzAwNzUxNDQ0MTQxOTRhOWUu
LjI0ZGQxMDgxNDJmNTJjMTU2MzBjYTMyZmM4ODI0ZTU3NWQ5YjJhZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLm1tCkBAIC01
Myw3ICs1Myw3IEBAIENETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDOjpDRE1TZXNzaW9uQVZGb3Vu
ZGF0aW9uT2JqQyhNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kCiB7CiB9CiAKLVBhc3NSZWZQdHI8
VWludDhBcnJheT4gQ0RNU2Vzc2lvbkFWRm91bmRhdGlvbk9iakM6OmdlbmVyYXRlS2V5UmVxdWVz
dChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYg
c3lzdGVtQ29kZSkKK1JlZlB0cjxVaW50OEFycmF5PiBDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2Jq
Qzo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkq
IGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JD
b2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKQogewogICAgIFVOVVNFRF9QQVJBTShtaW1l
VHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRp
YVNvdXJjZUFWRk9iakMuaAppbmRleCAzYTk3NWFmYTYwM2VlYjY3YjIyMDJlNDhmMDhlZDBhMjA0
NzAwYTU3Li42ODBlNWVmOWI0Mzc4OTdlOTFkNjA0OGQzOTYxYjAyY2VjOGFjNmFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENETVNlc3Npb25UeXBl
IHR5cGUoKSBvdmVycmlkZSB7IHJldHVybiBDRE1TZXNzaW9uVHlwZU1lZGlhU291cmNlQVZGT2Jq
QzsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50
KSBvdmVycmlkZSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgdmlydHVhbCBjb25zdCBTdHJp
bmcmIHNlc3Npb25JZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklkOyB9Ci0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVt
Q29kZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVL
ZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25l
ZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtl
eXMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQ
dHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1
bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1l
ZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMzAz
OTk2ZTMxOTliYTcyMDYzNjIxOGI2ZDZlN2QwZWUyMjg1MmNmNi4uZmM5NzczZTliZmJkY2JjYTdl
MWVmMmE2ODQ2ZjI3YzJmZmQ3NmM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xMTMsNyArMTEzLDcgQEAg
Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6fkNETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akMoKQogICAgIHNldFN0cmVhbVNlc3Npb24obnVsbHB0cik7CiB9CiAKLVBhc3NSZWZQdHI8VWlu
dDhBcnJheT4gQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6Z2VuZXJhdGVLZXlSZXF1ZXN0
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBz
eXN0ZW1Db2RlKQorUmVmUHRyPFVpbnQ4QXJyYXk+IENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9i
akM6OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50OEFycmF5
KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQmIGVycm9y
Q29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWlt
ZVR5cGUpOwogICAgIFVOVVNFRF9QQVJBTShkZXN0aW5hdGlvblVSTCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDUyNDM0YjQ0NzVkZjczYjkxMTBhY2Fh
OTliNzI0ZmMxY2MzM2QwYWQuLmU4ZTYwZTBjNDNmZDNiYjdhMzNkODIxN2NhYTZjNTk2YjQ2Yzcw
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0zNSw3
ICszNSw2IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkludGVybmFsU2V0dGlu
Z3NHZW5lcmF0ZWQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTAzLDkgKzEwMiw5
IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBtX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1Bs
YXlzSW5saW5lQXR0cmlidXRlOwogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnRl
cm5hbFNldHRpbmdzPiBjcmVhdGUoUGFnZSogcGFnZSkKKyAgICBzdGF0aWMgUmVmPEludGVybmFs
U2V0dGluZ3M+IGNyZWF0ZShQYWdlKiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBJbnRlcm5hbFNldHRpbmdzKHBhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSW50ZXJuYWxTZXR0aW5ncyhwYWdlKSk7CiAgICAgfQogICAgIHN0YXRpYyBJbnRlcm5h
bFNldHRpbmdzKiBmcm9tKFBhZ2UqKTsKICAgICB2b2lkIGhvc3REZXN0cm95ZWQoKSB7IG1fcGFn
ZSA9IDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA4MmFiNmVmNmZk
YTViYjhlY2ZlNzExYmI3ZGZkNWU1NTU4NjFlNjdhLi5hZTM1N2UxNWZjNmE0YWNjMDk3YWFiYmE1
ZDRlMmYwMDQ2MmNkMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0z
MTcsOSArMzE3LDkgQEAgc3RhdGljIGJvb2wgbWFya2VyVHlwZXNGcm9tKGNvbnN0IFN0cmluZyYg
bWFya2VyVHlwZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUKIAogY29uc3QgY2hhciogSW50
ZXJuYWxzOjppbnRlcm5hbHNJZCA9ICJpbnRlcm5hbHMiOwogCi1QYXNzUmVmUHRyPEludGVybmFs
cz4gSW50ZXJuYWxzOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUmVmPEludGVybmFscz4g
SW50ZXJuYWxzOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSW50ZXJuYWxzKGRvY3VtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SW50ZXJuYWxzKGRvY3VtZW50KSk7CiB9CiAKIEludGVybmFsczo6fkludGVybmFscygpCkBAIC03
MzksMTEgKzczOSwxMSBAQCBib29sIEludGVybmFsczo6aGFzUGF1c2VkSW1hZ2VBbmltYXRpb25z
KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiBlbGVtZW50
LT5yZW5kZXJlcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCktPmhhc1BhdXNlZEltYWdlQW5pbWF0
aW9ucygpOwogfQogCi1QYXNzUmVmUHRyPENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbj4gSW50
ZXJuYWxzOjpjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oTm9kZSogbm9kZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CitSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
PiBJbnRlcm5hbHM6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhOb2RlKiBub2Rl
LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIW5vZGUpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBib29sIGFsbG93VmlzaXRlZFN0eWxlID0gdHJ1ZTsK
QEAgLTEwMjksNyArMTAyOSw3IEBAIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIqIEludGVybmFsczo6
bWFya2VyQXQoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlCiAgICAgcmV0dXJu
IG1hcmtlcnNbaW5kZXhdOwogfQogCi1QYXNzUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtl
clJhbmdlRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjpt
YXJrZXJSYW5nZUZvck5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1
bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVuZGVyZWREb2N1bWVu
dE1hcmtlciogbWFya2VyID0gbWFya2VyQXQobm9kZSwgbWFya2VyVHlwZSwgaW5kZXgsIGVjKTsK
ICAgICBpZiAoIW1hcmtlcikKQEAgLTEyMzUsMTEgKzEyMzUsMTEgQEAgdm9pZCBJbnRlcm5hbHM6
OnBhaW50Q29udHJvbFRpbnRzKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGZyYW1lVmlldy0+cGFp
bnRDb250cm9sVGludHMoKTsKIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjpyYW5n
ZUZyb21Mb2NhdGlvbkFuZExlbmd0aChFbGVtZW50KiBzY29wZSwgaW50IHJhbmdlTG9jYXRpb24s
IGludCByYW5nZUxlbmd0aCwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8UmFuZ2U+IEludGVy
bmFsczo6cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGgoRWxlbWVudCogc2NvcGUsIGludCByYW5n
ZUxvY2F0aW9uLCBpbnQgcmFuZ2VMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlm
ICghc2NvcGUpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICByZXR1cm4gVGV4
dEl0ZXJhdG9yOjpyYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChzY29wZSwgcmFuZ2VMb2NhdGlv
biwgcmFuZ2VMZW5ndGgpOwpAQCAtMTI4MSwxMSArMTI4MSwxMSBAQCBTdHJpbmcgSW50ZXJuYWxz
OjpyYW5nZUFzVGV4dChjb25zdCBSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAg
IHJldHVybiByYW5nZS0+dGV4dCgpOwogfQogCi1QYXNzUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6
OnN1YnJhbmdlKFJhbmdlKiByYW5nZSwgaW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxlbmd0
aCwgRXhjZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6c3VicmFuZ2Uo
UmFuZ2UqIHJhbmdlLCBpbnQgcmFuZ2VMb2NhdGlvbiwgaW50IHJhbmdlTGVuZ3RoLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBpZiAoIXJhbmdlKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCiAgICAgcmV0dXJuIFRleHRJdGVyYXRvcjo6c3VicmFuZ2UocmFuZ2UsIHJhbmdlTG9j
YXRpb24sIHJhbmdlTGVuZ3RoKTsKQEAgLTE0MDcsMTkgKzE0MDcsMTkgQEAgdW5zaWduZWQgSW50
ZXJuYWxzOjp0b3VjaEV2ZW50SGFuZGxlckNvdW50KEV4Y2VwdGlvbkNvZGUmIGVjKQogLy8gY29u
dGV4dERvY3VtZW50KCksIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBhIGZldyB0ZXN0cyB0aGF0IHBh
c3MgYQogLy8gZGlmZmVyZW50IGRvY3VtZW50LCBhbmQgY291bGQganVzdCBtYWtlIHRoZSBjYWxs
IHRocm91Z2ggYW5vdGhlciBJbnRlcm5hbHMKIC8vIGluc3RhbmNlIGluc3RlYWQuCi1QYXNzUmVm
UHRyPE5vZGVMaXN0PiBJbnRlcm5hbHM6Om5vZGVzRnJvbVJlY3QoRG9jdW1lbnQqIGRvY3VtZW50
LCBpbnQgY2VudGVyWCwgaW50IGNlbnRlclksIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVk
IHJpZ2h0UGFkZGluZywKK1JlZlB0cjxOb2RlTGlzdD4gSW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0
KERvY3VtZW50KiBkb2N1bWVudCwgaW50IGNlbnRlclgsIGludCBjZW50ZXJZLCB1bnNpZ25lZCB0
b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsCiAgICAgdW5zaWduZWQgYm90dG9tUGFk
ZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcsIGJvb2wgaWdub3JlQ2xpcHBpbmcsIGJvb2wgYWxs
b3dTaGFkb3dDb250ZW50LCBib29sIGFsbG93Q2hpbGRGcmFtZUNvbnRlbnQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgp
IHx8ICFkb2N1bWVudC0+ZnJhbWUoKS0+dmlldygpKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CiAgICAgRnJhbWVW
aWV3KiBmcmFtZVZpZXcgPSBkb2N1bWVudC0+dmlldygpOwogICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgZG9jdW1lbnQt
PnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC0xNDM4LDcgKzE0
MzgsNyBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBJbnRlcm5hbHM6Om5vZGVzRnJvbVJlY3QoRG9j
dW1lbnQqIGRvY3VtZW50LCBpbnQgY2VudGVyWCwgaQogCiAgICAgLy8gV2hlbiBpZ25vcmVDbGlw
cGluZyBpcyBmYWxzZSwgdGhpcyBtZXRob2QgcmV0dXJucyBudWxsIGZvciBjb29yZGluYXRlcyBv
dXRzaWRlIG9mIHRoZSB2aWV3cG9ydC4KICAgICBpZiAoIXJlcXVlc3QuaWdub3JlQ2xpcHBpbmco
KSAmJiAhZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKS5pbnRlcnNlY3RzKEhpdFRlc3RM
b2NhdGlvbjo6cmVjdEZvclBvaW50KHBvaW50LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJv
dHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nKSkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIFZlY3RvcjxSZWY8Tm9kZT4+IG1hdGNoZXM7CiAKQEAgLTIx
NTIsMTcgKzIxNTIsMTcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVy
ZWRBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdAogICAgIFNjaGVtZVJlZ2lz
dHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQ
b2xpY3koc2NoZW1lKTsKIH0KIAotUGFzc1JlZlB0cjxNYWxsb2NTdGF0aXN0aWNzPiBJbnRlcm5h
bHM6Om1hbGxvY1N0YXRpc3RpY3MoKSBjb25zdAorUmVmPE1hbGxvY1N0YXRpc3RpY3M+IEludGVy
bmFsczo6bWFsbG9jU3RhdGlzdGljcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIE1hbGxvY1N0YXRp
c3RpY3M6OmNyZWF0ZSgpOwogfQogCi1QYXNzUmVmUHRyPFR5cGVDb252ZXJzaW9ucz4gSW50ZXJu
YWxzOjp0eXBlQ29udmVyc2lvbnMoKSBjb25zdAorUmVmPFR5cGVDb252ZXJzaW9ucz4gSW50ZXJu
YWxzOjp0eXBlQ29udmVyc2lvbnMoKSBjb25zdAogewogICAgIHJldHVybiBUeXBlQ29udmVyc2lv
bnM6OmNyZWF0ZSgpOwogfQogCi1QYXNzUmVmUHRyPE1lbW9yeUluZm8+IEludGVybmFsczo6bWVt
b3J5SW5mbygpIGNvbnN0CitSZWY8TWVtb3J5SW5mbz4gSW50ZXJuYWxzOjptZW1vcnlJbmZvKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gTWVtb3J5SW5mbzo6Y3JlYXRlKCk7CiB9CkBAIC0yMzg1LDEz
ICsyMzg1LDEzIEBAIFN0cmluZyBJbnRlcm5hbHM6OmdldEN1cnJlbnRDdXJzb3JJbmZvKEV4Y2Vw
dGlvbkNvZGUmIGVjKQogI2VuZGlmCiB9CiAKLVBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IEludGVy
bmFsczo6c2VyaWFsaXplT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2
YWx1ZSkgY29uc3QKK1JlZlB0cjxBcnJheUJ1ZmZlcj4gSW50ZXJuYWxzOjpzZXJpYWxpemVPYmpl
Y3QoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKSBjb25zdAogewogICAg
IFZlY3Rvcjx1aW50OF90PiBieXRlcyA9IHZhbHVlLT5kYXRhKCk7CiAgICAgcmV0dXJuIEFycmF5
QnVmZmVyOjpjcmVhdGUoYnl0ZXMuZGF0YSgpLCBieXRlcy5zaXplKCkpOwogfQogCi1QYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSW50ZXJuYWxzOjpkZXNlcmlhbGl6ZUJ1ZmZlcihQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIpIGNvbnN0CitSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBJbnRlcm5hbHM6OmRlc2VyaWFsaXplQnVmZmVyKFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlcikgY29uc3QKIHsKICAgICBWZWN0b3I8dWludDhfdD4gYnl0ZXM7CiAgICAg
Ynl0ZXMuYXBwZW5kKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSks
IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKQEAgLTI1NzUsMTEgKzI1NzUsMTEgQEAgdm9pZCBJbnRl
cm5hbHM6OnNldENhcHRpb25EaXNwbGF5TW9kZShjb25zdCBTdHJpbmcmIG1vZGUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogfQogCiAjaWYgRU5BQkxFKFZJREVPKQotUGFzc1JlZlB0cjxUaW1lUmFuZ2Vz
PiBJbnRlcm5hbHM6OmNyZWF0ZVRpbWVSYW5nZXMoRmxvYXQzMkFycmF5KiBzdGFydFRpbWVzLCBG
bG9hdDMyQXJyYXkqIGVuZFRpbWVzKQorUmVmPFRpbWVSYW5nZXM+IEludGVybmFsczo6Y3JlYXRl
VGltZVJhbmdlcyhGbG9hdDMyQXJyYXkqIHN0YXJ0VGltZXMsIEZsb2F0MzJBcnJheSogZW5kVGlt
ZXMpCiB7CiAgICAgQVNTRVJUKHN0YXJ0VGltZXMgJiYgZW5kVGltZXMpOwogICAgIEFTU0VSVChz
dGFydFRpbWVzLT5sZW5ndGgoKSA9PSBlbmRUaW1lcy0+bGVuZ3RoKCkpOwotICAgIFJlZlB0cjxU
aW1lUmFuZ2VzPiByYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKKyAgICBSZWY8VGltZVJh
bmdlcz4gcmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7CiAKICAgICB1bnNpZ25lZCBjb3Vu
dCA9IHN0ZDo6bWluKHN0YXJ0VGltZXMtPmxlbmd0aCgpLCBlbmRUaW1lcy0+bGVuZ3RoKCkpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKaW5kZXggNGNkMTA5MGNjMmM0NDk5NjQ4YzdhNzQwZjk5MDE0YzcxMzNjYmEz
Ni4uN2ViZjQ2MTY3YmM0YzJkZDg1MzE2YzY2ZGRiOGFjMjZkYmEyZWU1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSA8YmluZGluZ3Mv
U2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTc4LDcgKzc3LDcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIGNsYXNz
IEludGVybmFscyA6IHB1YmxpYyBSZWZDb3VudGVkPEludGVybmFscz4KICAgICAgICAgICAgICAg
ICAsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SW50ZXJuYWxzPiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
UmVmPEludGVybmFscz4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+SW50ZXJuYWxz
KCk7CiAKICAgICBzdGF0aWMgdm9pZCByZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UqKTsKQEAg
LTEwNiw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclBhZ2VDYWNoZSgpOwogICAg
IHVuc2lnbmVkIHBhZ2VDYWNoZVNpemUoKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8Q1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8o
Tm9kZSosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICBSZWZQdHI8Q1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uPiBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oTm9kZSosIEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAogICAgIE5vZGUqIGVuc3VyZVNoYWRvd1Jvb3QoRWxlbWVu
dCogaG9zdCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIE5vZGUqIGVuc3VyZVVzZXJBZ2VudFNoYWRv
d1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTU3LDcgKzE1Niw3IEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgaW5zcGVjdG9ySGlnaGxpZ2h0T2JqZWN0KEV4Y2VwdGlvbkNv
ZGUmKTsKIAogICAgIHVuc2lnbmVkIG1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiwgY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdl
Rm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25lZCBpbmRleCwg
RXhjZXB0aW9uQ29kZSYpOworICAgIFJlZlB0cjxSYW5nZT4gbWFya2VyUmFuZ2VGb3JOb2RlKE5v
ZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25D
b2RlJik7CiAgICAgU3RyaW5nIG1hcmtlckRlc2NyaXB0aW9uRm9yTm9kZShOb2RlKiwgY29uc3Qg
U3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgYWRkVGV4dE1hdGNoTWFya2VyKGNvbnN0IFJhbmdlKiwgYm9vbCBpc0FjdGl2ZSk7CiAg
ICAgdm9pZCBzZXRNYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkKGJvb2wsIEV4Y2VwdGlv
bkNvZGUmKTsKQEAgLTE4MCwxMSArMTc5LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFpbnRD
b250cm9sVGludHMoRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUGFzc1JlZlB0cjxSYW5nZT4gcmFu
Z2VGcm9tTG9jYXRpb25BbmRMZW5ndGgoRWxlbWVudCogc2NvcGUsIGludCByYW5nZUxvY2F0aW9u
LCBpbnQgcmFuZ2VMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBSZWZQdHI8UmFuZ2U+IHJh
bmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKEVsZW1lbnQqIHNjb3BlLCBpbnQgcmFuZ2VMb2NhdGlv
biwgaW50IHJhbmdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgbG9jYXRp
b25Gcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHVuc2lnbmVkIGxlbmd0aEZyb21SYW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFu
Z2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIHJhbmdlQXNUZXh0KGNvbnN0IFJhbmdl
KiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHN1YnJhbmdlKFJhbmdl
KiByYW5nZSwgaW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxlbmd0aCwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIFJlZlB0cjxSYW5nZT4gc3VicmFuZ2UoUmFuZ2UqLCBpbnQgcmFuZ2VMb2NhdGlv
biwgaW50IHJhbmdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUmVmUHRyPFJhbmdlPiBy
YW5nZUZvckRpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKGludCB4LCBpbnQgeSwgRXhjZXB0aW9u
Q29kZSYpOwogCiAgICAgdm9pZCBzZXREZWxlZ2F0ZXNTY3JvbGxpbmcoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CkBAIC0yMDEsNyArMjAwLDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVk
IHdoZWVsRXZlbnRIYW5kbGVyQ291bnQoRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIHRv
dWNoRXZlbnRIYW5kbGVyQ291bnQoRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUGFzc1JlZlB0cjxO
b2RlTGlzdD4gbm9kZXNGcm9tUmVjdChEb2N1bWVudCosIGludCB4LCBpbnQgeSwgdW5zaWduZWQg
dG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLAorICAgIFJlZlB0cjxOb2RlTGlzdD4g
bm9kZXNGcm9tUmVjdChEb2N1bWVudCosIGludCB4LCBpbnQgeSwgdW5zaWduZWQgdG9wUGFkZGlu
ZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLAogICAgICAgICB1bnNpZ25lZCBib3R0b21QYWRkaW5n
LCB1bnNpZ25lZCBsZWZ0UGFkZGluZywgYm9vbCBpZ25vcmVDbGlwcGluZywgYm9vbCBhbGxvd1No
YWRvd0NvbnRlbnQsIGJvb2wgYWxsb3dDaGlsZEZyYW1lQ29udGVudCwgRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OwogCiAgICAgU3RyaW5nIHBhcnNlck1ldGFEYXRhKERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlID0gRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoKSk7CkBAIC0zMDIsOSArMzAxLDkgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0
eVBvbGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAgICAgdm9pZCByZW1vdmVVUkxTY2hlbWVS
ZWdpc3RlcmVkQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgU3RyaW5nJiBz
Y2hlbWUpOwogCi0gICAgUGFzc1JlZlB0cjxNYWxsb2NTdGF0aXN0aWNzPiBtYWxsb2NTdGF0aXN0
aWNzKCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxUeXBlQ29udmVyc2lvbnM+IHR5cGVDb252ZXJz
aW9ucygpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gbWVtb3J5SW5mbygpIGNv
bnN0OworICAgIFJlZjxNYWxsb2NTdGF0aXN0aWNzPiBtYWxsb2NTdGF0aXN0aWNzKCkgY29uc3Q7
CisgICAgUmVmPFR5cGVDb252ZXJzaW9ucz4gdHlwZUNvbnZlcnNpb25zKCkgY29uc3Q7CisgICAg
UmVmPE1lbW9yeUluZm8+IG1lbW9yeUluZm8oKSBjb25zdDsKIAogICAgIFZlY3RvcjxTdHJpbmc+
IGdldFJlZmVyZW5jZWRGaWxlUGF0aHMoKSBjb25zdDsKIApAQCAtMzI0LDggKzMyMyw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0FuZFJ1
blBvc3RMYXlvdXRUYXNrcyhOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIGxh
eW91dENvdW50KCkgY29uc3Q7CiAKLSAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBzZXJpYWxp
emVPYmplY3QoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSBjb25zdDsKLSAgICBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGVzZXJpYWxpemVCdWZmZXIoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4pIGNvbnN0OworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gc2VyaWFs
aXplT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPikgY29uc3Q7CisgICAg
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGVzZXJpYWxpemVCdWZmZXIoUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4pIGNvbnN0OwogCiAgICAgYm9vbCBpc0Zyb21DdXJyZW50V29ybGQoRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUpIGNvbnN0OwogCkBAIC0zNjYsNyArMzY1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKIAogI2lmIEVOQUJMRShWSURFTykKLSAgICBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+
IGNyZWF0ZVRpbWVSYW5nZXMoRmxvYXQzMkFycmF5KiBzdGFydFRpbWVzLCBGbG9hdDMyQXJyYXkq
IGVuZFRpbWVzKTsKKyAgICBSZWY8VGltZVJhbmdlcz4gY3JlYXRlVGltZVJhbmdlcyhGbG9hdDMy
QXJyYXkqIHN0YXJ0VGltZXMsIEZsb2F0MzJBcnJheSogZW5kVGltZXMpOwogICAgIGRvdWJsZSBj
bG9zZXN0VGltZVRvVGltZVJhbmdlcyhkb3VibGUgdGltZSwgVGltZVJhbmdlcyopOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTWFsbG9jU3RhdGlzdGljcy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9NYWxsb2NTdGF0aXN0aWNzLmgKaW5kZXggM2YwN2Ji
ZDlmNzFiMGRiMTM1MWFkZTJlZDg4ZTNjMGI5ZmE2OWZhNi4uYjAzMTdkOWRlZWU1ZWM3MDliMjU2
NTEyMDZmYjI4NzVhN2NmYTVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
YWxsb2NTdGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9NYWxsb2NTdGF0
aXN0aWNzLmgKQEAgLTI3LDE0ICsyNywxMyBAQAogI2RlZmluZSBNYWxsb2NTdGF0aXN0aWNzX2gK
IAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE1hbGxvY1N0YXRpc3RpY3MgOiBwdWJsaWMgUmVmQ291bnRlZDxNYWxsb2NTdGF0aXN0
aWNzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWFsbG9jU3RhdGlzdGljcz4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IE1hbGxvY1N0YXRpc3RpY3MoKSk7IH0KKyAg
ICBzdGF0aWMgUmVmPE1hbGxvY1N0YXRpc3RpY3M+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTWFsbG9jU3RhdGlzdGljcyk7IH0KIAogICAgIHNpemVfdCByZXNlcnZlZFZNQnl0ZXMo
KSBjb25zdCB7IHJldHVybiBtX3N0YXRzLnJlc2VydmVkVk1CeXRlczsgfQogICAgIHNpemVfdCBj
b21taXR0ZWRWTUJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0cy5jb21taXR0ZWRWTUJ5dGVz
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01lbW9yeUluZm8uaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTWVtb3J5SW5mby5oCmluZGV4IDNhY2M5MGVhNGNjNDBhMGJk
M2VhMWNjYWQ5OWI3ZDE4ZGYwMjg0NTEuLmJmMzExY2FkNjI2MTM2NTM2MGMxNmIyMTI1ZDg3NmE1
ZjhhMWVlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTWVtb3J5SW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTWVtb3J5SW5mby5oCkBAIC0zMiwxNCArMzIs
MTMgQEAKICNkZWZpbmUgTWVtb3J5SW5mb19oCiAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgot
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZW1vcnlJbmZvIDogcHVibGljIFJlZkNv
dW50ZWQ8TWVtb3J5SW5mbz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lbW9y
eUluZm8+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZW1vcnlJbmZvKTsgfQorICAg
IHN0YXRpYyBSZWY8TWVtb3J5SW5mbz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBN
ZW1vcnlJbmZvKTsgfQogCiAgICAgc2l6ZV90IHVzZWRKU0hlYXBTaXplKCkgY29uc3QgeyByZXR1
cm4gbV91c2VkSlNIZWFwU2l6ZTsgfQogICAgIHNpemVfdCB0b3RhbEpTSGVhcFNpemUoKSBjb25z
dCB7IHJldHVybiBtX3RvdGFsSlNIZWFwU2l6ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrQ0RNLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5j
cHAKaW5kZXggYTQ4NTA1MTRlNTAwYWUwMTg1ZWMxZjQ4OGFkZDUzMjcyMjg3NWQ4MC4uZGYyNTE4
ZmViODhlOWM3NGQ4NDQxZTZlNDZlYzkyMDVhMDAwOGRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDRE0uY3BwCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDbGllbnQoQ0RNU2Vzc2lvbkNsaWVudCogY2xpZW50KSBvdmVycmlkZSB7IG1fY2xpZW50ID0g
Y2xpZW50OyB9CiAgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklkOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFVp
bnQ4QXJyYXk+IGdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBVaW50
OEFycmF5KiBpbml0RGF0YSwgU3RyaW5nJiBkZXN0aW5hdGlvblVSTCwgdW5zaWduZWQgc2hvcnQm
IGVycm9yQ29kZSwgdW5zaWduZWQgbG9uZyYgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1
bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNz
YWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2Rl
KSBvdmVycmlkZTsKIApAQCAtMTExLDEyICsxMTEsMTIgQEAgTW9ja0NETVNlc3Npb246Ok1vY2tD
RE1TZXNzaW9uKCkKIHsKIH0KIAotUGFzc1JlZlB0cjxVaW50OEFycmF5PiBNb2NrQ0RNU2Vzc2lv
bjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYsIFVpbnQ4QXJyYXkqIGluaXREYXRh
LCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJikKK1Jl
ZlB0cjxVaW50OEFycmF5PiBNb2NrQ0RNU2Vzc2lvbjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0
IFN0cmluZyYsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmLCB1bnNpZ25lZCBzaG9ydCYg
ZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJikKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgaW5pdERhdGFQcmVmaXgoKS0+bGVuZ3RoKCk7ICsraSkgewogICAgICAgICBpZiAoIWluaXRE
YXRhIHx8IGkgPj0gaW5pdERhdGEtPmxlbmd0aCgpIHx8IGluaXREYXRhLT5pdGVtKGkpICE9IGlu
aXREYXRhUHJlZml4KCktPml0ZW0oaSkpIHsKICAgICAgICAgICAgIGVycm9yQ29kZSA9IE1lZGlh
S2V5RXJyb3I6Ok1FRElBX0tFWUVSUl9VTktOT1dOOwotICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4g
a2V5UmVxdWVzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9UeXBlQ29u
dmVyc2lvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmgKaW5k
ZXggODI2Mzg3NTAyMmFiMmQ2OTExMGRiNTkzNjA5YTA3NzNkNTBlNTQyMS4uYTg5OWVhNGNmMGZm
NDI3ZTkxMGQxYzEzYjc5Y2VhMmYxZmZiMTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9UeXBlQ29udmVyc2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1R5
cGVDb252ZXJzaW9ucy5oCkBAIC0yNywxNCArMjcsMTMgQEAKICNkZWZpbmUgVHlwZUNvbnZlcnNp
b25zX2gKIAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFR5cGVDb252ZXJzaW9ucyA6IHB1YmxpYyBSZWZDb3VudGVkPFR5cGVDb252
ZXJzaW9ucz4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFR5cGVDb252ZXJzaW9u
cz4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFR5cGVDb252ZXJzaW9ucygpKTsgfQor
ICAgIHN0YXRpYyBSZWY8VHlwZUNvbnZlcnNpb25zPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFR5cGVDb252ZXJzaW9ucygpKTsgfQogCiAgICAgbG9uZyB0ZXN0TG9uZygpIHsgcmV0
dXJuIG1fbG9uZzsgfQogICAgIHZvaWQgc2V0VGVzdExvbmcobG9uZyB2YWx1ZSkgeyBtX2xvbmcg
PSB2YWx1ZTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>