<?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>180298</bug_id>
          
          <creation_ts>2017-12-01 17:08:35 -0800</creation_ts>
          <short_desc>Factor out the &quot;databaseTaskQueue&quot; parts of IDBServer into something reusable</short_desc>
          <delta_ts>2017-12-02 16:07:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>Other</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1377173</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-01 17:08:35 -0800</bug_when>
    <thetext>Factor out the &quot;databaseTaskQueue&quot; parts of IDBServer into something reusable

I&apos;ll be using them in SW-land soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377174</commentid>
    <comment_count>1</comment_count>
      <attachid>328189</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-01 17:12:36 -0800</bug_when>
    <thetext>Created attachment 328189
WIP to send home with me

WIP to send home with me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377222</commentid>
    <comment_count>2</comment_count>
      <attachid>328207</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-01 21:02:31 -0800</bug_when>
    <thetext>Created attachment 328207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377228</commentid>
    <comment_count>3</comment_count>
      <attachid>328211</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-01 21:38:29 -0800</bug_when>
    <thetext>Created attachment 328211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377241</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-01 22:44:07 -0800</bug_when>
    <thetext>Caused very real crashes (asserts?) in WK1 IDB tests, so clearly not ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377247</commentid>
    <comment_count>5</comment_count>
      <attachid>328215</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-01 22:51:17 -0800</bug_when>
    <thetext>Created attachment 328215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377300</commentid>
    <comment_count>6</comment_count>
      <attachid>328215</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-02 09:39:49 -0800</bug_when>
    <thetext>Comment on attachment 328215
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377306</commentid>
    <comment_count>7</comment_count>
      <attachid>328215</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-02 10:00:22 -0800</bug_when>
    <thetext>Comment on attachment 328215
Patch

Clearing flags on attachment: 328215

Committed r225450: &lt;https://trac.webkit.org/changeset/225450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377307</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-02 10:00:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377309</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-02 10:01:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/35815097&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377327</commentid>
    <comment_count>10</comment_count>
      <attachid>328215</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-02 11:17:46 -0800</bug_when>
    <thetext>Comment on attachment 328215
Patch

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

&gt; Source/WTF/wtf/CrossThreadTaskHandler.h:52
&gt; +    RefPtr&lt;Thread&gt; m_thread { nullptr };

It is unnecessary to initialize this ivar to nullptr as t default constructs to it. Moreover, the constructor explicitly initializes this ivar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377389</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-02 16:07:04 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #10)
&gt; Comment on attachment 328215 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328215&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/CrossThreadTaskHandler.h:52
&gt; &gt; +    RefPtr&lt;Thread&gt; m_thread { nullptr };
&gt; 
&gt; It is unnecessary to initialize this ivar to nullptr as t default constructs
&gt; to it. Moreover, the constructor explicitly initializes this ivar.

Sure, but it&apos;s not a surprise after things go through refactors and straight moves (like this one) that some history is lost. e.g., Originally a raw Thread*? :)

No harm in this - Should be optimized out.

Sounds like an opportunity for style-bot, though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328189</attachid>
            <date>2017-12-01 17:12:36 -0800</date>
            <delta_ts>2017-12-01 21:02:29 -0800</delta_ts>
            <desc>WIP to send home with me</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>14000</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYyNGRjNjNmN2Uw
