<?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>195498</bug_id>
          
          <creation_ts>2019-03-08 17:09:51 -0800</creation_ts>
          <short_desc>[JSC] Reduce # of structures in JSGlobalObject initialization</short_desc>
          <delta_ts>2019-03-11 14:56:29 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1514271</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-08 17:09:51 -0800</bug_when>
    <thetext>[JSC] Reduce # of structures in JSGlobalObject initialization</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514278</commentid>
    <comment_count>1</comment_count>
      <attachid>364095</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-08 17:20:24 -0800</bug_when>
    <thetext>Created attachment 364095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514279</commentid>
    <comment_count>2</comment_count>
      <attachid>364096</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-08 17:21:41 -0800</bug_when>
    <thetext>Created attachment 364096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514306</commentid>
    <comment_count>3</comment_count>
      <attachid>364106</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-08 18:34:51 -0800</bug_when>
    <thetext>Created attachment 364106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514577</commentid>
    <comment_count>4</comment_count>
      <attachid>364106</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-03-10 13:53:08 -0700</bug_when>
    <thetext>Comment on attachment 364106
Patch

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

I presume there is enough regression test coverage of these things that we have some good confidence we got them all right.

&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:130
&gt; +    const Identifier unscopableNames[] = {

There is some reference count churn initializing an array of Identifier. Might be nice to look for an idiom with less wasted work. For example, it would be slightly more efficient to make an array of const Identifier* and then dereference all of them to avoid 9 ref/deref pairs.

&gt; Source/JavaScriptCore/runtime/VM.h:572
&gt; +    Structure* setIteratorStructure()
&gt; +    {
&gt; +        if (LIKELY(m_setIteratorStructure))
&gt; +            return m_setIteratorStructure.get();
&gt; +        return setIteratorStructureSlow();
&gt; +    }

I prefer an idiom where we don’t have so many multiline function bodies in a class definition. For me they interfere with my ability to use the class definition to get an overview of what’s in the class. The pattern is also easy to avoid by moving inlines function bodies down in the header, outside the class definition, but with the cost of not being able to see immediately what each function does by seeing its implementation. But it seems that VM already has tons of these. So I don’t think more are going to make things worse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514981</commentid>
    <comment_count>5</comment_count>
      <attachid>364106</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-11 13:55:18 -0700</bug_when>
    <thetext>Comment on attachment 364106
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/ArrayPrototype.cpp:130
&gt;&gt; +    const Identifier unscopableNames[] = {
&gt; 
&gt; There is some reference count churn initializing an array of Identifier. Might be nice to look for an idiom with less wasted work. For example, it would be slightly more efficient to make an array of const Identifier* and then dereference all of them to avoid 9 ref/deref pairs.

`const Identifier*` sounds better. Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/VM.h:572
&gt;&gt; +    }
&gt; 
&gt; I prefer an idiom where we don’t have so many multiline function bodies in a class definition. For me they interfere with my ability to use the class definition to get an overview of what’s in the class. The pattern is also easy to avoid by moving inlines function bodies down in the header, outside the class definition, but with the cost of not being able to see immediately what each function does by seeing its implementation. But it seems that VM already has tons of these. So I don’t think more are going to make things worse.

I leave it as is since (1) as you said, VM already has bunch of inlined functions in class declaration, and (2) it is aligned to the existing lazy allocation methods in VM.
I think we can clean up VM at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515015</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-03-11 14:55:05 -0700</bug_when>
    <thetext>Committed r242742: &lt;https://trac.webkit.org/changeset/242742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515018</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-11 14:56:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/48784197&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364095</attachid>
            <date>2019-03-08 17:20:24 -0800</date>
            <delta_ts>2019-03-08 17:21:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195498-20190308172024.patch</filename>
            <type>text/plain</type>
            <size>39966</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MDVmYmViZTIxNzA3Mjg4N2I2NGNlMjA4OTcyMzUxYzVjMGZiODQzLi5kN2NkZGUyZWQxN2Y3MzEw
ZTY3OGMyYmM1NmQ3MWZkOTM5MzI0NTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOS0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlZHVjZSAjIG9mIHN0cnVjdHVyZXMgaW4gSlNHbG9iYWxPYmpl
Y3QgaW5pdGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTQ5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVkdWNlcyAjIG9mIHN0cnVjdHVyZSBhbGxvY2F0aW9ucyBp
biBKU0dsb2JhbE9iamVjdCBpbml0aWFsaXphdGlvbi4gTm93IGl0IGJlY29tZXMgMTQxLCBpdCBm
aXRzIGluIG9uZQorICAgICAgICBNYXJrZWRCbG9jayBhbmQgdGhpcyBwYXRjaCBkcm9wcyBvbmUg
TWFya2VkQmxvY2sgdXNlZCBmb3IgU3RydWN0dXJlIHByZXZpb3VzbHkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9BcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlJdGVyYXRvclByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLCBNYXBJdGVyYXRvclBy
b3RvdHlwZSwgYW5kIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJ3MKKyAgICAgICAgIm5leHQiIHBy
b3BlcnRpZXMgYXJlIHJlZmVyZW5jZWQgYnkgSlNHbG9iYWxPYmplY3Q6OmluaXQsIGFuZCBpdCBj
YXVzZXMgcmVpZmljYXRpb24gb2YgdGhlIGxhenkgIm5leHQiIHByb3BlcnR5IGFuZCBzdHJ1Y3R1
cmUKKyAgICAgICAgdHJhbnNpdGlvbiBhbnl3YXkuIFNvIHdlIHNob3VsZCBwdXQgaXQgZWFnZXJs
eSAid2l0aG91dC10cmFuc2l0aW9uIiBjb25maWd1cmF0aW9uIHRvIGF2b2lkIG9uZSBzdHJ1Y3R1
cmUgdHJhbnNpdGlvbi4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOiBAQHVuc2NvcGFi
bGUgb2JqZWN0J3Mgc3RydWN0dXJlIHNob3VsZCBiZSBkaWN0aW9uYXJ5IGJlY2F1c2UgKDEpIGl0
IGlzIHVzZWQgYXMgYSBkaWN0aW9uYXJ5CisgICAgICAgIGluIHdpdGgtc2NvcGUtcmVzb2x1dGlv
biBhbmQgKDIpIHNpbmNlIHdpdGgtc2NvcGUtcmVzb2x1dGlvbiBpcyBDKysgcnVudGltZSBmdW5j
dGlvbiBhbnl3YXksIG5vbi1kaWN0aW9uYXJ5IHN0cnVjdHVyZSBkb2VzIG5vdCBhZGQKKyAgICAg
ICAgYW55IHBlcmZvcm1hbmNlIGJlbmVmaXQuIFRoaXMgY2hhbmdlIHNhdmVzIHNldmVyYWwgc3Ry
dWN0dXJlcyB0aGF0IGFyZSBub3QgdXNlZnVsLgorCisgICAgICAgICogcnVudGltZS9DbG9uZWRB
cmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpDbG9uZWRBcmd1bWVudHM6OmNyZWF0ZVN0cnVj
dHVyZSk6IEJha2UgQ2xvbmVBcmd1bWVudHMncyBzdHJ1Y3R1cmUgd2l0aCAnd2l0aG91dC10cmFu
c2l0aW9uJyBtYW5uZXIuCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOiBQcmV2aW91c2x5IHdlIGFyZSBh
bHdheXMgY2FsbCByZXNldFByb3RveXBlIGF0IHRoZSBlbmQgb2YgSlNHbG9iYWxPYmplY3Q6Omlu
aXQuIEJ1dCBpdCBpcyBub3QgbmVjZXNzYXJ5CisgICAgICAgIHNpbmNlIHdlIGRvIG5vdCBjaGFu
Z2UgW1tQcm90b3R5cGVdXSBvZiBKU0dsb2JhbE9iamVjdC4gQWxsIHdlIHdhbnQgaXMgKDEpIGZp
eHVwUHJvdG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlJ3Mgb3BlcmF0aW9uIGFuZCAoMikg
c2V0R2xvYmFsVGhpcworICAgICAgICBvcGVyYXRpb24uIFNpbmNlIHNldEdsb2JhbFRoaXMgcGFy
dCBpcyBkb25lIGluIEpTR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbiwgZml4dXBQcm90b3R5
cGVDaGFpbldpdGhPYmplY3RQcm90b3R5cGUgaXMgb25seSB0aGUgdGhpbmcKKyAgICAgICAgd2Ug
c2hvdWxkIGRvIGhlcmUuCisKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpeHVwUHJv
dG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OnJlc2V0UHJvdG90eXBlKTogSWYgdGhlIFtbUHJvdG90eXBlXV0gaXMgdGhlIHNhbWUg
dG8gdGhlIGN1cnJlbnQgW1tQcm90b3R5cGVdXSwgd2UgY2FuIHNraXAgdGhlIG9wZXJhdGlvbi4K
KworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L01hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6TWFwSXRlcmF0b3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5j
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmg6IFNpbmNlIHN0
cnVjdHVyZXMgb2YgdGhlbSBhcmUgYWxsb2NhdGVkIHBlciBKU0dsb2JhbE9iamVjdCBhbmQgdGhl
eSBhcmUgcGVyLUpTR2xvYmFsT2JqZWN0LAorICAgICAgICB3ZSBjYW4gdXNlIHdpdGhvdXQtdHJh
bnNpdGlvbiBwcm9wZXJ0eSBhZGRpdGlvbi4KKworICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nSXRl
cmF0b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdJdGVyYXRvclByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAo
SlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6c2V0SXRlcmF0b3JTdHJ1Y3R1cmVTbG93
KToKKyAgICAgICAgKEpTQzo6Vk06Om1hcEl0ZXJhdG9yU3RydWN0dXJlU2xvdyk6IFRoZXNlIHN0
cnVjdHVyZXMgYXJlIG9ubHkgdXNlZCBpbiBXZWJDb3JlJ3MgbWFpbiB0aHJlYWQuCisgICAgICAg
ICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6c2V0SXRlcmF0b3JTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpWTTo6bWFwSXRlcmF0b3JTdHJ1Y3R1cmUpOgorCiAyMDE5LTAzLTA4
ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgSW50ZWdl
ckNoZWNrQ29tYmluaW5nUGhhc2U6OlJhbmdlIGNhbiBiZSBzaHJ1bmsgYnkgOCBieXRlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDVhNTMwZmE4ODA1N2ZmOGRlZmVjZTQ4MGEyZDZhOTQzNWEzZjNmNjcuLmJkY2I2
NTg0Y2FmYTUxODhhNTQ5ZjRiNTViMDZmNDI5YzIwMmYzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxOS0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgor
CisgICAgICAgIFtKU0NdIFJlZHVjZSAjIG9mIHN0cnVjdHVyZXMgaW4gSlNHbG9iYWxPYmplY3Qg
aW5pdGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTQ5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXpl
cjo6c2VyaWFsaXplKToKKwogMjAxOS0wMy0wOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIEV4cGFuZCAiaXNDb25zaWRl
cmVkQ2xpY2thYmxlIiB0byBkZXNjZW5kYW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDg3OGVhZjJiZWFkZmRkYzc4NGNmNzk1MThhMmRmZmU3NTI4NTFkZDUuLjE0YWJh
MDlmMjNjOTU2MGY4MzU4ZDQ2NzIxNjIzNTc4YzdlMzVkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTU5LDcgKzU5LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NZU1RF
TV9JTkNMVURFX0RJUkVDVE9SSUVTCiAKIHNldChKYXZhU2NyaXB0Q29yZV9PQkpFQ1RfTFVUX1NP
VVJDRVMKICAgICBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCi0gICAgcnVudGltZS9BcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvQXN5bmNGcm9tU3luY0l0ZXJhdG9y
UHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUuY3BwCiAg
ICAgcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTk1LDcgKzk0LDYgQEAgc2V0KEph
dmFTY3JpcHRDb3JlX09CSkVDVF9MVVRfU09VUkNFUwogICAgIHJ1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmNwcAogICAgIHJ1bnRpbWUvU2V0UHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuY3BwCi0gICAgcnVudGltZS9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAK
ICAgICBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKICAgICBydW50aW1lL1N5bWJvbENvbnN0
cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cmlu
ZGV4IGQyZGVlNDI0MjMzNzc4OWU3NGJjNGM0ZGZmNTRiZjYxNzdhOTgxMzQuLmZhYWYxNmYxNGU4
NjdjOWRjNDlhMjhlODg0YzFjNmY1NzRjYmE3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTMsNyArMyw2
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9B
aXJPcGNvZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3Jp
cHRDb3JlL0Fpck9wY29kZUdlbmVyYXRlZC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQWlyT3Bjb2RlVXRpbHMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0FycmF5Q29uc3RydWN0b3IubHV0
LmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9B
cnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlLmx1
dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUv
QXN5bmNHZW5lcmF0b3JQcm90b3R5cGUubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9CaWdJbnRDb25zdHJ1Y3Rvci5sdXQuaApAQCAtNTIs
NyArNTEsNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlw
dENvcmUvUmVnRXhwQ29uc3RydWN0b3IubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9SZWdFeHBKaXRUYWJsZXMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1NldFByb3RvdHlwZS5sdXQu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1N0
cmluZ0NvbnN0cnVjdG9yLmx1dC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvSmF2YVNjcmlwdENvcmUvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9TdHJpbmdQcm90b3R5
cGUubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9TeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1N5bWJvbFByb3RvdHlwZS5sdXQuaApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAyNDJlMGNkNzY1NzNmNjVjNGUy
NTg4NTkxODJjMWExOWI3YWRmNGM5Li5jYmVmNGMxN2UyMWNhOTFmZmRhMzFiNDU3NGUwNDY3Yjc3
ZTY4NTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
MTM1LDcgKzEzNSw2IEBAIEpTQ0J1aWx0aW5zLmg6ICQoQlVJTFRJTlNfR0VORVJBVE9SX1NDUklQ
VFMpICQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09VUkNFUykKIE9CSkVDVF9MVVRfSEVBREVS
UyA9IFwKICAgICBBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUubHV0LmggXAogICAgIEFy
cmF5Q29uc3RydWN0b3IubHV0LmggXAotICAgIEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0Lmgg
XAogICAgIEFzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBCaWdJbnRDb25zdHJ1
Y3Rvci5sdXQuaCBcCiAgICAgQmlnSW50UHJvdG90eXBlLmx1dC5oIFwKQEAgLTE2OSw3ICsxNjgs
NiBAQCBPQkpFQ1RfTFVUX0hFQURFUlMgPSBcCiAgICAgUmVnRXhwQ29uc3RydWN0b3IubHV0Lmgg
XAogICAgIFNldFByb3RvdHlwZS5sdXQuaCBcCiAgICAgU3RyaW5nQ29uc3RydWN0b3IubHV0Lmgg
XAotICAgIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBTdHJpbmdQcm90b3R5
cGUubHV0LmggXAogICAgIFN5bWJvbENvbnN0cnVjdG9yLmx1dC5oIFwKICAgICBTeW1ib2xQcm90
b3R5cGUubHV0LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNDhhNjRiYzEw
OGIwODk3ZGRlNDhjNmRmOWM2YzcxNTYwODNhZDA3Li5hY2RhYWJlY2NiNmM0MzE4NjU0Y2MzMmVi
ZWZhNmRhMjE5ZDM3NmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI4Niw3
ICsxMjg2LDYgQEAKIAkJOTk1OUU5MzIxQkQxODI3OTAwMUFBNDEzIC8qIGlubGluZS1hbmQtbWlu
aWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1OUU5MzAxQkQxODFGNjAwMUFBNDEzIC8qIGlubGluZS1h
bmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5ICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5NjIzMUU5MThEMTgwNDIwMEMwM0ZEQSAv
KiBJbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNTMyNDM5NjE4NTZBNDc1MDAyRUQ2OTIgLyogSW5zcGVjdG9y
QmFja2VuZENvbW1hbmRzLmpzICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTk5NkI3MzE3MUJEQTA2N0YwMDMzMUI4NCAvKiBBcnJheUNvbnN0cnVjdG9y
Lmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2
QjczMTUxQkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5Q29uc3RydWN0b3IubHV0LmggKi87IH07Ci0J
CTk5NkI3MzE4MUJEQTA2ODAwMDMzMUI4NCAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2QjczMTYx
QkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmggKi87IH07CiAJ
CTk5NkI3MzE5MUJEQTA2ODAwMDMzMUI4NCAvKiBCb29sZWFuUHJvdG90eXBlLmx1dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2QjczMDcxQkQ5RkEy
QzAwMzMxQjg0IC8qIEJvb2xlYW5Qcm90b3R5cGUubHV0LmggKi87IH07CiAJCTk5NkI3MzFBMUJE
QTA4RDEwMDMzMUI4NCAvKiBEYXRlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMwODFCRDlGQTJDMDAzMzFCODQgLyog
RGF0ZUNvbnN0cnVjdG9yLmx1dC5oICovOyB9OwogCQk5OTZCNzMxQjFCREEwOEQxMDAzMzFCODQg
LyogRXJyb3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OTZCNzMwOTFCRDlGQTJDMDAzMzFCODQgLyogRXJyb3JQcm90b3R5cGUu
bHV0LmggKi87IH07CkBAIC0xMjk5LDcgKzEyOTgsNiBAQAogCQk5OTZCNzMyMjFCREEwOEVGMDAz
MzFCODQgLyogT2JqZWN0Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMwRTFCRDlGQTJDMDAzMzFCODQgLyogT2JqZWN0
Q29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCTk5NkI3MzIzMUJEQTA4RUYwMDMzMUI4NCAvKiBS
ZWZsZWN0T2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTk2QjczMEYxQkQ5RkEyQzAwMzMxQjg0IC8qIFJlZmxlY3RPYmplY3QubHV0Lmgg
Ki87IH07CiAJCTk5NkI3MzI1MUJEQTA4RUYwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5s
dXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NkI3
MzExMUJEOUZBMkMwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKLQkJ
OTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2QjczMTIx
QkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oICovOyB9Owog
CQk5OTZCNzMyNzFCREEwOEVGMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxMzFCRDlG
QTJDMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCTk5NkI3MzI4
MUJEQTA4RUYwMDMzMUI4NCAvKiBTeW1ib2xQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxNDFCRDlGQTJDMDAzMzFCODQg
LyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovOyB9OwogCQk5OThFRDY3NTFCRUQ3NjhDMDBERDgw
MTcgLyogUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OThFRDY3MzFCRUQ2NTlBMDBERDgwMTcgLyogUmVtb3Rl
Q29udHJvbGxhYmxlVGFyZ2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTQwMjksMTEgKzQwMjcsOSBAQAogCQk5OTZCNzMwRTFCRDlGQTJDMDAz
MzFCODQgLyogT2JqZWN0Q29uc3RydWN0b3IubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE9iamVjdENvbnN0cnVjdG9yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTZCNzMwRjFCRDlGQTJDMDAzMzFCODQgLyogUmVmbGVjdE9iamVjdC5sdXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmbGVjdE9iamVjdC5sdXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2QjczMTExQkQ5RkEyQzAwMzMxQjg0IC8qIFN0
cmluZ0NvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
dHJpbmdDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTk2
QjczMTIxQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5s
dXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2QjczMTMxQkQ5RkEyQzAwMzMx
Qjg0IC8qIFN5bWJvbENvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTk2QjczMTQxQkQ5RkEyQzAwMzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5sdXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3ltYm9sUHJvdG90eXBlLmx1dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZCNzMxNTFCREEwNUFBMDAzMzFCODQgLyog
QXJyYXlDb25zdHJ1Y3Rvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXJyYXlDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTk2
QjczMTYxQkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5OEVENjcyMUJFRDY1OUEwMEREODAx
NyAvKiBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTk4RUQ2NzMxQkVENjU5QTAwREQ4MDE3IC8qIFJlbW90ZUNvbnRy
b2xsYWJsZVRhcmdldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVD
b250cm9sbGFibGVUYXJnZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlEQTAw
OTkxQkQ1OTkyNzAwRjQ1NzVDIC8qIF9faW5pdF9fLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQu
cHl0aG9uOyBwYXRoID0gX19pbml0X18ucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MzYxLDcgKzYzNTcsNiBAQAogCQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJP
cGNvZGVHZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWly
T3Bjb2RlVXRpbHMuaCAqLywKIAkJCQk5OTZCNzMxNTFCREEwNUFBMDAzMzFCODQgLyogQXJyYXlD
b25zdHJ1Y3Rvci5sdXQuaCAqLywKLQkJCQk5OTZCNzMxNjFCREEwNUFBMDAzMzFCODQgLyogQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQlFMzg5M0ExQzIyMDNBN0M2MDBFNzlB
NzQgLyogQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oICovLAogCQkJCThCM0JG
NUUzMUUzRDM2NUEwMDc2QTg3QSAvKiBBc3luY0dlbmVyYXRvclByb3RvdHlwZS5sdXQuaCAqLywK
IAkJCQk5OTZCNzMwNzFCRDlGQTJDMDAzMzFCODQgLyogQm9vbGVhblByb3RvdHlwZS5sdXQuaCAq
LywKQEAgLTY0MDMsNyArNjM5OCw2IEBACiAJCQkJQTcxOEY2MUExMTc1NEEyMTAwMjQ2NUE3IC8q
IFJlZ0V4cEppdFRhYmxlcy5oICovLAogCQkJCTcwMzU1ODdGMUM0MTg0NTgwMDRCRDdCRiAvKiBT
ZXRQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJOTk2QjczMTExQkQ5RkEyQzAwMzMxQjg0IC8qIFN0
cmluZ0NvbnN0cnVjdG9yLmx1dC5oICovLAotCQkJCTk5NkI3MzEyMUJEOUZBMkMwMDMzMUI4NCAv
KiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQk5OTZCNzMxMzFCRDlGQTJD
MDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJOTk2QjczMTQxQkQ5
RkEyQzAwMzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQk1MzNCMTVERTFE
QzdGNDYzMDA0RDUwMEEgLyogV2FzbU9wcy5oICovLApAQCAtODQ4NCw3ICs4NDc4LDYgQEAKIAkJ
CQk5OTZCNzMxNzFCREEwNjdGMDAzMzFCODQgLyogQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQjdGMzk1MTVFRDhFNDYwMEYxNjdCMiAvKiBBcnJheUNvbnZlbnRp
b25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JEQUVDOTE3RjRFQTE0MDBGNjE0MEMgLyogQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMTgxQkRBMDY4
MDAwMzMxQjg0IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjYzOTQ1NTE1RDA3MDU3MDA2QTU5N0MgLyogQXJyYXlQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzE4QzNFNzBFMTZGNUNEMDBCMzQ0NjAgLyogQXJyYXlQcm90b3R5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQjdGMzk2MTVFRDhFNDYwMEYxNjdCMiAvKiBBcnJheVN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLApAQCAtOTY5Nyw3ICs5NjkwLDYgQEAKIAkJCQlCQzE4QzQ2NjBF
MTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk5NkI3MzI1MUJEQTA4RUYwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwRUMwRUM3MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRv
clByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0
IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0NjgwRTE2RjVDRDAwQjM0NDYwIC8qIFN0cmluZ09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0NkEwRTE2RjVDRDAwQjM0NDYwIC8qIFN0cmluZ1Byb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTMyNUEzNjAyMjIxMTU5MDAwNzM0OUExIC8qIFN0cmluZ1Byb3RvdHlwZUlu
bGluZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCBiNGU2MmE5MDI4NTA1
YjgwODUzYTdmNjdiNThjZDlkMDc3NjlmZGZhLi44OTMzMjBhOWE0Mzk3NWI3ODFjZDY0NDFiMGQ4
Yjg2NTQ4NDczNzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCIKIAotI2lu
Y2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFs
dWVJbmxpbmVzLmgiCkBAIC0zNywxOSArMzYsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNv
bnN0IENsYXNzSW5mbyBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJBcnJheSBJ
dGVyYXRvciIsICZCYXNlOjpzX2luZm8sICZhcnJheUl0ZXJhdG9yUHJvdG90eXBlVGFibGUsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQXJyYXlJdGVyYXRvclByb3RvdHlwZSkgfTsKK2Nv
bnN0IENsYXNzSW5mbyBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJBcnJheSBJ
dGVyYXRvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoQXJyYXlJdGVyYXRvclByb3RvdHlwZSkgfTsKIAotLyogU291cmNlIGZvciBBcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmx1dC5oCi1AYmVnaW4gYXJyYXlJdGVyYXRvclByb3RvdHlwZVRhYmxl
Ci0gIG5leHQgICAgICBKU0J1aWx0aW4gIERvbnRFbnVtfEZ1bmN0aW9uIDAKLUBlbmQKLSovCi0K
LXZvaWQgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCopCit2b2lkIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKICAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdU
YWdTeW1ib2wsIGpzU3RyaW5nKCZ2bSwgIkFycmF5IEl0ZXJhdG9yIiksIFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgSlNDX0JV
SUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPm5leHQs
IGFycmF5SXRlcmF0b3JQcm90b3R5cGVOZXh0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIGRpZEJlY29tZVByb3Rv
dHlwZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAKaW5kZXggMWEzN2IzZjBjYjFlYjVlNDM0MWFiZWZjODJhNzM2ZDNjMTY3ZDJk
Yy4uYjJiYTI5YzhlMDRiMjEyMzhkZDdlNzdkMWJlZGVlNjEzMDZjNDFhZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtODksOCAr
ODksOCBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnbG9iYWxPYmplY3QtPmFycmF5
UHJvdG9WYWx1ZXNGdW5jdGlvbigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSk7CiAKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT50b0xvY2FsZVN0cmluZywgYXJyYXlQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIDApOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigiY29uY2F0IiwgYXJyYXlQcm90b3R5cGVDb25jYXRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxU
SU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmaWxsIiwgYXJyYXlQcm90b3R5cGVGaWxs
Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jb25jYXRQdWJsaWNOYW1lKCksIGFycmF5
UHJvdG90eXBlQ29uY2F0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maWxsUHVibGlj
TmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbGxDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+am9pbiwgYXJyYXlQcm90
b0Z1bmNKb2luLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJwb3AiLCBhcnJheVByb3RvRnVuY1BvcCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDAsIEFycmF5UG9wSW50cmluc2ljKTsKICAgICBK
U0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHVzaFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b0Z1bmNQ
dXNoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MSwgQXJyYXlQdXNoSW50cmluc2ljKTsKQEAgLTk5LDI2ICs5OSwyNiBAQCB2b2lkIEFycmF5UHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2hpZnRQdWJsaWNOYW1lKCksIGFycmF5UHJvdG9GdW5j
U2hpZnQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zaGlmdFByaXZhdGVOYW1lKCksIGFycmF5UHJvdG9G
dW5jU2hpZnQsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCAwKTsKICAgICBKU0Nf
TkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlO
YW1lcy0+c2xpY2UsIGFycmF5UHJvdG9GdW5jU2xpY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyLCBBcnJheVNsaWNlSW50cmluc2ljKTsKLSAg
ICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNvcnQiLCBhcnJheVBy
b3RvdHlwZVNvcnRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNvcnRQdWJsaWNOYW1l
KCksIGFycmF5UHJvdG90eXBlU29ydENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigic3BsaWNlIiwgYXJyYXlQcm90b0Z1bmNTcGxpY2UsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigidW5zaGlmdCIsIGFycmF5UHJv
dG9GdW5jVW5TaGlmdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIDEpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
TigiZXZlcnkiLCBhcnJheVByb3RvdHlwZUV2ZXJ5Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElO
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZm9yRWFjaCIsIGFycmF5UHJvdG90eXBlRm9y
RWFjaENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oInNvbWUiLCBhcnJheVByb3RvdHlwZVNvbWVDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmV2ZXJ5UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUV2ZXJ5Q29kZUdlbmVyYXRvciwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5mb3JFYWNoUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZvckVh
Y2hDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNvbWVQdWJsaWNOYW1lKCksIGFycmF5
UHJvdG90eXBlU29tZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBhcnJheVByb3RvRnVuY0luZGV4T2YsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxLCBBcnJh
eUluZGV4T2ZJbnRyaW5zaWMpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJsYXN0SW5kZXhPZiIsIGFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2YsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBKU0Nf
QlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZpbHRlciIsIGFycmF5UHJvdG90
eXBlRmlsdGVyQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigiZmxhdCIsIGFycmF5UHJvdG90eXBlRmxhdENvZGVHZW5lcmF0b3IsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJ
TFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZsYXRNYXAiLCBhcnJheVByb3RvdHlw
ZUZsYXRNYXBDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJyZWR1Y2UiLCBhcnJheVByb3RvdHlwZVJlZHVjZUNvZGVHZW5lcmF0b3IsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0Nf
QlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInJlZHVjZVJpZ2h0IiwgYXJyYXlQ
cm90b3R5cGVSZWR1Y2VSaWdodENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oIm1hcCIsIGFycmF5UHJvdG90eXBlTWFwQ29kZUdlbmVyYXRvciwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5maWx0ZXJQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRmlsdGVy
Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5mbGF0UHVibGljTmFtZSgpLCBhcnJheVBy
b3RvdHlwZUZsYXRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZsYXRNYXBQdWJsaWNO
YW1lKCksIGFycmF5UHJvdG90eXBlRmxhdE1hcENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucmVkdWNlUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZVJlZHVjZUNvZGVHZW5lcmF0b3Is
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAg
ICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkucmVkdWNlUmlnaHRQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBl
UmVkdWNlUmlnaHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLm1hcFB1YmxpY05hbWUo
KSwgYXJyYXlQcm90b3R5cGVNYXBDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJp
ZXNQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRW50cmllc0NvZGVHZW5lcmF0b3IsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0Nf
QlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkua2V5c1B1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVLZXlzQ29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmluZCIsIGFy
cmF5UHJvdG90eXBlRmluZENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImZpbmRJbmRleCIsIGFycmF5UHJvdG90eXBlRmluZEluZGV4Q29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5jbHVk
ZXMiLCBhcnJheVByb3RvdHlwZUluY2x1ZGVzQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY29weVdpdGhpbiIsIGFycmF5UHJvdG90eXBlQ29w
eVdpdGhpbkNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZFB1YmxpY05hbWUoKSwg
YXJyYXlQcm90b3R5cGVGaW5kQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kSW5k
ZXhQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRmluZEluZGV4Q29kZUdlbmVyYXRvciwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpT
Q19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5pbmNsdWRlc1B1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVJbmNsdWRl
c0NvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY29weVdpdGhpblB1YmxpY05hbWUoKSwg
YXJyYXlQcm90b3R5cGVDb3B5V2l0aGluQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogCiAgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQ
cml2YXRlTmFtZSgpLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmVudHJpZXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZvckVhY2hQcml2YXRlTmFtZSgpLCBn
ZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZvckVhY2hQdWJs
aWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5KSk7CkBAIC0xMjYsMTggKzEyNiwxOSBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnZhbHVlc1ByaXZhdGVOYW1lKCksIGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0
aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkp
KTsKIAogICAgIEpTT2JqZWN0KiB1bnNjb3BhYmxlcyA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmpl
Y3RTdHJ1Y3R1cmUoKSk7Ci0gICAgY29uc3QgY2hhciogdW5zY29wYWJsZU5hbWVzW10gPSB7Ci0g
ICAgICAgICJjb3B5V2l0aGluIiwKLSAgICAgICAgImVudHJpZXMiLAotICAgICAgICAiZmlsbCIs
Ci0gICAgICAgICJmaW5kIiwKLSAgICAgICAgImZpbmRJbmRleCIsCi0gICAgICAgICJpbmNsdWRl
cyIsCi0gICAgICAgICJrZXlzIiwKLSAgICAgICAgInZhbHVlcyIKKyAgICB1bnNjb3BhYmxlcy0+
Y29udmVydFRvRGljdGlvbmFyeSh2bSk7CisgICAgY29uc3QgSWRlbnRpZmllciB1bnNjb3BhYmxl
TmFtZXNbXSA9IHsKKyAgICAgICAgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY29w
eVdpdGhpblB1YmxpY05hbWUoKSwKKyAgICAgICAgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSwKKyAgICAgICAgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkuZmlsbFB1YmxpY05hbWUoKSwKKyAgICAgICAgdm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuZmluZFB1YmxpY05hbWUoKSwKKyAgICAgICAgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuZmluZEluZGV4UHVibGljTmFtZSgpLAorICAgICAgICB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbmNsdWRlc1B1YmxpY05hbWUoKSwKKyAgICAgICAg
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5c1B1YmxpY05hbWUoKSwKKyAgICAg
ICAgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudmFsdWVzUHVibGljTmFtZSgpCiAg
ICAgfTsKLSAgICBmb3IgKGNvbnN0IGNoYXIqIHVuc2NvcGFibGVOYW1lIDogdW5zY29wYWJsZU5h
bWVzKQotICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgdW5zY29wYWJsZU5hbWUpLCBqc0Jvb2xlYW4odHJ1ZSkpOworICAgIGZvciAo
YXV0byYgdW5zY29wYWJsZU5hbWUgOiB1bnNjb3BhYmxlTmFtZXMpCisgICAgICAgIHVuc2NvcGFi
bGVzLT5wdXREaXJlY3Qodm0sIHVuc2NvcGFibGVOYW1lLCBqc0Jvb2xlYW4odHJ1ZSkpOwogICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT51bnNjb3Bh
Ymxlc1N5bWJvbCwgdW5zY29wYWJsZXMsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DbG9uZWRBcmd1bWVudHMuY3BwCmluZGV4IDE4NTIxNTUzMDM0NmY1YTIy
Y2NkMWIwYTBkZTJmYTg5NmMxZGRiZDYuLjhiMDc0YjJkN2Q3OTlhMzM1OGQ5N2MyYzJmYWIzZTlk
Njg2NDY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25l
ZEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVk
QXJndW1lbnRzLmNwcApAQCAtMTUxLDkgKzE1MSwxMiBAQCBDbG9uZWRBcmd1bWVudHMqIENsb25l
ZEFyZ3VtZW50czo6Y3JlYXRlQnlDb3B5aW5nRnJvbSgKIFN0cnVjdHVyZSogQ2xvbmVkQXJndW1l
bnRzOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSkKIHsKICAgICBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oQ2xvbmVkQXJndW1lbnRzVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCksIGluZGV4aW5nVHlwZSk7Ci0gICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0OwotICAg
IHN0cnVjdHVyZSA9IHN0cnVjdHVyZS0+YWRkUHJvcGVydHlUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1
cmUsIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIG9mZnNldCk7Ci0gICAgQVNTRVJUKG9mZnNldCA9PSBj
bG9uZWRBcmd1bWVudHNMZW5ndGhQcm9wZXJ0eU9mZnNldCk7CisgICAgc3RydWN0dXJlLT5hZGRQ
cm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uKAorICAgICAgICB2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwKKyAgICAgICAgWyZdIChjb25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2NrZXImLCBQcm9wZXJ0
eU9mZnNldCBvZmZzZXQsIFByb3BlcnR5T2Zmc2V0IG5ld0xhc3RPZmZzZXQpIHsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKG9mZnNldCA9PSBjbG9uZWRBcmd1bWVudHNMZW5ndGhQcm9wZXJ0
eU9mZnNldCk7CisgICAgICAgICAgICBzdHJ1Y3R1cmUtPnNldExhc3RPZmZzZXQobmV3TGFzdE9m
ZnNldCk7CisgICAgICAgIH0pOwogICAgIHJldHVybiBzdHJ1Y3R1cmU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAyMDcz
N2YzOTNkNTZlYTU1ZjVhNmM3YTc0YjFiYTNlNGUwMjcwMDNlLi4xYTc5ZGYyZTE3OGI4N2IwNWVk
YjE5Mjc1NzIzNjVlOThhZDhkNzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMTYwLDcgKzExNjAsNyBAQCBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1l
ICMjIENvbnN0cnVjdAogICAgICAgICBtX251bWJlclByb3RvVG9TdHJpbmdGdW5jdGlvbi5zZXQo
dm0sIHRoaXMsIGpzQ2FzdDxKU0Z1bmN0aW9uKj4obnVtYmVyUHJvdG90eXBlLT5nZXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nKSkpOwogICAgIH0KIAotICAgIHJlc2V0UHJv
dG90eXBlKHZtLCBnZXRQcm90b3R5cGVEaXJlY3Qodm0pKTsKKyAgICBmaXh1cFByb3RvdHlwZUNo
YWluV2l0aE9iamVjdFByb3RvdHlwZSh2bSk7CiB9CiAKIGJvb2wgSlNHbG9iYWxPYmplY3Q6OnB1
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpAQCAtMTU4NSwxNiArMTU4
NSwyMSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpoYXZlQUJhZFRpbWUoVk0mIHZtKQogICAgIH0K
IH0KIAotLy8gU2V0IHByb3RvdHlwZSwgYW5kIGFsc28gaW5zZXJ0IHRoZSBvYmplY3QgcHJvdG90
eXBlIGF0IHRoZSBlbmQgb2YgdGhlIGNoYWluLgotdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXRQ
cm90b3R5cGUoVk0mIHZtLCBKU1ZhbHVlIHByb3RvdHlwZSkKK3ZvaWQgSlNHbG9iYWxPYmplY3Q6
OmZpeHVwUHJvdG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlKFZNJiB2bSkKIHsKLSAgICBz
ZXRQcm90b3R5cGVEaXJlY3Qodm0sIHByb3RvdHlwZSk7Ci0KICAgICBKU09iamVjdCogb2xkTGFz
dEluUHJvdG90eXBlQ2hhaW4gPSBsYXN0SW5Qcm90b3R5cGVDaGFpbih2bSwgdGhpcyk7CiAgICAg
SlNPYmplY3QqIG9iamVjdFByb3RvdHlwZSA9IG1fb2JqZWN0UHJvdG90eXBlLmdldCgpOwogICAg
IGlmIChvbGRMYXN0SW5Qcm90b3R5cGVDaGFpbiAhPSBvYmplY3RQcm90b3R5cGUpCiAgICAgICAg
IG9sZExhc3RJblByb3RvdHlwZUNoYWluLT5zZXRQcm90b3R5cGVEaXJlY3Qodm0sIG9iamVjdFBy
b3RvdHlwZSk7Cit9CiAKKy8vIFNldCBwcm90b3R5cGUsIGFuZCBhbHNvIGluc2VydCB0aGUgb2Jq
ZWN0IHByb3RvdHlwZSBhdCB0aGUgZW5kIG9mIHRoZSBjaGFpbi4KK3ZvaWQgSlNHbG9iYWxPYmpl
Y3Q6OnJlc2V0UHJvdG90eXBlKFZNJiB2bSwgSlNWYWx1ZSBwcm90b3R5cGUpCit7CisgICAgaWYg
KGdldFByb3RvdHlwZURpcmVjdCh2bSkgPT0gcHJvdG90eXBlKQorICAgICAgICByZXR1cm47Cisg
ICAgc2V0UHJvdG90eXBlRGlyZWN0KHZtLCBwcm90b3R5cGUpOworICAgIGZpeHVwUHJvdG90eXBl
Q2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlKHZtKTsKICAgICAvLyBXaGVuZXZlciB3ZSBjaGFuZ2Ug
dGhlIHByb3RvdHlwZSBvZiB0aGUgZ2xvYmFsIG9iamVjdCwgd2UgbmVlZCB0byBjcmVhdGUgYSBu
ZXcgSlNQcm94eSB3aXRoIHRoZSBjb3JyZWN0IHByb3RvdHlwZS4KICAgICBzZXRHbG9iYWxUaGlz
KHZtLCBKU05vbkRlc3RydWN0aWJsZVByb3h5OjpjcmVhdGUodm0sIEpTTm9uRGVzdHJ1Y3RpYmxl
UHJveHk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgcHJvdG90eXBlLCBQdXJlRm9yd2FyZGlu
Z1Byb3h5VHlwZSksIHRoaXMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGE4NTQ4ZTUzYzVlODNmOTA0MDQxMmNiYWI4ZmY1YTM3
NmNlNmMxZTYuLjIyNGYwOGM0YjgzYWQyMzhiYmQwNzA5NGMwMjkzNjE0OTk4ZGIwMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTAz
NSw2ICsxMDM1LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdCB7CiAgICAgdm9pZCBpbml0aWFsaXplRXJyb3JDb25zdHJ1Y3RvcihMYXp5
Q2xhc3NTdHJ1Y3R1cmU6OkluaXRpYWxpemVyJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2
b2lkIGluaXQoVk0mKTsKKyAgICB2b2lkIGZpeHVwUHJvdG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJv
dG90eXBlKFZNJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBjbGVhclJh
cmVEYXRhKEpTQ2VsbCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXBJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXBJdGVyYXRvclByb3RvdHlwZS5jcHAKaW5kZXggYWE1NzdiN2FiNTZiZDcyOWVkZDE2
MzE4MDlmOWFkODQ5NjBmZDI4Mi4uNzA1YjQyZTk5ZmQxM2JhZGYxMjAyZjgzMmI1ODAxMDkxYmIw
MWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0
b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcEl0
ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMzksOCArMzksOCBAQCB2b2lkIE1hcEl0ZXJhdG9yUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKICAgICBkaWRCZWNvbWVQcm90
b3R5cGUoKTsKIAotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigi
bmV4dCIsIG1hcEl0ZXJhdG9yUHJvdG90eXBlTmV4dENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2ws
IGpzU3RyaW5nKCZ2bSwgIk1hcCBJdGVyYXRvciIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5uZXh0LCBtYXBJdGVyYXRv
clByb3RvdHlwZU5leHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmgKaW5kZXggMzUwZWI3ZDcxYzY1YTY3
YjRkMzk2NDZiNDBlZGEyOGE1OTIwNmU1OS4uNDdhMDFkZWNjYzJmMjAxMmE3YTEwMzlmY2RiMjMx
MWI5NjViMjYwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bEdldHRlckZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bEdldHRlckZ1bmN0aW9uLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgTnVsbEdldHRlckZ1bmN0
aW9uIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHsKICAgICAgICAgLy8g
U2luY2UgTnVsbEdldHRlckZ1bmN0aW9uIGlzIHBlciBKU0dsb2JhbE9iamVjdCwgd2UgdXNlIHB1
dC13aXRob3V0LXRyYW5zaXRpb24gaW4gSW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24u
CiAgICAgICAgIE51bGxHZXR0ZXJGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDwgTnVsbEdldHRlckZ1bmN0aW9uPih2bS5oZWFwKSkgIE51bGxHZXR0ZXJGdW5j
dGlvbih2bSwgc3RydWN0dXJlKTsKLSAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKHZt
LCBTdHJpbmcoKSwgTmFtZVZpc2liaWxpdHk6OlZpc2libGUsIE5hbWVBZGRpdGlvbk1vZGU6Oldp
dGhTdHJ1Y3R1cmVUcmFuc2l0aW9uKTsKKyAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9u
KHZtLCBTdHJpbmcoKSwgTmFtZVZpc2liaWxpdHk6OlZpc2libGUsIE5hbWVBZGRpdGlvbk1vZGU6
OldpdGhvdXRTdHJ1Y3R1cmVUcmFuc2l0aW9uKTsKICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNl
dHRlckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVy
RnVuY3Rpb24uaAppbmRleCBlYTA1YjJiMTc2ZjJmMzE2ZGY2YTY0YWY5YjRjZjJhYTUxZmE1Y2M2
Li40MTdkNzlhNTg0MzkzNmI0YmE2NWI3YWUyN2QzNWY2YzY3MTRmNTE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaApAQCAtMzcs
NyArMzcsNyBAQCBjbGFzcyBOdWxsU2V0dGVyRnVuY3Rpb24gZmluYWwgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiAgICAgewogICAgICAgICAvLyBTaW5jZSBOdWxsU2V0dGVyRnVuY3Rpb24g
aXMgcGVyIEpTR2xvYmFsT2JqZWN0LCB3ZSB1c2UgcHV0LXdpdGhvdXQtdHJhbnNpdGlvbiBpbiBJ
bnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbi4KICAgICAgICAgTnVsbFNldHRlckZ1bmN0
aW9uKiBmdW5jdGlvbiA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPCBOdWxsU2V0dGVyRnVu
Y3Rpb24+KHZtLmhlYXApKSAgTnVsbFNldHRlckZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUpOwotICAg
ICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24odm0sIFN0cmluZygpLCBOYW1lVmlzaWJpbGl0
eTo6VmlzaWJsZSwgTmFtZUFkZGl0aW9uTW9kZTo6V2l0aFN0cnVjdHVyZVRyYW5zaXRpb24pOwor
ICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24odm0sIFN0cmluZygpLCBOYW1lVmlzaWJp
bGl0eTo6VmlzaWJsZSwgTmFtZUFkZGl0aW9uTW9kZTo6V2l0aG91dFN0cnVjdHVyZVRyYW5zaXRp
b24pOwogICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAK
aW5kZXggNmFjMGJlZjQwZmMyNzQwYjE5ODgzYzkzNGQ4YzVlOGE2ZGI1Mzg3NC4uY2U3MTI5OTdm
YmFmZDNkZjllNWZkMDZjZDgxODdhZjkzNDYwNzA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAt
MzIsMjMgKzMyLDE2IEBACiAjaW5jbHVkZSAiSlNTdHJpbmdJdGVyYXRvci5oIgogI2luY2x1ZGUg
Ik9iamVjdENvbnN0cnVjdG9yLmgiCiAKLSNpbmNsdWRlICJTdHJpbmdJdGVyYXRvclByb3RvdHlw
ZS5sdXQuaCIKLQogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IENsYXNzSW5mbyBTdHJpbmdJdGVy
YXRvclByb3RvdHlwZTo6c19pbmZvID0geyAiU3RyaW5nIEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5m
bywgJnN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUpIH07Ci0KLS8qIFNvdXJjZSBmb3IgU3RyaW5n
SXRlcmF0b3JQcm90b3R5cGUubHV0LmgKLUBiZWdpbiBzdHJpbmdJdGVyYXRvclByb3RvdHlwZVRh
YmxlCi0gIG5leHQgICAgICBKU0J1aWx0aW4gICAgRG9udEVudW18RnVuY3Rpb24gMAotQGVuZAot
Ki8KK2NvbnN0IENsYXNzSW5mbyBTdHJpbmdJdGVyYXRvclByb3RvdHlwZTo6c19pbmZvID0geyAi
U3RyaW5nIEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShTdHJpbmdJdGVyYXRvclByb3RvdHlwZSkgfTsKIAotdm9pZCBTdHJpbmdJ
dGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCop
Cit2b2lkIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOwogICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBq
c1N0cmluZygmdm0sICJTdHJpbmcgSXRlcmF0b3IiKSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBKU0NfQlVJTFRJTl9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+bmV4dCwgc3RyaW5nSXRl
cmF0b3JQcm90b3R5cGVOZXh0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIGRpZEJlY29tZVByb3RvdHlwZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggMWRjZmY3YzUwYzY4ZGE4
M2YwMzJhZmU5NDZlMmQwMzZjNWRkOWM1Ni4uZTc3ODA0NTQ1YzJiMTZkYTk5NTc4Y2YwMzY0MmIx
ZGRiYjQwYzI2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtNDAwLDgg
KzQwMCw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICBm
dW5jdGlvbkNvZGVCbG9ja1N0cnVjdHVyZS5zZXQoKnRoaXMsIEZ1bmN0aW9uQ29kZUJsb2NrOjpj
cmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgaGFzaE1hcEJ1Y2tldFNl
dFN0cnVjdHVyZS5zZXQoKnRoaXMsIEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+
OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgaGFzaE1hcEJ1Y2tl
dE1hcFN0cnVjdHVyZS5zZXQoKnRoaXMsIEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFL
ZXlWYWx1ZT46OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKLSAgICBzZXRJ
dGVyYXRvclN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTU2V0SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywgMCwganNOdWxsKCkpKTsKLSAgICBtYXBJdGVyYXRvclN0cnVjdHVyZS5zZXQoKnRo
aXMsIEpTTWFwSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsK
ICAgICBiaWdJbnRTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU0JpZ0ludDo6Y3JlYXRlU3RydWN0dXJl
KCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2VTdHJ1
Y3R1cmUuc2V0KCp0aGlzLCBFeGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdlOjpjcmVhdGVTdHJ1Y3R1
cmUoKnRoaXMsIG51bGxwdHIsIGpzTnVsbCgpKSk7CiAKQEAgLTEyOTEsNiArMTI4OSwxOSBAQCBE
WU5BTUlDX1NQQUNFX0FORF9TRVRfREVGSU5FX01FTUJFUl9TTE9XKG1vZHVsZVByb2dyYW1FeGVj
dXRhYmxlU3BhY2UsIGRlc3RydWN0aQogCiAjdW5kZWYgRFlOQU1JQ19TUEFDRV9BTkRfU0VUX0RF
RklORV9NRU1CRVJfU0xPVwogCitTdHJ1Y3R1cmUqIFZNOjpzZXRJdGVyYXRvclN0cnVjdHVyZVNs
b3coKQoreworICAgIEFTU0VSVCghbV9zZXRJdGVyYXRvclN0cnVjdHVyZSk7CisgICAgbV9zZXRJ
dGVyYXRvclN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTU2V0SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywgMCwganNOdWxsKCkpKTsKKyAgICByZXR1cm4gbV9zZXRJdGVyYXRvclN0cnVjdHVy
ZS5nZXQoKTsKK30KKworU3RydWN0dXJlKiBWTTo6bWFwSXRlcmF0b3JTdHJ1Y3R1cmVTbG93KCkK
K3sKKyAgICBBU1NFUlQoIW1fbWFwSXRlcmF0b3JTdHJ1Y3R1cmUpOworICAgIG1fbWFwSXRlcmF0
b3JTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU01hcEl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoKnRo
aXMsIDAsIGpzTnVsbCgpKSk7CisgICAgcmV0dXJuIG1fbWFwSXRlcmF0b3JTdHJ1Y3R1cmUuZ2V0
KCk7Cit9CiAKIEpTQ2VsbCogVk06OnNlbnRpbmVsU2V0QnVja2V0U2xvdygpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA0MzI2MTRiMDE0ODgyZWQzMTJhNTA4NWVhNWEzMTA0
NDlhODAwMDdlLi5iMGMwNTBiOWI5Y2NjOTdmMjJjNjA4NzFmZTUwMTlkOTA4NDMwY2ZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTUzMywxMSArNTMzLDEyIEBAIGNsYXNzIFZN
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExp
c3ROb2RlPFZNPiB7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gZnVuY3Rpb25Db2RlQmxvY2tTdHJ1
Y3R1cmU7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gaGFzaE1hcEJ1Y2tldFNldFN0cnVjdHVyZTsK
ICAgICBTdHJvbmc8U3RydWN0dXJlPiBoYXNoTWFwQnVja2V0TWFwU3RydWN0dXJlOwotICAgIFN0
cm9uZzxTdHJ1Y3R1cmU+IHNldEl0ZXJhdG9yU3RydWN0dXJlOwotICAgIFN0cm9uZzxTdHJ1Y3R1
cmU+IG1hcEl0ZXJhdG9yU3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGJpZ0ludFN0
cnVjdHVyZTsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBleGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdl
U3RydWN0dXJlOwogCisgICAgU3Ryb25nPFN0cnVjdHVyZT4gbV9zZXRJdGVyYXRvclN0cnVjdHVy
ZTsKKyAgICBTdHJvbmc8U3RydWN0dXJlPiBtX21hcEl0ZXJhdG9yU3RydWN0dXJlOworCiAgICAg
U3Ryb25nPEpTQ2VsbD4gZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOwogCiAgICAgU3Ryb25n
PEpTQ2VsbD4gbV9zZW50aW5lbFNldEJ1Y2tldDsKQEAgLTU2Myw2ICs1NjQsMjAgQEAgY2xhc3Mg
Vk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2Vk
TGlzdE5vZGU8Vk0+IHsKICAgICBBdG9taWNTdHJpbmdUYWJsZSogYXRvbWljU3RyaW5nVGFibGUo
KSBjb25zdCB7IHJldHVybiBtX2F0b21pY1N0cmluZ1RhYmxlOyB9CiAgICAgV1RGOjpTeW1ib2xS
ZWdpc3RyeSYgc3ltYm9sUmVnaXN0cnkoKSB7IHJldHVybiBtX3N5bWJvbFJlZ2lzdHJ5OyB9CiAK
KyAgICBTdHJ1Y3R1cmUqIHNldEl0ZXJhdG9yU3RydWN0dXJlKCkKKyAgICB7CisgICAgICAgIGlm
IChMSUtFTFkobV9zZXRJdGVyYXRvclN0cnVjdHVyZSkpCisgICAgICAgICAgICByZXR1cm4gbV9z
ZXRJdGVyYXRvclN0cnVjdHVyZS5nZXQoKTsKKyAgICAgICAgcmV0dXJuIHNldEl0ZXJhdG9yU3Ry
dWN0dXJlU2xvdygpOworICAgIH0KKworICAgIFN0cnVjdHVyZSogbWFwSXRlcmF0b3JTdHJ1Y3R1
cmUoKQorICAgIHsKKyAgICAgICAgaWYgKExJS0VMWShtX21hcEl0ZXJhdG9yU3RydWN0dXJlKSkK
KyAgICAgICAgICAgIHJldHVybiBtX21hcEl0ZXJhdG9yU3RydWN0dXJlLmdldCgpOworICAgICAg
ICByZXR1cm4gbWFwSXRlcmF0b3JTdHJ1Y3R1cmVTbG93KCk7CisgICAgfQorCiAgICAgSlNDZWxs
KiBzZW50aW5lbFNldEJ1Y2tldCgpCiAgICAgewogICAgICAgICBpZiAoTElLRUxZKG1fc2VudGlu
ZWxTZXRCdWNrZXQpKQpAQCAtOTA3LDYgKzkyMiw4IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAg
ICAgc3RhdGljIFZNKiYgc2hhcmVkSW5zdGFuY2VJbnRlcm5hbCgpOwogICAgIHZvaWQgY3JlYXRl
TmF0aXZlVGh1bmsoKTsKIAorICAgIFN0cnVjdHVyZSogc2V0SXRlcmF0b3JTdHJ1Y3R1cmVTbG93
KCk7CisgICAgU3RydWN0dXJlKiBtYXBJdGVyYXRvclN0cnVjdHVyZVNsb3coKTsKICAgICBKU0Nl
bGwqIHNlbnRpbmVsU2V0QnVja2V0U2xvdygpOwogICAgIEpTQ2VsbCogc2VudGluZWxNYXBCdWNr
ZXRTbG93KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGQ1ZTE5MWYxMzUyMTFlZjI2OGExN2Q2ZTEzMTkxYjVj
OTBlYzA5NjguLmJlZTQzMTc2MTNmODYxMzljMWY1OTY0MDdlYjJlN2JiNzUwMzJjZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcApAQCAtMTYyMyw3ICsxNjIzLDcgQEAgU2VyaWFsaXphdGlvblJldHVybkNvZGUgQ2xvbmVT
ZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSBpbikKICAgICAgICAgICAgICAgICBKU01hcCog
aW5NYXAgPSBqc0Nhc3Q8SlNNYXAqPihpblZhbHVlKTsKICAgICAgICAgICAgICAgICBpZiAoIXN0
YXJ0TWFwKGluTWFwKSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgSlNNYXBJdGVyYXRvciogaXRlcmF0b3IgPSBKU01hcEl0ZXJhdG9yOjpjcmVhdGUodm0sIHZt
Lm1hcEl0ZXJhdG9yU3RydWN0dXJlLmdldCgpLCBpbk1hcCwgSXRlcmF0ZUtleVZhbHVlKTsKKyAg
ICAgICAgICAgICAgICBKU01hcEl0ZXJhdG9yKiBpdGVyYXRvciA9IEpTTWFwSXRlcmF0b3I6OmNy
ZWF0ZSh2bSwgdm0ubWFwSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgaW5NYXAsIEl0ZXJhdGVLZXlWYWx1
ZSk7CiAgICAgICAgICAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93
KGluTWFwKTsKICAgICAgICAgICAgICAgICBtX2djQnVmZmVyLmFwcGVuZFdpdGhDcmFzaE9uT3Zl
cmZsb3coaXRlcmF0b3IpOwogICAgICAgICAgICAgICAgIG1hcEl0ZXJhdG9yU3RhY2suYXBwZW5k
KGl0ZXJhdG9yKTsKQEAgLTE2NjcsNyArMTY2Nyw3IEBAIFNlcmlhbGl6YXRpb25SZXR1cm5Db2Rl
IENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUgaW4pCiAgICAgICAgICAgICAgICAg
SlNTZXQqIGluU2V0ID0ganNDYXN0PEpTU2V0Kj4oaW5WYWx1ZSk7CiAgICAgICAgICAgICAgICAg
aWYgKCFzdGFydFNldChpblNldCkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIEpTU2V0SXRlcmF0b3IqIGl0ZXJhdG9yID0gSlNTZXRJdGVyYXRvcjo6Y3JlYXRl
KHZtLCB2bS5zZXRJdGVyYXRvclN0cnVjdHVyZS5nZXQoKSwgaW5TZXQsIEl0ZXJhdGVLZXkpOwor
ICAgICAgICAgICAgICAgIEpTU2V0SXRlcmF0b3IqIGl0ZXJhdG9yID0gSlNTZXRJdGVyYXRvcjo6
Y3JlYXRlKHZtLCB2bS5zZXRJdGVyYXRvclN0cnVjdHVyZSgpLCBpblNldCwgSXRlcmF0ZUtleSk7
CiAgICAgICAgICAgICAgICAgbV9nY0J1ZmZlci5hcHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93KGlu
U2V0KTsKICAgICAgICAgICAgICAgICBtX2djQnVmZmVyLmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZs
b3coaXRlcmF0b3IpOwogICAgICAgICAgICAgICAgIHNldEl0ZXJhdG9yU3RhY2suYXBwZW5kKGl0
ZXJhdG9yKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364096</attachid>
            <date>2019-03-08 17:21:41 -0800</date>
            <delta_ts>2019-03-08 18:34:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195498-20190308172140.patch</filename>
            <type>text/plain</type>
            <size>39933</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MDVmYmViZTIxNzA3Mjg4N2I2NGNlMjA4OTcyMzUxYzVjMGZiODQzLi5kN2NkZGUyZWQxN2Y3MzEw
ZTY3OGMyYmM1NmQ3MWZkOTM5MzI0NTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOS0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlZHVjZSAjIG9mIHN0cnVjdHVyZXMgaW4gSlNHbG9iYWxPYmpl
Y3QgaW5pdGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTQ5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVkdWNlcyAjIG9mIHN0cnVjdHVyZSBhbGxvY2F0aW9ucyBp
biBKU0dsb2JhbE9iamVjdCBpbml0aWFsaXphdGlvbi4gTm93IGl0IGJlY29tZXMgMTQxLCBpdCBm
aXRzIGluIG9uZQorICAgICAgICBNYXJrZWRCbG9jayBhbmQgdGhpcyBwYXRjaCBkcm9wcyBvbmUg
TWFya2VkQmxvY2sgdXNlZCBmb3IgU3RydWN0dXJlIHByZXZpb3VzbHkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9BcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlJdGVyYXRvclByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLCBNYXBJdGVyYXRvclBy
b3RvdHlwZSwgYW5kIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJ3MKKyAgICAgICAgIm5leHQiIHBy
b3BlcnRpZXMgYXJlIHJlZmVyZW5jZWQgYnkgSlNHbG9iYWxPYmplY3Q6OmluaXQsIGFuZCBpdCBj
YXVzZXMgcmVpZmljYXRpb24gb2YgdGhlIGxhenkgIm5leHQiIHByb3BlcnR5IGFuZCBzdHJ1Y3R1
cmUKKyAgICAgICAgdHJhbnNpdGlvbiBhbnl3YXkuIFNvIHdlIHNob3VsZCBwdXQgaXQgZWFnZXJs
eSAid2l0aG91dC10cmFuc2l0aW9uIiBjb25maWd1cmF0aW9uIHRvIGF2b2lkIG9uZSBzdHJ1Y3R1
cmUgdHJhbnNpdGlvbi4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOiBAQHVuc2NvcGFi
bGUgb2JqZWN0J3Mgc3RydWN0dXJlIHNob3VsZCBiZSBkaWN0aW9uYXJ5IGJlY2F1c2UgKDEpIGl0
IGlzIHVzZWQgYXMgYSBkaWN0aW9uYXJ5CisgICAgICAgIGluIHdpdGgtc2NvcGUtcmVzb2x1dGlv
biBhbmQgKDIpIHNpbmNlIHdpdGgtc2NvcGUtcmVzb2x1dGlvbiBpcyBDKysgcnVudGltZSBmdW5j
dGlvbiBhbnl3YXksIG5vbi1kaWN0aW9uYXJ5IHN0cnVjdHVyZSBkb2VzIG5vdCBhZGQKKyAgICAg
ICAgYW55IHBlcmZvcm1hbmNlIGJlbmVmaXQuIFRoaXMgY2hhbmdlIHNhdmVzIHNldmVyYWwgc3Ry
dWN0dXJlcyB0aGF0IGFyZSBub3QgdXNlZnVsLgorCisgICAgICAgICogcnVudGltZS9DbG9uZWRB
cmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpDbG9uZWRBcmd1bWVudHM6OmNyZWF0ZVN0cnVj
dHVyZSk6IEJha2UgQ2xvbmVBcmd1bWVudHMncyBzdHJ1Y3R1cmUgd2l0aCAnd2l0aG91dC10cmFu
c2l0aW9uJyBtYW5uZXIuCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOiBQcmV2aW91c2x5IHdlIGFyZSBh
bHdheXMgY2FsbCByZXNldFByb3RveXBlIGF0IHRoZSBlbmQgb2YgSlNHbG9iYWxPYmplY3Q6Omlu
aXQuIEJ1dCBpdCBpcyBub3QgbmVjZXNzYXJ5CisgICAgICAgIHNpbmNlIHdlIGRvIG5vdCBjaGFu
Z2UgW1tQcm90b3R5cGVdXSBvZiBKU0dsb2JhbE9iamVjdC4gQWxsIHdlIHdhbnQgaXMgKDEpIGZp
eHVwUHJvdG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlJ3Mgb3BlcmF0aW9uIGFuZCAoMikg
c2V0R2xvYmFsVGhpcworICAgICAgICBvcGVyYXRpb24uIFNpbmNlIHNldEdsb2JhbFRoaXMgcGFy
dCBpcyBkb25lIGluIEpTR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbiwgZml4dXBQcm90b3R5
cGVDaGFpbldpdGhPYmplY3RQcm90b3R5cGUgaXMgb25seSB0aGUgdGhpbmcKKyAgICAgICAgd2Ug
c2hvdWxkIGRvIGhlcmUuCisKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpeHVwUHJv
dG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OnJlc2V0UHJvdG90eXBlKTogSWYgdGhlIFtbUHJvdG90eXBlXV0gaXMgdGhlIHNhbWUg
dG8gdGhlIGN1cnJlbnQgW1tQcm90b3R5cGVdXSwgd2UgY2FuIHNraXAgdGhlIG9wZXJhdGlvbi4K
KworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L01hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6TWFwSXRlcmF0b3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5j
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmg6IFNpbmNlIHN0
cnVjdHVyZXMgb2YgdGhlbSBhcmUgYWxsb2NhdGVkIHBlciBKU0dsb2JhbE9iamVjdCBhbmQgdGhl
eSBhcmUgcGVyLUpTR2xvYmFsT2JqZWN0LAorICAgICAgICB3ZSBjYW4gdXNlIHdpdGhvdXQtdHJh
bnNpdGlvbiBwcm9wZXJ0eSBhZGRpdGlvbi4KKworICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nSXRl
cmF0b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdJdGVyYXRvclByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAo
SlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6c2V0SXRlcmF0b3JTdHJ1Y3R1cmVTbG93
KToKKyAgICAgICAgKEpTQzo6Vk06Om1hcEl0ZXJhdG9yU3RydWN0dXJlU2xvdyk6IFRoZXNlIHN0
cnVjdHVyZXMgYXJlIG9ubHkgdXNlZCBpbiBXZWJDb3JlJ3MgbWFpbiB0aHJlYWQuCisgICAgICAg
ICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6c2V0SXRlcmF0b3JTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpWTTo6bWFwSXRlcmF0b3JTdHJ1Y3R1cmUpOgorCiAyMDE5LTAzLTA4
ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgSW50ZWdl
ckNoZWNrQ29tYmluaW5nUGhhc2U6OlJhbmdlIGNhbiBiZSBzaHJ1bmsgYnkgOCBieXRlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDVhNTMwZmE4ODA1N2ZmOGRlZmVjZTQ4MGEyZDZhOTQzNWEzZjNmNjcuLjNkMDkx
MzM2MjdjZDlkNTljMmE1ZWViYzRkOGVmN2FiNzFhM2YwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxOS0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgor
CisgICAgICAgIFtKU0NdIFJlZHVjZSAjIG9mIHN0cnVjdHVyZXMgaW4gSlNHbG9iYWxPYmplY3Qg
aW5pdGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NTQ5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKToKKwogMjAxOS0wMy0wOCAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJdIEV4cGFuZCAiaXNDb25zaWRlcmVkQ2xpY2thYmxlIiB0byBkZXNjZW5kYW50cwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDg3OGVhZjJiZWFkZmRkYzc4NGNmNzk1
MThhMmRmZmU3NTI4NTFkZDUuLjE0YWJhMDlmMjNjOTU2MGY4MzU4ZDQ2NzIxNjIzNTc4YzdlMzVk
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU5LDcgKzU5LDYgQEAg
c2V0KEphdmFTY3JpcHRDb3JlX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTCiAKIHNldChKYXZh
U2NyaXB0Q29yZV9PQkpFQ1RfTFVUX1NPVVJDRVMKICAgICBydW50aW1lL0FycmF5Q29uc3RydWN0
b3IuY3BwCi0gICAgcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAogICAgIHJ1bnRp
bWUvQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvQXN5bmNH
ZW5lcmF0b3JQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rvci5jcHAK
QEAgLTk1LDcgKzk0LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX09CSkVDVF9MVVRfU09VUkNFUwog
ICAgIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvU2V0UHJvdG90eXBl
LmNwcAogICAgIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCi0gICAgcnVudGltZS9TdHJp
bmdJdGVyYXRvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAK
ICAgICBydW50aW1lL1N5bWJvbENvbnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvU3ltYm9sUHJv
dG90eXBlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGQyZGVlNDI0MjMzNzc4OWU3NGJjNGM0ZGZmNTRi
ZjYxNzdhOTgxMzQuLmZhYWYxNmYxNGU4NjdjOWRjNDlhMjhlODg0YzFjNmY1NzRjYmE3Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKQEAgLTMsNyArMyw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9BaXJPcGNvZGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0Fpck9wY29kZUdlbmVyYXRlZC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQWlyT3Bjb2Rl
VXRpbHMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlL0FycmF5Q29uc3RydWN0b3IubHV0LmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQXN5bmNGcm9t
U3luY0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUubHV0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9CaWdJbnRD
b25zdHJ1Y3Rvci5sdXQuaApAQCAtNTIsNyArNTEsNiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvUmVnRXhwQ29uc3RydWN0b3IubHV0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9SZWdFeHBK
aXRUYWJsZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3Jp
cHRDb3JlL1NldFByb3RvdHlwZS5sdXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL0phdmFTY3JpcHRDb3JlL1N0cmluZ0NvbnN0cnVjdG9yLmx1dC5oCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvU3RyaW5nSXRlcmF0b3JQ
cm90b3R5cGUubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZh
U2NyaXB0Q29yZS9TdHJpbmdQcm90b3R5cGUubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9TeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1N5bWJvbFBy
b3RvdHlwZS5sdXQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpp
bmRleCAyNDJlMGNkNzY1NzNmNjVjNGUyNTg4NTkxODJjMWExOWI3YWRmNGM5Li5jYmVmNGMxN2Uy
MWNhOTFmZmRhMzFiNDU3NGUwNDY3Yjc3ZTY4NTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTM1LDcgKzEzNSw2IEBAIEpTQ0J1aWx0aW5zLmg6ICQo
QlVJTFRJTlNfR0VORVJBVE9SX1NDUklQVFMpICQoSmF2YVNjcmlwdENvcmVfQlVJTFRJTlNfU09V
UkNFUykKIE9CSkVDVF9MVVRfSEVBREVSUyA9IFwKICAgICBBc3luY0Zyb21TeW5jSXRlcmF0b3JQ
cm90b3R5cGUubHV0LmggXAogICAgIEFycmF5Q29uc3RydWN0b3IubHV0LmggXAotICAgIEFycmF5
SXRlcmF0b3JQcm90b3R5cGUubHV0LmggXAogICAgIEFzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmx1
dC5oIFwKICAgICBCaWdJbnRDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgQmlnSW50UHJvdG90eXBl
Lmx1dC5oIFwKQEAgLTE2OSw3ICsxNjgsNiBAQCBPQkpFQ1RfTFVUX0hFQURFUlMgPSBcCiAgICAg
UmVnRXhwQ29uc3RydWN0b3IubHV0LmggXAogICAgIFNldFByb3RvdHlwZS5sdXQuaCBcCiAgICAg
U3RyaW5nQ29uc3RydWN0b3IubHV0LmggXAotICAgIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1
dC5oIFwKICAgICBTdHJpbmdQcm90b3R5cGUubHV0LmggXAogICAgIFN5bWJvbENvbnN0cnVjdG9y
Lmx1dC5oIFwKICAgICBTeW1ib2xQcm90b3R5cGUubHV0LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBlNDhhNjRiYzEwOGIwODk3ZGRlNDhjNmRmOWM2YzcxNTYwODNhZDA3Li5h
Y2RhYWJlY2NiNmM0MzE4NjU0Y2MzMmViZWZhNmRhMjE5ZDM3NmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTI4Niw3ICsxMjg2LDYgQEAKIAkJOTk1OUU5MzIxQkQxODI3OTAw
MUFBNDEzIC8qIGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRzLnB5IGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1OUU5MzAxQkQx
ODFGNjAwMUFBNDEzIC8qIGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hlZXRzLWFuZC1zY3JpcHRz
LnB5ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5
NjIzMUU5MThEMTgwNDIwMEMwM0ZEQSAvKiBJbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTMyNDM5NjE4NTZB
NDc1MDAyRUQ2OTIgLyogSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5NkI3MzE3MUJEQTA2N0YwMDMz
MUI4NCAvKiBBcnJheUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2QjczMTUxQkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5Q29u
c3RydWN0b3IubHV0LmggKi87IH07Ci0JCTk5NkI3MzE4MUJEQTA2ODAwMDMzMUI4NCAvKiBBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTk2QjczMTYxQkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5SXRlcmF0b3JQ
cm90b3R5cGUubHV0LmggKi87IH07CiAJCTk5NkI3MzE5MUJEQTA2ODAwMDMzMUI4NCAvKiBCb29s
ZWFuUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTk2QjczMDcxQkQ5RkEyQzAwMzMxQjg0IC8qIEJvb2xlYW5Qcm90b3R5cGUubHV0
LmggKi87IH07CiAJCTk5NkI3MzFBMUJEQTA4RDEwMDMzMUI4NCAvKiBEYXRlQ29uc3RydWN0b3Iu
bHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZC
NzMwODFCRDlGQTJDMDAzMzFCODQgLyogRGF0ZUNvbnN0cnVjdG9yLmx1dC5oICovOyB9OwogCQk5
OTZCNzMxQjFCREEwOEQxMDAzMzFCODQgLyogRXJyb3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMwOTFCRDlGQTJDMDAz
MzFCODQgLyogRXJyb3JQcm90b3R5cGUubHV0LmggKi87IH07CkBAIC0xMjk5LDcgKzEyOTgsNiBA
QAogCQk5OTZCNzMyMjFCREEwOEVGMDAzMzFCODQgLyogT2JqZWN0Q29uc3RydWN0b3IubHV0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMwRTFC
RDlGQTJDMDAzMzFCODQgLyogT2JqZWN0Q29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCTk5NkI3
MzIzMUJEQTA4RUYwMDMzMUI4NCAvKiBSZWZsZWN0T2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2QjczMEYxQkQ5RkEyQzAwMzMxQjg0
IC8qIFJlZmxlY3RPYmplY3QubHV0LmggKi87IH07CiAJCTk5NkI3MzI1MUJEQTA4RUYwMDMzMUI4
NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5NkI3MzExMUJEOUZBMkMwMDMzMUI4NCAvKiBTdHJpbmdDb25z
dHJ1Y3Rvci5sdXQuaCAqLzsgfTsKLQkJOTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmlu
Z0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTk2QjczMTIxQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9y
UHJvdG90eXBlLmx1dC5oICovOyB9OwogCQk5OTZCNzMyNzFCREEwOEVGMDAzMzFCODQgLyogU3lt
Ym9sQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTZCNzMxMzFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3Iu
bHV0LmggKi87IH07CiAJCTk5NkI3MzI4MUJEQTA4RUYwMDMzMUI4NCAvKiBTeW1ib2xQcm90b3R5
cGUubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTZCNzMxNDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovOyB9Owog
CQk5OThFRDY3NTFCRUQ3NjhDMDBERDgwMTcgLyogUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OThFRDY3MzFC
RUQ2NTlBMDBERDgwMTcgLyogUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQwMjksMTEgKzQwMjcsOSBA
QAogCQk5OTZCNzMwRTFCRDlGQTJDMDAzMzFCODQgLyogT2JqZWN0Q29uc3RydWN0b3IubHV0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9iamVjdENvbnN0cnVjdG9yLmx1dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZCNzMwRjFCRDlGQTJDMDAzMzFCODQg
LyogUmVmbGVjdE9iamVjdC5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVmbGVjdE9iamVjdC5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2Qjcz
MTExQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTk2QjczMTIxQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0l0
ZXJhdG9yUHJvdG90eXBlLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
dHJpbmdJdGVyYXRvclByb3RvdHlwZS5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTk2QjczMTMxQkQ5RkEyQzAwMzMxQjg0IC8qIFN5bWJvbENvbnN0cnVjdG9yLmx1dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk2QjczMTQxQkQ5RkEyQzAwMzMxQjg0IC8q
IFN5bWJvbFByb3RvdHlwZS5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3ltYm9sUHJvdG90eXBlLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZC
NzMxNTFCREEwNUFBMDAzMzFCODQgLyogQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTk2QjczMTYxQkRBMDVBQTAwMzMxQjg0IC8qIEFycmF5SXRl
cmF0b3JQcm90b3R5cGUubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFy
cmF5SXRlcmF0b3JQcm90b3R5cGUubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5OEVENjcyMUJFRDY1OUEwMEREODAxNyAvKiBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29udHJvbGxhYmxl
VGFyZ2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4RUQ2NzMxQkVENjU5
QTAwREQ4MDE3IC8qIFJlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTlEQTAwOTkxQkQ1OTkyNzAwRjQ1NzVDIC8qIF9faW5pdF9fLnB5
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gX19pbml0X18ucHk7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MzYxLDcgKzYzNTcsNiBAQAogCQkJCTBGNjE4MzM0
MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMz
NTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKIAkJCQk5OTZCNzMxNTFC
REEwNUFBMDAzMzFCODQgLyogQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaCAqLywKLQkJCQk5OTZCNzMx
NjFCREEwNUFBMDAzMzFCODQgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAqLywKIAkJ
CQlFMzg5M0ExQzIyMDNBN0M2MDBFNzlBNzQgLyogQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90
eXBlLmx1dC5oICovLAogCQkJCThCM0JGNUUzMUUzRDM2NUEwMDc2QTg3QSAvKiBBc3luY0dlbmVy
YXRvclByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQk5OTZCNzMwNzFCRDlGQTJDMDAzMzFCODQgLyog
Qm9vbGVhblByb3RvdHlwZS5sdXQuaCAqLywKQEAgLTY0MDMsNyArNjM5OCw2IEBACiAJCQkJQTcx
OEY2MUExMTc1NEEyMTAwMjQ2NUE3IC8qIFJlZ0V4cEppdFRhYmxlcy5oICovLAogCQkJCTcwMzU1
ODdGMUM0MTg0NTgwMDRCRDdCRiAvKiBTZXRQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJOTk2Qjcz
MTExQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmx1dC5oICovLAotCQkJCTk5
NkI3MzEyMUJEOUZBMkMwMDMzMUI4NCAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAq
LywKIAkJCQk5OTZCNzMxMzFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0
LmggKi8sCiAJCQkJOTk2QjczMTQxQkQ5RkEyQzAwMzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5s
dXQuaCAqLywKIAkJCQk1MzNCMTVERTFEQzdGNDYzMDA0RDUwMEEgLyogV2FzbU9wcy5oICovLApA
QCAtODQ4NCw3ICs4NDc4LDYgQEAKIAkJCQk5OTZCNzMxNzFCREEwNjdGMDAzMzFCODQgLyogQXJy
YXlDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzk1MTVFRDhFNDYw
MEYxNjdCMiAvKiBBcnJheUNvbnZlbnRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JEQUVD
OTE3RjRFQTE0MDBGNjE0MEMgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJOTk2QjczMTgxQkRBMDY4MDAwMzMxQjg0IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5
cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYzOTQ1NTE1RDA3MDU3MDA2QTU5N0MgLyog
QXJyYXlQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNFNzBFMTZGNUNEMDBCMzQ0
NjAgLyogQXJyYXlQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzk2MTVFRDhF
NDYwMEYxNjdCMiAvKiBBcnJheVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtOTY5Nyw3ICs5
NjkwLDYgQEAKIAkJCQlCQzE4QzQ2NjBFMTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nQ29uc3RydWN0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzI1MUJEQTA4RUYwMDMzMUI4NCAvKiBTdHJp
bmdDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwRUMwRUM3MUFBMEQ3REEw
MEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
OTk2QjczMjYxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NjgwRTE2RjVDRDAwQjM0NDYwIC8qIFN0cmluZ09i
amVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NkEwRTE2RjVDRDAwQjM0NDYwIC8qIFN0
cmluZ1Byb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMyNUEzNjAyMjIxMTU5MDAwNzM0
OUExIC8qIFN0cmluZ1Byb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBl
LmNwcAppbmRleCBiNGU2MmE5MDI4NTA1YjgwODUzYTdmNjdiNThjZDlkMDc3NjlmZGZhLi44OTMz
MjBhOWE0Mzk3NWI3ODFjZDY0NDFiMGQ4Yjg2NTQ4NDczNzViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcApA
QCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFycmF5SXRl
cmF0b3JQcm90b3R5cGUuaCIKIAotI2luY2x1ZGUgIkFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0
LmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCkBAIC0zNywxOSArMzYsMTQgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IENsYXNzSW5mbyBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJBcnJheSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sICZhcnJheUl0
ZXJhdG9yUHJvdG90eXBlVGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQXJyYXlJ
dGVyYXRvclByb3RvdHlwZSkgfTsKK2NvbnN0IENsYXNzSW5mbyBBcnJheUl0ZXJhdG9yUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJBcnJheSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQXJyYXlJdGVyYXRvclByb3RvdHlwZSkgfTsK
IAotLyogU291cmNlIGZvciBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oCi1AYmVnaW4gYXJy
YXlJdGVyYXRvclByb3RvdHlwZVRhYmxlCi0gIG5leHQgICAgICBKU0J1aWx0aW4gIERvbnRFbnVt
fEZ1bmN0aW9uIDAKLUBlbmQKLSovCi0KLXZvaWQgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCopCit2b2lkIEFycmF5SXRlcmF0b3JQ
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVy
aXRzKHZtLCBpbmZvKCkpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKCZ2bSwgIkFycmF5IEl0
ZXJhdG9yIiksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPm5leHQsIGFycmF5SXRlcmF0b3JQcm90b3R5cGVOZXh0Q29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwogICAgIGRpZEJlY29tZVByb3RvdHlwZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggMWEzN2IzZjBjYjFlYjVl
NDM0MWFiZWZjODJhNzM2ZDNjMTY3ZDJkYy4uYjJiYTI5YzhlMDRiMjEyMzhkZDdlNzdkMWJlZGVl
NjEzMDZjNDFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcApAQCAtODksOCArODksOCBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3lt
Ym9sLCBnbG9iYWxPYmplY3QtPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbigpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKICAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT50b0xvY2Fs
ZVN0cmluZywgYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0cmluZywgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwotICAgIEpTQ19CVUlMVElOX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY29uY2F0IiwgYXJyYXlQcm90b3R5cGVDb25jYXRD
b2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJm
aWxsIiwgYXJyYXlQcm90b3R5cGVGaWxsQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5j
b25jYXRQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlQ29uY2F0Q29kZUdlbmVyYXRvciwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpT
Q19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5maWxsUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbGxDb2RlR2Vu
ZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+am9pbiwgYXJyYXlQcm90b0Z1bmNKb2luLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5T
SUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJwb3AiLCBhcnJheVByb3RvRnVuY1BvcCwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDAsIEFy
cmF5UG9wSW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHVzaFB1Ymxp
Y05hbWUoKSwgYXJyYXlQcm90b0Z1bmNQdXNoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgQXJyYXlQdXNoSW50cmluc2ljKTsKQEAgLTk5LDI2
ICs5OSwyNiBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc2hpZnRQdWJs
aWNOYW1lKCksIGFycmF5UHJvdG9GdW5jU2hpZnQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zaGlmdFBy
aXZhdGVOYW1lKCksIGFycmF5UHJvdG9GdW5jU2hpZnQsIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5LCAwKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+c2xpY2UsIGFycmF5UHJvdG9GdW5jU2xpY2Us
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyLCBB
cnJheVNsaWNlSW50cmluc2ljKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oInNvcnQiLCBhcnJheVByb3RvdHlwZVNvcnRDb2RlR2VuZXJhdG9yLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JV
SUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnNvcnRQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlU29ydENvZGVHZW5lcmF0
b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsK
ICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic3BsaWNlIiwgYXJy
YXlQcm90b0Z1bmNTcGxpY2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigidW5zaGlmdCIsIGFycmF5UHJvdG9GdW5jVW5TaGlmdCwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19CVUlMVElOX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZXZlcnkiLCBhcnJheVByb3RvdHlwZUV2ZXJ5Q29k
ZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZm9y
RWFjaCIsIGFycmF5UHJvdG90eXBlRm9yRWFjaENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNvbWUiLCBhcnJheVByb3RvdHlwZVNvbWVDb2Rl
R2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmV2ZXJ5UHVibGljTmFtZSgpLCBhcnJheVByb3Rv
dHlwZUV2ZXJ5Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5mb3JFYWNoUHVibGljTmFt
ZSgpLCBhcnJheVByb3RvdHlwZUZvckVhY2hDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnNvbWVQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlU29tZUNvZGVHZW5lcmF0b3IsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0Nf
TkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBh
cnJheVByb3RvRnVuY0luZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCAxLCBBcnJheUluZGV4T2ZJbnRyaW5zaWMpOwogICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsYXN0SW5kZXhPZiIsIGFycmF5UHJvdG9G
dW5jTGFzdEluZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAxKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oImZpbHRlciIsIGFycmF5UHJvdG90eXBlRmlsdGVyQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlM
VElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmxhdCIsIGFycmF5UHJvdG90eXBlRmxh
dENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
ImZsYXRNYXAiLCBhcnJheVByb3RvdHlwZUZsYXRNYXBDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxU
SU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJyZWR1Y2UiLCBhcnJheVByb3RvdHlwZVJl
ZHVjZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oInJlZHVjZVJpZ2h0IiwgYXJyYXlQcm90b3R5cGVSZWR1Y2VSaWdodENvZGVHZW5lcmF0b3Is
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAg
ICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oIm1hcCIsIGFycmF5UHJv
dG90eXBlTWFwQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maWx0ZXJQdWJsaWNOYW1l
KCksIGFycmF5UHJvdG90eXBlRmlsdGVyQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5m
bGF0UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZsYXRDb2RlR2VuZXJhdG9yLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JV
SUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmZsYXRNYXBQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRmxhdE1hcENvZGVH
ZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVkdWNlUHVibGljTmFtZSgpLCBhcnJheVByb3Rv
dHlwZVJlZHVjZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVkdWNlUmlnaHRQdWJs
aWNOYW1lKCksIGFycmF5UHJvdG90eXBlUmVkdWNlUmlnaHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JV
SUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLm1hcFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVNYXBDb2RlR2VuZXJhdG9y
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAg
ICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRW50
cmllc0NvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5c1B1YmxpY05hbWUoKSwgYXJy
YXlQcm90b3R5cGVLZXlzQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigiZmluZCIsIGFycmF5UHJvdG90eXBlRmluZENvZGVHZW5lcmF0b3IsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBK
U0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZpbmRJbmRleCIsIGFycmF5
UHJvdG90eXBlRmluZEluZGV4Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiaW5jbHVkZXMiLCBhcnJheVByb3RvdHlwZUluY2x1ZGVzQ29kZUdl
bmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY29weVdp
dGhpbiIsIGFycmF5UHJvdG90eXBlQ29weVdpdGhpbkNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJ
Tl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuZmluZFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVGaW5kQ29kZUdlbmVyYXRvciwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5maW5kSW5kZXhQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRmlu
ZEluZGV4Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbmNsdWRlc1B1YmxpY05hbWUo
KSwgYXJyYXlQcm90b3R5cGVJbmNsdWRlc0NvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
Y29weVdpdGhpblB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVDb3B5V2l0aGluQ29kZUdlbmVy
YXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkp
OwogCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQcml2YXRlTmFtZSgpLCBnZXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAgICAgcHV0RGly
ZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmZvckVhY2hQcml2YXRlTmFtZSgpLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmZvckVhY2hQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CkBAIC0xMjYsMTggKzEyNiwxOSBAQCB2b2lk
IEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnZhbHVlc1ByaXZhdGVOYW1lKCksIGdsb2JhbE9iamVj
dC0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIAogICAgIEpTT2JqZWN0KiB1bnNjb3BhYmxlcyA9
IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBnbG9iYWxP
YmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7Ci0gICAgY29uc3QgY2hhciog
dW5zY29wYWJsZU5hbWVzW10gPSB7Ci0gICAgICAgICJjb3B5V2l0aGluIiwKLSAgICAgICAgImVu
dHJpZXMiLAotICAgICAgICAiZmlsbCIsCi0gICAgICAgICJmaW5kIiwKLSAgICAgICAgImZpbmRJ
bmRleCIsCi0gICAgICAgICJpbmNsdWRlcyIsCi0gICAgICAgICJrZXlzIiwKLSAgICAgICAgInZh
bHVlcyIKKyAgICB1bnNjb3BhYmxlcy0+Y29udmVydFRvRGljdGlvbmFyeSh2bSk7CisgICAgY29u
c3QgSWRlbnRpZmllciB1bnNjb3BhYmxlTmFtZXNbXSA9IHsKKyAgICAgICAgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuY29weVdpdGhpblB1YmxpY05hbWUoKSwKKyAgICAgICAgdm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSwKKyAgICAg
ICAgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmlsbFB1YmxpY05hbWUoKSwKKyAg
ICAgICAgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZFB1YmxpY05hbWUoKSwK
KyAgICAgICAgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmluZEluZGV4UHVibGlj
TmFtZSgpLAorICAgICAgICB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5pbmNsdWRl
c1B1YmxpY05hbWUoKSwKKyAgICAgICAgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
a2V5c1B1YmxpY05hbWUoKSwKKyAgICAgICAgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkudmFsdWVzUHVibGljTmFtZSgpCiAgICAgfTsKLSAgICBmb3IgKGNvbnN0IGNoYXIqIHVuc2Nv
cGFibGVOYW1lIDogdW5zY29wYWJsZU5hbWVzKQotICAgICAgICB1bnNjb3BhYmxlcy0+cHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgdW5zY29wYWJsZU5hbWUpLCBqc0Jv
b2xlYW4odHJ1ZSkpOworICAgIGZvciAoYXV0byYgdW5zY29wYWJsZU5hbWUgOiB1bnNjb3BhYmxl
TmFtZXMpCisgICAgICAgIHVuc2NvcGFibGVzLT5wdXREaXJlY3Qodm0sIHVuc2NvcGFibGVOYW1l
LCBqc0Jvb2xlYW4odHJ1ZSkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT51bnNjb3BhYmxlc1N5bWJvbCwgdW5zY29wYWJsZXMsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbG9uZWRBcmd1bWVudHMuY3Bw
CmluZGV4IDE4NTIxNTUzMDM0NmY1YTIyY2NkMWIwYTBkZTJmYTg5NmMxZGRiZDYuLjhiMDc0YjJk
N2Q3OTlhMzM1OGQ5N2MyYzJmYWIzZTlkNjg2NDY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmNwcApAQCAtMTUxLDkgKzE1MSwxMiBA
QCBDbG9uZWRBcmd1bWVudHMqIENsb25lZEFyZ3VtZW50czo6Y3JlYXRlQnlDb3B5aW5nRnJvbSgK
IFN0cnVjdHVyZSogQ2xvbmVkQXJndW1lbnRzOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgSW5kZXhpbmdUeXBl
IGluZGV4aW5nVHlwZSkKIHsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ2xvbmVkQXJndW1l
bnRzVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCksIGluZGV4aW5nVHlwZSk7Ci0gICAgUHJv
cGVydHlPZmZzZXQgb2Zmc2V0OwotICAgIHN0cnVjdHVyZSA9IHN0cnVjdHVyZS0+YWRkUHJvcGVy
dHlUcmFuc2l0aW9uKHZtLCBzdHJ1Y3R1cmUsIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIG9mZnNldCk7
Ci0gICAgQVNTRVJUKG9mZnNldCA9PSBjbG9uZWRBcmd1bWVudHNMZW5ndGhQcm9wZXJ0eU9mZnNl
dCk7CisgICAgc3RydWN0dXJlLT5hZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uKAorICAgICAg
ICB2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwKKyAgICAgICAgWyZdIChjb25zdCBHQ1NhZmVDb25j
dXJyZW50SlNMb2NrZXImLCBQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIFByb3BlcnR5T2Zmc2V0IG5l
d0xhc3RPZmZzZXQpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG9mZnNldCA9PSBjbG9u
ZWRBcmd1bWVudHNMZW5ndGhQcm9wZXJ0eU9mZnNldCk7CisgICAgICAgICAgICBzdHJ1Y3R1cmUt
PnNldExhc3RPZmZzZXQobmV3TGFzdE9mZnNldCk7CisgICAgICAgIH0pOwogICAgIHJldHVybiBz
dHJ1Y3R1cmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcAppbmRleCAyMDczN2YzOTNkNTZlYTU1ZjVhNmM3YTc0YjFiYTNlNGUwMjcw
MDNlLi4xYTc5ZGYyZTE3OGI4N2IwNWVkYjE5Mjc1NzIzNjVlOThhZDhkNzczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMTYw
LDcgKzExNjAsNyBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBtX251bWJlclBy
b3RvVG9TdHJpbmdGdW5jdGlvbi5zZXQodm0sIHRoaXMsIGpzQ2FzdDxKU0Z1bmN0aW9uKj4obnVt
YmVyUHJvdG90eXBlLT5nZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nKSkp
OwogICAgIH0KIAotICAgIHJlc2V0UHJvdG90eXBlKHZtLCBnZXRQcm90b3R5cGVEaXJlY3Qodm0p
KTsKKyAgICBmaXh1cFByb3RvdHlwZUNoYWluV2l0aE9iamVjdFByb3RvdHlwZSh2bSk7CiB9CiAK
IGJvb2wgSlNHbG9iYWxPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQpAQCAtMTU4NSwxNiArMTU4NSwyMSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpoYXZl
QUJhZFRpbWUoVk0mIHZtKQogICAgIH0KIH0KIAotLy8gU2V0IHByb3RvdHlwZSwgYW5kIGFsc28g
aW5zZXJ0IHRoZSBvYmplY3QgcHJvdG90eXBlIGF0IHRoZSBlbmQgb2YgdGhlIGNoYWluLgotdm9p
ZCBKU0dsb2JhbE9iamVjdDo6cmVzZXRQcm90b3R5cGUoVk0mIHZtLCBKU1ZhbHVlIHByb3RvdHlw
ZSkKK3ZvaWQgSlNHbG9iYWxPYmplY3Q6OmZpeHVwUHJvdG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJv
dG90eXBlKFZNJiB2bSkKIHsKLSAgICBzZXRQcm90b3R5cGVEaXJlY3Qodm0sIHByb3RvdHlwZSk7
Ci0KICAgICBKU09iamVjdCogb2xkTGFzdEluUHJvdG90eXBlQ2hhaW4gPSBsYXN0SW5Qcm90b3R5
cGVDaGFpbih2bSwgdGhpcyk7CiAgICAgSlNPYmplY3QqIG9iamVjdFByb3RvdHlwZSA9IG1fb2Jq
ZWN0UHJvdG90eXBlLmdldCgpOwogICAgIGlmIChvbGRMYXN0SW5Qcm90b3R5cGVDaGFpbiAhPSBv
YmplY3RQcm90b3R5cGUpCiAgICAgICAgIG9sZExhc3RJblByb3RvdHlwZUNoYWluLT5zZXRQcm90
b3R5cGVEaXJlY3Qodm0sIG9iamVjdFByb3RvdHlwZSk7Cit9CiAKKy8vIFNldCBwcm90b3R5cGUs
IGFuZCBhbHNvIGluc2VydCB0aGUgb2JqZWN0IHByb3RvdHlwZSBhdCB0aGUgZW5kIG9mIHRoZSBj
aGFpbi4KK3ZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0UHJvdG90eXBlKFZNJiB2bSwgSlNWYWx1
ZSBwcm90b3R5cGUpCit7CisgICAgaWYgKGdldFByb3RvdHlwZURpcmVjdCh2bSkgPT0gcHJvdG90
eXBlKQorICAgICAgICByZXR1cm47CisgICAgc2V0UHJvdG90eXBlRGlyZWN0KHZtLCBwcm90b3R5
cGUpOworICAgIGZpeHVwUHJvdG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlKHZtKTsKICAg
ICAvLyBXaGVuZXZlciB3ZSBjaGFuZ2UgdGhlIHByb3RvdHlwZSBvZiB0aGUgZ2xvYmFsIG9iamVj
dCwgd2UgbmVlZCB0byBjcmVhdGUgYSBuZXcgSlNQcm94eSB3aXRoIHRoZSBjb3JyZWN0IHByb3Rv
dHlwZS4KICAgICBzZXRHbG9iYWxUaGlzKHZtLCBKU05vbkRlc3RydWN0aWJsZVByb3h5OjpjcmVh
dGUodm0sIEpTTm9uRGVzdHJ1Y3RpYmxlUHJveHk6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywg
cHJvdG90eXBlLCBQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSksIHRoaXMpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGE4NTQ4ZTUz
YzVlODNmOTA0MDQxMmNiYWI4ZmY1YTM3NmNlNmMxZTYuLjIyNGYwOGM0YjgzYWQyMzhiYmQwNzA5
NGMwMjkzNjE0OTk4ZGIwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaApAQCAtMTAzNSw2ICsxMDM1LDcgQEAgY2xhc3MgSlNHbG9iYWxPYmpl
Y3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgdm9pZCBpbml0aWFs
aXplRXJyb3JDb25zdHJ1Y3RvcihMYXp5Q2xhc3NTdHJ1Y3R1cmU6OkluaXRpYWxpemVyJik7CiAK
ICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGluaXQoVk0mKTsKKyAgICB2b2lkIGZpeHVwUHJv
dG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlKFZNJik7CiAKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgdm9pZCBjbGVhclJhcmVEYXRhKEpTQ2VsbCopOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBJdGVyYXRvclByb3RvdHlwZS5jcHAKaW5k
ZXggYWE1NzdiN2FiNTZiZDcyOWVkZDE2MzE4MDlmOWFkODQ5NjBmZDI4Mi4uNzA1YjQyZTk5ZmQx
M2JhZGYxMjAyZjgzMmI1ODAxMDkxYmIwMWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWFwSXRlcmF0b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMzksOCArMzks
OCBAQCB2b2lkIE1hcEl0ZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZv
KCkpKTsKICAgICBkaWRCZWNvbWVQcm90b3R5cGUoKTsKIAotICAgIEpTQ19CVUlMVElOX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigibmV4dCIsIG1hcEl0ZXJhdG9yUHJvdG90eXBlTmV4dENv
ZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlO
YW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKCZ2bSwgIk1hcCBJdGVyYXRvciIpLCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkp
OworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5uZXh0LCBtYXBJdGVyYXRvclByb3RvdHlwZU5leHRDb2RlR2VuZXJhdG9yLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5j
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9u
LmgKaW5kZXggMzUwZWI3ZDcxYzY1YTY3YjRkMzk2NDZiNDBlZGEyOGE1OTIwNmU1OS4uNDdhMDFk
ZWNjYzJmMjAxMmE3YTEwMzlmY2RiMjMxMWI5NjViMjYwZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmgKQEAgLTM3LDcgKzM3LDcg
QEAgY2xhc3MgTnVsbEdldHRlckZ1bmN0aW9uIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogICAgIHsKICAgICAgICAgLy8gU2luY2UgTnVsbEdldHRlckZ1bmN0aW9uIGlzIHBlciBK
U0dsb2JhbE9iamVjdCwgd2UgdXNlIHB1dC13aXRob3V0LXRyYW5zaXRpb24gaW4gSW50ZXJuYWxG
dW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24uCiAgICAgICAgIE51bGxHZXR0ZXJGdW5jdGlvbiogZnVu
Y3Rpb24gPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDwgTnVsbEdldHRlckZ1bmN0aW9uPih2
bS5oZWFwKSkgIE51bGxHZXR0ZXJGdW5jdGlvbih2bSwgc3RydWN0dXJlKTsKLSAgICAgICAgZnVu
Y3Rpb24tPmZpbmlzaENyZWF0aW9uKHZtLCBTdHJpbmcoKSwgTmFtZVZpc2liaWxpdHk6OlZpc2li
bGUsIE5hbWVBZGRpdGlvbk1vZGU6OldpdGhTdHJ1Y3R1cmVUcmFuc2l0aW9uKTsKKyAgICAgICAg
ZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKHZtLCBTdHJpbmcoKSwgTmFtZVZpc2liaWxpdHk6OlZp
c2libGUsIE5hbWVBZGRpdGlvbk1vZGU6OldpdGhvdXRTdHJ1Y3R1cmVUcmFuc2l0aW9uKTsKICAg
ICAgICAgcmV0dXJuIGZ1bmN0aW9uOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uaAppbmRleCBlYTA1YjJiMTc2ZjJmMzE2
ZGY2YTY0YWY5YjRjZjJhYTUxZmE1Y2M2Li40MTdkNzlhNTg0MzkzNmI0YmE2NWI3YWUyN2QzNWY2
YzY3MTRmNTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxs
U2V0dGVyRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxs
U2V0dGVyRnVuY3Rpb24uaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBOdWxsU2V0dGVyRnVuY3Rp
b24gZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgewogICAgICAgICAvLyBT
aW5jZSBOdWxsU2V0dGVyRnVuY3Rpb24gaXMgcGVyIEpTR2xvYmFsT2JqZWN0LCB3ZSB1c2UgcHV0
LXdpdGhvdXQtdHJhbnNpdGlvbiBpbiBJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbi4K
ICAgICAgICAgTnVsbFNldHRlckZ1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoTm90TnVsbCwgYWxs
b2NhdGVDZWxsPCBOdWxsU2V0dGVyRnVuY3Rpb24+KHZtLmhlYXApKSAgTnVsbFNldHRlckZ1bmN0
aW9uKHZtLCBzdHJ1Y3R1cmUpOwotICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24odm0s
IFN0cmluZygpLCBOYW1lVmlzaWJpbGl0eTo6VmlzaWJsZSwgTmFtZUFkZGl0aW9uTW9kZTo6V2l0
aFN0cnVjdHVyZVRyYW5zaXRpb24pOworICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24o
dm0sIFN0cmluZygpLCBOYW1lVmlzaWJpbGl0eTo6VmlzaWJsZSwgTmFtZUFkZGl0aW9uTW9kZTo6
V2l0aG91dFN0cnVjdHVyZVRyYW5zaXRpb24pOwogICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdJ
dGVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdJdGVyYXRvclByb3RvdHlwZS5jcHAKaW5kZXggNmFjMGJlZjQwZmMyNzQwYjE5ODgzYzkzNGQ4
YzVlOGE2ZGI1Mzg3NC4uY2U3MTI5OTdmYmFmZDNkZjllNWZkMDZjZDgxODdhZjkzNDYwNzA0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nSXRlcmF0b3JQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0l0
ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMzIsMjMgKzMyLDE2IEBACiAjaW5jbHVkZSAiSlNTdHJp
bmdJdGVyYXRvci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAKLSNpbmNsdWRl
ICJTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5sdXQuaCIKLQogbmFtZXNwYWNlIEpTQyB7CiAKLWNv
bnN0IENsYXNzSW5mbyBTdHJpbmdJdGVyYXRvclByb3RvdHlwZTo6c19pbmZvID0geyAiU3RyaW5n
IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgJnN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlVGFibGUs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUpIH07
Ci0KLS8qIFNvdXJjZSBmb3IgU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmgKLUBiZWdpbiBz
dHJpbmdJdGVyYXRvclByb3RvdHlwZVRhYmxlCi0gIG5leHQgICAgICBKU0J1aWx0aW4gICAgRG9u
dEVudW18RnVuY3Rpb24gMAotQGVuZAotKi8KK2NvbnN0IENsYXNzSW5mbyBTdHJpbmdJdGVyYXRv
clByb3RvdHlwZTo6c19pbmZvID0geyAiU3RyaW5nIEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShTdHJpbmdJdGVyYXRvclByb3Rv
dHlwZSkgfTsKIAotdm9pZCBTdHJpbmdJdGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCopCit2b2lkIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5m
bygpKSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZygmdm0sICJTdHJpbmcgSXRlcmF0b3IiKSwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
KTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+bmV4dCwgc3RyaW5nSXRlcmF0b3JQcm90b3R5cGVOZXh0Q29kZUdlbmVyYXRvciwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAg
IGRpZEJlY29tZVByb3RvdHlwZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAKaW5kZXggMWRjZmY3YzUwYzY4ZGE4M2YwMzJhZmU5NDZlMmQwMzZjNWRkOWM1Ni4uZTc3ODA0
NTQ1YzJiMTZkYTk5NTc4Y2YwMzY0MmIxZGRiYjQwYzI2YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmNwcApAQCAtNDAwLDggKzQwMCw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBI
ZWFwVHlwZSBoZWFwVHlwZSkKICAgICBmdW5jdGlvbkNvZGVCbG9ja1N0cnVjdHVyZS5zZXQoKnRo
aXMsIEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgp
KSk7CiAgICAgaGFzaE1hcEJ1Y2tldFNldFN0cnVjdHVyZS5zZXQoKnRoaXMsIEhhc2hNYXBCdWNr
ZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVs
bCgpKSk7CiAgICAgaGFzaE1hcEJ1Y2tldE1hcFN0cnVjdHVyZS5zZXQoKnRoaXMsIEhhc2hNYXBC
dWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXlWYWx1ZT46OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywg
MCwganNOdWxsKCkpKTsKLSAgICBzZXRJdGVyYXRvclN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTU2V0
SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKLSAgICBtYXBJ
dGVyYXRvclN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTTWFwSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBiaWdJbnRTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBK
U0JpZ0ludDo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGV4ZWN1
dGFibGVUb0NvZGVCbG9ja0VkZ2VTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBFeGVjdXRhYmxlVG9Db2Rl
QmxvY2tFZGdlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIG51bGxwdHIsIGpzTnVsbCgpKSk7CiAK
QEAgLTEyOTEsNiArMTI4OSwxOSBAQCBEWU5BTUlDX1NQQUNFX0FORF9TRVRfREVGSU5FX01FTUJF
Ul9TTE9XKG1vZHVsZVByb2dyYW1FeGVjdXRhYmxlU3BhY2UsIGRlc3RydWN0aQogCiAjdW5kZWYg
RFlOQU1JQ19TUEFDRV9BTkRfU0VUX0RFRklORV9NRU1CRVJfU0xPVwogCitTdHJ1Y3R1cmUqIFZN
OjpzZXRJdGVyYXRvclN0cnVjdHVyZVNsb3coKQoreworICAgIEFTU0VSVCghbV9zZXRJdGVyYXRv
clN0cnVjdHVyZSk7CisgICAgbV9zZXRJdGVyYXRvclN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTU2V0
SXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKKyAgICByZXR1
cm4gbV9zZXRJdGVyYXRvclN0cnVjdHVyZS5nZXQoKTsKK30KKworU3RydWN0dXJlKiBWTTo6bWFw
SXRlcmF0b3JTdHJ1Y3R1cmVTbG93KCkKK3sKKyAgICBBU1NFUlQoIW1fbWFwSXRlcmF0b3JTdHJ1
Y3R1cmUpOworICAgIG1fbWFwSXRlcmF0b3JTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU01hcEl0ZXJh
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CisgICAgcmV0dXJuIG1f
bWFwSXRlcmF0b3JTdHJ1Y3R1cmUuZ2V0KCk7Cit9CiAKIEpTQ2VsbCogVk06OnNlbnRpbmVsU2V0
QnVja2V0U2xvdygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA0MzI2MTRi
MDE0ODgyZWQzMTJhNTA4NWVhNWEzMTA0NDlhODAwMDdlLi5iMGMwNTBiOWI5Y2NjOTdmMjJjNjA4
NzFmZTUwMTlkOTA4NDMwY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTUz
MywxMSArNTMzLDEyIEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZN
PiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgU3Ryb25nPFN0cnVjdHVy
ZT4gZnVuY3Rpb25Db2RlQmxvY2tTdHJ1Y3R1cmU7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gaGFz
aE1hcEJ1Y2tldFNldFN0cnVjdHVyZTsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBoYXNoTWFwQnVj
a2V0TWFwU3RydWN0dXJlOwotICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHNldEl0ZXJhdG9yU3RydWN0
dXJlOwotICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1hcEl0ZXJhdG9yU3RydWN0dXJlOwogICAgIFN0
cm9uZzxTdHJ1Y3R1cmU+IGJpZ0ludFN0cnVjdHVyZTsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBl
eGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdlU3RydWN0dXJlOwogCisgICAgU3Ryb25nPFN0cnVjdHVy
ZT4gbV9zZXRJdGVyYXRvclN0cnVjdHVyZTsKKyAgICBTdHJvbmc8U3RydWN0dXJlPiBtX21hcEl0
ZXJhdG9yU3RydWN0dXJlOworCiAgICAgU3Ryb25nPEpTQ2VsbD4gZW1wdHlQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yOwogCiAgICAgU3Ryb25nPEpTQ2VsbD4gbV9zZW50aW5lbFNldEJ1Y2tldDsKQEAg
LTU2Myw2ICs1NjQsMjAgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICBBdG9taWNTdHJpbmdU
YWJsZSogYXRvbWljU3RyaW5nVGFibGUoKSBjb25zdCB7IHJldHVybiBtX2F0b21pY1N0cmluZ1Rh
YmxlOyB9CiAgICAgV1RGOjpTeW1ib2xSZWdpc3RyeSYgc3ltYm9sUmVnaXN0cnkoKSB7IHJldHVy
biBtX3N5bWJvbFJlZ2lzdHJ5OyB9CiAKKyAgICBTdHJ1Y3R1cmUqIHNldEl0ZXJhdG9yU3RydWN0
dXJlKCkKKyAgICB7CisgICAgICAgIGlmIChMSUtFTFkobV9zZXRJdGVyYXRvclN0cnVjdHVyZSkp
CisgICAgICAgICAgICByZXR1cm4gbV9zZXRJdGVyYXRvclN0cnVjdHVyZS5nZXQoKTsKKyAgICAg
ICAgcmV0dXJuIHNldEl0ZXJhdG9yU3RydWN0dXJlU2xvdygpOworICAgIH0KKworICAgIFN0cnVj
dHVyZSogbWFwSXRlcmF0b3JTdHJ1Y3R1cmUoKQorICAgIHsKKyAgICAgICAgaWYgKExJS0VMWSht
X21hcEl0ZXJhdG9yU3RydWN0dXJlKSkKKyAgICAgICAgICAgIHJldHVybiBtX21hcEl0ZXJhdG9y
U3RydWN0dXJlLmdldCgpOworICAgICAgICByZXR1cm4gbWFwSXRlcmF0b3JTdHJ1Y3R1cmVTbG93
KCk7CisgICAgfQorCiAgICAgSlNDZWxsKiBzZW50aW5lbFNldEJ1Y2tldCgpCiAgICAgewogICAg
ICAgICBpZiAoTElLRUxZKG1fc2VudGluZWxTZXRCdWNrZXQpKQpAQCAtOTA3LDYgKzkyMiw4IEBA
IGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJs
eUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgc3RhdGljIFZNKiYgc2hhcmVkSW5zdGFuY2VJbnRl
cm5hbCgpOwogICAgIHZvaWQgY3JlYXRlTmF0aXZlVGh1bmsoKTsKIAorICAgIFN0cnVjdHVyZSog
c2V0SXRlcmF0b3JTdHJ1Y3R1cmVTbG93KCk7CisgICAgU3RydWN0dXJlKiBtYXBJdGVyYXRvclN0
cnVjdHVyZVNsb3coKTsKICAgICBKU0NlbGwqIHNlbnRpbmVsU2V0QnVja2V0U2xvdygpOwogICAg
IEpTQ2VsbCogc2VudGluZWxNYXBCdWNrZXRTbG93KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGQ1ZTE5MWYx
MzUyMTFlZjI2OGExN2Q2ZTEzMTkxYjVjOTBlYzA5NjguLmJlZTQzMTc2MTNmODYxMzljMWY1OTY0
MDdlYjJlN2JiNzUwMzJjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTYyMyw3ICsxNjIzLDcgQEAgU2VyaWFs
aXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSBpbikK
ICAgICAgICAgICAgICAgICBKU01hcCogaW5NYXAgPSBqc0Nhc3Q8SlNNYXAqPihpblZhbHVlKTsK
ICAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0TWFwKGluTWFwKSkKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgSlNNYXBJdGVyYXRvciogaXRlcmF0b3IgPSBKU01h
cEl0ZXJhdG9yOjpjcmVhdGUodm0sIHZtLm1hcEl0ZXJhdG9yU3RydWN0dXJlLmdldCgpLCBpbk1h
cCwgSXRlcmF0ZUtleVZhbHVlKTsKKyAgICAgICAgICAgICAgICBKU01hcEl0ZXJhdG9yKiBpdGVy
YXRvciA9IEpTTWFwSXRlcmF0b3I6OmNyZWF0ZSh2bSwgdm0ubWFwSXRlcmF0b3JTdHJ1Y3R1cmUo
KSwgaW5NYXAsIEl0ZXJhdGVLZXlWYWx1ZSk7CiAgICAgICAgICAgICAgICAgbV9nY0J1ZmZlci5h
cHBlbmRXaXRoQ3Jhc2hPbk92ZXJmbG93KGluTWFwKTsKICAgICAgICAgICAgICAgICBtX2djQnVm
ZmVyLmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3coaXRlcmF0b3IpOwogICAgICAgICAgICAgICAg
IG1hcEl0ZXJhdG9yU3RhY2suYXBwZW5kKGl0ZXJhdG9yKTsKQEAgLTE2NjcsNyArMTY2Nyw3IEBA
IFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFs
dWUgaW4pCiAgICAgICAgICAgICAgICAgSlNTZXQqIGluU2V0ID0ganNDYXN0PEpTU2V0Kj4oaW5W
YWx1ZSk7CiAgICAgICAgICAgICAgICAgaWYgKCFzdGFydFNldChpblNldCkpCiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIEpTU2V0SXRlcmF0b3IqIGl0ZXJhdG9y
ID0gSlNTZXRJdGVyYXRvcjo6Y3JlYXRlKHZtLCB2bS5zZXRJdGVyYXRvclN0cnVjdHVyZS5nZXQo
KSwgaW5TZXQsIEl0ZXJhdGVLZXkpOworICAgICAgICAgICAgICAgIEpTU2V0SXRlcmF0b3IqIGl0
ZXJhdG9yID0gSlNTZXRJdGVyYXRvcjo6Y3JlYXRlKHZtLCB2bS5zZXRJdGVyYXRvclN0cnVjdHVy
ZSgpLCBpblNldCwgSXRlcmF0ZUtleSk7CiAgICAgICAgICAgICAgICAgbV9nY0J1ZmZlci5hcHBl
bmRXaXRoQ3Jhc2hPbk92ZXJmbG93KGluU2V0KTsKICAgICAgICAgICAgICAgICBtX2djQnVmZmVy
LmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3coaXRlcmF0b3IpOwogICAgICAgICAgICAgICAgIHNl
dEl0ZXJhdG9yU3RhY2suYXBwZW5kKGl0ZXJhdG9yKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364106</attachid>
            <date>2019-03-08 18:34:51 -0800</date>
            <delta_ts>2019-03-10 13:53:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195498-20190308183450.patch</filename>
            <type>text/plain</type>
            <size>39944</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YmM4YmRlZDlmNzY2YmY0ZjdlYjE1MzllZGZkYTEwMjUyNWNjYjNjLi5kN2IwMmEyMTUyYzdmNDY4
ZWNhZDExODFlZjFjYTE4YzYzZjk0ODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOS0wMy0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlZHVjZSAjIG9mIHN0cnVjdHVyZXMgaW4gSlNHbG9iYWxPYmpl
Y3QgaW5pdGlhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NTQ5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVkdWNlcyAjIG9mIHN0cnVjdHVyZSBhbGxvY2F0aW9ucyBp
biBKU0dsb2JhbE9iamVjdCBpbml0aWFsaXphdGlvbi4gTm93IGl0IGJlY29tZXMgMTQxLCBpdCBm
aXRzIGluIG9uZQorICAgICAgICBNYXJrZWRCbG9jayBhbmQgdGhpcyBwYXRjaCBkcm9wcyBvbmUg
TWFya2VkQmxvY2sgdXNlZCBmb3IgU3RydWN0dXJlIHByZXZpb3VzbHkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVudGltZS9BcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlJdGVyYXRvclByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLCBNYXBJdGVyYXRvclBy
b3RvdHlwZSwgYW5kIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJ3MKKyAgICAgICAgIm5leHQiIHBy
b3BlcnRpZXMgYXJlIHJlZmVyZW5jZWQgYnkgSlNHbG9iYWxPYmplY3Q6OmluaXQsIGFuZCBpdCBj
YXVzZXMgcmVpZmljYXRpb24gb2YgdGhlIGxhenkgIm5leHQiIHByb3BlcnR5IGFuZCBzdHJ1Y3R1
cmUKKyAgICAgICAgdHJhbnNpdGlvbiBhbnl3YXkuIFNvIHdlIHNob3VsZCBwdXQgaXQgZWFnZXJs
eSAid2l0aG91dC10cmFuc2l0aW9uIiBjb25maWd1cmF0aW9uIHRvIGF2b2lkIG9uZSBzdHJ1Y3R1
cmUgdHJhbnNpdGlvbi4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOiBAQHVuc2NvcGFi
bGUgb2JqZWN0J3Mgc3RydWN0dXJlIHNob3VsZCBiZSBkaWN0aW9uYXJ5IGJlY2F1c2UgKDEpIGl0
IGlzIHVzZWQgYXMgYSBkaWN0aW9uYXJ5CisgICAgICAgIGluIHdpdGgtc2NvcGUtcmVzb2x1dGlv
biBhbmQgKDIpIHNpbmNlIHdpdGgtc2NvcGUtcmVzb2x1dGlvbiBpcyBDKysgcnVudGltZSBmdW5j
dGlvbiBhbnl3YXksIG5vbi1kaWN0aW9uYXJ5IHN0cnVjdHVyZSBkb2VzIG5vdCBhZGQKKyAgICAg
ICAgYW55IHBlcmZvcm1hbmNlIGJlbmVmaXQuIFRoaXMgY2hhbmdlIHNhdmVzIHNldmVyYWwgc3Ry
dWN0dXJlcyB0aGF0IGFyZSBub3QgdXNlZnVsLgorCisgICAgICAgICogcnVudGltZS9DbG9uZWRB
cmd1bWVudHMuY3BwOgorICAgICAgICAoSlNDOjpDbG9uZWRBcmd1bWVudHM6OmNyZWF0ZVN0cnVj
dHVyZSk6IEJha2UgQ2xvbmVBcmd1bWVudHMncyBzdHJ1Y3R1cmUgd2l0aCAnd2l0aG91dC10cmFu
c2l0aW9uJyBtYW5uZXIuCisKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOiBQcmV2aW91c2x5IHdlIGFyZSBh
bHdheXMgY2FsbCByZXNldFByb3RveXBlIGF0IHRoZSBlbmQgb2YgSlNHbG9iYWxPYmplY3Q6Omlu
aXQuIEJ1dCBpdCBpcyBub3QgbmVjZXNzYXJ5CisgICAgICAgIHNpbmNlIHdlIGRvIG5vdCBjaGFu
Z2UgW1tQcm90b3R5cGVdXSBvZiBKU0dsb2JhbE9iamVjdC4gQWxsIHdlIHdhbnQgaXMgKDEpIGZp
eHVwUHJvdG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlJ3Mgb3BlcmF0aW9uIGFuZCAoMikg
c2V0R2xvYmFsVGhpcworICAgICAgICBvcGVyYXRpb24uIFNpbmNlIHNldEdsb2JhbFRoaXMgcGFy
dCBpcyBkb25lIGluIEpTR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbiwgZml4dXBQcm90b3R5
cGVDaGFpbldpdGhPYmplY3RQcm90b3R5cGUgaXMgb25seSB0aGUgdGhpbmcKKyAgICAgICAgd2Ug
c2hvdWxkIGRvIGhlcmUuCisKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZpeHVwUHJv
dG90eXBlQ2hhaW5XaXRoT2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OnJlc2V0UHJvdG90eXBlKTogSWYgdGhlIFtbUHJvdG90eXBlXV0gaXMgdGhlIHNhbWUg
dG8gdGhlIGN1cnJlbnQgW1tQcm90b3R5cGVdXSwgd2UgY2FuIHNraXAgdGhlIG9wZXJhdGlvbi4K
KworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L01hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6TWFwSXRlcmF0b3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL051bGxHZXR0ZXJGdW5j
dGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmg6IFNpbmNlIHN0
cnVjdHVyZXMgb2YgdGhlbSBhcmUgYWxsb2NhdGVkIHBlciBKU0dsb2JhbE9iamVjdCBhbmQgdGhl
eSBhcmUgcGVyLUpTR2xvYmFsT2JqZWN0LAorICAgICAgICB3ZSBjYW4gdXNlIHdpdGhvdXQtdHJh
bnNpdGlvbiBwcm9wZXJ0eSBhZGRpdGlvbi4KKworICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nSXRl
cmF0b3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdJdGVyYXRvclByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAo
SlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6c2V0SXRlcmF0b3JTdHJ1Y3R1cmVTbG93
KToKKyAgICAgICAgKEpTQzo6Vk06Om1hcEl0ZXJhdG9yU3RydWN0dXJlU2xvdyk6IFRoZXNlIHN0
cnVjdHVyZXMgYXJlIG9ubHkgdXNlZCBpbiBXZWJDb3JlJ3MgbWFpbiB0aHJlYWQuCisgICAgICAg
ICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6c2V0SXRlcmF0b3JTdHJ1Y3R1cmUp
OgorICAgICAgICAoSlNDOjpWTTo6bWFwSXRlcmF0b3JTdHJ1Y3R1cmUpOgorCiAyMDE5LTAzLTA4
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBTdGFjayBvdmVyZmxv
dyBjcmFzaCBpbiBKU0M6OkpTT2JqZWN0OjpoYXNJbnN0YW5jZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0YjM3
ODI0ZDU3ZDM0MTkzYjkzOWZlYzIxNWRmYTg4YjYwYzFmYzk0Li44NGYyNzY4NmU2NGViNDQwNjA3
OWU5MDY3NjgyODkyNTBkNjljY2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTkt
MDMtMDggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlND
XSBSZWR1Y2UgIyBvZiBzdHJ1Y3R1cmVzIGluIEpTR2xvYmFsT2JqZWN0IGluaXRpYWxpemF0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU0OTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbG9u
ZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZSk6CisKIDIwMTktMDMtMDggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNlIE9yaWVudGF0
aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggODc4ZWFmMmJlYWRmZGRjNzg0Y2Y3OTUxOGEyZGZmZTc1Mjg1MWRkNS4uMTRhYmEw
OWYyM2M5NTYwZjgzNThkNDY3MjE2MjM1NzhjN2UzNWRhZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtNTksNyArNTksNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU1lTVEVN
X0lOQ0xVREVfRElSRUNUT1JJRVMKIAogc2V0KEphdmFTY3JpcHRDb3JlX09CSkVDVF9MVVRfU09V
UkNFUwogICAgIHJ1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKLSAgICBydW50aW1lL0FycmF5
SXRlcmF0b3JQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQ
cm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9Bc3luY0dlbmVyYXRvclByb3RvdHlwZS5jcHAKICAg
ICBydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcApAQCAtOTUsNyArOTQsNiBAQCBzZXQoSmF2
YVNjcmlwdENvcmVfT0JKRUNUX0xVVF9TT1VSQ0VTCiAgICAgcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCiAgICAgcnVudGltZS9TZXRQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5jcHAKLSAgICBydW50aW1lL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcAog
ICAgIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvU3ltYm9sQ29uc3Ry
dWN0b3IuY3BwCiAgICAgcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5k
ZXggZDJkZWU0MjQyMzM3Nzg5ZTc0YmM0YzRkZmY1NGJmNjE3N2E5ODEzNC4uZmFhZjE2ZjE0ZTg2
N2M5ZGM0OWEyOGU4ODRjMWM2ZjU3NGNiYTdjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMyw3ICszLDYg
QEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0Fp
ck9wY29kZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlw
dENvcmUvQWlyT3Bjb2RlR2VuZXJhdGVkLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9BaXJPcGNvZGVVdGlscy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvQXJyYXlDb25zdHJ1Y3Rvci5sdXQu
aAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0Fy
cmF5SXRlcmF0b3JQcm90b3R5cGUubHV0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9Bc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUubHV0
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9B
c3luY0dlbmVyYXRvclByb3RvdHlwZS5sdXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0JpZ0ludENvbnN0cnVjdG9yLmx1dC5oCkBAIC01Miw3
ICs1MSw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9SZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1JlZ0V4cEppdFRhYmxlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvU2V0UHJvdG90eXBlLmx1dC5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvU3Ry
aW5nQ29uc3RydWN0b3IubHV0LmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9KYXZhU2NyaXB0Q29yZS9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5sdXQuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1N0cmluZ1Byb3RvdHlw
ZS5sdXQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlL1N5bWJvbENvbnN0cnVjdG9yLmx1dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvU3ltYm9sUHJvdG90eXBlLmx1dC5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDI0MmUwY2Q3NjU3M2Y2NWM0ZTI1
ODg1OTE4MmMxYTE5YjdhZGY0YzkuLmNiZWY0YzE3ZTIxY2E5MWZmZGEzMWI0NTc0ZTA0NjdiNzdl
Njg1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0x
MzUsNyArMTM1LDYgQEAgSlNDQnVpbHRpbnMuaDogJChCVUlMVElOU19HRU5FUkFUT1JfU0NSSVBU
UykgJChKYXZhU2NyaXB0Q29yZV9CVUlMVElOU19TT1VSQ0VTKQogT0JKRUNUX0xVVF9IRUFERVJT
ID0gXAogICAgIEFzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZS5sdXQuaCBcCiAgICAgQXJy
YXlDb25zdHJ1Y3Rvci5sdXQuaCBcCi0gICAgQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCBc
CiAgICAgQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUubHV0LmggXAogICAgIEJpZ0ludENvbnN0cnVj
dG9yLmx1dC5oIFwKICAgICBCaWdJbnRQcm90b3R5cGUubHV0LmggXApAQCAtMTY5LDcgKzE2OCw2
IEBAIE9CSkVDVF9MVVRfSEVBREVSUyA9IFwKICAgICBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaCBc
CiAgICAgU2V0UHJvdG90eXBlLmx1dC5oIFwKICAgICBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBc
Ci0gICAgU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmggXAogICAgIFN0cmluZ1Byb3RvdHlw
ZS5sdXQuaCBcCiAgICAgU3ltYm9sQ29uc3RydWN0b3IubHV0LmggXAogICAgIFN5bWJvbFByb3Rv
dHlwZS5sdXQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0OGE2NGJjMTA4
YjA4OTdkZGU0OGM2ZGY5YzZjNzE1NjA4M2FkMDcuLmFjZGFhYmVjY2I2YzQzMTg2NTRjYzMyZWJl
ZmE2ZGEyMTlkMzc2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjg2LDcg
KzEyODYsNiBAQAogCQk5OTU5RTkzMjFCRDE4Mjc5MDAxQUE0MTMgLyogaW5saW5lLWFuZC1taW5p
Znktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU5RTkzMDFCRDE4MUY2MDAxQUE0MTMgLyogaW5saW5lLWFu
ZC1taW5pZnktc3R5bGVzaGVldHMtYW5kLXNjcmlwdHMucHkgKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTk2MjMxRTkxOEQxODA0MjAwQzAzRkRBIC8q
IEluc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcyBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzI0Mzk2MTg1NkE0NzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JC
YWNrZW5kQ29tbWFuZHMuanMgKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTk2QjczMTcxQkRBMDY3RjAwMzMxQjg0IC8qIEFycmF5Q29uc3RydWN0b3Iu
bHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZC
NzMxNTFCREEwNUFBMDAzMzFCODQgLyogQXJyYXlDb25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKLQkJ
OTk2QjczMTgxQkRBMDY4MDAwMzMxQjg0IC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUubHV0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxNjFC
REEwNUFBMDAzMzFCODQgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAqLzsgfTsKIAkJ
OTk2QjczMTkxQkRBMDY4MDAwMzMxQjg0IC8qIEJvb2xlYW5Qcm90b3R5cGUubHV0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMwNzFCRDlGQTJD
MDAzMzFCODQgLyogQm9vbGVhblByb3RvdHlwZS5sdXQuaCAqLzsgfTsKIAkJOTk2QjczMUExQkRB
MDhEMTAwMzMxQjg0IC8qIERhdGVDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NkI3MzA4MUJEOUZBMkMwMDMzMUI4NCAvKiBE
YXRlQ29uc3RydWN0b3IubHV0LmggKi87IH07CiAJCTk5NkI3MzFCMUJEQTA4RDEwMDMzMUI4NCAv
KiBFcnJvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5NkI3MzA5MUJEOUZBMkMwMDMzMUI4NCAvKiBFcnJvclByb3RvdHlwZS5s
dXQuaCAqLzsgfTsKQEAgLTEyOTksNyArMTI5OCw2IEBACiAJCTk5NkI3MzIyMUJEQTA4RUYwMDMz
MUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NkI3MzBFMUJEOUZBMkMwMDMzMUI4NCAvKiBPYmplY3RD
b25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKIAkJOTk2QjczMjMxQkRBMDhFRjAwMzMxQjg0IC8qIFJl
ZmxlY3RPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OTZCNzMwRjFCRDlGQTJDMDAzMzFCODQgLyogUmVmbGVjdE9iamVjdC5sdXQuaCAq
LzsgfTsKIAkJOTk2QjczMjUxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmx1
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2Qjcz
MTExQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmx1dC5oICovOyB9OwotCQk5
OTZCNzMyNjFCREEwOEVGMDAzMzFCODQgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZCNzMxMjFC
RDlGQTJDMDAzMzFCODQgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmggKi87IH07CiAJ
CTk5NkI3MzI3MUJEQTA4RUYwMDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NkI3MzEzMUJEOUZB
MkMwMDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKIAkJOTk2QjczMjgx
QkRBMDhFRjAwMzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NkI3MzE0MUJEOUZBMkMwMDMzMUI4NCAv
KiBTeW1ib2xQcm90b3R5cGUubHV0LmggKi87IH07CiAJCTk5OEVENjc1MUJFRDc2OEMwMEREODAx
NyAvKiBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OEVENjczMUJFRDY1OUEwMEREODAxNyAvKiBSZW1vdGVD
b250cm9sbGFibGVUYXJnZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNDAyOSwxMSArNDAyNyw5IEBACiAJCTk5NkI3MzBFMUJEOUZBMkMwMDMz
MUI4NCAvKiBPYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gT2JqZWN0Q29uc3RydWN0b3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5NkI3MzBGMUJEOUZBMkMwMDMzMUI4NCAvKiBSZWZsZWN0T2JqZWN0Lmx1dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZsZWN0T2JqZWN0Lmx1dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZCNzMxMTFCRDlGQTJDMDAzMzFCODQgLyogU3Ry
aW5nQ29uc3RydWN0b3IubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
cmluZ0NvbnN0cnVjdG9yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTZC
NzMxMjFCRDlGQTJDMDAzMzFCODQgLyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTZCNzMxMzFCRDlGQTJDMDAzMzFC
ODQgLyogU3ltYm9sQ29uc3RydWN0b3IubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN5bWJvbENvbnN0cnVjdG9yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5OTZCNzMxNDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xQcm90b3R5cGUubHV0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NkI3MzE1MUJEQTA1QUEwMDMzMUI4NCAvKiBB
cnJheUNvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
cnJheUNvbnN0cnVjdG9yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTZC
NzMxNjFCREEwNUFBMDAzMzFCODQgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4RUQ2NzIxQkVENjU5QTAwREQ4MDE3
IC8qIFJlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OThFRDY3MzFCRUQ2NTlBMDBERDgwMTcgLyogUmVtb3RlQ29udHJv
bGxhYmxlVGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNv
bnRyb2xsYWJsZVRhcmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OURBMDA5
OTFCRDU5OTI3MDBGNDU3NUMgLyogX19pbml0X18ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5w
eXRob247IHBhdGggPSBfX2luaXRfXy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTYzNjEsNyArNjM1Nyw2IEBACiAJCQkJMEY2MTgzMzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9w
Y29kZUdlbmVyYXRlZC5oICovLAogCQkJCTBGNjE4MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJP
cGNvZGVVdGlscy5oICovLAogCQkJCTk5NkI3MzE1MUJEQTA1QUEwMDMzMUI4NCAvKiBBcnJheUNv
bnN0cnVjdG9yLmx1dC5oICovLAotCQkJCTk5NkI3MzE2MUJEQTA1QUEwMDMzMUI4NCAvKiBBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmx1dC5oICovLAogCQkJCUUzODkzQTFDMjIwM0E3QzYwMEU3OUE3
NCAvKiBBc3luY0Zyb21TeW5jSXRlcmF0b3JQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJOEIzQkY1
RTMxRTNEMzY1QTAwNzZBODdBIC8qIEFzeW5jR2VuZXJhdG9yUHJvdG90eXBlLmx1dC5oICovLAog
CQkJCTk5NkI3MzA3MUJEOUZBMkMwMDMzMUI4NCAvKiBCb29sZWFuUHJvdG90eXBlLmx1dC5oICov
LApAQCAtNjQwMyw3ICs2Mzk4LDYgQEAKIAkJCQlBNzE4RjYxQTExNzU0QTIxMDAyNDY1QTcgLyog
UmVnRXhwSml0VGFibGVzLmggKi8sCiAJCQkJNzAzNTU4N0YxQzQxODQ1ODAwNEJEN0JGIC8qIFNl
dFByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQk5OTZCNzMxMTFCRDlGQTJDMDAzMzFCODQgLyogU3Ry
aW5nQ29uc3RydWN0b3IubHV0LmggKi8sCi0JCQkJOTk2QjczMTIxQkQ5RkEyQzAwMzMxQjg0IC8q
IFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5oICovLAogCQkJCTk5NkI3MzEzMUJEOUZBMkMw
MDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQk5OTZCNzMxNDFCRDlG
QTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBlLmx1dC5oICovLAogCQkJCTUzM0IxNURFMURD
N0Y0NjMwMDRENTAwQSAvKiBXYXNtT3BzLmggKi8sCkBAIC04NDg0LDcgKzg0NzgsNiBAQAogCQkJ
CTk5NkI3MzE3MUJEQTA2N0YwMDMzMUI4NCAvKiBBcnJheUNvbnN0cnVjdG9yLmx1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZCN0YzOTUxNUVEOEU0NjAwRjE2N0IyIC8qIEFycmF5Q29udmVudGlv
bnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkRBRUM5MTdGNEVBMTQwMEY2MTQwQyAvKiBBcnJh
eUl0ZXJhdG9yUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMxODFCREEwNjgw
MDAzMzFCODQgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNjM5NDU1MTVEMDcwNTcwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDM0U3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBBcnJheVByb3RvdHlwZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZCN0YzOTYxNUVEOEU0NjAwRjE2N0IyIC8qIEFycmF5U3RvcmFn
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05Njk3LDcgKzk2OTAsNiBAQAogCQkJCUJDMThDNDY2MEUx
NkY1Q0QwMEIzNDQ2MCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTk2QjczMjUxQkRBMDhFRjAwMzMxQjg0IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmx1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzBFQzBFQzcxQUEwRDdEQTAwQjZBQUZBIC8qIFN0cmluZ0l0ZXJhdG9y
UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5OTZCNzMyNjFCREEwOEVGMDAzMzFCODQg
LyogU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4
QzQ2ODBFMTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQ2QTBFMTZGNUNEMDBCMzQ0NjAgLyogU3RyaW5nUHJvdG90eXBlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzI1QTM2MDIyMjExNTkwMDA3MzQ5QTEgLyogU3RyaW5nUHJvdG90eXBlSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwCmluZGV4IGI0ZTYyYTkwMjg1MDVi
ODA4NTNhN2Y2N2I1OGNkOWQwNzc2OWZkZmEuLjg5MzMyMGE5YTQzOTc1Yjc4MWNkNjQ0MWIwZDhi
ODY1NDg0NzM3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXJyYXlJdGVyYXRvclByb3RvdHlwZS5oIgogCi0jaW5j
bHVkZSAiQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCIKICNpbmNsdWRlICJJdGVyYXRvck9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1
ZUlubGluZXMuaCIKQEAgLTM3LDE5ICszNiwxNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY29u
c3QgQ2xhc3NJbmZvIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkFycmF5IEl0
ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgJmFycmF5SXRlcmF0b3JQcm90b3R5cGVUYWJsZSwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBcnJheUl0ZXJhdG9yUHJvdG90eXBlKSB9OworY29u
c3QgQ2xhc3NJbmZvIEFycmF5SXRlcmF0b3JQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkFycmF5IEl0
ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShBcnJheUl0ZXJhdG9yUHJvdG90eXBlKSB9OwogCi0vKiBTb3VyY2UgZm9yIEFycmF5SXRl
cmF0b3JQcm90b3R5cGUubHV0LmgKLUBiZWdpbiBhcnJheUl0ZXJhdG9yUHJvdG90eXBlVGFibGUK
LSAgbmV4dCAgICAgIEpTQnVpbHRpbiAgRG9udEVudW18RnVuY3Rpb24gMAotQGVuZAotKi8KLQot
dm9pZCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KikKK3ZvaWQgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1Rh
Z1N5bWJvbCwganNTdHJpbmcoJnZtLCAiQXJyYXkgSXRlcmF0b3IiKSwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKKyAgICBKU0NfQlVJ
TFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+bmV4dCwg
YXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgZGlkQmVjb21lUHJvdG90
eXBlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmNwcAppbmRleCAxYTM3YjNmMGNiMWViNWU0MzQxYWJlZmM4MmE3MzZkM2MxNjdkMmRj
Li5iMmJhMjljOGUwNGIyMTIzOGRkN2U3N2QxYmVkZWU2MTMwNmM0MWFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCkBAIC04OSw4ICs4
OSw4IEBAIHZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdsb2JhbE9iamVjdC0+YXJyYXlQ
cm90b1ZhbHVlc0Z1bmN0aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKIAogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPnRvTG9jYWxlU3RyaW5nLCBhcnJheVByb3RvRnVuY1Rv
TG9jYWxlU3RyaW5nLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMCk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJjb25jYXQiLCBhcnJheVByb3RvdHlwZUNvbmNhdENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJ
Tl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImZpbGwiLCBhcnJheVByb3RvdHlwZUZpbGxD
b2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNvbmNhdFB1YmxpY05hbWUoKSwgYXJyYXlQ
cm90b3R5cGVDb25jYXRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbGxQdWJsaWNO
YW1lKCksIGFycmF5UHJvdG90eXBlRmlsbENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5qb2luLCBhcnJheVByb3Rv
RnVuY0pvaW4sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCAxKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oInBvcCIsIGFycmF5UHJvdG9GdW5jUG9wLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMCwgQXJyYXlQb3BJbnRyaW5zaWMpOwogICAgIEpT
Q19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wdXNoUHVibGljTmFtZSgpLCBhcnJheVByb3RvRnVuY1B1
c2gsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAx
LCBBcnJheVB1c2hJbnRyaW5zaWMpOwpAQCAtOTksMjYgKzk5LDI2IEBAIHZvaWQgQXJyYXlQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5zaGlmdFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b0Z1bmNT
aGlmdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IDApOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnNoaWZ0UHJpdmF0ZU5hbWUoKSwgYXJyYXlQcm90b0Z1
bmNTaGlmdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHksIDApOwogICAgIEpTQ19O
QVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5h
bWVzLT5zbGljZSwgYXJyYXlQcm90b0Z1bmNTbGljZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIsIEFycmF5U2xpY2VJbnRyaW5zaWMpOwotICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigic29ydCIsIGFycmF5UHJv
dG90eXBlU29ydENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc29ydFB1YmxpY05hbWUo
KSwgYXJyYXlQcm90b3R5cGVTb3J0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJzcGxpY2UiLCBhcnJheVByb3RvRnVuY1NwbGljZSwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ1bnNoaWZ0IiwgYXJyYXlQcm90
b0Z1bmNVblNoaWZ0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgMSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJldmVyeSIsIGFycmF5UHJvdG90eXBlRXZlcnlDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5f
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmb3JFYWNoIiwgYXJyYXlQcm90b3R5cGVGb3JF
YWNoQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tigic29tZSIsIGFycmF5UHJvdG90eXBlU29tZUNvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZXZlcnlQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRXZlcnlDb2RlR2VuZXJhdG9yLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAg
SlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmZvckVhY2hQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlRm9yRWFj
aENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc29tZVB1YmxpY05hbWUoKSwgYXJyYXlQ
cm90b3R5cGVTb21lQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTigiaW5kZXhPZiIsIGFycmF5UHJvdG9GdW5jSW5kZXhPZiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEsIEFycmF5
SW5kZXhPZkludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oImxhc3RJbmRleE9mIiwgYXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwotICAgIEpTQ19C
VUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmlsdGVyIiwgYXJyYXlQcm90b3R5
cGVGaWx0ZXJDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFO
U0lUSU9OKCJmbGF0IiwgYXJyYXlQcm90b3R5cGVGbGF0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlM
VElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmxhdE1hcCIsIGFycmF5UHJvdG90eXBl
RmxhdE1hcENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5T
SVRJT04oInJlZHVjZSIsIGFycmF5UHJvdG90eXBlUmVkdWNlQ29kZUdlbmVyYXRvciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19C
VUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicmVkdWNlUmlnaHQiLCBhcnJheVBy
b3RvdHlwZVJlZHVjZVJpZ2h0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigibWFwIiwgYXJyYXlQcm90b3R5cGVNYXBDb2RlR2VuZXJhdG9yLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAg
SlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLmZpbHRlclB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVGaWx0ZXJD
b2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZsYXRQdWJsaWNOYW1lKCksIGFycmF5UHJv
dG90eXBlRmxhdENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmxhdE1hcFB1YmxpY05h
bWUoKSwgYXJyYXlQcm90b3R5cGVGbGF0TWFwQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5yZWR1Y2VQdWJsaWNOYW1lKCksIGFycmF5UHJvdG90eXBlUmVkdWNlQ29kZUdlbmVyYXRvciwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOworICAg
IEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5yZWR1Y2VSaWdodFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVS
ZWR1Y2VSaWdodENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubWFwUHVibGljTmFtZSgp
LCBhcnJheVByb3RvdHlwZU1hcENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmll
c1B1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVFbnRyaWVzQ29kZUdlbmVyYXRvciwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19C
VUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5rZXlzUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUtleXNDb2RlR2VuZXJh
dG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7
Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJmaW5kIiwgYXJy
YXlQcm90b3R5cGVGaW5kQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigiZmluZEluZGV4IiwgYXJyYXlQcm90b3R5cGVGaW5kSW5kZXhDb2RlR2Vu
ZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmNsdWRl
cyIsIGFycmF5UHJvdG90eXBlSW5jbHVkZXNDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX0JVSUxUSU5fRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb3B5V2l0aGluIiwgYXJyYXlQcm90b3R5cGVDb3B5
V2l0aGluQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kUHVibGljTmFtZSgpLCBh
cnJheVByb3RvdHlwZUZpbmRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbmRJbmRl
eFB1YmxpY05hbWUoKSwgYXJyYXlQcm90b3R5cGVGaW5kSW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgSlND
X0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLmluY2x1ZGVzUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUluY2x1ZGVz
Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jb3B5V2l0aGluUHVibGljTmFtZSgpLCBh
cnJheVByb3RvdHlwZUNvcHlXaXRoaW5Db2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKICAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmllc1By
aXZhdGVOYW1lKCksIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuZW50cmllc1B1YmxpY05hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwg
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZm9yRWFjaFByaXZhdGVOYW1lKCksIGdl
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZm9yRWFjaFB1Ymxp
Y05hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkpKTsKQEAgLTEyNiwxOCArMTI2LDE5IEBAIHZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
dmFsdWVzUHJpdmF0ZU5hbWUoKSwgZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvVmFsdWVzRnVuY3Rp
b24oKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkp
OwogCiAgICAgSlNPYmplY3QqIHVuc2NvcGFibGVzID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVj
dFN0cnVjdHVyZSgpKTsKLSAgICBjb25zdCBjaGFyKiB1bnNjb3BhYmxlTmFtZXNbXSA9IHsKLSAg
ICAgICAgImNvcHlXaXRoaW4iLAotICAgICAgICAiZW50cmllcyIsCi0gICAgICAgICJmaWxsIiwK
LSAgICAgICAgImZpbmQiLAotICAgICAgICAiZmluZEluZGV4IiwKLSAgICAgICAgImluY2x1ZGVz
IiwKLSAgICAgICAgImtleXMiLAotICAgICAgICAidmFsdWVzIgorICAgIHVuc2NvcGFibGVzLT5j
b252ZXJ0VG9EaWN0aW9uYXJ5KHZtKTsKKyAgICBjb25zdCBJZGVudGlmaWVyIHVuc2NvcGFibGVO
YW1lc1tdID0geworICAgICAgICB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jb3B5
V2l0aGluUHVibGljTmFtZSgpLAorICAgICAgICB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLAorICAgICAgICB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5maWxsUHVibGljTmFtZSgpLAorICAgICAgICB2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5maW5kUHVibGljTmFtZSgpLAorICAgICAgICB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5maW5kSW5kZXhQdWJsaWNOYW1lKCksCisgICAgICAgIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmluY2x1ZGVzUHVibGljTmFtZSgpLAorICAgICAgICB2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5rZXlzUHVibGljTmFtZSgpLAorICAgICAg
ICB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS52YWx1ZXNQdWJsaWNOYW1lKCkKICAg
ICB9OwotICAgIGZvciAoY29uc3QgY2hhciogdW5zY29wYWJsZU5hbWUgOiB1bnNjb3BhYmxlTmFt
ZXMpCi0gICAgICAgIHVuc2NvcGFibGVzLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCB1bnNjb3BhYmxlTmFtZSksIGpzQm9vbGVhbih0cnVlKSk7CisgICAgZm9yIChh
dXRvJiB1bnNjb3BhYmxlTmFtZSA6IHVuc2NvcGFibGVOYW1lcykKKyAgICAgICAgdW5zY29wYWJs
ZXMtPnB1dERpcmVjdCh2bSwgdW5zY29wYWJsZU5hbWUsIGpzQm9vbGVhbih0cnVlKSk7CiAgICAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnVuc2NvcGFi
bGVzU3ltYm9sLCB1bnNjb3BhYmxlcywgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5jcHAKaW5kZXggMTg1MjE1NTMwMzQ2ZjVhMjJj
Y2QxYjBhMGRlMmZhODk2YzFkZGJkNi4uOGIwNzRiMmQ3ZDc5OWEzMzU4ZDk3YzJjMmZhYjNlOWQ2
ODY0NjQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVk
QXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbG9uZWRB
cmd1bWVudHMuY3BwCkBAIC0xNTEsOSArMTUxLDEyIEBAIENsb25lZEFyZ3VtZW50cyogQ2xvbmVk
QXJndW1lbnRzOjpjcmVhdGVCeUNvcHlpbmdGcm9tKAogU3RydWN0dXJlKiBDbG9uZWRBcmd1bWVu
dHM6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlKQogewogICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlID0gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhDbG9uZWRBcmd1bWVudHNUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSwgaW5kZXhpbmdUeXBlKTsKLSAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQ7Ci0gICAg
c3RydWN0dXJlID0gc3RydWN0dXJlLT5hZGRQcm9wZXJ0eVRyYW5zaXRpb24odm0sIHN0cnVjdHVy
ZSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgb2Zmc2V0KTsKLSAgICBBU1NFUlQob2Zmc2V0ID09IGNs
b25lZEFyZ3VtZW50c0xlbmd0aFByb3BlcnR5T2Zmc2V0KTsKKyAgICBzdHJ1Y3R1cmUtPmFkZFBy
b3BlcnR5V2l0aG91dFRyYW5zaXRpb24oCisgICAgICAgIHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LAorICAgICAgICBbJl0gKGNvbnN0IEdDU2FmZUNvbmN1cnJlbnRKU0xvY2tlciYsIFByb3BlcnR5
T2Zmc2V0IG9mZnNldCwgUHJvcGVydHlPZmZzZXQgbmV3TGFzdE9mZnNldCkgeworICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQob2Zmc2V0ID09IGNsb25lZEFyZ3VtZW50c0xlbmd0aFByb3BlcnR5
T2Zmc2V0KTsKKyAgICAgICAgICAgIHN0cnVjdHVyZS0+c2V0TGFzdE9mZnNldChuZXdMYXN0T2Zm
c2V0KTsKKyAgICAgICAgfSk7CiAgICAgcmV0dXJuIHN0cnVjdHVyZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDIwNzM3
ZjM5M2Q1NmVhNTVmNWE2YzdhNzRiMWJhM2U0ZTAyNzAwM2UuLjFhNzlkZjJlMTc4Yjg3YjA1ZWRi
MTkyNzU3MjM2NWU5OGFkOGQ3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTExNjAsNyArMTE2MCw3IEBAIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUg
IyMgQ29uc3RydWN0CiAgICAgICAgIG1fbnVtYmVyUHJvdG9Ub1N0cmluZ0Z1bmN0aW9uLnNldCh2
bSwgdGhpcywganNDYXN0PEpTRnVuY3Rpb24qPihudW1iZXJQcm90b3R5cGUtPmdldERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmcpKSk7CiAgICAgfQogCi0gICAgcmVzZXRQcm90
b3R5cGUodm0sIGdldFByb3RvdHlwZURpcmVjdCh2bSkpOworICAgIGZpeHVwUHJvdG90eXBlQ2hh
aW5XaXRoT2JqZWN0UHJvdG90eXBlKHZtKTsKIH0KIAogYm9vbCBKU0dsb2JhbE9iamVjdDo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC0xNTg1LDE2ICsxNTg1
LDIxIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmhhdmVBQmFkVGltZShWTSYgdm0pCiAgICAgfQog
fQogCi0vLyBTZXQgcHJvdG90eXBlLCBhbmQgYWxzbyBpbnNlcnQgdGhlIG9iamVjdCBwcm90b3R5
cGUgYXQgdGhlIGVuZCBvZiB0aGUgY2hhaW4uCi12b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldFBy
b3RvdHlwZShWTSYgdm0sIEpTVmFsdWUgcHJvdG90eXBlKQordm9pZCBKU0dsb2JhbE9iamVjdDo6
Zml4dXBQcm90b3R5cGVDaGFpbldpdGhPYmplY3RQcm90b3R5cGUoVk0mIHZtKQogewotICAgIHNl
dFByb3RvdHlwZURpcmVjdCh2bSwgcHJvdG90eXBlKTsKLQogICAgIEpTT2JqZWN0KiBvbGRMYXN0
SW5Qcm90b3R5cGVDaGFpbiA9IGxhc3RJblByb3RvdHlwZUNoYWluKHZtLCB0aGlzKTsKICAgICBK
U09iamVjdCogb2JqZWN0UHJvdG90eXBlID0gbV9vYmplY3RQcm90b3R5cGUuZ2V0KCk7CiAgICAg
aWYgKG9sZExhc3RJblByb3RvdHlwZUNoYWluICE9IG9iamVjdFByb3RvdHlwZSkKICAgICAgICAg
b2xkTGFzdEluUHJvdG90eXBlQ2hhaW4tPnNldFByb3RvdHlwZURpcmVjdCh2bSwgb2JqZWN0UHJv
dG90eXBlKTsKK30KIAorLy8gU2V0IHByb3RvdHlwZSwgYW5kIGFsc28gaW5zZXJ0IHRoZSBvYmpl
Y3QgcHJvdG90eXBlIGF0IHRoZSBlbmQgb2YgdGhlIGNoYWluLgordm9pZCBKU0dsb2JhbE9iamVj
dDo6cmVzZXRQcm90b3R5cGUoVk0mIHZtLCBKU1ZhbHVlIHByb3RvdHlwZSkKK3sKKyAgICBpZiAo
Z2V0UHJvdG90eXBlRGlyZWN0KHZtKSA9PSBwcm90b3R5cGUpCisgICAgICAgIHJldHVybjsKKyAg
ICBzZXRQcm90b3R5cGVEaXJlY3Qodm0sIHByb3RvdHlwZSk7CisgICAgZml4dXBQcm90b3R5cGVD
aGFpbldpdGhPYmplY3RQcm90b3R5cGUodm0pOwogICAgIC8vIFdoZW5ldmVyIHdlIGNoYW5nZSB0
aGUgcHJvdG90eXBlIG9mIHRoZSBnbG9iYWwgb2JqZWN0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG5l
dyBKU1Byb3h5IHdpdGggdGhlIGNvcnJlY3QgcHJvdG90eXBlLgogICAgIHNldEdsb2JhbFRoaXMo
dm0sIEpTTm9uRGVzdHJ1Y3RpYmxlUHJveHk6OmNyZWF0ZSh2bSwgSlNOb25EZXN0cnVjdGlibGVQ
cm94eTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBwcm90b3R5cGUsIFB1cmVGb3J3YXJkaW5n
UHJveHlUeXBlKSwgdGhpcykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggYTg1NDhlNTNjNWU4M2Y5MDQwNDEyY2JhYjhmZjVhMzc2
Y2U2YzFlNi4uMjI0ZjA4YzRiODNhZDIzOGJiZDA3MDk0YzAyOTM2MTQ5OThkYjAzNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xMDM1
LDYgKzEwMzUsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZh
cmlhYmxlT2JqZWN0IHsKICAgICB2b2lkIGluaXRpYWxpemVFcnJvckNvbnN0cnVjdG9yKExhenlD
bGFzc1N0cnVjdHVyZTo6SW5pdGlhbGl6ZXImKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgaW5pdChWTSYpOworICAgIHZvaWQgZml4dXBQcm90b3R5cGVDaGFpbldpdGhPYmplY3RQcm90
b3R5cGUoVk0mKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGNsZWFyUmFy
ZURhdGEoSlNDZWxsKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCBhYTU3N2I3YWI1NmJkNzI5ZWRkMTYz
MTgwOWY5YWQ4NDk2MGZkMjgyLi43MDViNDJlOTlmZDEzYmFkZjEyMDJmODMyYjU4MDEwOTFiYjAx
YmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBJdGVyYXRv
clByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwSXRl
cmF0b3JQcm90b3R5cGUuY3BwCkBAIC0zOSw4ICszOSw4IEBAIHZvaWQgTWFwSXRlcmF0b3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogICAgIGRpZEJlY29tZVByb3Rv
dHlwZSgpOwogCi0gICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJu
ZXh0IiwgbWFwSXRlcmF0b3JQcm90b3R5cGVOZXh0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwg
anNTdHJpbmcoJnZtLCAiTWFwIEl0ZXJhdG9yIiksIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJ
T05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPm5leHQsIG1hcEl0ZXJhdG9y
UHJvdG90eXBlTmV4dENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24uaAppbmRleCAzNTBlYjdkNzFjNjVhNjdi
NGQzOTY0NmI0MGVkYTI4YTU5MjA2ZTU5Li40N2EwMWRlY2NjMmYyMDEyYTdhMTAzOWZjZGIyMzEx
Yjk2NWIyNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxs
R2V0dGVyRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxs
R2V0dGVyRnVuY3Rpb24uaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBOdWxsR2V0dGVyRnVuY3Rp
b24gZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgewogICAgICAgICAvLyBT
aW5jZSBOdWxsR2V0dGVyRnVuY3Rpb24gaXMgcGVyIEpTR2xvYmFsT2JqZWN0LCB3ZSB1c2UgcHV0
LXdpdGhvdXQtdHJhbnNpdGlvbiBpbiBJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbi4K
ICAgICAgICAgTnVsbEdldHRlckZ1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoTm90TnVsbCwgYWxs
b2NhdGVDZWxsPCBOdWxsR2V0dGVyRnVuY3Rpb24+KHZtLmhlYXApKSAgTnVsbEdldHRlckZ1bmN0
aW9uKHZtLCBzdHJ1Y3R1cmUpOwotICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24odm0s
IFN0cmluZygpLCBOYW1lVmlzaWJpbGl0eTo6VmlzaWJsZSwgTmFtZUFkZGl0aW9uTW9kZTo6V2l0
aFN0cnVjdHVyZVRyYW5zaXRpb24pOworICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24o
dm0sIFN0cmluZygpLCBOYW1lVmlzaWJpbGl0eTo6VmlzaWJsZSwgTmFtZUFkZGl0aW9uTW9kZTo6
V2l0aG91dFN0cnVjdHVyZVRyYW5zaXRpb24pOwogICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0
dGVyRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJG
dW5jdGlvbi5oCmluZGV4IGVhMDViMmIxNzZmMmYzMTZkZjZhNjRhZjliNGNmMmFhNTFmYTVjYzYu
LjQxN2Q3OWE1ODQzOTM2YjRiYTY1YjdhZTI3ZDM1ZjZjNjcxNGY1MTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5oCkBAIC0zNyw3
ICszNyw3IEBAIGNsYXNzIE51bGxTZXR0ZXJGdW5jdGlvbiBmaW5hbCA6IHB1YmxpYyBJbnRlcm5h
bEZ1bmN0aW9uIHsKICAgICB7CiAgICAgICAgIC8vIFNpbmNlIE51bGxTZXR0ZXJGdW5jdGlvbiBp
cyBwZXIgSlNHbG9iYWxPYmplY3QsIHdlIHVzZSBwdXQtd2l0aG91dC10cmFuc2l0aW9uIGluIElu
dGVybmFsRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uLgogICAgICAgICBOdWxsU2V0dGVyRnVuY3Rp
b24qIGZ1bmN0aW9uID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8IE51bGxTZXR0ZXJGdW5j
dGlvbj4odm0uaGVhcCkpICBOdWxsU2V0dGVyRnVuY3Rpb24odm0sIHN0cnVjdHVyZSk7Ci0gICAg
ICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbih2bSwgU3RyaW5nKCksIE5hbWVWaXNpYmlsaXR5
OjpWaXNpYmxlLCBOYW1lQWRkaXRpb25Nb2RlOjpXaXRoU3RydWN0dXJlVHJhbnNpdGlvbik7Cisg
ICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbih2bSwgU3RyaW5nKCksIE5hbWVWaXNpYmls
aXR5OjpWaXNpYmxlLCBOYW1lQWRkaXRpb25Nb2RlOjpXaXRob3V0U3RydWN0dXJlVHJhbnNpdGlv
bik7CiAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmNwcApp
bmRleCA2YWMwYmVmNDBmYzI3NDBiMTk4ODNjOTM0ZDhjNWU4YTZkYjUzODc0Li5jZTcxMjk5N2Zi
YWZkM2RmOWU1ZmQwNmNkODE4N2FmOTM0NjA3MDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUuY3BwCkBAIC0z
MiwyMyArMzIsMTYgQEAKICNpbmNsdWRlICJKU1N0cmluZ0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
T2JqZWN0Q29uc3RydWN0b3IuaCIKIAotI2luY2x1ZGUgIlN0cmluZ0l0ZXJhdG9yUHJvdG90eXBl
Lmx1dC5oIgotCiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgQ2xhc3NJbmZvIFN0cmluZ0l0ZXJh
dG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJTdHJpbmcgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZv
LCAmc3RyaW5nSXRlcmF0b3JQcm90b3R5cGVUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShTdHJpbmdJdGVyYXRvclByb3RvdHlwZSkgfTsKLQotLyogU291cmNlIGZvciBTdHJpbmdJ
dGVyYXRvclByb3RvdHlwZS5sdXQuaAotQGJlZ2luIHN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlVGFi
bGUKLSAgbmV4dCAgICAgIEpTQnVpbHRpbiAgICBEb250RW51bXxGdW5jdGlvbiAwCi1AZW5kCi0q
LworY29uc3QgQ2xhc3NJbmZvIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJT
dHJpbmcgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlKSB9OwogCi12b2lkIFN0cmluZ0l0
ZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikK
K3ZvaWQgU3RyaW5nSXRlcmF0b3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKICAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpz
U3RyaW5nKCZ2bSwgIlN0cmluZyBJdGVyYXRvciIpLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOworICAgIEpTQ19CVUlMVElOX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5uZXh0LCBzdHJpbmdJdGVy
YXRvclByb3RvdHlwZU5leHRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgZGlkQmVjb21lUHJvdG90eXBlKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCAxZGNmZjdjNTBjNjhkYTgz
ZjAzMmFmZTk0NmUyZDAzNmM1ZGQ5YzU2Li5lNzc4MDQ1NDVjMmIxNmRhOTk1NzhjZjAzNjQyYjFk
ZGJiNDBjMjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC00MDAsOCAr
NDAwLDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIGZ1
bmN0aW9uQ29kZUJsb2NrU3RydWN0dXJlLnNldCgqdGhpcywgRnVuY3Rpb25Db2RlQmxvY2s6OmNy
ZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBoYXNoTWFwQnVja2V0U2V0
U3RydWN0dXJlLnNldCgqdGhpcywgSGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleT46
OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBoYXNoTWFwQnVja2V0
TWFwU3RydWN0dXJlLnNldCgqdGhpcywgSGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtl
eVZhbHVlPjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwotICAgIHNldEl0
ZXJhdG9yU3RydWN0dXJlLnNldCgqdGhpcywgSlNTZXRJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJl
KCp0aGlzLCAwLCBqc051bGwoKSkpOwotICAgIG1hcEl0ZXJhdG9yU3RydWN0dXJlLnNldCgqdGhp
cywgSlNNYXBJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwog
ICAgIGJpZ0ludFN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTQmlnSW50OjpjcmVhdGVTdHJ1Y3R1cmUo
KnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgZXhlY3V0YWJsZVRvQ29kZUJsb2NrRWRnZVN0cnVj
dHVyZS5zZXQoKnRoaXMsIEV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2U6OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcywgbnVsbHB0ciwganNOdWxsKCkpKTsKIApAQCAtMTI5MSw2ICsxMjg5LDE5IEBAIERZ
TkFNSUNfU1BBQ0VfQU5EX1NFVF9ERUZJTkVfTUVNQkVSX1NMT1cobW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGVTcGFjZSwgZGVzdHJ1Y3RpCiAKICN1bmRlZiBEWU5BTUlDX1NQQUNFX0FORF9TRVRfREVG
SU5FX01FTUJFUl9TTE9XCiAKK1N0cnVjdHVyZSogVk06OnNldEl0ZXJhdG9yU3RydWN0dXJlU2xv
dygpCit7CisgICAgQVNTRVJUKCFtX3NldEl0ZXJhdG9yU3RydWN0dXJlKTsKKyAgICBtX3NldEl0
ZXJhdG9yU3RydWN0dXJlLnNldCgqdGhpcywgSlNTZXRJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJl
KCp0aGlzLCAwLCBqc051bGwoKSkpOworICAgIHJldHVybiBtX3NldEl0ZXJhdG9yU3RydWN0dXJl
LmdldCgpOworfQorCitTdHJ1Y3R1cmUqIFZNOjptYXBJdGVyYXRvclN0cnVjdHVyZVNsb3coKQor
eworICAgIEFTU0VSVCghbV9tYXBJdGVyYXRvclN0cnVjdHVyZSk7CisgICAgbV9tYXBJdGVyYXRv
clN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTTWFwSXRlcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSgqdGhp
cywgMCwganNOdWxsKCkpKTsKKyAgICByZXR1cm4gbV9tYXBJdGVyYXRvclN0cnVjdHVyZS5nZXQo
KTsKK30KIAogSlNDZWxsKiBWTTo6c2VudGluZWxTZXRCdWNrZXRTbG93KCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCmluZGV4IDQzMjYxNGIwMTQ4ODJlZDMxMmE1MDg1ZWE1YTMxMDQ0
OWE4MDAwN2UuLjM3N2QzMTVkZWViOGRmOWVmNWM3NDMzODc1YThkY2M3MjYyYTE0ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNTMzLDExICs1MzMsMTIgQEAgY2xhc3MgVk0g
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlz
dE5vZGU8Vk0+IHsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBmdW5jdGlvbkNvZGVCbG9ja1N0cnVj
dHVyZTsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBoYXNoTWFwQnVja2V0U2V0U3RydWN0dXJlOwog
ICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGhhc2hNYXBCdWNrZXRNYXBTdHJ1Y3R1cmU7Ci0gICAgU3Ry
b25nPFN0cnVjdHVyZT4gc2V0SXRlcmF0b3JTdHJ1Y3R1cmU7Ci0gICAgU3Ryb25nPFN0cnVjdHVy
ZT4gbWFwSXRlcmF0b3JTdHJ1Y3R1cmU7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gYmlnSW50U3Ry
dWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGV4ZWN1dGFibGVUb0NvZGVCbG9ja0VkZ2VT
dHJ1Y3R1cmU7CiAKKyAgICBTdHJvbmc8U3RydWN0dXJlPiBtX3NldEl0ZXJhdG9yU3RydWN0dXJl
OworICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1fbWFwSXRlcmF0b3JTdHJ1Y3R1cmU7CisKICAgICBT
dHJvbmc8SlNDZWxsPiBlbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3I7CiAKICAgICBTdHJvbmc8
SlNDZWxsPiBtX3NlbnRpbmVsU2V0QnVja2V0OwpAQCAtNTYzLDYgKzU2NCwyMCBAQCBjbGFzcyBW
TSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRM
aXN0Tm9kZTxWTT4gewogICAgIEF0b21pY1N0cmluZ1RhYmxlKiBhdG9taWNTdHJpbmdUYWJsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYXRvbWljU3RyaW5nVGFibGU7IH0KICAgICBXVEY6OlN5bWJvbFJl
Z2lzdHJ5JiBzeW1ib2xSZWdpc3RyeSgpIHsgcmV0dXJuIG1fc3ltYm9sUmVnaXN0cnk7IH0KIAor
ICAgIFN0cnVjdHVyZSogc2V0SXRlcmF0b3JTdHJ1Y3R1cmUoKQorICAgIHsKKyAgICAgICAgaWYg
KExJS0VMWShtX3NldEl0ZXJhdG9yU3RydWN0dXJlKSkKKyAgICAgICAgICAgIHJldHVybiBtX3Nl
dEl0ZXJhdG9yU3RydWN0dXJlLmdldCgpOworICAgICAgICByZXR1cm4gc2V0SXRlcmF0b3JTdHJ1
Y3R1cmVTbG93KCk7CisgICAgfQorCisgICAgU3RydWN0dXJlKiBtYXBJdGVyYXRvclN0cnVjdHVy
ZSgpCisgICAgeworICAgICAgICBpZiAoTElLRUxZKG1fbWFwSXRlcmF0b3JTdHJ1Y3R1cmUpKQor
ICAgICAgICAgICAgcmV0dXJuIG1fbWFwSXRlcmF0b3JTdHJ1Y3R1cmUuZ2V0KCk7CisgICAgICAg
IHJldHVybiBtYXBJdGVyYXRvclN0cnVjdHVyZVNsb3coKTsKKyAgICB9CisKICAgICBKU0NlbGwq
IHNlbnRpbmVsU2V0QnVja2V0KCkKICAgICB7CiAgICAgICAgIGlmIChMSUtFTFkobV9zZW50aW5l
bFNldEJ1Y2tldCkpCkBAIC05MDcsNiArOTIyLDggQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAg
ICBzdGF0aWMgVk0qJiBzaGFyZWRJbnN0YW5jZUludGVybmFsKCk7CiAgICAgdm9pZCBjcmVhdGVO
YXRpdmVUaHVuaygpOwogCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RydWN0dXJlKiBzZXRJdGVy
YXRvclN0cnVjdHVyZVNsb3coKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJ1Y3R1cmUqIG1h
cEl0ZXJhdG9yU3RydWN0dXJlU2xvdygpOwogICAgIEpTQ2VsbCogc2VudGluZWxTZXRCdWNrZXRT
bG93KCk7CiAgICAgSlNDZWxsKiBzZW50aW5lbE1hcEJ1Y2tldFNsb3coKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5k
ZXggZDVlMTkxZjEzNTIxMWVmMjY4YTE3ZDZlMTMxOTFiNWM5MGVjMDk2OC4uYmVlNDMxNzYxM2Y4
NjEzOWMxZjU5NjQwN2ViMmU3YmI3NTAzMmNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0xNjIzLDcgKzE2MjMs
NyBAQCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShK
U1ZhbHVlIGluKQogICAgICAgICAgICAgICAgIEpTTWFwKiBpbk1hcCA9IGpzQ2FzdDxKU01hcCo+
KGluVmFsdWUpOwogICAgICAgICAgICAgICAgIGlmICghc3RhcnRNYXAoaW5NYXApKQogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBKU01hcEl0ZXJhdG9yKiBpdGVy
YXRvciA9IEpTTWFwSXRlcmF0b3I6OmNyZWF0ZSh2bSwgdm0ubWFwSXRlcmF0b3JTdHJ1Y3R1cmUu
Z2V0KCksIGluTWFwLCBJdGVyYXRlS2V5VmFsdWUpOworICAgICAgICAgICAgICAgIEpTTWFwSXRl
cmF0b3IqIGl0ZXJhdG9yID0gSlNNYXBJdGVyYXRvcjo6Y3JlYXRlKHZtLCB2bS5tYXBJdGVyYXRv
clN0cnVjdHVyZSgpLCBpbk1hcCwgSXRlcmF0ZUtleVZhbHVlKTsKICAgICAgICAgICAgICAgICBt
X2djQnVmZmVyLmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3coaW5NYXApOwogICAgICAgICAgICAg
ICAgIG1fZ2NCdWZmZXIuYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhpdGVyYXRvcik7CiAgICAg
ICAgICAgICAgICAgbWFwSXRlcmF0b3JTdGFjay5hcHBlbmQoaXRlcmF0b3IpOwpAQCAtMTY2Nyw3
ICsxNjY3LDcgQEAgU2VyaWFsaXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOjpzZXJp
YWxpemUoSlNWYWx1ZSBpbikKICAgICAgICAgICAgICAgICBKU1NldCogaW5TZXQgPSBqc0Nhc3Q8
SlNTZXQqPihpblZhbHVlKTsKICAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0U2V0KGluU2V0KSkK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgSlNTZXRJdGVyYXRv
ciogaXRlcmF0b3IgPSBKU1NldEl0ZXJhdG9yOjpjcmVhdGUodm0sIHZtLnNldEl0ZXJhdG9yU3Ry
dWN0dXJlLmdldCgpLCBpblNldCwgSXRlcmF0ZUtleSk7CisgICAgICAgICAgICAgICAgSlNTZXRJ
dGVyYXRvciogaXRlcmF0b3IgPSBKU1NldEl0ZXJhdG9yOjpjcmVhdGUodm0sIHZtLnNldEl0ZXJh
dG9yU3RydWN0dXJlKCksIGluU2V0LCBJdGVyYXRlS2V5KTsKICAgICAgICAgICAgICAgICBtX2dj
QnVmZmVyLmFwcGVuZFdpdGhDcmFzaE9uT3ZlcmZsb3coaW5TZXQpOwogICAgICAgICAgICAgICAg
IG1fZ2NCdWZmZXIuYXBwZW5kV2l0aENyYXNoT25PdmVyZmxvdyhpdGVyYXRvcik7CiAgICAgICAg
ICAgICAgICAgc2V0SXRlcmF0b3JTdGFjay5hcHBlbmQoaXRlcmF0b3IpOwo=
</data>
<flag name="review"
          id="380651"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>