Li45MjNlOWM4MTljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02NSw2ICs2NSw3IEBACiAJCTJDREVEMEYzMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29w
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDREVE
MEYxMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKIAkJMzMzN0RCOUNFNzQz
NDEwRkFGMDc2RTE3IC8qIFN0YWNrVHJhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzRURFQzk3NzhFNDlDOUJFQTkxQ0ZDIC8qIFN0YWNrVHJh
Y2UuY3BwICovOyB9OwogCQk1MTVGNzk0RTFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE1Rjc5NEIxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLzsgfTsK
KwkJNTE3RjgyRDcxRkQyMkYzMDAwREEzREVBIC8qIENyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3RjgyRDUx
RkQyMkYyRjAwREEzREVBIC8qIENyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwICovOyB9OwogCQk1
MUYxNzUyQjFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudENvZGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYxNzUyNjFGM0Q0ODYwMDBD
NzQ5NTAgLyogUGVyc2lzdGVudENvZGVycy5jcHAgKi87IH07CiAJCTUxRjE3NTJDMUYzRDQ4NjAw
MEM3NDk1MCAvKiBQZXJzaXN0ZW50RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYxNzUyNzFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lz
dGVudERlY29kZXIuY3BwICovOyB9OwogCQk1MUYxNzUyRDFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVy
c2lzdGVudEVuY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFGMTc1MjkxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRFbmNvZGVyLmNw
cCAqLzsgfTsKQEAgLTMyMSw2ICszMjIsOCBAQAogCQk1MTVGNzk0RDFDRkM5RjRBMDBDQ0VEOTMg
LyogQ3Jvc3NUaHJlYWRUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENy
b3NzVGhyZWFkVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTVGNzk1NTFD
RkQzQTY5MDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxN0E1MzU3MUY1NzM0QjcwMERDREMwQSAvKiBJZGVudGlmaWVkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkZW50aWZpZWQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTE3RjgyRDUxRkQyMkYyRjAwREEzREVBIC8qIENyb3NzVGhyZWFkVGFza0hh
bmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0Y4MkQ2
MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzVGhyZWFkVGFza0hhbmRsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4MkMyMkMxRjJCQzdFNjAwNTlCQTdDIC8qIEluc3RhbmNl
Q291bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnN0YW5jZUNvdW50ZWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTFGMTc1MjQxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRD
b2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJzaXN0ZW50Q29kZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFGMTc1MjUxRjNENDg2MDAwQzc0OTUw
IC8qIFBlcnNpc3RlbnRDb2RlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGVyc2lzdGVudENvZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODAxLDYg
KzgwNCw4IEBACiAJCQkJNTE1Rjc5NEMxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkQ29w
aWVyLmggKi8sCiAJCQkJNTE1Rjc5NTUxQ0ZEM0E2OTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkUXVl
dWUuaCAqLywKIAkJCQk1MTVGNzk0RDFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRUYXNr
LmggKi8sCisJCQkJNTE3RjgyRDUxRkQyMkYyRjAwREEzREVBIC8qIENyb3NzVGhyZWFkVGFza0hh
bmRsZXIuY3BwICovLAorCQkJCTUxN0Y4MkQ2MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVh
ZFRhc2tIYW5kbGVyLmggKi8sCiAJCQkJQThBNDcyNzMxNTFBODI1QTAwNDEyM0ZGIC8qIENyeXB0
b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCAqLywKIAkJCQlBOEE0NzI3NDE1MUE4MjVBMDA0
MTIzRkYgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaCAqLywKIAkJCQlFMTU1NTZG
MzE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgKi8sCkBAIC0x
MzkzLDYgKzEzOTgsNyBAQAogCQkJCUE4QTQ3M0IwMTUxQTgyNUIwMDQxMjNGRiAvKiBkb3VibGUt
Y29udmVyc2lvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0JBMTUxQTgyNUIwMDQxMjNG
RiAvKiBkdG9hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0IzMTUxQTgyNUIwMDQxMjNG
RiAvKiBmYXN0LWR0b2EuY2MgaW4gU291cmNlcyAqLywKKwkJCQk1MTdGODJENzFGRDIyRjMwMDBE
QTNERUEgLyogQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjdDNUZCNjFEODg1Q0YyMDA0NEY1RTIgLyogRmFzdEJpdFZlY3Rvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNDMzE1MUE4MjVCMDA0MTIzRkYgLyogRmFzdE1hbGxvYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjlEMzM2MDE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFt
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTljZjU5Mzk5NWIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVy
LmNwcApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXVEYg
eworCitDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyKGNvbnN0
IGNoYXIqIHRocmVhZE5hbWUpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBM
b2NrZXI8TG9jaz4gbG9ja2VyKG1fdGFza1RocmVhZENyZWF0aW9uTG9jayk7CisgICAgbV90aHJl
YWQgPSBUaHJlYWQ6OmNyZWF0ZSh0aHJlYWROYW1lLCBbdGhpc10geworICAgICAgICB0YXNrUnVu
TG9vcCgpOworICAgIH0pOworfQorCitDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjp+Q3Jvc3NUaHJl
YWRUYXNrSGFuZGxlcigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKK30KKwordm9p
ZCBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpwb3N0VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNr
KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV90YXNrUXVldWUuYXBwZW5k
KFdURk1vdmUodGFzaykpOworfQorCit2b2lkIENyb3NzVGhyZWFkVGFza0hhbmRsZXI6OnBvc3RU
YXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrJiYgdGFzaykKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKKyAgICBtX3Rhc2tSZXBseVF1ZXVlLmFwcGVuZChXVEZNb3ZlKHRhc2spKTsKKwor
ICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9tYWluVGhyZWFkUmVwbHlMb2NrKTsKKyAgICBpZiAo
bV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFp
blRocmVhZFJlcGx5U2NoZWR1bGVkID0gdHJ1ZTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
XSB7CisgICAgICAgIGhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKCk7CisgICAgfSk7Cit9
CisKK3ZvaWQgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6dGFza1J1bkxvb3AoKQoreworICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tl
cihtX3Rhc2tUaHJlYWRDcmVhdGlvbkxvY2spOworICAgIH0KKworICAgIHdoaWxlICghbV90YXNr
UXVldWUuaXNLaWxsZWQoKSkKKyAgICAgICAgbV90YXNrUXVldWUud2FpdEZvck1lc3NhZ2UoKS5w
ZXJmb3JtVGFzaygpOworfQorCit2b2lkIENyb3NzVGhyZWFkVGFza0hhbmRsZXI6OmhhbmRsZVRh
c2tSZXBsaWVzT25NYWluVGhyZWFkKCkKK3sKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBs
b2NrZXIobV9tYWluVGhyZWFkUmVwbHlMb2NrKTsKKyAgICAgICAgbV9tYWluVGhyZWFkUmVwbHlT
Y2hlZHVsZWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICB3aGlsZSAoYXV0byB0YXNrID0gbV90YXNr
UmVwbHlRdWV1ZS50cnlHZXRNZXNzYWdlKCkpCisgICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCk7
Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9D
cm9zc1RocmVhZFRhc2tIYW5kbGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmEwMWQzOTNj
MWQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFu
ZGxlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFk
VGFzay5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUmVnaXN0cmF0aW9uU3RvcmU7CitjbGFzcyBT
UUxpdGVEYXRhYmFzZTsKKworY2xhc3MgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlciB7CitwdWJsaWM6
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgfkNyb3NzVGhyZWFkVGFza0hhbmRsZXIo
KTsKKworcHJvdGVjdGVkOgorICAgIFdURl9FWFBPUlRfUFJJVkFURSBDcm9zc1RocmVhZFRhc2tI
YW5kbGVyKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOworCisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgcG9zdFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIHBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrJiYpOworCitwcml2YXRlOgorICAg
IHZvaWQgaGFuZGxlVGFza1JlcGxpZXNPbk1haW5UaHJlYWQoKTsKKyAgICB2b2lkIHRhc2tSdW5M
b29wKCk7CisKKyAgICBSZWZQdHI8VGhyZWFkPiBtX3RocmVhZCB7IG51bGxwdHIgfTsKKyAgICBM
b2NrIG1fdGFza1RocmVhZENyZWF0aW9uTG9jazsKKyAgICBMb2NrIG1fbWFpblRocmVhZFJlcGx5
TG9jazsKKyAgICBib29sIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkIHsgZmFsc2UgfTsKKwor
ICAgIENyb3NzVGhyZWFkUXVldWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX3Rhc2tRdWV1ZTsKKyAgICBD
cm9zc1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV90YXNrUmVwbHlRdWV1ZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI7
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKaW5kZXggYWJjNjE5MzY2ZmYuLmM2MmQ4MjE4YzFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApA
QCAtNTMsMjQgKzUzLDE3IEBAIFJlZjxJREJTZXJ2ZXI+IElEQlNlcnZlcjo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJREJCYWNraW5nCiB9CiAKIElEQlNlcnZl
cjo6SURCU2VydmVyKElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFu
ZGxlcikKLSAgICA6IG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRs
ZXIpCisgICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKCJJbmRleGVkRGF0YWJhc2UgU2VydmVy
IikKKyAgICAsIG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIp
CiB7Ci0gICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2Nr
KTsKLSAgICBtX3RocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJJbmRleGVkRGF0YWJhc2UgU2VydmVy
IiwgW3RoaXNdIHsKLSAgICAgICAgZGF0YWJhc2VSdW5Mb29wKCk7Ci0gICAgfSk7CiB9CiAKIElE
QlNlcnZlcjo6SURCU2VydmVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJ
REJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIpCi0gICAgOiBt
X2RhdGFiYXNlRGlyZWN0b3J5UGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpCisgICAgOiBDcm9z
c1RocmVhZFRhc2tIYW5kbGVyKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIikKKyAgICAsIG1fZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCkKICAgICAsIG1fYmFja2lu
Z1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQlNlcnZlciBjcmVhdGVkIGF0IHBhdGggJXMiLCBkYXRhYmFzZURpcmVjdG9yeVBh
dGgudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VU
aHJlYWRDcmVhdGlvbkxvY2spOwotICAgIG1fdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIkluZGV4
ZWREYXRhYmFzZSBTZXJ2ZXIiLCBbdGhpc10gewotICAgICAgICBkYXRhYmFzZVJ1bkxvb3AoKTsK
LSAgICB9KTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25u
ZWN0aW9uVG9DbGllbnQmIGNvbm5lY3Rpb24pCkBAIC00ODgsNDMgKzQ4MSwxMiBAQCB2b2lkIElE
QlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludAogCiB2b2lkIElEQlNlcnZlcjo6cG9zdERhdGFiYXNlVGFzayhDcm9z
c1RocmVhZFRhc2smJiB0YXNrKQogewotICAgIG1fZGF0YWJhc2VRdWV1ZS5hcHBlbmQoV1RGTW92
ZSh0YXNrKSk7CisgICAgcG9zdFRhc2soV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHZvaWQgSURCU2Vy
dmVyOjpwb3N0RGF0YWJhc2VUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrJiYgdGFzaykKIHsKLSAg
ICBtX2RhdGFiYXNlUmVwbHlRdWV1ZS5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7Ci0KLSAgICBMb2Nr
ZXI8TG9jaz4gbG9ja2VyKG1fbWFpblRocmVhZFJlcGx5TG9jayk7Ci0gICAgaWYgKG1fbWFpblRo
cmVhZFJlcGx5U2NoZWR1bGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX21haW5UaHJlYWRS
ZXBseVNjaGVkdWxlZCA9IHRydWU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpc10gewotICAg
ICAgICBoYW5kbGVUYXNrUmVwbGllc09uTWFpblRocmVhZCgpOwotICAgIH0pOwotfQotCi12b2lk
IElEQlNlcnZlcjo6ZGF0YWJhc2VSdW5Mb29wKCkKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKLSAgICB7Ci0gICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVh
ZENyZWF0aW9uTG9jayk7Ci0gICAgfQotCi0gICAgd2hpbGUgKCFtX2RhdGFiYXNlUXVldWUuaXNL
aWxsZWQoKSkKLSAgICAgICAgbV9kYXRhYmFzZVF1ZXVlLndhaXRGb3JNZXNzYWdlKCkucGVyZm9y
bVRhc2soKTsKLX0KLQotdm9pZCBJREJTZXJ2ZXI6OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhy
ZWFkKCkKLXsKLSAgICB7Ci0gICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9tYWluVGhyZWFk
UmVwbHlMb2NrKTsKLSAgICAgICAgbV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgPSBmYWxzZTsK
LSAgICB9Ci0KLSAgICB3aGlsZSAoYXV0byB0YXNrID0gbV9kYXRhYmFzZVJlcGx5UXVldWUudHJ5
R2V0TWVzc2FnZSgpKQotICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygpOworICAgIHBvc3RUYXNr
UmVwbHkoV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZURlbGV0
ZUNhbGxiYWNrSUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDkyNGUyMDI0NzQ4Li4zNTA3NDIxNTAwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
aApAQCAtMzEsOCArMzEsNyBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkUXVldWUuaD4KLSNpbmNs
dWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFz
a0hhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpAQCAtNTEsNyArNTAsNyBAQCBuYW1lc3BhY2UgSURC
U2VydmVyIHsKIAogY2xhc3MgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXI7CiAK
LWNsYXNzIElEQlNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVkPElEQlNlcnZlcj4geworY2xhc3Mg
SURCU2VydmVyIDogcHVibGljIFJlZkNvdW50ZWQ8SURCU2VydmVyPiwgcHVibGljIENyb3NzVGhy
ZWFkVGFza0hhbmRsZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SURCU2VydmVyPiBjcmVh
dGUoSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXImKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgUmVmPElEQlNlcnZlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoLCBJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYpOwpAQCAt
MTE4LDIwICsxMTcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybUNsb3NlQW5kRGVsZXRl
RGF0YWJhc2VzRm9yT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNsb3NlQW5kRGVsZXRlRGF0
YWJhc2VzKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCi0gICAgdm9pZCBkYXRhYmFzZVJ1bkxvb3Ao
KTsKLSAgICB2b2lkIGhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKCk7Ci0KICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8SURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV9jb25uZWN0aW9u
TWFwOwogICAgIEhhc2hNYXA8SURCRGF0YWJhc2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
VW5pcXVlSURCRGF0YWJhc2U+PiBtX3VuaXF1ZUlEQkRhdGFiYXNlTWFwOwogCi0gICAgUmVmUHRy
PFRocmVhZD4gbV90aHJlYWQgeyBudWxscHRyIH07Ci0gICAgTG9jayBtX2RhdGFiYXNlVGhyZWFk
Q3JlYXRpb25Mb2NrOwotICAgIExvY2sgbV9tYWluVGhyZWFkUmVwbHlMb2NrOwotICAgIGJvb2wg
bV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgeyBmYWxzZSB9OwotCi0gICAgQ3Jvc3NUaHJlYWRR
dWV1ZTxDcm9zc1RocmVhZFRhc2s+IG1fZGF0YWJhc2VRdWV1ZTsKLSAgICBDcm9zc1RocmVhZFF1
ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV9kYXRhYmFzZVJlcGx5UXVldWU7Ci0KICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24qPiBtX2RhdGFiYXNlQ29ubmVj
dGlvbnM7CiAgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFVuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24qPiBtX3RyYW5zYWN0aW9uczsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328207</attachid>
            <date>2017-12-01 21:02:31 -0800</date>
            <delta_ts>2017-12-01 21:38:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180298-20171201210230.patch</filename>
            <type>text/plain</type>
            <size>17469</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUxNzkxOGE4MmU0M2VjZDZkMzExOWI0
YzlhYjdkYjRhNWRjNzRlYjIuLjVlMGQwNGNhNmQ3N2Q5YTIwYWU2M2RhNTI0MTBkMzIzNzA0ZWE5
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTctMTItMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIEZhY3RvciBvdXQgdGhlICJkYXRhYmFzZVRhc2tRdWV1
ZSIgcGFydHMgb2YgSURCU2VydmVyIGludG8gc29tZXRoaW5nIHJldXNhYmxlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMjk4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKworICAgICAgICAqIHd0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6OkNyb3NzVGhy
ZWFkVGFza0hhbmRsZXIpOgorICAgICAgICAoV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjp+
Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcik6CisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkVGFza0hh
bmRsZXI6OnBvc3RUYXNrKToKKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6
cG9zdFRhc2tSZXBseSk6CisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6OnRh
c2tSdW5Mb29wKToKKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6aGFuZGxl
VGFza1JlcGxpZXNPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9Dcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmg6IEFkZGVkLgorCiAyMDE3LTEyLTAxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBMZXQncyBzY3JhbWJsZSBDbGFzc0luZm8gcG9pbnRlcnMgaW4gY2Vs
bHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggOTQ4NGQ1ZDE5ODEzNWI3MThlM2RmZTMxZjhlOGE1NDdlNGZmMzY0
MC4uZWVlOTNiYTc5YjRhODA5ZWExOTE2MjBkZmU2ZDI2MzhiYjY5YTYzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDE3LTEyLTAxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBGYWN0b3Igb3V0IHRoZSAiZGF0YWJhc2VUYXNrUXVldWUiIHBhcnRz
IG9mIElEQlNlcnZlciBpbnRvIHNvbWV0aGluZyByZXVzYWJsZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI5OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoUmVmYWN0b3Igb25s
eSkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpJREJTZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OnBvc3REYXRhYmFzZVRhc2spOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OnBvc3REYXRhYmFzZVRhc2tS
ZXBseSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6ZGF0YWJhc2VS
dW5Mb29wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVy
OjpoYW5kbGVUYXNrUmVwbGllc09uTWFpblRocmVhZCk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAoKTogRGVsZXRlZC4K
KwogMjAxNy0xMi0wMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWR1Y2UgdGhlIG51bWJlciBvZiBjYWxscyB0byBWaWV3cG9ydENvbmZpZ3VyYXRp
b246OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMzUwYmE0Mjk5NWU1MmZhMDFhNTAzNTRkYmIxODE0MDJhYmM1MGM3NC4u
MmRjMjQ0OGExYzZlYjY4ZmRiYzEwNGI4ZTE3MTcwMzc1YWU5ZmViMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NSw2ICs2NSw3IEBACiAJCTJDREVEMEYz
MTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDREVEMEYxMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29w
LmNwcCAqLzsgfTsKIAkJMzMzN0RCOUNFNzQzNDEwRkFGMDc2RTE3IC8qIFN0YWNrVHJhY2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzRURFQzk3
NzhFNDlDOUJFQTkxQ0ZDIC8qIFN0YWNrVHJhY2UuY3BwICovOyB9OwogCQk1MTVGNzk0RTFDRkM5
RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1Rjc5NEIxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENy
b3NzVGhyZWFkQ29waWVyLmNwcCAqLzsgfTsKKwkJNTE3RjgyRDcxRkQyMkYzMDAwREEzREVBIC8q
IENyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE3RjgyRDUxRkQyMkYyRjAwREEzREVBIC8qIENyb3NzVGhyZWFk
VGFza0hhbmRsZXIuY3BwICovOyB9OwogCQk1MUYxNzUyQjFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVy
c2lzdGVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUYxNzUyNjFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudENvZGVycy5jcHAg
Ki87IH07CiAJCTUxRjE3NTJDMUYzRDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50RGVjb2Rlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYxNzUy
NzFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudERlY29kZXIuY3BwICovOyB9OwogCQk1MUYx
NzUyRDFGM0Q0ODYwMDBDNzQ5NTAgLyogUGVyc2lzdGVudEVuY29kZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMTc1MjkxRjNENDg2MDAwQzc0
OTUwIC8qIFBlcnNpc3RlbnRFbmNvZGVyLmNwcCAqLzsgfTsKQEAgLTMyMiw2ICszMjMsOCBAQAog
CQk1MTVGNzk0RDFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRUYXNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzVGhyZWFkVGFzay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTVGNzk1NTFDRkQzQTY5MDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRR
dWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFF1ZXVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0E1MzU3MUY1NzM0QjcwMERDREMw
QSAvKiBJZGVudGlmaWVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkZW50
aWZpZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3RjgyRDUxRkQyMkYyRjAw
REEzREVBIC8qIENyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxN0Y4MkQ2MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVh
ZFRhc2tIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyb3NzVGhy
ZWFkVGFza0hhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4MkMyMkMx
RjJCQzdFNjAwNTlCQTdDIC8qIEluc3RhbmNlQ291bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnN0
YW5jZUNvdW50ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFGMTc1MjQxRjNE
NDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRDb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQZXJzaXN0ZW50Q29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTFGMTc1MjUxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRDb2RlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyc2lzdGVudENvZGVycy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtODA0LDYgKzgwNyw4IEBACiAJCQkJNTE1Rjc5NEMxQ0ZDOUY0
QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkQ29waWVyLmggKi8sCiAJCQkJNTE1Rjc5NTUxQ0ZEM0E2
OTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkUXVldWUuaCAqLywKIAkJCQk1MTVGNzk0RDFDRkM5RjRB
MDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRUYXNrLmggKi8sCisJCQkJNTE3RjgyRDUxRkQyMkYyRjAw
REEzREVBIC8qIENyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwICovLAorCQkJCTUxN0Y4MkQ2MUZE
MjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmggKi8sCiAJCQkJQThBNDcy
NzMxNTFBODI1QTAwNDEyM0ZGIC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCAq
LywKIAkJCQlBOEE0NzI3NDE1MUE4MjVBMDA0MTIzRkYgLyogQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaCAqLywKIAkJCQlFMTU1NTZGMzE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3Jh
cGhpY1V0aWxpdGllcy5jcHAgKi8sCkBAIC0xMzg2LDYgKzEzOTEsNyBAQAogCQkJCUUzOEM0MTI4
MUVCNEUwNjgwMDQyOTU3RCAvKiBDUFVUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzOEM0
MTI1MUVCNEUwNEMwMDQyOTU3RCAvKiBDUFVUaW1lQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MTVGNzk0RTFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTE3RjgyRDcxRkQyMkYzMDAwREEzREVBIC8qIENyb3NzVGhyZWFkVGFz
a0hhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUExNTFBODI1QjAwNDEyM0ZG
IC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM5MTUxQTgyNUIwMDQxMjNGRiAvKiBDU3RyaW5nLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTQ0NCw2ICsxNDUwLDcgQEAKIAkJCQkxNDY5NDE5MzE2RUFB
RjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ2
OTQxOTkxNkVBQjA0MTAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpckNGLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0Njk0MTk3MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXJNYWMubW0gaW4g
U291cmNlcyAqLywKKwkJCQlGRTg1NDE2RTFGQkUyODVEMDA4REE1REEgLyogU2NyYW1ibGVkUHRy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjZCMjhFMURDOTdCQUIwMDRBMUQzRiAvKiBTZWNv
bmRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDIxMTUxQTgyNUIwMDQxMjNGRiAvKiBT
SEExLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzMTFCRDUzMUVBNzFDQUQwMDUyNTI4MSAvKiBT
aWduYWxzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTQ3MCw3ICsxNDc3LDYgQEAKIAkJCQkxQzE4
MUM3RjFEMzA3OERBMDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUMxODFDOTYxRDMwODAwQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1VNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBM0U0REQ5MzFGM0E4MDM0MDBERUQw
QjQgLyogVGV4dFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGRTg1NDE2RTFGQkUyODVE
MDA4REE1REEgLyogU2NyYW1ibGVkUHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzMTFGQjE3
MUYwQTU2OEIwMDNDMDhERSAvKiBUaHJlYWRHcm91cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzQ0QTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3NDRFMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRpbmdQdGhyZWFkcy5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hh
bmRsZXIuY3BwIGIvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmVkY2FjZmY3ZTZiMjRjZTBhODZiOWM0MDBhYTkyMWU1YjM3YzI0YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwCkBA
IC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oIgorCituYW1lc3BhY2UgV1RGIHsKKworQ3Jvc3NU
aHJlYWRUYXNrSGFuZGxlcjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcihjb25zdCBjaGFyKiB0aHJl
YWROYW1lKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgTG9ja2VyPExvY2s+
IGxvY2tlcihtX3Rhc2tUaHJlYWRDcmVhdGlvbkxvY2spOworICAgIG1fdGhyZWFkID0gVGhyZWFk
OjpjcmVhdGUodGhyZWFkTmFtZSwgW3RoaXNdIHsKKyAgICAgICAgdGFza1J1bkxvb3AoKTsKKyAg
ICB9KTsKK30KKworQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6fkNyb3NzVGhyZWFkVGFza0hhbmRs
ZXIoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Cit9CisKK3ZvaWQgQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlcjo6cG9zdFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYgdGFzaykKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fdGFza1F1ZXVlLmFwcGVuZChXVEZNb3ZlKHRh
c2spKTsKK30KKwordm9pZCBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpwb3N0VGFza1JlcGx5KENy
b3NzVGhyZWFkVGFzayYmIHRhc2spCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cisg
ICAgbV90YXNrUmVwbHlRdWV1ZS5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CisKKyAgICBMb2NrZXI8
TG9jaz4gbG9ja2VyKG1fbWFpblRocmVhZFJlcGx5TG9jayk7CisgICAgaWYgKG1fbWFpblRocmVh
ZFJlcGx5U2NoZWR1bGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21haW5UaHJlYWRSZXBs
eVNjaGVkdWxlZCA9IHRydWU7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpc10geworICAgICAg
ICBoYW5kbGVUYXNrUmVwbGllc09uTWFpblRocmVhZCgpOworICAgIH0pOworfQorCit2b2lkIENy
b3NzVGhyZWFkVGFza0hhbmRsZXI6OnRhc2tSdW5Mb29wKCkKK3sKKyAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV90YXNrVGhy
ZWFkQ3JlYXRpb25Mb2NrKTsKKyAgICB9CisKKyAgICB3aGlsZSAoIW1fdGFza1F1ZXVlLmlzS2ls
bGVkKCkpCisgICAgICAgIG1fdGFza1F1ZXVlLndhaXRGb3JNZXNzYWdlKCkucGVyZm9ybVRhc2so
KTsKK30KKwordm9pZCBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpoYW5kbGVUYXNrUmVwbGllc09u
TWFpblRocmVhZCgpCit7CisgICAgeworICAgICAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fbWFp
blRocmVhZFJlcGx5TG9jayk7CisgICAgICAgIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkID0g
ZmFsc2U7CisgICAgfQorCisgICAgd2hpbGUgKGF1dG8gdGFzayA9IG1fdGFza1JlcGx5UXVldWUu
dHJ5R2V0TWVzc2FnZSgpKQorICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygpOworfQorCisKK30g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRU
YXNrSGFuZGxlci5oIGIvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEwMWQzOTNjMWQwODI3ZjAyNzk2ZDA3M2U2MzM4YjFiZDIyOTEzYzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmgKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L0Nyb3NzVGhyZWFkUXVldWUuaD4KKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+Cisj
aW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVz
cGFjZSBXVEYgeworCitjbGFzcyBSZWdpc3RyYXRpb25TdG9yZTsKK2NsYXNzIFNRTGl0ZURhdGFi
YXNlOworCitjbGFzcyBDcm9zc1RocmVhZFRhc2tIYW5kbGVyIHsKK3B1YmxpYzoKKyAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcigpOworCitwcm90
ZWN0ZWQ6CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIENyb3NzVGhyZWFkVGFza0hhbmRsZXIoY29u
c3QgY2hhciogdGhyZWFkTmFtZSk7CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBwb3N0
VGFzayhDcm9zc1RocmVhZFRhc2smJik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcG9z
dFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2smJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBoYW5k
bGVUYXNrUmVwbGllc09uTWFpblRocmVhZCgpOworICAgIHZvaWQgdGFza1J1bkxvb3AoKTsKKwor
ICAgIFJlZlB0cjxUaHJlYWQ+IG1fdGhyZWFkIHsgbnVsbHB0ciB9OworICAgIExvY2sgbV90YXNr
VGhyZWFkQ3JlYXRpb25Mb2NrOworICAgIExvY2sgbV9tYWluVGhyZWFkUmVwbHlMb2NrOworICAg
IGJvb2wgbV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgeyBmYWxzZSB9OworCisgICAgQ3Jvc3NU
aHJlYWRRdWV1ZTxDcm9zc1RocmVhZFRhc2s+IG1fdGFza1F1ZXVlOworICAgIENyb3NzVGhyZWFk
UXVldWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX3Rhc2tSZXBseVF1ZXVlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCisKK3VzaW5nIFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjsKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNw
cAppbmRleCBhYmM2MTkzNjZmZmI1Y2U0YjBhN2E2ZjAwYjM0MGQ2Y2JkNjA4YzljLi5jNjJkODIx
OGMxYjZiYjFkNjZmZjUwYjExOTExNDQwMjBiZmJhYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTMsMjQg
KzUzLDE3IEBAIFJlZjxJREJTZXJ2ZXI+IElEQlNlcnZlcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJREJCYWNraW5nCiB9CiAKIElEQlNlcnZlcjo6SURCU2Vy
dmVyKElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKLSAg
ICA6IG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCisgICAg
OiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIikKKyAgICAs
IG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCiB7Ci0gICAg
TG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBt
X3RocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIiwgW3RoaXNd
IHsKLSAgICAgICAgZGF0YWJhc2VSdW5Mb29wKCk7Ci0gICAgfSk7CiB9CiAKIElEQlNlcnZlcjo6
SURCU2VydmVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJREJCYWNraW5n
U3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIpCi0gICAgOiBtX2RhdGFiYXNl
RGlyZWN0b3J5UGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpCisgICAgOiBDcm9zc1RocmVhZFRh
c2tIYW5kbGVyKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIikKKyAgICAsIG1fZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKGRhdGFiYXNlRGlyZWN0b3J5UGF0aCkKICAgICAsIG1fYmFja2luZ1N0b3JlVGVt
cG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QlNlcnZlciBjcmVhdGVkIGF0IHBhdGggJXMiLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgudXRmOCgp
LmRhdGEoKSk7Ci0KLSAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VUaHJlYWRDcmVh
dGlvbkxvY2spOwotICAgIG1fdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIkluZGV4ZWREYXRhYmFz
ZSBTZXJ2ZXIiLCBbdGhpc10gewotICAgICAgICBkYXRhYmFzZVJ1bkxvb3AoKTsKLSAgICB9KTsK
IH0KIAogdm9pZCBJREJTZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9D
bGllbnQmIGNvbm5lY3Rpb24pCkBAIC00ODgsNDMgKzQ4MSwxMiBAQCB2b2lkIElEQlNlcnZlcjo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgdWludAogCiB2b2lkIElEQlNlcnZlcjo6cG9zdERhdGFiYXNlVGFzayhDcm9zc1RocmVhZFRh
c2smJiB0YXNrKQogewotICAgIG1fZGF0YWJhc2VRdWV1ZS5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7
CisgICAgcG9zdFRhc2soV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjpwb3N0
RGF0YWJhc2VUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrJiYgdGFzaykKIHsKLSAgICBtX2RhdGFi
YXNlUmVwbHlRdWV1ZS5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7Ci0KLSAgICBMb2NrZXI8TG9jaz4g
bG9ja2VyKG1fbWFpblRocmVhZFJlcGx5TG9jayk7Ci0gICAgaWYgKG1fbWFpblRocmVhZFJlcGx5
U2NoZWR1bGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX21haW5UaHJlYWRSZXBseVNjaGVk
dWxlZCA9IHRydWU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpc10gewotICAgICAgICBoYW5k
bGVUYXNrUmVwbGllc09uTWFpblRocmVhZCgpOwotICAgIH0pOwotfQotCi12b2lkIElEQlNlcnZl
cjo6ZGF0YWJhc2VSdW5Mb29wKCkKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAg
ICB7Ci0gICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9u
TG9jayk7Ci0gICAgfQotCi0gICAgd2hpbGUgKCFtX2RhdGFiYXNlUXVldWUuaXNLaWxsZWQoKSkK
LSAgICAgICAgbV9kYXRhYmFzZVF1ZXVlLndhaXRGb3JNZXNzYWdlKCkucGVyZm9ybVRhc2soKTsK
LX0KLQotdm9pZCBJREJTZXJ2ZXI6OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKCkKLXsK
LSAgICB7Ci0gICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9tYWluVGhyZWFkUmVwbHlMb2Nr
KTsKLSAgICAgICAgbV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgPSBmYWxzZTsKLSAgICB9Ci0K
LSAgICB3aGlsZSAoYXV0byB0YXNrID0gbV9kYXRhYmFzZVJlcGx5UXVldWUudHJ5R2V0TWVzc2Fn
ZSgpKQotICAgICAgICB0YXNrLT5wZXJmb3JtVGFzaygpOworICAgIHBvc3RUYXNrUmVwbHkoV1RG
TW92ZSh0YXNrKSk7CiB9CiAKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZURlbGV0ZUNhbGxiYWNr
SUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oCmluZGV4IDkyNGUyMDI0NzQ4MzlmNWE1YTQ5YTRiNzE2MzQ0ODQ1MjM3MDFmZmQu
LjM1MDc0MjE1MDBjMTk0NzQ2ZWMyOWJhMGExMDQ2YWU0MjJlZGI2NGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTMx
LDggKzMxLDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJVbmlxdWVJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5oIgotI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+Ci0jaW5jbHVkZSA8d3Rm
L0Nyb3NzVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTUxLDcgKzUwLDcgQEAgbmFtZXNwYWNlIElEQlNlcnZlciB7
CiAKIGNsYXNzIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyOwogCi1jbGFzcyBJ
REJTZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJTZXJ2ZXI+IHsKK2NsYXNzIElEQlNlcnZl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPElEQlNlcnZlcj4sIHB1YmxpYyBDcm9zc1RocmVhZFRhc2tI
YW5kbGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPElEQlNlcnZlcj4gY3JlYXRlKElEQkJh
Y2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZjxJREJTZXJ2ZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCwgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXImKTsKQEAgLTExOCwyMCAr
MTE3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1DbG9zZUFuZERlbGV0ZURhdGFiYXNl
c0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKICAgICB2b2lkIGRpZFBlcmZvcm1DbG9zZUFuZERlbGV0ZURhdGFiYXNlcyh1
aW50NjRfdCBjYWxsYmFja0lEKTsKIAotICAgIHZvaWQgZGF0YWJhc2VSdW5Mb29wKCk7Ci0gICAg
dm9pZCBoYW5kbGVUYXNrUmVwbGllc09uTWFpblRocmVhZCgpOwotCiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPElEQkNvbm5lY3Rpb25Ub0NsaWVudD4+IG1fY29ubmVjdGlvbk1hcDsKICAg
ICBIYXNoTWFwPElEQkRhdGFiYXNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFVuaXF1ZUlE
QkRhdGFiYXNlPj4gbV91bmlxdWVJREJEYXRhYmFzZU1hcDsKIAotICAgIFJlZlB0cjxUaHJlYWQ+
IG1fdGhyZWFkIHsgbnVsbHB0ciB9OwotICAgIExvY2sgbV9kYXRhYmFzZVRocmVhZENyZWF0aW9u
TG9jazsKLSAgICBMb2NrIG1fbWFpblRocmVhZFJlcGx5TG9jazsKLSAgICBib29sIG1fbWFpblRo
cmVhZFJlcGx5U2NoZWR1bGVkIHsgZmFsc2UgfTsKLQotICAgIENyb3NzVGhyZWFkUXVldWU8Q3Jv
c3NUaHJlYWRUYXNrPiBtX2RhdGFiYXNlUXVldWU7Ci0gICAgQ3Jvc3NUaHJlYWRRdWV1ZTxDcm9z
c1RocmVhZFRhc2s+IG1fZGF0YWJhc2VSZXBseVF1ZXVlOwotCiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uKj4gbV9kYXRhYmFzZUNvbm5lY3Rpb25zOwog
ICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uKj4gbV90cmFuc2FjdGlvbnM7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328211</attachid>
            <date>2017-12-01 21:38:29 -0800</date>
            <delta_ts>2017-12-01 22:51:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180298-20171201213828.patch</filename>
            <type>text/plain</type>
            <size>18191</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUxNzkxOGE4MmU0M2VjZDZkMzExOWI0
YzlhYjdkYjRhNWRjNzRlYjIuLjc3MzY2MDIxMTkwZmNjZWI0YWM1MmUzOTUxZTZhMDhiOWM2YjRi
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMTItMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIEZhY3RvciBvdXQgdGhlICJkYXRhYmFzZVRhc2tRdWV1
ZSIgcGFydHMgb2YgSURCU2VydmVyIGludG8gc29tZXRoaW5nIHJldXNhYmxlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMjk4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisKKyAgICAgICAg
KiB3dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpD
cm9zc1RocmVhZFRhc2tIYW5kbGVyOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyKToKKyAgICAgICAg
KFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6fkNyb3NzVGhyZWFkVGFza0hhbmRsZXIpOgor
ICAgICAgICAoV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpwb3N0VGFzayk6CisgICAgICAg
IChXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6OnBvc3RUYXNrUmVwbHkpOgorICAgICAgICAo
V1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjp0YXNrUnVuTG9vcCk6CisgICAgICAgIChXVEY6
OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKToK
KyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oOiBBZGRlZC4KKwogMjAxNy0x
Mi0wMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTGV0J3Mgc2Ny
YW1ibGUgQ2xhc3NJbmZvIHBvaW50ZXJzIGluIGNlbGxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk0ODRkNWQx
OTgxMzViNzE4ZTNkZmUzMWY4ZThhNTQ3ZTRmZjM2NDAuLmVlZTkzYmE3OWI0YTgwOWVhMTkxNjIw
ZGZlNmQyNjM4YmI2OWE2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0xMi0w
MSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRmFjdG9yIG91
dCB0aGUgImRhdGFiYXNlVGFza1F1ZXVlIiBwYXJ0cyBvZiBJREJTZXJ2ZXIgaW50byBzb21ldGhp
bmcgcmV1c2FibGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODAyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKFJlZmFjdG9yIG9ubHkpLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6SURCU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
SURCU2VydmVyOjpwb3N0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6SURCU2VydmVyOjpwb3N0RGF0YWJhc2VUYXNrUmVwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRhdGFiYXNlUnVuTG9vcCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6aGFuZGxlVGFza1JlcGxpZXNPbk1haW5U
aHJlYWQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisKIDIwMTctMTItMDEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHRoZSBudW1iZXIg
b2YgY2FsbHMgdG8gVmlld3BvcnRDb25maWd1cmF0aW9uOjp1cGRhdGVDb25maWd1cmF0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM1MGJhNDI5OTVl
NTJmYTAxYTUwMzU0ZGJiMTgxNDAyYWJjNTBjNzQuLjJkYzI0NDhhMWM2ZWI2OGZkYmMxMDRiOGUx
NzE3MDM3NWFlOWZlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjUsNiArNjUsNyBAQAogCQkyQ0RFRDBGMzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9v
cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RF
RDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgKi87IH07CiAJCTMzMzdEQjlDRTc0
MzQxMEZBRjA3NkUxNyAvKiBTdGFja1RyYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0VERUM5Nzc4RTQ5QzlCRUE5MUNGQyAvKiBTdGFja1Ry
YWNlLmNwcCAqLzsgfTsKIAkJNTE1Rjc5NEUxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFk
Q29waWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNUY3OTRCMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgKi87IH07
CisJCTUxN0Y4MkQ3MUZEMjJGMzAwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0Y4MkQ1
MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcCAqLzsgfTsKIAkJ
NTFGMTc1MkIxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRDb2RlcnMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMTc1MjYxRjNENDg2MDAw
Qzc0OTUwIC8qIFBlcnNpc3RlbnRDb2RlcnMuY3BwICovOyB9OwogCQk1MUYxNzUyQzFGM0Q0ODYw
MDBDNzQ5NTAgLyogUGVyc2lzdGVudERlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMTc1MjcxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNp
c3RlbnREZWNvZGVyLmNwcCAqLzsgfTsKIAkJNTFGMTc1MkQxRjNENDg2MDAwQzc0OTUwIC8qIFBl
cnNpc3RlbnRFbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRjE3NTI5MUYzRDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50RW5jb2Rlci5j
cHAgKi87IH07CkBAIC0zMjIsNiArMzIzLDggQEAKIAkJNTE1Rjc5NEQxQ0ZDOUY0QTAwQ0NFRDkz
IC8qIENyb3NzVGhyZWFkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cm9zc1RocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE1Rjc5NTUx
Q0ZEM0E2OTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ3Jvc3NUaHJlYWRRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTdBNTM1NzFGNTczNEI3MDBEQ0RDMEEgLyogSWRlbnRpZmllZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZGVudGlmaWVkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxN0Y4MkQ1MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyb3NzVGhy
ZWFkVGFza0hhbmRsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdGODJE
NjFGRDIyRjJGMDBEQTNERUEgLyogQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODJDMjJDMUYyQkM3RTYwMDU5QkE3QyAvKiBJbnN0YW5j
ZUNvdW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zdGFuY2VDb3VudGVkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxRjE3NTI0MUYzRDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50
Q29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyc2lzdGVudENvZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRjE3NTI1MUYzRDQ4NjAwMEM3NDk1
MCAvKiBQZXJzaXN0ZW50Q29kZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBlcnNpc3RlbnRDb2RlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwNCw2
ICs4MDcsOCBAQAogCQkJCTUxNUY3OTRDMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZENv
cGllci5oICovLAogCQkJCTUxNUY3OTU1MUNGRDNBNjkwMENDRUQ5MyAvKiBDcm9zc1RocmVhZFF1
ZXVlLmggKi8sCiAJCQkJNTE1Rjc5NEQxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkVGFz
ay5oICovLAorCQkJCTUxN0Y4MkQ1MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmNwcCAqLywKKwkJCQk1MTdGODJENjFGRDIyRjJGMDBEQTNERUEgLyogQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlci5oICovLAogCQkJCUE4QTQ3MjczMTUxQTgyNUEwMDQxMjNGRiAvKiBDcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgKi8sCiAJCQkJQThBNDcyNzQxNTFBODI1QTAw
NDEyM0ZGIC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggKi8sCiAJCQkJRTE1NTU2
RjMxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwICovLApAQCAt
MTM4Niw2ICsxMzkxLDcgQEAKIAkJCQlFMzhDNDEyODFFQjRFMDY4MDA0Mjk1N0QgLyogQ1BVVGlt
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzhDNDEyNTFFQjRFMDRDMDA0Mjk1N0QgLyogQ1BV
VGltZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1Rjc5NEUxQ0ZDOUY0QTAwQ0NFRDkz
IC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxN0Y4MkQ3MUZE
MjJGMzAwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3MzlBMTUxQTgyNUIwMDQxMjNGRiAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRv
bU51bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTU1NTZGNTE4QTBDQzE4MDA2RjQ4RkIg
LyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQz
OTE1MUE4MjVCMDA0MTIzRkYgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE0NDQs
NiArMTQ1MCw3IEBACiAJCQkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1l
ckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Njk0MTk5MTZFQUIwNDEwMDI0RTE0NiAvKiBT
Y2hlZHVsZVBhaXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDY5NDE5NzE2RUFBRkY4MDAy
NEUxNDYgLyogU2NoZWR1bGVQYWlyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRkU4NTQxNkUx
RkJFMjg1RDAwOERBNURBIC8qIFNjcmFtYmxlZFB0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjY2QjI4RTFEQzk3QkFCMDA0QTFEM0YgLyogU2Vjb25kcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEE0NzQyMTE1MUE4MjVCMDA0MTIzRkYgLyogU0hBMS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MzExQkQ1MzFFQTcxQ0FEMDA1MjUyODEgLyogU2lnbmFscy5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTE0NzAsNyArMTQ3Nyw2IEBACiAJCQkJMUMxODFDN0YxRDMwNzhEQTAwRjVGQTE2IC8qIFRl
eHRCcmVha0l0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMTgxQzk2MUQzMDgwMEEw
MEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTNFNEREOTMxRjNBODAzNDAwREVEMEI0IC8qIFRleHRTdHJlYW0uY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJRkU4NTQxNkUxRkJFMjg1RDAwOERBNURBIC8qIFNjcmFtYmxlZFB0ci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzExRkIxNzFGMEE1NjhCMDAzQzA4REUgLyogVGhyZWFk
R3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NEExNTFBODI1QjAwNDEyM0ZGIC8q
IFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVCMDA0MTIz
RkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGZmMWRjMWNlZjY4NDY3Y2Q2YjMwNzRhNTFiODM4ZjZmMDY2Yzg1MjQuLjZlMGMw
ZWE5YzM3ZWRiMzI3YjNhZWExMTNkMzYyMjcwZjM1MDRmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CkBAIC0yMSw2ICsyMSw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIENvbmRpdGlvbi5oCiAgICAg
Q3Jvc3NUaHJlYWRDb3BpZXIuaAogICAgIENyb3NzVGhyZWFkVGFzay5oCisgICAgQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlci5oCiAgICAgQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5oCiAgICAgQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKQEAgLTIxOSw2ICsy
MjAsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBDbG9ja1R5cGUuY3BwCiAgICAgQ29tcGlsYXRp
b25UaHJlYWQuY3BwCiAgICAgQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisgICAgQ3Jvc3NUaHJlYWRU
YXNrSGFuZGxlci5jcHAKICAgICBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcAogICAgIENyeXB0
b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcAogICAgIEN1cnJlbnRUaW1lLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWRjYWNmZjdl
NmIyNGNlMGE4NmI5YzQwMGFhOTIxZTViMzdjMjRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHAKQEAgLTAsMCArMSw4OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmgiCisKK25hbWVzcGFjZSBXVEYgeworCitDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpD
cm9zc1RocmVhZFRhc2tIYW5kbGVyKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fdGFza1RocmVh
ZENyZWF0aW9uTG9jayk7CisgICAgbV90aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSh0aHJlYWROYW1l
LCBbdGhpc10geworICAgICAgICB0YXNrUnVuTG9vcCgpOworICAgIH0pOworfQorCitDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyOjp+Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcigpCit7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKK30KKwordm9pZCBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpwb3N0
VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgbV90YXNrUXVldWUuYXBwZW5kKFdURk1vdmUodGFzaykpOworfQorCit2b2lkIENy
b3NzVGhyZWFkVGFza0hhbmRsZXI6OnBvc3RUYXNrUmVwbHkoQ3Jvc3NUaHJlYWRUYXNrJiYgdGFz
aykKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBtX3Rhc2tSZXBseVF1ZXVl
LmFwcGVuZChXVEZNb3ZlKHRhc2spKTsKKworICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9tYWlu
VGhyZWFkUmVwbHlMb2NrKTsKKyAgICBpZiAobV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkID0gdHJ1ZTsK
KyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7CisgICAgICAgIGhhbmRsZVRhc2tSZXBsaWVz
T25NYWluVGhyZWFkKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxl
cjo6dGFza1J1bkxvb3AoKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIHsK
KyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX3Rhc2tUaHJlYWRDcmVhdGlvbkxvY2spOwor
ICAgIH0KKworICAgIHdoaWxlICghbV90YXNrUXVldWUuaXNLaWxsZWQoKSkKKyAgICAgICAgbV90
YXNrUXVldWUud2FpdEZvck1lc3NhZ2UoKS5wZXJmb3JtVGFzaygpOworfQorCit2b2lkIENyb3Nz
VGhyZWFkVGFza0hhbmRsZXI6OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKCkKK3sKKyAg
ICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9tYWluVGhyZWFkUmVwbHlMb2NrKTsK
KyAgICAgICAgbV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgPSBmYWxzZTsKKyAgICB9CisKKyAg
ICB3aGlsZSAoYXV0byB0YXNrID0gbV90YXNrUmVwbHlRdWV1ZS50cnlHZXRNZXNzYWdlKCkpCisg
ICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTAxZDM5M2Mx
ZDA4MjdmMDI3OTZkMDczZTYzMzhiMWJkMjI5MTNjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5o
PgorI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNz
IFJlZ2lzdHJhdGlvblN0b3JlOworY2xhc3MgU1FMaXRlRGF0YWJhc2U7CisKK2NsYXNzIENyb3Nz
VGhyZWFkVGFza0hhbmRsZXIgeworcHVibGljOgorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2aXJ0
dWFsIH5Dcm9zc1RocmVhZFRhc2tIYW5kbGVyKCk7CisKK3Byb3RlY3RlZDoKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcihjb25zdCBjaGFyKiB0aHJlYWROYW1l
KTsKKworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHBvc3RUYXNrKENyb3NzVGhyZWFkVGFz
ayYmKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBwb3N0VGFza1JlcGx5KENyb3NzVGhy
ZWFkVGFzayYmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGhhbmRsZVRhc2tSZXBsaWVzT25NYWlu
VGhyZWFkKCk7CisgICAgdm9pZCB0YXNrUnVuTG9vcCgpOworCisgICAgUmVmUHRyPFRocmVhZD4g
bV90aHJlYWQgeyBudWxscHRyIH07CisgICAgTG9jayBtX3Rhc2tUaHJlYWRDcmVhdGlvbkxvY2s7
CisgICAgTG9jayBtX21haW5UaHJlYWRSZXBseUxvY2s7CisgICAgYm9vbCBtX21haW5UaHJlYWRS
ZXBseVNjaGVkdWxlZCB7IGZhbHNlIH07CisKKyAgICBDcm9zc1RocmVhZFF1ZXVlPENyb3NzVGhy
ZWFkVGFzaz4gbV90YXNrUXVldWU7CisgICAgQ3Jvc3NUaHJlYWRRdWV1ZTxDcm9zc1RocmVhZFRh
c2s+IG1fdGFza1JlcGx5UXVldWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcg
V1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGFiYzYxOTM2NmZm
YjVjZTRiMGE3YTZmMDBiMzQwZDZjYmQ2MDhjOWMuLmM2MmQ4MjE4YzFiNmJiMWQ2NmZmNTBiMTE5
MTE0NDAyMGJmYmFiODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01MywyNCArNTMsMTcgQEAgUmVmPElEQlNl
cnZlcj4gSURCU2VydmVyOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBh
dGgsIElEQkJhY2tpbmcKIH0KIAogSURCU2VydmVyOjpJREJTZXJ2ZXIoSURCQmFja2luZ1N0b3Jl
VGVtcG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQotICAgIDogbV9iYWNraW5nU3RvcmVU
ZW1wb3JhcnlGaWxlSGFuZGxlcihmaWxlSGFuZGxlcikKKyAgICA6IENyb3NzVGhyZWFkVGFza0hh
bmRsZXIoIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKQorICAgICwgbV9iYWNraW5nU3RvcmVUZW1w
b3JhcnlGaWxlSGFuZGxlcihmaWxlSGFuZGxlcikKIHsKLSAgICBMb2NrZXI8TG9jaz4gbG9ja2Vy
KG1fZGF0YWJhc2VUaHJlYWRDcmVhdGlvbkxvY2spOwotICAgIG1fdGhyZWFkID0gVGhyZWFkOjpj
cmVhdGUoIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiLCBbdGhpc10gewotICAgICAgICBkYXRhYmFz
ZVJ1bkxvb3AoKTsKLSAgICB9KTsKIH0KIAogSURCU2VydmVyOjpJREJTZXJ2ZXIoY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVI
YW5kbGVyJiBmaWxlSGFuZGxlcikKLSAgICA6IG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoKGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCkKKyAgICA6IENyb3NzVGhyZWFkVGFza0hhbmRsZXIoIkluZGV4ZWRE
YXRhYmFzZSBTZXJ2ZXIiKQorICAgICwgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgoZGF0YWJhc2VE
aXJlY3RvcnlQYXRoKQogICAgICwgbV9iYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlcihm
aWxlSGFuZGxlcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCU2VydmVyIGNyZWF0ZWQgYXQg
cGF0aCAlcyIsIGRhdGFiYXNlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKLQotICAgIExv
Y2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9uTG9jayk7Ci0gICAgbV90
aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiSW5kZXhlZERhdGFiYXNlIFNlcnZlciIsIFt0aGlzXSB7
Ci0gICAgICAgIGRhdGFiYXNlUnVuTG9vcCgpOwotICAgIH0pOwogfQogCiB2b2lkIElEQlNlcnZl
cjo6cmVnaXN0ZXJDb25uZWN0aW9uKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVjdGlvbikK
QEAgLTQ4OCw0MyArNDgxLDEyIEBAIHZvaWQgSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5h
bWVzKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50CiAKIHZvaWQgSURC
U2VydmVyOjpwb3N0RGF0YWJhc2VUYXNrKENyb3NzVGhyZWFkVGFzayYmIHRhc2spCiB7Ci0gICAg
bV9kYXRhYmFzZVF1ZXVlLmFwcGVuZChXVEZNb3ZlKHRhc2spKTsKKyAgICBwb3N0VGFzayhXVEZN
b3ZlKHRhc2spKTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6OnBvc3REYXRhYmFzZVRhc2tSZXBseShD
cm9zc1RocmVhZFRhc2smJiB0YXNrKQogewotICAgIG1fZGF0YWJhc2VSZXBseVF1ZXVlLmFwcGVu
ZChXVEZNb3ZlKHRhc2spKTsKLQotICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9tYWluVGhyZWFk
UmVwbHlMb2NrKTsKLSAgICBpZiAobV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkID0gdHJ1ZTsKLSAgICBj
YWxsT25NYWluVGhyZWFkKFt0aGlzXSB7Ci0gICAgICAgIGhhbmRsZVRhc2tSZXBsaWVzT25NYWlu
VGhyZWFkKCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgSURCU2VydmVyOjpkYXRhYmFzZVJ1bkxvb3Ao
KQotewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIHsKLSAgICAgICAgTG9ja2Vy
PExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICB9Ci0KLSAg
ICB3aGlsZSAoIW1fZGF0YWJhc2VRdWV1ZS5pc0tpbGxlZCgpKQotICAgICAgICBtX2RhdGFiYXNl
UXVldWUud2FpdEZvck1lc3NhZ2UoKS5wZXJmb3JtVGFzaygpOwotfQotCi12b2lkIElEQlNlcnZl
cjo6aGFuZGxlVGFza1JlcGxpZXNPbk1haW5UaHJlYWQoKQotewotICAgIHsKLSAgICAgICAgTG9j
a2VyPExvY2s+IGxvY2tlcihtX21haW5UaHJlYWRSZXBseUxvY2spOwotICAgICAgICBtX21haW5U
aHJlYWRSZXBseVNjaGVkdWxlZCA9IGZhbHNlOwotICAgIH0KLQotICAgIHdoaWxlIChhdXRvIHRh
c2sgPSBtX2RhdGFiYXNlUmVwbHlRdWV1ZS50cnlHZXRNZXNzYWdlKCkpCi0gICAgICAgIHRhc2st
PnBlcmZvcm1UYXNrKCk7CisgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKHRhc2spKTsKIH0KIAog
c3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlRGVsZXRlQ2FsbGJhY2tJRCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggOTI0
ZTIwMjQ3NDgzOWY1YTVhNDlhNGI3MTYzNDQ4NDUyMzcwMWZmZC4uMzUwNzQyMTUwMGMxOTQ3NDZl
YzI5YmEwYTEwNDZhZTQyMmVkYjY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaApAQCAtMzEsOCArMzEsNyBAQAogI2luY2x1
ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNl
LmgiCiAjaW5jbHVkZSAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8
d3RmL0Nyb3NzVGhyZWFkUXVldWUuaD4KLSNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+
CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgpA
QCAtNTEsNyArNTAsNyBAQCBuYW1lc3BhY2UgSURCU2VydmVyIHsKIAogY2xhc3MgSURCQmFja2lu
Z1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXI7CiAKLWNsYXNzIElEQlNlcnZlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPElEQlNlcnZlcj4geworY2xhc3MgSURCU2VydmVyIDogcHVibGljIFJlZkNvdW50
ZWQ8SURCU2VydmVyPiwgcHVibGljIENyb3NzVGhyZWFkVGFza0hhbmRsZXIgewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8SURCU2VydmVyPiBjcmVhdGUoSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5
RmlsZUhhbmRsZXImKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPElEQlNlcnZlcj4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJREJCYWNraW5nU3Rv
cmVUZW1wb3JhcnlGaWxlSGFuZGxlciYpOwpAQCAtMTE4LDIwICsxMTcsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGVyZm9ybUNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhjb25zdCBW
ZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZv
aWQgZGlkUGVyZm9ybUNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzKHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwogCi0gICAgdm9pZCBkYXRhYmFzZVJ1bkxvb3AoKTsKLSAgICB2b2lkIGhhbmRsZVRhc2tSZXBs
aWVzT25NYWluVGhyZWFkKCk7Ci0KICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SURCQ29u
bmVjdGlvblRvQ2xpZW50Pj4gbV9jb25uZWN0aW9uTWFwOwogICAgIEhhc2hNYXA8SURCRGF0YWJh
c2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8VW5pcXVlSURCRGF0YWJhc2U+PiBtX3VuaXF1
ZUlEQkRhdGFiYXNlTWFwOwogCi0gICAgUmVmUHRyPFRocmVhZD4gbV90aHJlYWQgeyBudWxscHRy
IH07Ci0gICAgTG9jayBtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrOwotICAgIExvY2sgbV9t
YWluVGhyZWFkUmVwbHlMb2NrOwotICAgIGJvb2wgbV9tYWluVGhyZWFkUmVwbHlTY2hlZHVsZWQg
eyBmYWxzZSB9OwotCi0gICAgQ3Jvc3NUaHJlYWRRdWV1ZTxDcm9zc1RocmVhZFRhc2s+IG1fZGF0
YWJhc2VRdWV1ZTsKLSAgICBDcm9zc1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV9kYXRh
YmFzZVJlcGx5UXVldWU7Ci0KICAgICBIYXNoTWFwPHVpbnQ2NF90LCBVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb24qPiBtX2RhdGFiYXNlQ29ubmVjdGlvbnM7CiAgICAgSGFzaE1hcDxJREJSZXNv
dXJjZUlkZW50aWZpZXIsIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24qPiBtX3RyYW5zYWN0
aW9uczsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328215</attachid>
            <date>2017-12-01 22:51:17 -0800</date>
            <delta_ts>2017-12-02 10:00:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180298-20171201225116.patch</filename>
            <type>text/plain</type>
            <size>18132</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUxNzkxOGE4MmU0M2VjZDZkMzExOWI0
YzlhYjdkYjRhNWRjNzRlYjIuLjc3MzY2MDIxMTkwZmNjZWI0YWM1MmUzOTUxZTZhMDhiOWM2YjRi
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMTItMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIEZhY3RvciBvdXQgdGhlICJkYXRhYmFzZVRhc2tRdWV1
ZSIgcGFydHMgb2YgSURCU2VydmVyIGludG8gc29tZXRoaW5nIHJldXNhYmxlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMjk4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisKKyAgICAgICAg
KiB3dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpD
cm9zc1RocmVhZFRhc2tIYW5kbGVyOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyKToKKyAgICAgICAg
KFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6fkNyb3NzVGhyZWFkVGFza0hhbmRsZXIpOgor
ICAgICAgICAoV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpwb3N0VGFzayk6CisgICAgICAg
IChXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6OnBvc3RUYXNrUmVwbHkpOgorICAgICAgICAo
V1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjp0YXNrUnVuTG9vcCk6CisgICAgICAgIChXVEY6
OkNyb3NzVGhyZWFkVGFza0hhbmRsZXI6OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKToK
KyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oOiBBZGRlZC4KKwogMjAxNy0x
Mi0wMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTGV0J3Mgc2Ny
YW1ibGUgQ2xhc3NJbmZvIHBvaW50ZXJzIGluIGNlbGxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk0ODRkNWQx
OTgxMzViNzE4ZTNkZmUzMWY4ZThhNTQ3ZTRmZjM2NDAuLmVlZTkzYmE3OWI0YTgwOWVhMTkxNjIw
ZGZlNmQyNjM4YmI2OWE2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0xMi0w
MSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRmFjdG9yIG91
dCB0aGUgImRhdGFiYXNlVGFza1F1ZXVlIiBwYXJ0cyBvZiBJREJTZXJ2ZXIgaW50byBzb21ldGhp
bmcgcmV1c2FibGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODAyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKFJlZmFjdG9yIG9ubHkpLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcjo6SURCU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
SURCU2VydmVyOjpwb3N0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6SURCU2VydmVyOjpwb3N0RGF0YWJhc2VUYXNrUmVwbHkpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRhdGFiYXNlUnVuTG9vcCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6aGFuZGxlVGFza1JlcGxpZXNPbk1haW5U
aHJlYWQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisKIDIwMTctMTItMDEgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHRoZSBudW1iZXIg
b2YgY2FsbHMgdG8gVmlld3BvcnRDb25maWd1cmF0aW9uOjp1cGRhdGVDb25maWd1cmF0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM1MGJhNDI5OTVl
NTJmYTAxYTUwMzU0ZGJiMTgxNDAyYWJjNTBjNzQuLjJkYzI0NDhhMWM2ZWI2OGZkYmMxMDRiOGUx
NzE3MDM3NWFlOWZlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjUsNiArNjUsNyBAQAogCQkyQ0RFRDBGMzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9v
cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RF
RDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgKi87IH07CiAJCTMzMzdEQjlDRTc0
MzQxMEZBRjA3NkUxNyAvKiBTdGFja1RyYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0VERUM5Nzc4RTQ5QzlCRUE5MUNGQyAvKiBTdGFja1Ry
YWNlLmNwcCAqLzsgfTsKIAkJNTE1Rjc5NEUxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFk
Q29waWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNUY3OTRCMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgKi87IH07
CisJCTUxN0Y4MkQ3MUZEMjJGMzAwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0Y4MkQ1
MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcCAqLzsgfTsKIAkJ
NTFGMTc1MkIxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNpc3RlbnRDb2RlcnMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMTc1MjYxRjNENDg2MDAw
Qzc0OTUwIC8qIFBlcnNpc3RlbnRDb2RlcnMuY3BwICovOyB9OwogCQk1MUYxNzUyQzFGM0Q0ODYw
MDBDNzQ5NTAgLyogUGVyc2lzdGVudERlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMTc1MjcxRjNENDg2MDAwQzc0OTUwIC8qIFBlcnNp
c3RlbnREZWNvZGVyLmNwcCAqLzsgfTsKIAkJNTFGMTc1MkQxRjNENDg2MDAwQzc0OTUwIC8qIFBl
cnNpc3RlbnRFbmNvZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRjE3NTI5MUYzRDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50RW5jb2Rlci5j
cHAgKi87IH07CkBAIC0zMjIsNiArMzIzLDggQEAKIAkJNTE1Rjc5NEQxQ0ZDOUY0QTAwQ0NFRDkz
IC8qIENyb3NzVGhyZWFkVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
cm9zc1RocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE1Rjc5NTUx
Q0ZEM0E2OTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ3Jvc3NUaHJlYWRRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTdBNTM1NzFGNTczNEI3MDBEQ0RDMEEgLyogSWRlbnRpZmllZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZGVudGlmaWVkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxN0Y4MkQ1MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyb3NzVGhy
ZWFkVGFza0hhbmRsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdGODJE
NjFGRDIyRjJGMDBEQTNERUEgLyogQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODJDMjJDMUYyQkM3RTYwMDU5QkE3QyAvKiBJbnN0YW5j
ZUNvdW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zdGFuY2VDb3VudGVkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxRjE3NTI0MUYzRDQ4NjAwMEM3NDk1MCAvKiBQZXJzaXN0ZW50
Q29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyc2lzdGVudENvZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRjE3NTI1MUYzRDQ4NjAwMEM3NDk1
MCAvKiBQZXJzaXN0ZW50Q29kZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBlcnNpc3RlbnRDb2RlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwNCw2
ICs4MDcsOCBAQAogCQkJCTUxNUY3OTRDMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZENv
cGllci5oICovLAogCQkJCTUxNUY3OTU1MUNGRDNBNjkwMENDRUQ5MyAvKiBDcm9zc1RocmVhZFF1
ZXVlLmggKi8sCiAJCQkJNTE1Rjc5NEQxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkVGFz
ay5oICovLAorCQkJCTUxN0Y4MkQ1MUZEMjJGMkYwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmNwcCAqLywKKwkJCQk1MTdGODJENjFGRDIyRjJGMDBEQTNERUEgLyogQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlci5oICovLAogCQkJCUE4QTQ3MjczMTUxQTgyNUEwMDQxMjNGRiAvKiBDcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgKi8sCiAJCQkJQThBNDcyNzQxNTFBODI1QTAw
NDEyM0ZGIC8qIENyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmggKi8sCiAJCQkJRTE1NTU2
RjMxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwICovLApAQCAt
MTM4Niw2ICsxMzkxLDcgQEAKIAkJCQlFMzhDNDEyODFFQjRFMDY4MDA0Mjk1N0QgLyogQ1BVVGlt
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzhDNDEyNTFFQjRFMDRDMDA0Mjk1N0QgLyogQ1BV
VGltZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1Rjc5NEUxQ0ZDOUY0QTAwQ0NFRDkz
IC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxN0Y4MkQ3MUZE
MjJGMzAwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3MzlBMTUxQTgyNUIwMDQxMjNGRiAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRv
bU51bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTU1NTZGNTE4QTBDQzE4MDA2RjQ4RkIg
LyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQz
OTE1MUE4MjVCMDA0MTIzRkYgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE0NDQs
NiArMTQ1MCw3IEBACiAJCQkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1l
ckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Njk0MTk5MTZFQUIwNDEwMDI0RTE0NiAvKiBT
Y2hlZHVsZVBhaXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDY5NDE5NzE2RUFBRkY4MDAy
NEUxNDYgLyogU2NoZWR1bGVQYWlyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRkU4NTQxNkUx
RkJFMjg1RDAwOERBNURBIC8qIFNjcmFtYmxlZFB0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjY2QjI4RTFEQzk3QkFCMDA0QTFEM0YgLyogU2Vjb25kcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEE0NzQyMTE1MUE4MjVCMDA0MTIzRkYgLyogU0hBMS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MzExQkQ1MzFFQTcxQ0FEMDA1MjUyODEgLyogU2lnbmFscy5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTE0NzAsNyArMTQ3Nyw2IEBACiAJCQkJMUMxODFDN0YxRDMwNzhEQTAwRjVGQTE2IC8qIFRl
eHRCcmVha0l0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMTgxQzk2MUQzMDgwMEEw
MEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTNFNEREOTMxRjNBODAzNDAwREVEMEI0IC8qIFRleHRTdHJlYW0uY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJRkU4NTQxNkUxRkJFMjg1RDAwOERBNURBIC8qIFNjcmFtYmxlZFB0ci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzExRkIxNzFGMEE1NjhCMDAzQzA4REUgLyogVGhyZWFk
R3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NEExNTFBODI1QjAwNDEyM0ZGIC8q
IFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVCMDA0MTIz
RkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGZmMWRjMWNlZjY4NDY3Y2Q2YjMwNzRhNTFiODM4ZjZmMDY2Yzg1MjQuLjZlMGMw
ZWE5YzM3ZWRiMzI3YjNhZWExMTNkMzYyMjcwZjM1MDRmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CkBAIC0yMSw2ICsyMSw3IEBAIHNldChXVEZfSEVBREVSUwogICAgIENvbmRpdGlvbi5oCiAgICAg
Q3Jvc3NUaHJlYWRDb3BpZXIuaAogICAgIENyb3NzVGhyZWFkVGFzay5oCisgICAgQ3Jvc3NUaHJl
YWRUYXNrSGFuZGxlci5oCiAgICAgQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5oCiAgICAgQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaAogICAgIEN1cnJlbnRUaW1lLmgKQEAgLTIxOSw2ICsy
MjAsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBDbG9ja1R5cGUuY3BwCiAgICAgQ29tcGlsYXRp
b25UaHJlYWQuY3BwCiAgICAgQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisgICAgQ3Jvc3NUaHJlYWRU
YXNrSGFuZGxlci5jcHAKICAgICBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcAogICAgIENyeXB0
b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcAogICAgIEN1cnJlbnRUaW1lLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjA3YzVjYjg2
NGEwNWQwMzY1YTNiN2ViN2ZjMDYyMWRjZTcwMjBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2tI
YW5kbGVyLmgiCisKK25hbWVzcGFjZSBXVEYgeworCitDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpD
cm9zc1RocmVhZFRhc2tIYW5kbGVyKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCit7CisgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fdGFza1RocmVh
ZENyZWF0aW9uTG9jayk7CisgICAgbV90aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSh0aHJlYWROYW1l
LCBbdGhpc10geworICAgICAgICB0YXNrUnVuTG9vcCgpOworICAgIH0pOworfQorCitDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyOjp+Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcigpCit7CisgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKK30KKwordm9pZCBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpwb3N0
VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQoreworICAgIG1fdGFza1F1ZXVlLmFwcGVuZChX
VEZNb3ZlKHRhc2spKTsKK30KKwordm9pZCBDcm9zc1RocmVhZFRhc2tIYW5kbGVyOjpwb3N0VGFz
a1JlcGx5KENyb3NzVGhyZWFkVGFzayYmIHRhc2spCit7CisgICAgbV90YXNrUmVwbHlRdWV1ZS5h
cHBlbmQoV1RGTW92ZSh0YXNrKSk7CisKKyAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fbWFpblRo
cmVhZFJlcGx5TG9jayk7CisgICAgaWYgKG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX21haW5UaHJlYWRSZXBseVNjaGVkdWxlZCA9IHRydWU7Cisg
ICAgY2FsbE9uTWFpblRocmVhZChbdGhpc10geworICAgICAgICBoYW5kbGVUYXNrUmVwbGllc09u
TWFpblRocmVhZCgpOworICAgIH0pOworfQorCit2b2lkIENyb3NzVGhyZWFkVGFza0hhbmRsZXI6
OnRhc2tSdW5Mb29wKCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICB7Cisg
ICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV90YXNrVGhyZWFkQ3JlYXRpb25Mb2NrKTsKKyAg
ICB9CisKKyAgICB3aGlsZSAoIW1fdGFza1F1ZXVlLmlzS2lsbGVkKCkpCisgICAgICAgIG1fdGFz
a1F1ZXVlLndhaXRGb3JNZXNzYWdlKCkucGVyZm9ybVRhc2soKTsKK30KKwordm9pZCBDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyOjpoYW5kbGVUYXNrUmVwbGllc09uTWFpblRocmVhZCgpCit7CisgICAg
eworICAgICAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fbWFpblRocmVhZFJlcGx5TG9jayk7Cisg
ICAgICAgIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkID0gZmFsc2U7CisgICAgfQorCisgICAg
d2hpbGUgKGF1dG8gdGFzayA9IG1fdGFza1JlcGx5UXVldWUudHJ5R2V0TWVzc2FnZSgpKQorICAg
ICAgICB0YXNrLT5wZXJmb3JtVGFzaygpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oIGIvU291cmNl
L1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwMWQzOTNjMWQw
ODI3ZjAyNzk2ZDA3M2U2MzM4YjFiZDIyOTEzYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkUXVldWUuaD4K
KyNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBS
ZWdpc3RyYXRpb25TdG9yZTsKK2NsYXNzIFNRTGl0ZURhdGFiYXNlOworCitjbGFzcyBDcm9zc1Ro
cmVhZFRhc2tIYW5kbGVyIHsKK3B1YmxpYzoKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVh
bCB+Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcigpOworCitwcm90ZWN0ZWQ6CisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIENyb3NzVGhyZWFkVGFza0hhbmRsZXIoY29uc3QgY2hhciogdGhyZWFkTmFtZSk7
CisKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBwb3N0VGFzayhDcm9zc1RocmVhZFRhc2sm
Jik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcG9zdFRhc2tSZXBseShDcm9zc1RocmVh
ZFRhc2smJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBoYW5kbGVUYXNrUmVwbGllc09uTWFpblRo
cmVhZCgpOworICAgIHZvaWQgdGFza1J1bkxvb3AoKTsKKworICAgIFJlZlB0cjxUaHJlYWQ+IG1f
dGhyZWFkIHsgbnVsbHB0ciB9OworICAgIExvY2sgbV90YXNrVGhyZWFkQ3JlYXRpb25Mb2NrOwor
ICAgIExvY2sgbV9tYWluVGhyZWFkUmVwbHlMb2NrOworICAgIGJvb2wgbV9tYWluVGhyZWFkUmVw
bHlTY2hlZHVsZWQgeyBmYWxzZSB9OworCisgICAgQ3Jvc3NUaHJlYWRRdWV1ZTxDcm9zc1RocmVh
ZFRhc2s+IG1fdGFza1F1ZXVlOworICAgIENyb3NzVGhyZWFkUXVldWU8Q3Jvc3NUaHJlYWRUYXNr
PiBtX3Rhc2tSZXBseVF1ZXVlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdU
Rjo6Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCBhYmM2MTkzNjZmZmI1
Y2U0YjBhN2E2ZjAwYjM0MGQ2Y2JkNjA4YzljLi5jNjJkODIxOGMxYjZiYjFkNjZmZjUwYjExOTEx
NDQwMjBiZmJhYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTMsMjQgKzUzLDE3IEBAIFJlZjxJREJTZXJ2
ZXI+IElEQlNlcnZlcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
LCBJREJCYWNraW5nCiB9CiAKIElEQlNlcnZlcjo6SURCU2VydmVyKElEQkJhY2tpbmdTdG9yZVRl
bXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKLSAgICA6IG1fYmFja2luZ1N0b3JlVGVt
cG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCisgICAgOiBDcm9zc1RocmVhZFRhc2tIYW5k
bGVyKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIikKKyAgICAsIG1fYmFja2luZ1N0b3JlVGVtcG9y
YXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCiB7Ci0gICAgTG9ja2VyPExvY2s+IGxvY2tlciht
X2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBtX3RocmVhZCA9IFRocmVhZDo6Y3Jl
YXRlKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIiwgW3RoaXNdIHsKLSAgICAgICAgZGF0YWJhc2VS
dW5Mb29wKCk7Ci0gICAgfSk7CiB9CiAKIElEQlNlcnZlcjo6SURCU2VydmVyKGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFu
ZGxlciYgZmlsZUhhbmRsZXIpCi0gICAgOiBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aChkYXRhYmFz
ZURpcmVjdG9yeVBhdGgpCisgICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKCJJbmRleGVkRGF0
YWJhc2UgU2VydmVyIikKKyAgICAsIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoKGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCkKICAgICAsIG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmls
ZUhhbmRsZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlNlcnZlciBjcmVhdGVkIGF0IHBh
dGggJXMiLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBMb2Nr
ZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VUaHJlYWRDcmVhdGlvbkxvY2spOwotICAgIG1fdGhy
ZWFkID0gVGhyZWFkOjpjcmVhdGUoIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiLCBbdGhpc10gewot
ICAgICAgICBkYXRhYmFzZVJ1bkxvb3AoKTsKLSAgICB9KTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6
OnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQmIGNvbm5lY3Rpb24pCkBA
IC00ODgsNDMgKzQ4MSwxMiBAQCB2b2lkIElEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludAogCiB2b2lkIElEQlNl
cnZlcjo6cG9zdERhdGFiYXNlVGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQogewotICAgIG1f
ZGF0YWJhc2VRdWV1ZS5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CisgICAgcG9zdFRhc2soV1RGTW92
ZSh0YXNrKSk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjpwb3N0RGF0YWJhc2VUYXNrUmVwbHkoQ3Jv
c3NUaHJlYWRUYXNrJiYgdGFzaykKIHsKLSAgICBtX2RhdGFiYXNlUmVwbHlRdWV1ZS5hcHBlbmQo
V1RGTW92ZSh0YXNrKSk7Ci0KLSAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fbWFpblRocmVhZFJl
cGx5TG9jayk7Ci0gICAgaWYgKG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX21haW5UaHJlYWRSZXBseVNjaGVkdWxlZCA9IHRydWU7Ci0gICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpc10gewotICAgICAgICBoYW5kbGVUYXNrUmVwbGllc09uTWFpblRo
cmVhZCgpOwotICAgIH0pOwotfQotCi12b2lkIElEQlNlcnZlcjo6ZGF0YWJhc2VSdW5Mb29wKCkK
LXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICB7Ci0gICAgICAgIExvY2tlcjxM
b2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9uTG9jayk7Ci0gICAgfQotCi0gICAg
d2hpbGUgKCFtX2RhdGFiYXNlUXVldWUuaXNLaWxsZWQoKSkKLSAgICAgICAgbV9kYXRhYmFzZVF1
ZXVlLndhaXRGb3JNZXNzYWdlKCkucGVyZm9ybVRhc2soKTsKLX0KLQotdm9pZCBJREJTZXJ2ZXI6
OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKCkKLXsKLSAgICB7Ci0gICAgICAgIExvY2tl
cjxMb2NrPiBsb2NrZXIobV9tYWluVGhyZWFkUmVwbHlMb2NrKTsKLSAgICAgICAgbV9tYWluVGhy
ZWFkUmVwbHlTY2hlZHVsZWQgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICB3aGlsZSAoYXV0byB0YXNr
ID0gbV9kYXRhYmFzZVJlcGx5UXVldWUudHJ5R2V0TWVzc2FnZSgpKQotICAgICAgICB0YXNrLT5w
ZXJmb3JtVGFzaygpOworICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHN0
YXRpYyB1aW50NjRfdCBnZW5lcmF0ZURlbGV0ZUNhbGxiYWNrSUQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDkyNGUy
MDI0NzQ4MzlmNWE1YTQ5YTRiNzE2MzQ0ODQ1MjM3MDFmZmQuLjM1MDc0MjE1MDBjMTk0NzQ2ZWMy
OWJhMGExMDQ2YWU0MjJlZGI2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTMxLDggKzMxLDcgQEAKICNpbmNsdWRl
ICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJVbmlxdWVJREJEYXRhYmFzZS5o
IgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgPHd0
Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgor
I2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAg
LTUxLDcgKzUwLDcgQEAgbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIElEQkJhY2tpbmdT
dG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyOwogCi1jbGFzcyBJREJTZXJ2ZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxJREJTZXJ2ZXI+IHsKK2NsYXNzIElEQlNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVk
PElEQlNlcnZlcj4sIHB1YmxpYyBDcm9zc1RocmVhZFRhc2tIYW5kbGVyIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPElEQlNlcnZlcj4gY3JlYXRlKElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZp
bGVIYW5kbGVyJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxJREJTZXJ2ZXI+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3Jl
VGVtcG9yYXJ5RmlsZUhhbmRsZXImKTsKQEAgLTExOCwyMCArMTE3LDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBlcmZvcm1DbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lk
IGRpZFBlcmZvcm1DbG9zZUFuZERlbGV0ZURhdGFiYXNlcyh1aW50NjRfdCBjYWxsYmFja0lEKTsK
IAotICAgIHZvaWQgZGF0YWJhc2VSdW5Mb29wKCk7Ci0gICAgdm9pZCBoYW5kbGVUYXNrUmVwbGll
c09uTWFpblRocmVhZCgpOwotCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPElEQkNvbm5l
Y3Rpb25Ub0NsaWVudD4+IG1fY29ubmVjdGlvbk1hcDsKICAgICBIYXNoTWFwPElEQkRhdGFiYXNl
SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFVuaXF1ZUlEQkRhdGFiYXNlPj4gbV91bmlxdWVJ
REJEYXRhYmFzZU1hcDsKIAotICAgIFJlZlB0cjxUaHJlYWQ+IG1fdGhyZWFkIHsgbnVsbHB0ciB9
OwotICAgIExvY2sgbV9kYXRhYmFzZVRocmVhZENyZWF0aW9uTG9jazsKLSAgICBMb2NrIG1fbWFp
blRocmVhZFJlcGx5TG9jazsKLSAgICBib29sIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkIHsg
ZmFsc2UgfTsKLQotICAgIENyb3NzVGhyZWFkUXVldWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX2RhdGFi
YXNlUXVldWU7Ci0gICAgQ3Jvc3NUaHJlYWRRdWV1ZTxDcm9zc1RocmVhZFRhc2s+IG1fZGF0YWJh
c2VSZXBseVF1ZXVlOwotCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgVW5pcXVlSURCRGF0YWJhc2VD
b25uZWN0aW9uKj4gbV9kYXRhYmFzZUNvbm5lY3Rpb25zOwogICAgIEhhc2hNYXA8SURCUmVzb3Vy
Y2VJZGVudGlmaWVyLCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uKj4gbV90cmFuc2FjdGlv
bnM7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>