<?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>145633</bug_id>
          
          <creation_ts>2015-06-03 22:28:42 -0700</creation_ts>
          <short_desc>[WK2] Prune more resources from the MemoryCache before process suspension</short_desc>
          <delta_ts>2015-06-04 11:24:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1099404</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-03 22:28:42 -0700</bug_when>
    <thetext>Prune more resources from the MemoryCache before process suspension or on simulated memory warning by doing a synchronous JS garbage collection and sweep *before* pruning dead resources from the memory cache. Previously, we would do the garbage collection after pruning the MemoryCache which meant that a lot of resources became dead after we tried to prune them.

At the end a basic browsing on apple.com, we are able to remove ~17% more resources from the MemoryCache on simulated memory warning with this change.

Pruning as much as we can from the memory cache on critical memory pressure or before process suspension is not only useful to free up memory but also to make room in the vnode table as a lot of CachedResources are mmmap&apos;d from the network disk cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099406</commentid>
    <comment_count>1</comment_count>
      <attachid>254246</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-03 22:53:12 -0700</bug_when>
    <thetext>Created attachment 254246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099409</commentid>
    <comment_count>2</comment_count>
      <attachid>254247</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-03 22:57:06 -0700</bug_when>
    <thetext>Created attachment 254247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099416</commentid>
    <comment_count>3</comment_count>
      <attachid>254249</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-03 23:19:42 -0700</bug_when>
    <thetext>Created attachment 254249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099419</commentid>
    <comment_count>4</comment_count>
      <attachid>254251</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-03 23:23:22 -0700</bug_when>
    <thetext>Created attachment 254251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099424</commentid>
    <comment_count>5</comment_count>
      <attachid>254253</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-03 23:26:14 -0700</bug_when>
    <thetext>Created attachment 254253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099427</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-03 23:33:45 -0700</bug_when>
    <thetext>Ah, green bubbles :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099501</commentid>
    <comment_count>7</comment_count>
      <attachid>254267</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-04 10:12:12 -0700</bug_when>
    <thetext>Created attachment 254267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099507</commentid>
    <comment_count>8</comment_count>
      <attachid>254267</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-06-04 10:28:19 -0700</bug_when>
    <thetext>Comment on attachment 254267
Patch

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

r=me this is great.

&gt; Source/WebCore/platform/MemoryPressureHandler.cpp:148
&gt; +    // Do a full sweep of collected objects.

Sidenote (not really about this patch):

If we take the garbageCollectNow() path above, it will do a full sweep before returning.

If we take the garbageCollectSoon() path, it won&apos;t generate any new garbage to sweep, since it only accelerates the next collection, but will never actually perform it.
What will happen here is that if we recently did a collection that generated work for the IncrementalSweeper and that work is not yet finished, it will synchronously finish now.
I think it&apos;s a good thing to be doing here, just wanted to clarify what&apos;s really going on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099510</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-04 10:31:33 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 254267 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=254267&amp;action=review
&gt; 
&gt; r=me this is great.
&gt; 
&gt; &gt; Source/WebCore/platform/MemoryPressureHandler.cpp:148
&gt; &gt; +    // Do a full sweep of collected objects.
&gt; 
&gt; Sidenote (not really about this patch):
&gt; 
&gt; If we take the garbageCollectNow() path above, it will do a full sweep
&gt; before returning.

I wasn&apos;t aware, I&apos;ll tweak the code accordingly before landing.

 
&gt; If we take the garbageCollectSoon() path, it won&apos;t generate any new garbage
&gt; to sweep, since it only accelerates the next collection, but will never
&gt; actually perform it.
&gt; What will happen here is that if we recently did a collection that generated
&gt; work for the IncrementalSweeper and that work is not yet finished, it will
&gt; synchronously finish now.
&gt; I think it&apos;s a good thing to be doing here, just wanted to clarify what&apos;s
&gt; really going on.

It was my understanding that this still was useful.

Ideally, we would pass a callback to garbageCollectSoon() so that we can do a sweep and prune dead resources from the memory cache once finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099513</commentid>
    <comment_count>10</comment_count>
      <attachid>254270</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-06-04 10:35:18 -0700</bug_when>
    <thetext>Created attachment 254270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099543</commentid>
    <comment_count>11</comment_count>
      <attachid>254270</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-04 11:24:09 -0700</bug_when>
    <thetext>Comment on attachment 254270
Patch

Clearing flags on attachment: 254270

Committed r185206: &lt;http://trac.webkit.org/changeset/185206&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099544</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-04 11:24:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254246</attachid>
            <date>2015-06-03 22:53:12 -0700</date>
            <delta_ts>2015-06-03 22:57:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145633-20150603225251.patch</filename>
            <type>text/plain</type>
            <size>18239</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThjYmViOGViYmE3YjY5
NDMwZThjNWFmYWQ2YTE2NTNmODdlMGFkNi4uNTk1NTU2NjdlYmRjZmRmMTk5NjcxMDU0MzI3MDVi
YTUyYTE3NjUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE1LTA2LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gUHJ1bmUgbW9yZSBy
ZXNvdXJjZXMgZnJvbSB0aGUgTWVtb3J5Q2FjaGUgYmVmb3JlIHByb2Nlc3Mgc3VzcGVuc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjMzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJ1bmUgbW9y
ZSByZXNvdXJjZXMgZnJvbSB0aGUgTWVtb3J5Q2FjaGUgYmVmb3JlIHByb2Nlc3Mgc3VzcGVuc2lv
biBvcgorICAgICAgICBvbiBzaW11bGF0ZWQgbWVtb3J5IHdhcm5pbmcgYnkgZG9pbmcgYSBzeW5j
aHJvbm91cyBKUyBnYXJiYWdlIGNvbGxlY3Rpb24KKyAgICAgICAgYW5kIHN3ZWVwICpiZWZvcmUq
IHBydW5pbmcgZGVhZCByZXNvdXJjZXMgZnJvbSB0aGUgbWVtb3J5IGNhY2hlLgorICAgICAgICBQ
cmV2aW91c2x5LCB3ZSB3b3VsZCBkbyB0aGUgZ2FyYmFnZSBjb2xsZWN0aW9uIGFmdGVyIHBydW5p
bmcgdGhlCisgICAgICAgIE1lbW9yeUNhY2hlIHdoaWNoIG1lYW50IHRoYXQgYSBsb3Qgb2YgcmVz
b3VyY2VzIGJlY2FtZSBkZWFkIGFmdGVyIHdlCisgICAgICAgIHRyaWVkIHRvIHBydW5lIHRoZW0u
CisKKyAgICAgICAgQXQgdGhlIGVuZCBhIGJhc2ljIGJyb3dzaW5nIG9uIGFwcGxlLmNvbSwgd2Ug
YXJlIGFibGUgdG8gcmVtb3ZlIH4xNyUKKyAgICAgICAgbW9yZSByZXNvdXJjZXMgZnJvbSB0aGUg
TWVtb3J5Q2FjaGUgb24gc2ltdWxhdGVkIG1lbW9yeSB3YXJuaW5nIHdpdGggdGhpcworICAgICAg
ICBjaGFuZ2UuCisKKyAgICAgICAgUHJ1bmluZyBhcyBtdWNoIGFzIHdlIGNhbiBmcm9tIHRoZSBt
ZW1vcnkgY2FjaGUgb24gY3JpdGljYWwgbWVtb3J5CisgICAgICAgIHByZXNzdXJlIG9yIGJlZm9y
ZSBwcm9jZXNzIHN1c3BlbnNpb24gaXMgbm90IG9ubHkgdXNlZnVsIHRvIGZyZWUgdXAKKyAgICAg
ICAgbWVtb3J5IGJ1dCBhbHNvIHRvIG1ha2Ugcm9vbSBpbiB0aGUgdm5vZGUgdGFibGUgYXMgYSBs
b3Qgb2YKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VzIGFyZSBtbW1hcCdkIGZyb20gdGhlIG5ldHdv
cmsgZGlzayBjYWNoZS4KKworICAgICAgICAqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Ok1lbW9yeVBy
ZXNzdXJlSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OnJlbGVhc2VDcml0aWNhbE1lbW9yeSk6CisKKyAgICAgICAgLSBQYXNzICdzeW5jaHJvbm91cycg
YXJndW1lbnQgc28gdGhhdCB3ZSBrbm93IGlmIHdlIG5lZWQgdG8gZG8gYQorICAgICAgICAgIHN5
bmNocm9ub3VzIEpTIGdhcmJhZ2UgY29sbGVjdGlvbi4KKyAgICAgICAgLSBNb3ZlIGhlcmUgY29k
ZSBmcm9tIGluIHRoZSBDb2NvYSBoYW5kbGVyIHRoYXQgaXMgZG9pbmcgYSBKUyBnYXJiYWdlCisg
ICAgICAgICAgY29sbGVjdGlvbiBhcyB3ZWxsIGFzIGEgc3dlZXAsIGFuZCBtYWtlIHRoaXMgY29k
ZSBjcm9zcy1wbGF0Zm9ybS4KKyAgICAgICAgICBUaGlzIGNvZGUgdXNlZCB0byBiZSBpT1Mgc3Bl
Y2lmaWMgYnV0IEkgc2VlIG5vIHJlYXNvbiB3ZSBzaG91bGRuJ3QKKyAgICAgICAgICBkbyB0aGlz
IG9uIE1hYy4KKworICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxl
YXNlTWVtb3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaDoK
KworICAgICAgICBVc2UgZW51bSBjbGFzcyBhcmd1bWVudHMgZm9yIGNyaXRpY2FsIC8gc3luY2hy
b25vdXMuIFRoZSAnc3luY2hyb25vdXMnCisgICAgICAgIGFyZ3VtZW50IGlzIG5ldyBzbyB0aGF0
IHRoZSBjYWxsIHNpdGUgY2FuIGxldCB1cyBrbm93IGlmIG1lbW9yeSBuZWVkcworICAgICAgICB0
byBiZSBmcmVlZCBzeW5jaHJvbm91c2x5IChlLmcuIGluIGNhc2Ugb2YgaW1taW5lbnQgcHJvY2Vz
cyBzdXNwZW5zaW9uKS4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJl
SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkpOgorCisgICAgICAgIFJlbW92ZSBpT1Mtc3BlY2lmaWMg
Y29kZSB0aGF0IHdhcyBkb2luZyBhIEpTIGdhcmJhZ2UgY29sbGVjdGlvbiBhbmQKKyAgICAgICAg
c3dlZXAgYXMgdGhpcyBjb2RlIGlzIG5vdyBpbiB0aGUgZ2VuZXJpYyBtZW1vcnkgcHJlc3N1cmUg
aGFuZGxlci4KKworICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0
YWxsKToKKworICAgICAgICBPbiBzaW11bGF0ZWQgbWVtb3J5IHByZXNzdXJlLCBzZXQgJ3N5bmNo
cm9ub3VzJyBhcmd1bWVudCB0byBZZXMgc28gdGhhdAorICAgICAgICBhIHN5bmNocm9ub3VzIEdD
IGlzIGRvbmUgYnkgdGhlIGdlbmVyaWMgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIuIFRoaXMKKyAg
ICAgICAgd2F5LCB3ZSBubyBsb25nZXIgbmVlZCB0byBkbyBhIHN5bmMgR0MgYWZ0ZXIgY2FsbGlu
ZyB0aGUgbWVtb3J5IHByZXNzdXJlCisgICAgICAgIGhhbmRsZXIuIFRoaXMgYXZvaWRzIGNvZGUg
ZHVwbGljYXRpb24gYW5kIG1ha2VzIHN1cmUgdGhlIEdDIGlzIGRvbmUKKyAgICAgICAgYmVmb3Jl
IHBydW5pbmcgdGhlIG1lbW9yeSBjYWNoZS4KKworCiAyMDE1LTA2LTAzICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW51cCBhZnRlciByMTg1
MTc1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDAyNzlhYzJjZTViMDUyN2U0MTY3MDdiMTFiZDBkM2Q0YjI5MjU4
MzcuLjY4Y2JjNWQ1ZjRiNTc5NTk5OGMwYjU2MzdiNWRmYWMzYmViZTkxM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNCBAQAorMjAxNS0wNi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9y
eUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9T
dXNwZW5kKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUxvd01lbW9yeUhhbmRsZXIpOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKToKKworICAgICAgICBVcGRhdGUg
bG93IG1lbW9yeSBoYW5kbGVyIHByb3RvdHlwZSB0byBtYXRjaCBXZWJDb3JlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKToKKworICAgICAgICBQYXNzIFN5bmNo
cm9ub3VzOjpZZXMgYXJndW1lbnQgdG8gTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlTWVt
b3J5KCkKKyAgICAgICAgdG8gcmVxdWVzdCB0aGF0IHRoZSBtZW1vcnkgaXMgZnJlZSB1cCBzeW5j
aHJvbm91c2x5IChlLmcuIHN5bmNocm9ub3VzCisgICAgICAgIEpTIGdhcmJhZ2UgY29sbGVjdGlv
bikgYXMgdGhlIHByb2Nlc3MgaXMgYWJvdXQgdG8gYmUgc3VzcGVuZGVkLgorICAgICAgICBQcmV2
aW91c2x5LCB0aGUgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIgd2FzIHRyeWluZyB0byBkZXRlY3Qg
dGhpcyBjYXNlCisgICAgICAgIGJ5IGNoZWNraW5nIGlmIHRoZSBzeXN0ZW0gd2FzIHJlYWxseSB1
bmRlciBtZW1vcnkgcHJlc3N1cmUgYnV0IHRoaXMgd2FzCisgICAgICAgIGEgYml0IGhhY2tpc2gg
YW5kIGl0IHdvdWxkbid0IHdvcmsgaWYgdGhlIHByb2Nlc3MgaGFwcGVuZWQgdG8gZ2V0CisgICAg
ICAgIHN1c3BlbmRlZCB3aGlsZSB0aGUgc3lzdGVtIHdhcyB1bmRlciBtZW1vcnkgcHJlc3N1cmUu
CisKIDIwMTUtMDYtMDIgIEh5dW5nd29vayBMZWUgIDxoeXVuZ3dvb2subGVlQG5hdmVyY29ycC5j
b20+CiAKICAgICAgICAgW0VGTF0gSW1wbGVtZW50IGxvYWRfc3RhcnRlZCBjYWxsYmFjayBpbiBF
d2tQYWdlQ2xpZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNz
dXJlSGFuZGxlci5jcHAKaW5kZXggN2YzYTIxZDZjMzI5MDdiZTgzNGM5ZDk2N2JiZTg5YjVjMTM4
MDFmNy4uMDMyZjM0OWExMWU3OTk4ZThlZGFiMTIxOTVkMDBiMjM4NWEwNTZlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5n
VGhyZWFkLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSW5jcmVtZW50YWxTd2VlcGVyLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CkBAIC01NCw3ICs1NSw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlciYgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpzaW5nbGV0b24oKQogTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXIoKSAKICAgICA6IG1faW5zdGFsbGVkKGZhbHNlKQogICAgICwgbV9sYXN0UmVz
cG9uZFRpbWUoMCkKLSAgICAsIG1fbG93TWVtb3J5SGFuZGxlcihbdGhpc10gKGJvb2wgY3JpdGlj
YWwpIHsgcmVsZWFzZU1lbW9yeShjcml0aWNhbCk7IH0pCisgICAgLCBtX2xvd01lbW9yeUhhbmRs
ZXIoW3RoaXNdIChDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMpIHsg
cmVsZWFzZU1lbW9yeShjcml0aWNhbCwgc3luY2hyb25vdXMpOyB9KQogICAgICwgbV91bmRlck1l
bW9yeVByZXNzdXJlKGZhbHNlKQogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2Fu
IHdlIHNoYXJlIG1vcmUgb2YgdGhpcyB3aXRoIE9wZW5Tb3VyY2U/CkBAIC0xMDAsNyArMTAxLDcg
QEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VOb25jcml0aWNhbE1lbW9yeSgp
CiAgICAgfQogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2Fs
TWVtb3J5KCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1v
cnkoU3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAgICAgewogICAgICAgICBSZWxpZWZMb2dn
ZXIgbG9nKCJFbXB0eSB0aGUgUGFnZUNhY2hlIik7CkBAIC0xMzQsMTIgKzEzNSwyOCBAQCB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KCkKICAgICAgICAg
UmVsaWVmTG9nZ2VyIGxvZygiSW52YWxpZGF0ZSBmb250IGNhY2hlIik7CiAgICAgICAgIEZvbnRD
YWNoZTo6c2luZ2xldG9uKCkuaW52YWxpZGF0ZSgpOwogICAgIH0KKworICAgIGlmIChzeW5jaHJv
bm91cyA9PSBTeW5jaHJvbm91czo6WWVzKSB7CisgICAgICAgIFJlbGllZkxvZ2dlciBsb2coIkNv
bGxlY3RpbmcgSmF2YVNjcmlwdCBnYXJiYWdlIik7CisgICAgICAgIGdjQ29udHJvbGxlcigpLmdh
cmJhZ2VDb2xsZWN0Tm93KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBkbyBhIGdhcmJhZ2Ugc3dlZXAgYW5kIHBydW5lIGRlYWQgcmVzb3VyY2VzIGZyb20gdGhl
IE1lbW9yeUNhY2hlCisgICAgICAgIC8vIGFmdGVyIHRoZSBnYXJiYWdlIGNvbGxlY3Rpb24gaGFz
IGNvbXBsZXRlZCB0byBmcmVlIHVwIG1vcmUgbWVtb3J5LgorICAgICAgICBnY0NvbnRyb2xsZXIo
KS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKKyAgICB9CisKKyAgICAvLyBEbyBhIGZ1bGwgc3dlZXAg
b2YgY29sbGVjdGVkIG9iamVjdHMuCisgICAgeworICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJG
dWxsIEphdmFTY3JpcHQgZ2FyYmFnZSBzd2VlcCIpOworICAgICAgICBKU0M6OkpTTG9ja0hvbGRl
ciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKKyAgICAgICAgSlNET01XaW5kb3c6OmNv
bW1vblZNKCkuaGVhcC5zd2VlcGVyKCktPmZ1bGxTd2VlcCgpOworICAgIH0KIH0KIAotdm9pZCBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkKK3ZvaWQg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlTWVtb3J5KENyaXRpY2FsIGNyaXRpY2FsLCBT
eW5jaHJvbm91cyBzeW5jaHJvbm91cykKIHsKLSAgICBpZiAoY3JpdGljYWwpCi0gICAgICAgIHJl
bGVhc2VDcml0aWNhbE1lbW9yeSgpOworICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVz
KQorICAgICAgICByZWxlYXNlQ3JpdGljYWxNZW1vcnkoc3luY2hyb25vdXMpOwogCiAgICAgcmVs
ZWFzZU5vbmNyaXRpY2FsTWVtb3J5KCk7CiAKQEAgLTE2MCw3ICsxNzcsNyBAQCB2b2lkIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQogdm9pZCBNZW1v
cnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjp1bmluc3RhbGwoKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpob2xkT2Zm
KHVuc2lnbmVkKSB7IH0KLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1v
cnlQcmVzc3VyZShib29sKSB7IH0KK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25k
VG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbCwgU3luY2hyb25vdXMgPSBTeW5jaHJvbm91czo6Tm8p
IHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShi
b29sKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OnBsYXRm
b3JtTG9nKCkgeyB9CiBzaXplX3QgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6
OnBsYXRmb3JtTWVtb3J5VXNhZ2UoKSB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCmluZGV4IGI5YzhjZWMzNTQxYzM4NGM0
YmVkMDNmMzg5ZjE2N2Y3M2M5ZTI1NTUuLjU1NzEwNTg4MTc2YjMzZGMwNjljNjRlMDA1Yjc1YmI4
ZGQ0YTZkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNz
dXJlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJl
SGFuZGxlci5oCkBAIC00OSw3ICs0OSwxMCBAQCBlbnVtIE1lbW9yeVByZXNzdXJlUmVhc29uIHsK
IH07CiAjZW5kaWYKIAotdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCBjcml0aWNhbCk+
IExvd01lbW9yeUhhbmRsZXI7CitlbnVtIGNsYXNzIENyaXRpY2FsIHsgTm8sIFllcyB9OworZW51
bSBjbGFzcyBTeW5jaHJvbm91cyB7IE5vLCBZZXMgfTsKKwordHlwZWRlZiBzdGQ6OmZ1bmN0aW9u
PHZvaWQoQ3JpdGljYWwsIFN5bmNocm9ub3VzKT4gTG93TWVtb3J5SGFuZGxlcjsKIAogY2xhc3Mg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAg
LTEwNywxMSArMTEwLDExIEBAIHB1YmxpYzoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgc19sb2dnaW5nRW5hYmxlZDsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCByZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVsZWFzZU1lbW9yeShDcml0aWNhbCwgU3luY2hyb25vdXMgPSBTeW5jaHJvbm91czo6Tm8pOwog
CiBwcml2YXRlOgogICAgIHZvaWQgcmVsZWFzZU5vbmNyaXRpY2FsTWVtb3J5KCk7Ci0gICAgdm9p
ZCByZWxlYXNlQ3JpdGljYWxNZW1vcnkoKTsKKyAgICB2b2lkIHJlbGVhc2VDcml0aWNhbE1lbW9y
eShTeW5jaHJvbm91cyk7CiAKICAgICB2b2lkIHVuaW5zdGFsbCgpOwogCkBAIC0xMjAsOCArMTIz
LDggQEAgcHJpdmF0ZToKICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKICAgICB+TWVtb3J5
UHJlc3N1cmVIYW5kbGVyKCkgPSBkZWxldGU7CiAKLSAgICB2b2lkIHJlc3BvbmRUb01lbW9yeVBy
ZXNzdXJlKGJvb2wgY3JpdGljYWwpOwotICAgIHZvaWQgcGxhdGZvcm1SZWxlYXNlTWVtb3J5KGJv
b2wgY3JpdGljYWwpOworICAgIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWws
IFN5bmNocm9ub3VzID0gU3luY2hyb25vdXM6Ok5vKTsKKyAgICB2b2lkIHBsYXRmb3JtUmVsZWFz
ZU1lbW9yeShDcml0aWNhbCk7CiAKICAgICBib29sIG1faW5zdGFsbGVkOwogICAgIHRpbWVfdCBt
X2xhc3RSZXNwb25kVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KaW5kZXggMWVlM2I4ZjA0MmM3
MTQyYmJmZjUwYjY4ZDY1MjNhYzI1OWUwNTI5OS4uYTczYjQxYTY1NzE4YzAxYzIyMDg4ZDRmZDlm
NDk1NzQxYjZjYzBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KQEAgLTM0LDcgKzM0LDYgQEAK
ICNpbXBvcnQgIkxheWVyUG9vbC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5jcmVtZW50
YWxTd2VlcGVyLmg+CiAjaW1wb3J0IDxtYWNoL21hY2guaD4KICNpbXBvcnQgPG1hY2gvdGFza19p
bmZvLmg+CiAjaW1wb3J0IDxtYWxsb2MvbWFsbG9jLmg+CkBAIC01MSw3ICs1MCw3IEBAIGV4dGVy
biAiQyIgdm9pZCBfc3FsaXRlM19wdXJnZUVsaWdpYmxlUGFnZXJDYWNoZU1lbW9yeSh2b2lkKTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxh
dGZvcm1SZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpCit2b2lkIE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KENyaXRpY2FsIGNyaXRpY2FsKQogewogICAgIHsK
ICAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUHVyZ2luZyBTUUxpdGUgY2FjaGVzIik7CkBAIC03
MSw3ICs3MCw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VN
ZW1vcnkoYm9vbCBjcml0aWNhbCkKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIGlmIChjcml0aWNhbCAm
JiAhaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpIHsKKyAgICBpZiAoY3JpdGljYWwgPT0gQ3JpdGlj
YWw6OlllcyAmJiAhaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpIHsKICAgICAgICAgLy8gbGliY2Fj
aGUgbGlzdGVucyB0byBPUyBtZW1vcnkgbm90aWZpY2F0aW9ucywgYnV0IGZvciBwcm9jZXNzIHN1
c3BlbnNpb24KICAgICAgICAgLy8gb3IgbWVtb3J5IHByZXNzdXJlIHNpbXVsYXRpb24sIHdlIG5l
ZWQgdG8gcHJvZCBpdCBtYW51YWxseToKICAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUHVyZ2lu
ZyBsaWJjYWNoZSBjYWNoZXMiKTsKQEAgLTgwLDI0ICs3OSw2IEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGNyaXRpY2FsKTsKICNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIGlmIChpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkgewotICAgICAgICBnY0NvbnRyb2xsZXIo
KS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBJZiB3ZSdy
ZSBub3QgdW5kZXIgbWVtb3J5IHByZXNzdXJlLCB0aGF0IG1lYW5zIHdlJ3JlIGhlcmUgZHVlIHRv
IGltcGVuZGluZyBwcm9jZXNzIHN1c3BlbnNpb24uCi0gICAgICAgIC8vIERvIGEgZnVsbCBHQyBz
aW5jZSB0aGlzIGlzIG91ciBsYXN0IGNoYW5jZSB0byBydW4gYW55IGNvZGUuCi0gICAgICAgIFJl
bGllZkxvZ2dlciBsb2coIkNvbGxlY3RpbmcgSmF2YVNjcmlwdCBnYXJiYWdlIik7Ci0gICAgICAg
IGdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7Ci0gICAgfQotCi0gICAgLy8gRG8g
YSBmdWxsIHN3ZWVwIG9mIGNvbGxlY3RlZCBvYmplY3RzLgotICAgIHsKLSAgICAgICAgUmVsaWVm
TG9nZ2VyIGxvZygiRnVsbCBKYXZhU2NyaXB0IGdhcmJhZ2Ugc3dlZXAiKTsKLSAgICAgICAgSlND
OjpKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7Ci0gICAgICAgIEpT
RE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAuc3dlZXBlcigpLT5mdWxsU3dlZXAoKTsKLSAgICB9
Ci0jZW5kaWYKIH0KIAogc3RhdGljIGRpc3BhdGNoX3NvdXJjZV90IF9jYWNoZV9ldmVudF9zb3Vy
Y2UgPSAwOwpAQCAtMTQ3LDcgKzEyOCw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpp
bnN0YWxsKCkKICAgICAgICAgICAgICAgICBpZiAoUmVsaWVmTG9nZ2VyOjpsb2dnaW5nRW5hYmxl
ZCgpKQogICAgICAgICAgICAgICAgICAgICBOU0xvZyhAIkdvdCBtZW1vcnkgcHJlc3N1cmUgbm90
aWZpY2F0aW9uICglcykiLCBjcml0aWNhbCA/ICJjcml0aWNhbCIgOiAibm9uLWNyaXRpY2FsIik7
CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRv
bigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGNyaXRpY2FsKTsKKyAgICAgICAgICAgICAgICBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJl
KGNyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2FsOjpObyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIGRpc3BhdGNoX3Jlc3VtZShfY2FjaGVfZXZlbnRfc291cmNlKTsKICAg
ICAgICAgfQpAQCAtMTU1LDExICsxMzYsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
aW5zdGFsbCgpCiAKICAgICAvLyBBbGxvdyBzaW11bGF0aW9uIG9mIG1lbW9yeSBwcmVzc3VyZSB3
aXRoICJub3RpZnl1dGlsIC1wIG9yZy5XZWJLaXQubG93TWVtb3J5IgogICAgIG5vdGlmeV9yZWdp
c3Rlcl9kaXNwYXRjaCgib3JnLldlYktpdC5sb3dNZW1vcnkiLCAmX25vdGlmeVRva2VuLCBkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKGludCkgewotICAgICAgICBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNpbmdsZXRvbigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKHRydWUpOwotCi0gICAg
ICAgIC8vIFdlIG9ubHkgZG8gYSBzeW5jaHJvbm91cyBHQyB3aGVuICpzaW11bGF0aW5nKiBtZW1v
cnkgcHJlc3N1cmUuCi0gICAgICAgIC8vIFRoaXMgZ2l2ZXMgdXMgYSBtb3JlIGNvbnNpc3RlbnQg
cGljdHVyZSBvZiBsaXZlIG9iamVjdHMgYXQgdGhlIGVuZCBvZiB0ZXN0aW5nLgotICAgICAgICBn
Y0NvbnRyb2xsZXIoKS5nYXJiYWdlQ29sbGVjdE5vdygpOworICAgICAgICBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2FsOjpZ
ZXMsIFN5bmNocm9ub3VzOjpZZXMpOwogCiAgICAgICAgIFdURjo6cmVsZWFzZUZhc3RNYWxsb2NG
cmVlTWVtb3J5KCk7CiAKQEAgLTIxMywxNCArMTkwLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpob2xkT2ZmKHVuc2lnbmVkIHNlY29uZHMpCiAgICAgfSk7CiB9CiAKLXZvaWQgTWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZShib29sIGNyaXRpY2Fs
KQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENy
aXRpY2FsIGNyaXRpY2FsLCBTeW5jaHJvbm91cyBzeW5jaHJvbm91cykKIHsKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIHVuaW5zdGFsbCgpOwogICAgIGRvdWJsZSBzdGFydFRpbWUgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKICNlbmRpZgogCi0gICAgbV9sb3dNZW1vcnlIYW5kbGVy
KGNyaXRpY2FsKTsKKyAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwsIHN5bmNocm9ub3Vz
KTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdW5zaWduZWQgaG9sZE9mZlRpbWUgPSAobW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydFRpbWUpICogc19ob2xkT2ZmTXVsdGlw
bGllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAppbmRleCA4ZjliYzc2ZGM1NDE3ZmZkOTRlYmQwZDE4ZWJiNGVmNzhiMWFjNTM2Li4wZjk0
ZTUyNTkyMWE5Mjk2YmY5Njg4NTkyYTJmMGJmNGI1NTZmZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00OCw3ICs0OCw2IEBA
CiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tp
ZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KQEAgLTE3NSw3ICsxNzQsNyBAQCBBdXRoZW50
aWNhdGlvbk1hbmFnZXImIE5ldHdvcmtQcm9jZXNzOjpkb3dubG9hZHNBdXRoZW50aWNhdGlvbk1h
bmFnZXIoKQogICAgIHJldHVybiBhdXRoZW50aWNhdGlvbk1hbmFnZXIoKTsKIH0KIAotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcihib29sIGNyaXRpY2FsKQordm9pZCBOZXR3
b3JrUHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCBjcml0aWNhbCkKIHsKICAgICBw
bGF0Zm9ybUxvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwpOwogICAgIFdURjo6cmVsZWFzZUZhc3RN
YWxsb2NGcmVlTWVtb3J5KCk7CkBAIC0xODgsNyArMTg3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWUKICAgICBXVEY6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQoKTsKIAogICAg
IGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2lu
Z2xldG9uKCk7Ci0gICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldExvd01lbW9yeUhhbmRsZXIo
W3RoaXNdIChib29sIGNyaXRpY2FsKSB7CisgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldExv
d01lbW9yeUhhbmRsZXIoW3RoaXNdIChDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMpIHsK
ICAgICAgICAgbG93TWVtb3J5SGFuZGxlcihjcml0aWNhbCk7CiAgICAgfSk7CiAgICAgbWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmluc3RhbGwoKTsKQEAgLTUxNiwxMyArNTE1LDEzIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnRlcm1pbmF0ZSgpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NX
aWxsU3VzcGVuZEltbWluZW50bHkoYm9vbCYgaGFuZGxlZCkKIHsKLSAgICBsb3dNZW1vcnlIYW5k
bGVyKHRydWUpOworICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAgICAgaGFu
ZGxlZCA9IHRydWU7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQo
KQogewotICAgIGxvd01lbW9yeUhhbmRsZXIodHJ1ZSk7CisgICAgbG93TWVtb3J5SGFuZGxlcihD
cml0aWNhbDo6WWVzKTsKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKSwgMCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmlu
ZGV4IDdhZGJlMTIyMTAyZDY1MDYyY2M0NDE2YzBjNmVkNTNmZGFmYTliYjEuLmI5ZDZlZDk1ZTk5
OTZjOTYyMGM0ODdjZjJiZGUzZjQwOWZjZjczNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUg
IkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklE
Lmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC05Nyw4
ICs5OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZSgpIG92ZXJyaWRl
OwogICAgIHZvaWQgcGxhdGZvcm1UZXJtaW5hdGUoKTsKIAotICAgIHZvaWQgbG93TWVtb3J5SGFu
ZGxlcihib29sIGNyaXRpY2FsKTsKLSAgICB2b2lkIHBsYXRmb3JtTG93TWVtb3J5SGFuZGxlcihi
b29sIGNyaXRpY2FsKTsKKyAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIoV2ViQ29yZTo6Q3JpdGlj
YWwpOworICAgIHZvaWQgcGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKFdlYkNvcmU6OkNyaXRpY2Fs
KTsKIAogICAgIC8vIENoaWxkUHJvY2VzcwogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplUHJv
Y2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDViNjNkMTI0MmUzZjc4ZWNkN2YwMjFmYzY4MjVh
YjA5MDY3NWQyNWMuLmY0ZWNkZTM1NzQ1NzJhYTMyMTg0Mzc3NjMzNDk3M2NlZTA0YjllYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9j
ZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtMzksNyArMzksNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKGJvb2wp
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUxvd01lbW9yeUhhbmRsZXIoV2ViQ29yZTo6
Q3JpdGljYWwpCiB7CiAgICAgQ0ZVUkxDb25uZWN0aW9uSW52YWxpZGF0ZUNvbm5lY3Rpb25DYWNo
ZSgpOwogICAgIF9DRlVSTENhY2hlUHVyZ2VNZW1vcnlDYWNoZShhZG9wdENGKENGVVJMQ2FjaGVD
b3B5U2hhcmVkVVJMQ2FjaGUoKSkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKaW5kZXggMjIwY2MwZGQwMjQ1ZTc3NDY1MWI1MTVmZjRh
MWE1ZmE0N2EzMTZjYS4uZTMzZGUwMDBiYmUxZWIzZTM4MmFiZjg4Zjc1NGFkYzNmNzExOTE3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCkBA
IC03Myw3ICs3Myw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0
aWFsaXplUHJvY2VzcyhwYXJhbWV0ZXJzKTsKIAogICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFu
ZGxlciA9IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCk7Ci0gICAgbWVtb3J5UHJl
c3N1cmVIYW5kbGVyLnNldExvd01lbW9yeUhhbmRsZXIoW3RoaXNdIChib29sKSB7CisgICAgbWVt
b3J5UHJlc3N1cmVIYW5kbGVyLnNldExvd01lbW9yeUhhbmRsZXIoW3RoaXNdIChDcml0aWNhbCwg
U3luY2hyb25vdXMpIHsKICAgICAgICAgaWYgKHNob3VsZFRlcm1pbmF0ZSgpKQogICAgICAgICAg
ICAgdGVybWluYXRlKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCBhNjEwY2U1N2IwMmMxOTNmMTE4OWRlMzk3MDYyNDUzNmE5YjExMTFjLi4w
NjllYjFmNDBmMjc0OGQ0ZWE0ZTUwZDFjNGE5YjM5ODZhMWEyNTlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTEyMjYsNyArMTIyNiw3IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb25zKCkKIAogdm9pZCBXZWJQcm9j
ZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKFNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9T
dXNwZW5kIHNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5kKQogewotICAgIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVsZWFzZU1lbW9yeSh0cnVlKTsKKyAgICBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJlbGVhc2VNZW1vcnkoQ3JpdGljYWw6
OlllcywgU3luY2hyb25vdXM6Olllcyk7CiAgICAgc2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVu
KHRydWUpOwogCiAgICAgaWYgKG1hcmtBbGxMYXllcnNWb2xhdGlsZUlmUG9zc2libGUoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254247</attachid>
            <date>2015-06-03 22:57:06 -0700</date>
            <delta_ts>2015-06-03 23:19:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145633-20150603225646.patch</filename>
            <type>text/plain</type>
            <size>19399</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThjYmViOGViYmE3YjY5
NDMwZThjNWFmYWQ2YTE2NTNmODdlMGFkNi4uNTk1NTU2NjdlYmRjZmRmMTk5NjcxMDU0MzI3MDVi
YTUyYTE3NjUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE1LTA2LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gUHJ1bmUgbW9yZSBy
ZXNvdXJjZXMgZnJvbSB0aGUgTWVtb3J5Q2FjaGUgYmVmb3JlIHByb2Nlc3Mgc3VzcGVuc2lvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjMzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJ1bmUgbW9y
ZSByZXNvdXJjZXMgZnJvbSB0aGUgTWVtb3J5Q2FjaGUgYmVmb3JlIHByb2Nlc3Mgc3VzcGVuc2lv
biBvcgorICAgICAgICBvbiBzaW11bGF0ZWQgbWVtb3J5IHdhcm5pbmcgYnkgZG9pbmcgYSBzeW5j
aHJvbm91cyBKUyBnYXJiYWdlIGNvbGxlY3Rpb24KKyAgICAgICAgYW5kIHN3ZWVwICpiZWZvcmUq
IHBydW5pbmcgZGVhZCByZXNvdXJjZXMgZnJvbSB0aGUgbWVtb3J5IGNhY2hlLgorICAgICAgICBQ
cmV2aW91c2x5LCB3ZSB3b3VsZCBkbyB0aGUgZ2FyYmFnZSBjb2xsZWN0aW9uIGFmdGVyIHBydW5p
bmcgdGhlCisgICAgICAgIE1lbW9yeUNhY2hlIHdoaWNoIG1lYW50IHRoYXQgYSBsb3Qgb2YgcmVz
b3VyY2VzIGJlY2FtZSBkZWFkIGFmdGVyIHdlCisgICAgICAgIHRyaWVkIHRvIHBydW5lIHRoZW0u
CisKKyAgICAgICAgQXQgdGhlIGVuZCBhIGJhc2ljIGJyb3dzaW5nIG9uIGFwcGxlLmNvbSwgd2Ug
YXJlIGFibGUgdG8gcmVtb3ZlIH4xNyUKKyAgICAgICAgbW9yZSByZXNvdXJjZXMgZnJvbSB0aGUg
TWVtb3J5Q2FjaGUgb24gc2ltdWxhdGVkIG1lbW9yeSB3YXJuaW5nIHdpdGggdGhpcworICAgICAg
ICBjaGFuZ2UuCisKKyAgICAgICAgUHJ1bmluZyBhcyBtdWNoIGFzIHdlIGNhbiBmcm9tIHRoZSBt
ZW1vcnkgY2FjaGUgb24gY3JpdGljYWwgbWVtb3J5CisgICAgICAgIHByZXNzdXJlIG9yIGJlZm9y
ZSBwcm9jZXNzIHN1c3BlbnNpb24gaXMgbm90IG9ubHkgdXNlZnVsIHRvIGZyZWUgdXAKKyAgICAg
ICAgbWVtb3J5IGJ1dCBhbHNvIHRvIG1ha2Ugcm9vbSBpbiB0aGUgdm5vZGUgdGFibGUgYXMgYSBs
b3Qgb2YKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VzIGFyZSBtbW1hcCdkIGZyb20gdGhlIG5ldHdv
cmsgZGlzayBjYWNoZS4KKworICAgICAgICAqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Ok1lbW9yeVBy
ZXNzdXJlSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OnJlbGVhc2VDcml0aWNhbE1lbW9yeSk6CisKKyAgICAgICAgLSBQYXNzICdzeW5jaHJvbm91cycg
YXJndW1lbnQgc28gdGhhdCB3ZSBrbm93IGlmIHdlIG5lZWQgdG8gZG8gYQorICAgICAgICAgIHN5
bmNocm9ub3VzIEpTIGdhcmJhZ2UgY29sbGVjdGlvbi4KKyAgICAgICAgLSBNb3ZlIGhlcmUgY29k
ZSBmcm9tIGluIHRoZSBDb2NvYSBoYW5kbGVyIHRoYXQgaXMgZG9pbmcgYSBKUyBnYXJiYWdlCisg
ICAgICAgICAgY29sbGVjdGlvbiBhcyB3ZWxsIGFzIGEgc3dlZXAsIGFuZCBtYWtlIHRoaXMgY29k
ZSBjcm9zcy1wbGF0Zm9ybS4KKyAgICAgICAgICBUaGlzIGNvZGUgdXNlZCB0byBiZSBpT1Mgc3Bl
Y2lmaWMgYnV0IEkgc2VlIG5vIHJlYXNvbiB3ZSBzaG91bGRuJ3QKKyAgICAgICAgICBkbyB0aGlz
IG9uIE1hYy4KKworICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxl
YXNlTWVtb3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaDoK
KworICAgICAgICBVc2UgZW51bSBjbGFzcyBhcmd1bWVudHMgZm9yIGNyaXRpY2FsIC8gc3luY2hy
b25vdXMuIFRoZSAnc3luY2hyb25vdXMnCisgICAgICAgIGFyZ3VtZW50IGlzIG5ldyBzbyB0aGF0
IHRoZSBjYWxsIHNpdGUgY2FuIGxldCB1cyBrbm93IGlmIG1lbW9yeSBuZWVkcworICAgICAgICB0
byBiZSBmcmVlZCBzeW5jaHJvbm91c2x5IChlLmcuIGluIGNhc2Ugb2YgaW1taW5lbnQgcHJvY2Vz
cyBzdXNwZW5zaW9uKS4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJl
SGFuZGxlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkpOgorCisgICAgICAgIFJlbW92ZSBpT1Mtc3BlY2lmaWMg
Y29kZSB0aGF0IHdhcyBkb2luZyBhIEpTIGdhcmJhZ2UgY29sbGVjdGlvbiBhbmQKKyAgICAgICAg
c3dlZXAgYXMgdGhpcyBjb2RlIGlzIG5vdyBpbiB0aGUgZ2VuZXJpYyBtZW1vcnkgcHJlc3N1cmUg
aGFuZGxlci4KKworICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0
YWxsKToKKworICAgICAgICBPbiBzaW11bGF0ZWQgbWVtb3J5IHByZXNzdXJlLCBzZXQgJ3N5bmNo
cm9ub3VzJyBhcmd1bWVudCB0byBZZXMgc28gdGhhdAorICAgICAgICBhIHN5bmNocm9ub3VzIEdD
IGlzIGRvbmUgYnkgdGhlIGdlbmVyaWMgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIuIFRoaXMKKyAg
ICAgICAgd2F5LCB3ZSBubyBsb25nZXIgbmVlZCB0byBkbyBhIHN5bmMgR0MgYWZ0ZXIgY2FsbGlu
ZyB0aGUgbWVtb3J5IHByZXNzdXJlCisgICAgICAgIGhhbmRsZXIuIFRoaXMgYXZvaWRzIGNvZGUg
ZHVwbGljYXRpb24gYW5kIG1ha2VzIHN1cmUgdGhlIEdDIGlzIGRvbmUKKyAgICAgICAgYmVmb3Jl
IHBydW5pbmcgdGhlIG1lbW9yeSBjYWNoZS4KKworCiAyMDE1LTA2LTAzICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW51cCBhZnRlciByMTg1
MTc1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDAyNzlhYzJjZTViMDUyN2U0MTY3MDdiMTFiZDBkM2Q0YjI5MjU4
MzcuLjY4Y2JjNWQ1ZjRiNTc5NTk5OGMwYjU2MzdiNWRmYWMzYmViZTkxM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNCBAQAorMjAxNS0wNi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9y
eUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcik6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9T
dXNwZW5kKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUxvd01lbW9yeUhhbmRsZXIpOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKToKKworICAgICAgICBVcGRhdGUg
bG93IG1lbW9yeSBoYW5kbGVyIHByb3RvdHlwZSB0byBtYXRjaCBXZWJDb3JlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKToKKworICAgICAgICBQYXNzIFN5bmNo
cm9ub3VzOjpZZXMgYXJndW1lbnQgdG8gTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlTWVt
b3J5KCkKKyAgICAgICAgdG8gcmVxdWVzdCB0aGF0IHRoZSBtZW1vcnkgaXMgZnJlZSB1cCBzeW5j
aHJvbm91c2x5IChlLmcuIHN5bmNocm9ub3VzCisgICAgICAgIEpTIGdhcmJhZ2UgY29sbGVjdGlv
bikgYXMgdGhlIHByb2Nlc3MgaXMgYWJvdXQgdG8gYmUgc3VzcGVuZGVkLgorICAgICAgICBQcmV2
aW91c2x5LCB0aGUgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIgd2FzIHRyeWluZyB0byBkZXRlY3Qg
dGhpcyBjYXNlCisgICAgICAgIGJ5IGNoZWNraW5nIGlmIHRoZSBzeXN0ZW0gd2FzIHJlYWxseSB1
bmRlciBtZW1vcnkgcHJlc3N1cmUgYnV0IHRoaXMgd2FzCisgICAgICAgIGEgYml0IGhhY2tpc2gg
YW5kIGl0IHdvdWxkbid0IHdvcmsgaWYgdGhlIHByb2Nlc3MgaGFwcGVuZWQgdG8gZ2V0CisgICAg
ICAgIHN1c3BlbmRlZCB3aGlsZSB0aGUgc3lzdGVtIHdhcyB1bmRlciBtZW1vcnkgcHJlc3N1cmUu
CisKIDIwMTUtMDYtMDIgIEh5dW5nd29vayBMZWUgIDxoeXVuZ3dvb2subGVlQG5hdmVyY29ycC5j
b20+CiAKICAgICAgICAgW0VGTF0gSW1wbGVtZW50IGxvYWRfc3RhcnRlZCBjYWxsYmFjayBpbiBF
d2tQYWdlQ2xpZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNz
dXJlSGFuZGxlci5jcHAKaW5kZXggN2YzYTIxZDZjMzI5MDdiZTgzNGM5ZDk2N2JiZTg5YjVjMTM4
MDFmNy4uMDMyZjM0OWExMWU3OTk4ZThlZGFiMTIxOTVkMDBiMjM4NWEwNTZlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5n
VGhyZWFkLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSW5jcmVtZW50YWxTd2VlcGVyLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CkBAIC01NCw3ICs1NSw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlciYgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpzaW5nbGV0b24oKQogTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXIoKSAKICAgICA6IG1faW5zdGFsbGVkKGZhbHNlKQogICAgICwgbV9sYXN0UmVz
cG9uZFRpbWUoMCkKLSAgICAsIG1fbG93TWVtb3J5SGFuZGxlcihbdGhpc10gKGJvb2wgY3JpdGlj
YWwpIHsgcmVsZWFzZU1lbW9yeShjcml0aWNhbCk7IH0pCisgICAgLCBtX2xvd01lbW9yeUhhbmRs
ZXIoW3RoaXNdIChDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMpIHsg
cmVsZWFzZU1lbW9yeShjcml0aWNhbCwgc3luY2hyb25vdXMpOyB9KQogICAgICwgbV91bmRlck1l
bW9yeVByZXNzdXJlKGZhbHNlKQogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2Fu
IHdlIHNoYXJlIG1vcmUgb2YgdGhpcyB3aXRoIE9wZW5Tb3VyY2U/CkBAIC0xMDAsNyArMTAxLDcg
QEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VOb25jcml0aWNhbE1lbW9yeSgp
CiAgICAgfQogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2Fs
TWVtb3J5KCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1v
cnkoU3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAgICAgewogICAgICAgICBSZWxpZWZMb2dn
ZXIgbG9nKCJFbXB0eSB0aGUgUGFnZUNhY2hlIik7CkBAIC0xMzQsMTIgKzEzNSwyOCBAQCB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KCkKICAgICAgICAg
UmVsaWVmTG9nZ2VyIGxvZygiSW52YWxpZGF0ZSBmb250IGNhY2hlIik7CiAgICAgICAgIEZvbnRD
YWNoZTo6c2luZ2xldG9uKCkuaW52YWxpZGF0ZSgpOwogICAgIH0KKworICAgIGlmIChzeW5jaHJv
bm91cyA9PSBTeW5jaHJvbm91czo6WWVzKSB7CisgICAgICAgIFJlbGllZkxvZ2dlciBsb2coIkNv
bGxlY3RpbmcgSmF2YVNjcmlwdCBnYXJiYWdlIik7CisgICAgICAgIGdjQ29udHJvbGxlcigpLmdh
cmJhZ2VDb2xsZWN0Tm93KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBkbyBhIGdhcmJhZ2Ugc3dlZXAgYW5kIHBydW5lIGRlYWQgcmVzb3VyY2VzIGZyb20gdGhl
IE1lbW9yeUNhY2hlCisgICAgICAgIC8vIGFmdGVyIHRoZSBnYXJiYWdlIGNvbGxlY3Rpb24gaGFz
IGNvbXBsZXRlZCB0byBmcmVlIHVwIG1vcmUgbWVtb3J5LgorICAgICAgICBnY0NvbnRyb2xsZXIo
KS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKKyAgICB9CisKKyAgICAvLyBEbyBhIGZ1bGwgc3dlZXAg
b2YgY29sbGVjdGVkIG9iamVjdHMuCisgICAgeworICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJG
dWxsIEphdmFTY3JpcHQgZ2FyYmFnZSBzd2VlcCIpOworICAgICAgICBKU0M6OkpTTG9ja0hvbGRl
ciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKKyAgICAgICAgSlNET01XaW5kb3c6OmNv
bW1vblZNKCkuaGVhcC5zd2VlcGVyKCktPmZ1bGxTd2VlcCgpOworICAgIH0KIH0KIAotdm9pZCBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkKK3ZvaWQg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlTWVtb3J5KENyaXRpY2FsIGNyaXRpY2FsLCBT
eW5jaHJvbm91cyBzeW5jaHJvbm91cykKIHsKLSAgICBpZiAoY3JpdGljYWwpCi0gICAgICAgIHJl
bGVhc2VDcml0aWNhbE1lbW9yeSgpOworICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVz
KQorICAgICAgICByZWxlYXNlQ3JpdGljYWxNZW1vcnkoc3luY2hyb25vdXMpOwogCiAgICAgcmVs
ZWFzZU5vbmNyaXRpY2FsTWVtb3J5KCk7CiAKQEAgLTE2MCw3ICsxNzcsNyBAQCB2b2lkIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQogdm9pZCBNZW1v
cnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjp1bmluc3RhbGwoKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpob2xkT2Zm
KHVuc2lnbmVkKSB7IH0KLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1v
cnlQcmVzc3VyZShib29sKSB7IH0KK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25k
VG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbCwgU3luY2hyb25vdXMgPSBTeW5jaHJvbm91czo6Tm8p
IHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShi
b29sKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OnBsYXRm
b3JtTG9nKCkgeyB9CiBzaXplX3QgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6
OnBsYXRmb3JtTWVtb3J5VXNhZ2UoKSB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oCmluZGV4IGI5YzhjZWMzNTQxYzM4NGM0
YmVkMDNmMzg5ZjE2N2Y3M2M5ZTI1NTUuLjU1NzEwNTg4MTc2YjMzZGMwNjljNjRlMDA1Yjc1YmI4
ZGQ0YTZkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNz
dXJlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJl
SGFuZGxlci5oCkBAIC00OSw3ICs0OSwxMCBAQCBlbnVtIE1lbW9yeVByZXNzdXJlUmVhc29uIHsK
IH07CiAjZW5kaWYKIAotdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCBjcml0aWNhbCk+
IExvd01lbW9yeUhhbmRsZXI7CitlbnVtIGNsYXNzIENyaXRpY2FsIHsgTm8sIFllcyB9OworZW51
bSBjbGFzcyBTeW5jaHJvbm91cyB7IE5vLCBZZXMgfTsKKwordHlwZWRlZiBzdGQ6OmZ1bmN0aW9u
PHZvaWQoQ3JpdGljYWwsIFN5bmNocm9ub3VzKT4gTG93TWVtb3J5SGFuZGxlcjsKIAogY2xhc3Mg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAg
LTEwNywxMSArMTEwLDExIEBAIHB1YmxpYzoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgc19sb2dnaW5nRW5hYmxlZDsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCByZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVsZWFzZU1lbW9yeShDcml0aWNhbCwgU3luY2hyb25vdXMgPSBTeW5jaHJvbm91czo6Tm8pOwog
CiBwcml2YXRlOgogICAgIHZvaWQgcmVsZWFzZU5vbmNyaXRpY2FsTWVtb3J5KCk7Ci0gICAgdm9p
ZCByZWxlYXNlQ3JpdGljYWxNZW1vcnkoKTsKKyAgICB2b2lkIHJlbGVhc2VDcml0aWNhbE1lbW9y
eShTeW5jaHJvbm91cyk7CiAKICAgICB2b2lkIHVuaW5zdGFsbCgpOwogCkBAIC0xMjAsOCArMTIz
LDggQEAgcHJpdmF0ZToKICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKTsKICAgICB+TWVtb3J5
UHJlc3N1cmVIYW5kbGVyKCkgPSBkZWxldGU7CiAKLSAgICB2b2lkIHJlc3BvbmRUb01lbW9yeVBy
ZXNzdXJlKGJvb2wgY3JpdGljYWwpOwotICAgIHZvaWQgcGxhdGZvcm1SZWxlYXNlTWVtb3J5KGJv
b2wgY3JpdGljYWwpOworICAgIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWws
IFN5bmNocm9ub3VzID0gU3luY2hyb25vdXM6Ok5vKTsKKyAgICB2b2lkIHBsYXRmb3JtUmVsZWFz
ZU1lbW9yeShDcml0aWNhbCk7CiAKICAgICBib29sIG1faW5zdGFsbGVkOwogICAgIHRpbWVfdCBt
X2xhc3RSZXNwb25kVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KaW5kZXggMWVlM2I4ZjA0MmM3
MTQyYmJmZjUwYjY4ZDY1MjNhYzI1OWUwNTI5OS4uYTczYjQxYTY1NzE4YzAxYzIyMDg4ZDRmZDlm
NDk1NzQxYjZjYzBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0KQEAgLTM0LDcgKzM0LDYgQEAK
ICNpbXBvcnQgIkxheWVyUG9vbC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5jcmVtZW50
YWxTd2VlcGVyLmg+CiAjaW1wb3J0IDxtYWNoL21hY2guaD4KICNpbXBvcnQgPG1hY2gvdGFza19p
bmZvLmg+CiAjaW1wb3J0IDxtYWxsb2MvbWFsbG9jLmg+CkBAIC01MSw3ICs1MCw3IEBAIGV4dGVy
biAiQyIgdm9pZCBfc3FsaXRlM19wdXJnZUVsaWdpYmxlUGFnZXJDYWNoZU1lbW9yeSh2b2lkKTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxh
dGZvcm1SZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpCit2b2lkIE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KENyaXRpY2FsIGNyaXRpY2FsKQogewogICAgIHsK
ICAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUHVyZ2luZyBTUUxpdGUgY2FjaGVzIik7CkBAIC03
MSw3ICs3MCw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VN
ZW1vcnkoYm9vbCBjcml0aWNhbCkKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIGlmIChjcml0aWNhbCAm
JiAhaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpIHsKKyAgICBpZiAoY3JpdGljYWwgPT0gQ3JpdGlj
YWw6OlllcyAmJiAhaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpIHsKICAgICAgICAgLy8gbGliY2Fj
aGUgbGlzdGVucyB0byBPUyBtZW1vcnkgbm90aWZpY2F0aW9ucywgYnV0IGZvciBwcm9jZXNzIHN1
c3BlbnNpb24KICAgICAgICAgLy8gb3IgbWVtb3J5IHByZXNzdXJlIHNpbXVsYXRpb24sIHdlIG5l
ZWQgdG8gcHJvZCBpdCBtYW51YWxseToKICAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUHVyZ2lu
ZyBsaWJjYWNoZSBjYWNoZXMiKTsKQEAgLTgwLDI0ICs3OSw2IEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGNyaXRpY2FsKTsKICNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIGlmIChpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkgewotICAgICAgICBnY0NvbnRyb2xsZXIo
KS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBJZiB3ZSdy
ZSBub3QgdW5kZXIgbWVtb3J5IHByZXNzdXJlLCB0aGF0IG1lYW5zIHdlJ3JlIGhlcmUgZHVlIHRv
IGltcGVuZGluZyBwcm9jZXNzIHN1c3BlbnNpb24uCi0gICAgICAgIC8vIERvIGEgZnVsbCBHQyBz
aW5jZSB0aGlzIGlzIG91ciBsYXN0IGNoYW5jZSB0byBydW4gYW55IGNvZGUuCi0gICAgICAgIFJl
bGllZkxvZ2dlciBsb2coIkNvbGxlY3RpbmcgSmF2YVNjcmlwdCBnYXJiYWdlIik7Ci0gICAgICAg
IGdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7Ci0gICAgfQotCi0gICAgLy8gRG8g
YSBmdWxsIHN3ZWVwIG9mIGNvbGxlY3RlZCBvYmplY3RzLgotICAgIHsKLSAgICAgICAgUmVsaWVm
TG9nZ2VyIGxvZygiRnVsbCBKYXZhU2NyaXB0IGdhcmJhZ2Ugc3dlZXAiKTsKLSAgICAgICAgSlND
OjpKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7Ci0gICAgICAgIEpT
RE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAuc3dlZXBlcigpLT5mdWxsU3dlZXAoKTsKLSAgICB9
Ci0jZW5kaWYKIH0KIAogc3RhdGljIGRpc3BhdGNoX3NvdXJjZV90IF9jYWNoZV9ldmVudF9zb3Vy
Y2UgPSAwOwpAQCAtMTQ3LDcgKzEyOCw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpp
bnN0YWxsKCkKICAgICAgICAgICAgICAgICBpZiAoUmVsaWVmTG9nZ2VyOjpsb2dnaW5nRW5hYmxl
ZCgpKQogICAgICAgICAgICAgICAgICAgICBOU0xvZyhAIkdvdCBtZW1vcnkgcHJlc3N1cmUgbm90
aWZpY2F0aW9uICglcykiLCBjcml0aWNhbCA/ICJjcml0aWNhbCIgOiAibm9uLWNyaXRpY2FsIik7
CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRv
bigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGNyaXRpY2FsKTsKKyAgICAgICAgICAgICAgICBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJl
KGNyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2FsOjpObyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIGRpc3BhdGNoX3Jlc3VtZShfY2FjaGVfZXZlbnRfc291cmNlKTsKICAg
ICAgICAgfQpAQCAtMTU1LDExICsxMzYsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
aW5zdGFsbCgpCiAKICAgICAvLyBBbGxvdyBzaW11bGF0aW9uIG9mIG1lbW9yeSBwcmVzc3VyZSB3
aXRoICJub3RpZnl1dGlsIC1wIG9yZy5XZWJLaXQubG93TWVtb3J5IgogICAgIG5vdGlmeV9yZWdp
c3Rlcl9kaXNwYXRjaCgib3JnLldlYktpdC5sb3dNZW1vcnkiLCAmX25vdGlmeVRva2VuLCBkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKGludCkgewotICAgICAgICBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNpbmdsZXRvbigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKHRydWUpOwotCi0gICAg
ICAgIC8vIFdlIG9ubHkgZG8gYSBzeW5jaHJvbm91cyBHQyB3aGVuICpzaW11bGF0aW5nKiBtZW1v
cnkgcHJlc3N1cmUuCi0gICAgICAgIC8vIFRoaXMgZ2l2ZXMgdXMgYSBtb3JlIGNvbnNpc3RlbnQg
cGljdHVyZSBvZiBsaXZlIG9iamVjdHMgYXQgdGhlIGVuZCBvZiB0ZXN0aW5nLgotICAgICAgICBn
Y0NvbnRyb2xsZXIoKS5nYXJiYWdlQ29sbGVjdE5vdygpOworICAgICAgICBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2FsOjpZ
ZXMsIFN5bmNocm9ub3VzOjpZZXMpOwogCiAgICAgICAgIFdURjo6cmVsZWFzZUZhc3RNYWxsb2NG
cmVlTWVtb3J5KCk7CiAKQEAgLTIxMywxNCArMTkwLDE0IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjpob2xkT2ZmKHVuc2lnbmVkIHNlY29uZHMpCiAgICAgfSk7CiB9CiAKLXZvaWQgTWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZShib29sIGNyaXRpY2Fs
KQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENy
aXRpY2FsIGNyaXRpY2FsLCBTeW5jaHJvbm91cyBzeW5jaHJvbm91cykKIHsKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIHVuaW5zdGFsbCgpOwogICAgIGRvdWJsZSBzdGFydFRpbWUgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKICNlbmRpZgogCi0gICAgbV9sb3dNZW1vcnlIYW5kbGVy
KGNyaXRpY2FsKTsKKyAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwsIHN5bmNocm9ub3Vz
KTsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdW5zaWduZWQgaG9sZE9mZlRpbWUgPSAobW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydFRpbWUpICogc19ob2xkT2ZmTXVsdGlw
bGllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVBy
ZXNzdXJlSGFuZGxlckxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01l
bW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAppbmRleCAyYTFlYmU3ZWY5NWEzNDQxZGU1MGUx
ZGFlZDA1YzIwZWQyN2NiZmIwLi5hNTI1ZWY5MjZiMzFjNGJlM2JjNTQ2OTQyYjhjZGNjMGMyZWM4
NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVz
c3VyZUhhbmRsZXJMaW51eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCkBAIC0xODksMTcgKzE4OSwxNyBAQCB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aG9sZE9mZih1bnNpZ25lZCBzZWNvbmRzKQogICAgIG1f
aG9sZE9mZlRpbWVyLnN0YXJ0T25lU2hvdChzZWNvbmRzKTsKIH0KIAotdm9pZCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGJvb2wgY3JpdGljYWwpCit2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWwg
Y3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQogewogICAgIHVuaW5zdGFsbCgpOwog
CiAgICAgZG91YmxlIHN0YXJ0VGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwot
ICAgIG1fbG93TWVtb3J5SGFuZGxlcihjcml0aWNhbCk7CisgICAgbV9sb3dNZW1vcnlIYW5kbGVy
KGNyaXRpY2FsLCBzeW5jaHJvbm91cyk7CiAgICAgdW5zaWduZWQgaG9sZE9mZlRpbWUgPSAobW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzdGFydFRpbWUpICogc19ob2xkT2ZmTXVsdGlw
bGllcjsKICAgICBob2xkT2ZmKHN0ZDo6bWF4KGhvbGRPZmZUaW1lLCBzX21pbmltdW1Ib2xkT2Zm
VGltZSkpOwogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxlYXNl
TWVtb3J5KGJvb2wpCit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxlYXNl
TWVtb3J5KENyaXRpY2FsKQogewogICAgIFJlbGllZkxvZ2dlciBsb2coIlJ1biBtYWxsb2NfdHJp
bSIpOwogICAgIG1hbGxvY190cmltKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDhmOWJjNzZkYzU0MTdmZmQ5NGViZDBkMThl
YmI0ZWY3OGIxYWM1MzYuLjBmOTRlNTI1OTIxYTkyOTZiZjk2ODg1OTJhMmYwYmY0YjU1NmZlZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbmNsdWRlICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgpAQCAtMTc1
LDcgKzE3NCw3IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgTmV0d29ya1Byb2Nlc3M6OmRvd25s
b2Fkc0F1dGhlbnRpY2F0aW9uTWFuYWdlcigpCiAgICAgcmV0dXJuIGF1dGhlbnRpY2F0aW9uTWFu
YWdlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKGJvb2wg
Y3JpdGljYWwpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2Fs
IGNyaXRpY2FsKQogewogICAgIHBsYXRmb3JtTG93TWVtb3J5SGFuZGxlcihjcml0aWNhbCk7CiAg
ICAgV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkoKTsKQEAgLTE4OCw3ICsxODcsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZQogICAgIFdURjo6c2V0Q3VycmVudFRocmVhZElzVXNl
ckluaXRpYXRlZCgpOwogCiAgICAgYXV0byYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyID0gTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKTsKLSAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIu
c2V0TG93TWVtb3J5SGFuZGxlcihbdGhpc10gKGJvb2wgY3JpdGljYWwpIHsKKyAgICBtZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuc2V0TG93TWVtb3J5SGFuZGxlcihbdGhpc10gKENyaXRpY2FsIGNyaXRp
Y2FsLCBTeW5jaHJvbm91cykgewogICAgICAgICBsb3dNZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsK
ICAgICB9KTsKICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuaW5zdGFsbCgpOwpAQCAtNTE2LDEz
ICs1MTUsMTMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dGVybWluYXRlKCkKIAogdm9pZCBOZXR3
b3JrUHJvY2Vzczo6cHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseShib29sJiBoYW5kbGVkKQog
ewotICAgIGxvd01lbW9yeUhhbmRsZXIodHJ1ZSk7CisgICAgbG93TWVtb3J5SGFuZGxlcihDcml0
aWNhbDo6WWVzKTsKICAgICBoYW5kbGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCgpCiB7Ci0gICAgbG93TWVtb3J5SGFuZGxlcih0cnVlKTsKKyAg
ICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMpOwogICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlByb2Nlc3NSZWFk
eVRvU3VzcGVuZCgpLCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggN2FkYmUxMjIxMDJkNjUwNjJjYzQ0MTZjMGM2ZWQ1M2Zk
YWZhOWJiMS4uYjlkNmVkOTVlOTk5NmM5NjIwYzQ4N2NmMmJkZTNmNDA5ZmNmNzM2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KQEAgLTk3LDggKzk4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
dGVybWluYXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybVRlcm1pbmF0ZSgpOwogCi0g
ICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKGJvb2wgY3JpdGljYWwpOwotICAgIHZvaWQgcGxhdGZv
cm1Mb3dNZW1vcnlIYW5kbGVyKGJvb2wgY3JpdGljYWwpOworICAgIHZvaWQgbG93TWVtb3J5SGFu
ZGxlcihXZWJDb3JlOjpDcml0aWNhbCk7CisgICAgdm9pZCBwbGF0Zm9ybUxvd01lbW9yeUhhbmRs
ZXIoV2ViQ29yZTo6Q3JpdGljYWwpOwogCiAgICAgLy8gQ2hpbGRQcm9jZXNzCiAgICAgdmlydHVh
bCB2b2lkIGluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9u
UGFyYW1ldGVycyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggNWI2M2QxMjQy
ZTNmNzhlY2Q3ZjAyMWZjNjgyNWFiMDkwNjc1ZDI1Yy4uZjRlY2RlMzU3NDU3MmFhMzIxODQzNzc2
MzM0OTczY2VlMDRiOWVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0zOSw3ICszOSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUxv
d01lbW9yeUhhbmRsZXIoYm9vbCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtTG93TWVt
b3J5SGFuZGxlcihXZWJDb3JlOjpDcml0aWNhbCkKIHsKICAgICBDRlVSTENvbm5lY3Rpb25JbnZh
bGlkYXRlQ29ubmVjdGlvbkNhY2hlKCk7CiAgICAgX0NGVVJMQ2FjaGVQdXJnZU1lbW9yeUNhY2hl
KGFkb3B0Q0YoQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSgpKS5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCAyMjBjYzBk
ZDAyNDVlNzc0NjUxYjUxNWZmNGExYTVmYTQ3YTMxNmNhLi5lMzNkZTAwMGJiZTFlYjNlMzgyYWJm
ODhmNzU0YWRjM2Y3MTE5MTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzOjpp
bml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKHBhcmFtZXRlcnMpOwogCiAgICAgYXV0
byYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyID0gTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0
b24oKTsKLSAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0TG93TWVtb3J5SGFuZGxlcihbdGhp
c10gKGJvb2wpIHsKKyAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0TG93TWVtb3J5SGFuZGxl
cihbdGhpc10gKENyaXRpY2FsLCBTeW5jaHJvbm91cykgewogICAgICAgICBpZiAoc2hvdWxkVGVy
bWluYXRlKCkpCiAgICAgICAgICAgICB0ZXJtaW5hdGUoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGE2MTBjZTU3YjAyYzE5M2YxMTg5ZGUz
OTcwNjI0NTM2YTliMTExMWMuLjA2OWViMWY0MGYyNzQ4ZDRlYTRlNTBkMWM0YTliMzk4NmExYTI1
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTIyNiw3
ICsxMjI2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lv
bnMoKQogCiB2b2lkIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNr
bm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQgc2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1
c3BlbmQpCiB7Ci0gICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5yZWxlYXNl
TWVtb3J5KHRydWUpOworICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVs
ZWFzZU1lbW9yeShDcml0aWNhbDo6WWVzLCBTeW5jaHJvbm91czo6WWVzKTsKICAgICBzZXRBbGxM
YXllclRyZWVTdGF0ZXNGcm96ZW4odHJ1ZSk7CiAKICAgICBpZiAobWFya0FsbExheWVyc1ZvbGF0
aWxlSWZQb3NzaWJsZSgpKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254249</attachid>
            <date>2015-06-03 23:19:42 -0700</date>
            <delta_ts>2015-06-03 23:23:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145633-20150603231922.patch</filename>
            <type>text/plain</type>
            <size>21558</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDliYjEzOWJhMDRiNjMzMzY3ZTFlYTNjN2YxOTUwZGMzNDE4YjI1Li41NjhmYzczMWVlYWFhZmY3
OTdjNWI4OWU1OTVmNWQ5NDUwYzJmNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wNi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNhY2hl
IGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIGxvbmdlciBtb3ZlIHByb3RlY3QgSW5jcmVtZW50YWxTd2Vl
cGVyOjpmdWxsU3dlZXAoKSBiZWhpbmQKKyAgICAgICAgVVNFKENGKSBzbyB3ZSBkb24ndCBuZWVk
ICNpZmRlZnMgYXQgY2FsbCBzaXRlcywgc2ltaWxhcmx5IHRvIHdoYXQgaXMKKyAgICAgICAgZG9u
ZSBmb3IgdGhlIHJlc3Qgb2YgdGhlIEluY3JlbWVudGFsU3dlZXBlciBBUEkuCisKKyAgICAgICAg
KiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFs
U3dlZXBlcjo6ZnVsbFN3ZWVwKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5o
OgorCiAyMDE1LTA2LTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2FsbExpbmtTdGF0dXMgc2hvdWxkIHJldHVybiB0YWtlc1Nsb3dQYXRoIGlmIHRoZSBHQyBv
ZnRlbiBjbGVhcmVkIHRoZSBJQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4Y2JlYjhlYmJhN2I2OTQzMGU4YzVh
ZmFkNmExNjUzZjg3ZTBhZDYuLjU5NTU1NjY3ZWJkY2ZkZjE5OTY3MTA1NDMyNzA1YmE1MmExNzY1
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNS0wNi0wMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2Vz
IGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBydW5lIG1vcmUgcmVzb3Vy
Y2VzIGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24gb3IKKyAg
ICAgICAgb24gc2ltdWxhdGVkIG1lbW9yeSB3YXJuaW5nIGJ5IGRvaW5nIGEgc3luY2hyb25vdXMg
SlMgZ2FyYmFnZSBjb2xsZWN0aW9uCisgICAgICAgIGFuZCBzd2VlcCAqYmVmb3JlKiBwcnVuaW5n
IGRlYWQgcmVzb3VyY2VzIGZyb20gdGhlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgUHJldmlvdXNs
eSwgd2Ugd291bGQgZG8gdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBwcnVuaW5nIHRoZQor
ICAgICAgICBNZW1vcnlDYWNoZSB3aGljaCBtZWFudCB0aGF0IGEgbG90IG9mIHJlc291cmNlcyBi
ZWNhbWUgZGVhZCBhZnRlciB3ZQorICAgICAgICB0cmllZCB0byBwcnVuZSB0aGVtLgorCisgICAg
ICAgIEF0IHRoZSBlbmQgYSBiYXNpYyBicm93c2luZyBvbiBhcHBsZS5jb20sIHdlIGFyZSBhYmxl
IHRvIHJlbW92ZSB+MTclCisgICAgICAgIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNh
Y2hlIG9uIHNpbXVsYXRlZCBtZW1vcnkgd2FybmluZyB3aXRoIHRoaXMKKyAgICAgICAgY2hhbmdl
LgorCisgICAgICAgIFBydW5pbmcgYXMgbXVjaCBhcyB3ZSBjYW4gZnJvbSB0aGUgbWVtb3J5IGNh
Y2hlIG9uIGNyaXRpY2FsIG1lbW9yeQorICAgICAgICBwcmVzc3VyZSBvciBiZWZvcmUgcHJvY2Vz
cyBzdXNwZW5zaW9uIGlzIG5vdCBvbmx5IHVzZWZ1bCB0byBmcmVlIHVwCisgICAgICAgIG1lbW9y
eSBidXQgYWxzbyB0byBtYWtlIHJvb20gaW4gdGhlIHZub2RlIHRhYmxlIGFzIGEgbG90IG9mCisg
ICAgICAgIENhY2hlZFJlc291cmNlcyBhcmUgbW1tYXAnZCBmcm9tIHRoZSBuZXR3b3JrIGRpc2sg
Y2FjaGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVzc3VyZUhh
bmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNl
Q3JpdGljYWxNZW1vcnkpOgorCisgICAgICAgIC0gUGFzcyAnc3luY2hyb25vdXMnIGFyZ3VtZW50
IHNvIHRoYXQgd2Uga25vdyBpZiB3ZSBuZWVkIHRvIGRvIGEKKyAgICAgICAgICBzeW5jaHJvbm91
cyBKUyBnYXJiYWdlIGNvbGxlY3Rpb24uCisgICAgICAgIC0gTW92ZSBoZXJlIGNvZGUgZnJvbSBp
biB0aGUgQ29jb2EgaGFuZGxlciB0aGF0IGlzIGRvaW5nIGEgSlMgZ2FyYmFnZQorICAgICAgICAg
IGNvbGxlY3Rpb24gYXMgd2VsbCBhcyBhIHN3ZWVwLCBhbmQgbWFrZSB0aGlzIGNvZGUgY3Jvc3Mt
cGxhdGZvcm0uCisgICAgICAgICAgVGhpcyBjb2RlIHVzZWQgdG8gYmUgaU9TIHNwZWNpZmljIGJ1
dCBJIHNlZSBubyByZWFzb24gd2Ugc2hvdWxkbid0CisgICAgICAgICAgZG8gdGhpcyBvbiBNYWMu
CisKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9y
eSk6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg6CisKKyAgICAg
ICAgVXNlIGVudW0gY2xhc3MgYXJndW1lbnRzIGZvciBjcml0aWNhbCAvIHN5bmNocm9ub3VzLiBU
aGUgJ3N5bmNocm9ub3VzJworICAgICAgICBhcmd1bWVudCBpcyBuZXcgc28gdGhhdCB0aGUgY2Fs
bCBzaXRlIGNhbiBsZXQgdXMga25vdyBpZiBtZW1vcnkgbmVlZHMKKyAgICAgICAgdG8gYmUgZnJl
ZWQgc3luY2hyb25vdXNseSAoZS5nLiBpbiBjYXNlIG9mIGltbWluZW50IHByb2Nlc3Mgc3VzcGVu
c2lvbikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZv
cm1SZWxlYXNlTWVtb3J5KToKKworICAgICAgICBSZW1vdmUgaU9TLXNwZWNpZmljIGNvZGUgdGhh
dCB3YXMgZG9pbmcgYSBKUyBnYXJiYWdlIGNvbGxlY3Rpb24gYW5kCisgICAgICAgIHN3ZWVwIGFz
IHRoaXMgY29kZSBpcyBub3cgaW4gdGhlIGdlbmVyaWMgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIu
CisKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisK
KyAgICAgICAgT24gc2ltdWxhdGVkIG1lbW9yeSBwcmVzc3VyZSwgc2V0ICdzeW5jaHJvbm91cycg
YXJndW1lbnQgdG8gWWVzIHNvIHRoYXQKKyAgICAgICAgYSBzeW5jaHJvbm91cyBHQyBpcyBkb25l
IGJ5IHRoZSBnZW5lcmljIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyLiBUaGlzCisgICAgICAgIHdh
eSwgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gZG8gYSBzeW5jIEdDIGFmdGVyIGNhbGxpbmcgdGhlIG1l
bW9yeSBwcmVzc3VyZQorICAgICAgICBoYW5kbGVyLiBUaGlzIGF2b2lkcyBjb2RlIGR1cGxpY2F0
aW9uIGFuZCBtYWtlcyBzdXJlIHRoZSBHQyBpcyBkb25lCisgICAgICAgIGJlZm9yZSBwcnVuaW5n
IHRoZSBtZW1vcnkgY2FjaGUuCisKKwogMjAxNS0wNi0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFudXAgYWZ0ZXIgcjE4NTE3NS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCAwMjc5YWMyY2U1YjA1MjdlNDE2NzA3YjExYmQwZDNkNGIyOTI1ODM3Li42OGNi
YzVkNWY0YjU3OTU5OThjMGI1NjM3YjVkZmFjM2JlYmU5MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzQgQEAKKzIwMTUtMDYtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV0syXSBQcnVuZSBtb3JlIHJlc291cmNlcyBmcm9tIHRoZSBNZW1vcnlDYWNoZSBi
ZWZvcmUgcHJvY2VzcyBzdXNwZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDU2MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKToKKyAgICAgICAg
KiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisKKyAgICAgICAgVXBkYXRlIGxvdyBtZW1v
cnkgaGFuZGxlciBwcm90b3R5cGUgdG8gbWF0Y2ggV2ViQ29yZSBjaGFuZ2VzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisKKyAgICAgICAgUGFzcyBTeW5jaHJvbm91czo6
WWVzIGFyZ3VtZW50IHRvIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeSgpCisg
ICAgICAgIHRvIHJlcXVlc3QgdGhhdCB0aGUgbWVtb3J5IGlzIGZyZWUgdXAgc3luY2hyb25vdXNs
eSAoZS5nLiBzeW5jaHJvbm91cworICAgICAgICBKUyBnYXJiYWdlIGNvbGxlY3Rpb24pIGFzIHRo
ZSBwcm9jZXNzIGlzIGFib3V0IHRvIGJlIHN1c3BlbmRlZC4KKyAgICAgICAgUHJldmlvdXNseSwg
dGhlIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyIHdhcyB0cnlpbmcgdG8gZGV0ZWN0IHRoaXMgY2Fz
ZQorICAgICAgICBieSBjaGVja2luZyBpZiB0aGUgc3lzdGVtIHdhcyByZWFsbHkgdW5kZXIgbWVt
b3J5IHByZXNzdXJlIGJ1dCB0aGlzIHdhcworICAgICAgICBhIGJpdCBoYWNraXNoIGFuZCBpdCB3
b3VsZG4ndCB3b3JrIGlmIHRoZSBwcm9jZXNzIGhhcHBlbmVkIHRvIGdldAorICAgICAgICBzdXNw
ZW5kZWQgd2hpbGUgdGhlIHN5c3RlbSB3YXMgdW5kZXIgbWVtb3J5IHByZXNzdXJlLgorCiAyMDE1
LTA2LTAyICBIeXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgogCiAg
ICAgICAgIFtFRkxdIEltcGxlbWVudCBsb2FkX3N0YXJ0ZWQgY2FsbGJhY2sgaW4gRXdrUGFnZUNs
aWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVw
ZXIuY3BwCmluZGV4IDNmZjRkOGMzYTA0MDZmZmQ2ZGU5OWJkODhjZGQ0NzNkYTQxYjg4ZDEuLjFl
MTk1N2U0OTBhMDg1OGY3NjEyMmIwMTU4MzA4ZWQ3MDllZmRjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcApAQCAtMTMyLDYgKzEz
MiwxMCBAQCB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6d2lsbEZpbmlzaFN3ZWVwaW5nKCkKIHsK
IH0KIAordm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmZ1bGxTd2VlcCgpCit7Cit9CisKIGJvb2wg
SW5jcmVtZW50YWxTd2VlcGVyOjpzd2VlcE5leHRCbG9jaygpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2Vl
cGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApp
bmRleCBmODEzYTM2ZmFhYzhkNTMzNjkwMWY4MzYxN2RjYTM5MmE1OGFjZDZlLi41OTYyMGEwNDg0
ZDM1ODMwY2UzOGRlN2UzMTJhN2UwNWYyN2NlOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApAQCAtMzksMTEgKzM5LDExIEBAIGNsYXNz
IEluY3JlbWVudGFsU3dlZXBlciA6IHB1YmxpYyBIZWFwVGltZXIgewogcHVibGljOgogI2lmIFVT
RShDRikKICAgICBKU19FWFBPUlRfUFJJVkFURSBJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCosIENG
UnVuTG9vcFJlZik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmdWxsU3dlZXAoKTsKICNl
bHNlCiAgICAgZXhwbGljaXQgSW5jcmVtZW50YWxTd2VlcGVyKFZNKik7CiAjZW5kaWYKIAorICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZnVsbFN3ZWVwKCk7CiAgICAgdm9pZCBzdGFydFN3ZWVw
aW5nKCk7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgZG9Xb3JrKCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmNwcAppbmRleCA3ZjNhMjFkNmMzMjkwN2JlODM0YzlkOTY3YmJlODliNWMxMzgwMWY3Li4w
MzJmMzQ5YTExZTc5OThlOGVkYWIxMjE5NWQwMGIyMzg1YTA1NmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUaHJlYWQu
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bmNyZW1lbnRhbFN3ZWVwZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAg
LTU0LDcgKzU1LDcgQEAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyJiBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnNpbmdsZXRvbigpCiBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcigpIAogICAgIDogbV9pbnN0YWxsZWQoZmFsc2UpCiAgICAgLCBtX2xhc3RSZXNwb25kVGlt
ZSgwKQotICAgICwgbV9sb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoYm9vbCBjcml0aWNhbCkgeyBy
ZWxlYXNlTWVtb3J5KGNyaXRpY2FsKTsgfSkKKyAgICAsIG1fbG93TWVtb3J5SGFuZGxlcihbdGhp
c10gKENyaXRpY2FsIGNyaXRpY2FsLCBTeW5jaHJvbm91cyBzeW5jaHJvbm91cykgeyByZWxlYXNl
TWVtb3J5KGNyaXRpY2FsLCBzeW5jaHJvbm91cyk7IH0pCiAgICAgLCBtX3VuZGVyTWVtb3J5UHJl
c3N1cmUoZmFsc2UpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBDYW4gd2Ugc2hh
cmUgbW9yZSBvZiB0aGlzIHdpdGggT3BlblNvdXJjZT8KQEAgLTEwMCw3ICsxMDEsNyBAQCB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU5vbmNyaXRpY2FsTWVtb3J5KCkKICAgICB9
CiB9CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnko
KQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5j
aHJvbm91cyBzeW5jaHJvbm91cykKIHsKICAgICB7CiAgICAgICAgIFJlbGllZkxvZ2dlciBsb2co
IkVtcHR5IHRoZSBQYWdlQ2FjaGUiKTsKQEAgLTEzNCwxMiArMTM1LDI4IEBAIHZvaWQgTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnkoKQogICAgICAgICBSZWxpZWZM
b2dnZXIgbG9nKCJJbnZhbGlkYXRlIGZvbnQgY2FjaGUiKTsKICAgICAgICAgRm9udENhY2hlOjpz
aW5nbGV0b24oKS5pbnZhbGlkYXRlKCk7CiAgICAgfQorCisgICAgaWYgKHN5bmNocm9ub3VzID09
IFN5bmNocm9ub3VzOjpZZXMpIHsKKyAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiQ29sbGVjdGlu
ZyBKYXZhU2NyaXB0IGdhcmJhZ2UiKTsKKyAgICAgICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNv
bGxlY3ROb3coKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRv
IGEgZ2FyYmFnZSBzd2VlcCBhbmQgcHJ1bmUgZGVhZCByZXNvdXJjZXMgZnJvbSB0aGUgTWVtb3J5
Q2FjaGUKKyAgICAgICAgLy8gYWZ0ZXIgdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBoYXMgY29tcGxl
dGVkIHRvIGZyZWUgdXAgbW9yZSBtZW1vcnkuCisgICAgICAgIGdjQ29udHJvbGxlcigpLmdhcmJh
Z2VDb2xsZWN0U29vbigpOworICAgIH0KKworICAgIC8vIERvIGEgZnVsbCBzd2VlcCBvZiBjb2xs
ZWN0ZWQgb2JqZWN0cy4KKyAgICB7CisgICAgICAgIFJlbGllZkxvZ2dlciBsb2coIkZ1bGwgSmF2
YVNjcmlwdCBnYXJiYWdlIHN3ZWVwIik7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2so
SlNET01XaW5kb3c6OmNvbW1vblZNKCkpOworICAgICAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0o
KS5oZWFwLnN3ZWVwZXIoKS0+ZnVsbFN3ZWVwKCk7CisgICAgfQogfQogCi12b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQordm9pZCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9u
b3VzIHN5bmNocm9ub3VzKQogewotICAgIGlmIChjcml0aWNhbCkKLSAgICAgICAgcmVsZWFzZUNy
aXRpY2FsTWVtb3J5KCk7CisgICAgaWYgKGNyaXRpY2FsID09IENyaXRpY2FsOjpZZXMpCisgICAg
ICAgIHJlbGVhc2VDcml0aWNhbE1lbW9yeShzeW5jaHJvbm91cyk7CiAKICAgICByZWxlYXNlTm9u
Y3JpdGljYWxNZW1vcnkoKTsKIApAQCAtMTYwLDcgKzE3Nyw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpyZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpCiB2b2lkIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6aW5zdGFsbCgpIHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnVu
aW5zdGFsbCgpIHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmhvbGRPZmYodW5zaWdu
ZWQpIHsgfQotdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNz
dXJlKGJvb2wpIHsgfQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9y
eVByZXNzdXJlKENyaXRpY2FsLCBTeW5jaHJvbm91cyA9IFN5bmNocm9ub3VzOjpObykgeyB9CiB2
b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KGJvb2wpIHsg
fQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZvcm1Mb2co
KSB7IH0KIHNpemVfdCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZv
cm1NZW1vcnlVc2FnZSgpIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKaW5kZXggYjljOGNlYzM1NDFjMzg0YzRiZWQwM2Yz
ODlmMTY3ZjczYzllMjU1NS4uNTU3MTA1ODgxNzZiMzNkYzA2OWM2NGUwMDViNzViYjhkZDRhNmRj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmgKQEAgLTQ5LDcgKzQ5LDEwIEBAIGVudW0gTWVtb3J5UHJlc3N1cmVSZWFzb24gewogfTsKICNl
bmRpZgogCi10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sIGNyaXRpY2FsKT4gTG93TWVt
b3J5SGFuZGxlcjsKK2VudW0gY2xhc3MgQ3JpdGljYWwgeyBObywgWWVzIH07CitlbnVtIGNsYXNz
IFN5bmNocm9ub3VzIHsgTm8sIFllcyB9OworCit0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChD
cml0aWNhbCwgU3luY2hyb25vdXMpPiBMb3dNZW1vcnlIYW5kbGVyOwogCiBjbGFzcyBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTA3LDEx
ICsxMTAsMTEgQEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBz
X2xvZ2dpbmdFbmFibGVkOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVh
c2VNZW1vcnkoYm9vbCBjcml0aWNhbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNl
TWVtb3J5KENyaXRpY2FsLCBTeW5jaHJvbm91cyA9IFN5bmNocm9ub3VzOjpObyk7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCByZWxlYXNlTm9uY3JpdGljYWxNZW1vcnkoKTsKLSAgICB2b2lkIHJlbGVh
c2VDcml0aWNhbE1lbW9yeSgpOworICAgIHZvaWQgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KFN5bmNo
cm9ub3VzKTsKIAogICAgIHZvaWQgdW5pbnN0YWxsKCk7CiAKQEAgLTEyMCw4ICsxMjMsOCBAQCBw
cml2YXRlOgogICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcigpOwogICAgIH5NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIoKSA9IGRlbGV0ZTsKIAotICAgIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUo
Ym9vbCBjcml0aWNhbCk7Ci0gICAgdm9pZCBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9vbCBjcml0
aWNhbCk7CisgICAgdm9pZCByZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbCwgU3luY2hy
b25vdXMgPSBTeW5jaHJvbm91czo6Tm8pOworICAgIHZvaWQgcGxhdGZvcm1SZWxlYXNlTWVtb3J5
KENyaXRpY2FsKTsKIAogICAgIGJvb2wgbV9pbnN0YWxsZWQ7CiAgICAgdGltZV90IG1fbGFzdFJl
c3BvbmRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQppbmRleCAxZWUzYjhmMDQyYzcxNDJiYmZm
NTBiNjhkNjUyM2FjMjU5ZTA1Mjk5Li5hNzNiNDFhNjU3MThjMDFjMjIwODhkNGZkOWY0OTU3NDFi
NmNjMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQpAQCAtMzQsNyArMzQsNiBAQAogI2ltcG9y
dCAiTGF5ZXJQb29sLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9JbmNyZW1lbnRhbFN3ZWVw
ZXIuaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8bWFjaC90YXNrX2luZm8uaD4K
ICNpbXBvcnQgPG1hbGxvYy9tYWxsb2MuaD4KQEAgLTUxLDcgKzUwLDcgQEAgZXh0ZXJuICJDIiB2
b2lkIF9zcWxpdGUzX3B1cmdlRWxpZ2libGVQYWdlckNhY2hlTWVtb3J5KHZvaWQpOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJl
bGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpw
bGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwpCiB7CiAgICAgewogICAgICAg
ICBSZWxpZWZMb2dnZXIgbG9nKCJQdXJnaW5nIFNRTGl0ZSBjYWNoZXMiKTsKQEAgLTcxLDcgKzcw
LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShi
b29sIGNyaXRpY2FsKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKGNyaXRpY2FsICYmICFpc1Vu
ZGVyTWVtb3J5UHJlc3N1cmUoKSkgeworICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVz
ICYmICFpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkgewogICAgICAgICAvLyBsaWJjYWNoZSBsaXN0
ZW5zIHRvIE9TIG1lbW9yeSBub3RpZmljYXRpb25zLCBidXQgZm9yIHByb2Nlc3Mgc3VzcGVuc2lv
bgogICAgICAgICAvLyBvciBtZW1vcnkgcHJlc3N1cmUgc2ltdWxhdGlvbiwgd2UgbmVlZCB0byBw
cm9kIGl0IG1hbnVhbGx5OgogICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJQdXJnaW5nIGxpYmNh
Y2hlIGNhY2hlcyIpOwpAQCAtODAsMjQgKzc5LDYgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oY3JpdGljYWwpOwogI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgaWYg
KGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7Ci0gICAgICAgIGdjQ29udHJvbGxlcigpLmdhcmJh
Z2VDb2xsZWN0U29vbigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIElmIHdlJ3JlIG5vdCB1
bmRlciBtZW1vcnkgcHJlc3N1cmUsIHRoYXQgbWVhbnMgd2UncmUgaGVyZSBkdWUgdG8gaW1wZW5k
aW5nIHByb2Nlc3Mgc3VzcGVuc2lvbi4KLSAgICAgICAgLy8gRG8gYSBmdWxsIEdDIHNpbmNlIHRo
aXMgaXMgb3VyIGxhc3QgY2hhbmNlIHRvIHJ1biBhbnkgY29kZS4KLSAgICAgICAgUmVsaWVmTG9n
Z2VyIGxvZygiQ29sbGVjdGluZyBKYXZhU2NyaXB0IGdhcmJhZ2UiKTsKLSAgICAgICAgZ2NDb250
cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3coKTsKLSAgICB9Ci0KLSAgICAvLyBEbyBhIGZ1bGwg
c3dlZXAgb2YgY29sbGVjdGVkIG9iamVjdHMuCi0gICAgewotICAgICAgICBSZWxpZWZMb2dnZXIg
bG9nKCJGdWxsIEphdmFTY3JpcHQgZ2FyYmFnZSBzd2VlcCIpOwotICAgICAgICBKU0M6OkpTTG9j
a0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAgICAgICAgSlNET01XaW5k
b3c6OmNvbW1vblZNKCkuaGVhcC5zd2VlcGVyKCktPmZ1bGxTd2VlcCgpOwotICAgIH0KLSNlbmRp
ZgogfQogCiBzdGF0aWMgZGlzcGF0Y2hfc291cmNlX3QgX2NhY2hlX2V2ZW50X3NvdXJjZSA9IDA7
CkBAIC0xNDcsNyArMTI4LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwo
KQogICAgICAgICAgICAgICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dpbmdFbmFibGVkKCkpCiAg
ICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiR290IG1lbW9yeSBwcmVzc3VyZSBub3RpZmljYXRp
b24gKCVzKSIsIGNyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJub24tY3JpdGljYWwiKTsKICNlbmRp
ZgotICAgICAgICAgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVz
cG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOworICAgICAgICAgICAgICAgIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGlj
YWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKF9jYWNoZV9ldmVudF9zb3VyY2UpOwogICAgICAgICB9
CkBAIC0xNTUsMTEgKzEzNiw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxs
KCkKIAogICAgIC8vIEFsbG93IHNpbXVsYXRpb24gb2YgbWVtb3J5IHByZXNzdXJlIHdpdGggIm5v
dGlmeXV0aWwgLXAgb3JnLldlYktpdC5sb3dNZW1vcnkiCiAgICAgbm90aWZ5X3JlZ2lzdGVyX2Rp
c3BhdGNoKCJvcmcuV2ViS2l0Lmxvd01lbW9yeSIsICZfbm90aWZ5VG9rZW4sIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF4oaW50KSB7Ci0gICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUodHJ1ZSk7Ci0KLSAgICAgICAgLy8g
V2Ugb25seSBkbyBhIHN5bmNocm9ub3VzIEdDIHdoZW4gKnNpbXVsYXRpbmcqIG1lbW9yeSBwcmVz
c3VyZS4KLSAgICAgICAgLy8gVGhpcyBnaXZlcyB1cyBhIG1vcmUgY29uc2lzdGVudCBwaWN0dXJl
IG9mIGxpdmUgb2JqZWN0cyBhdCB0aGUgZW5kIG9mIHRlc3RpbmcuCi0gICAgICAgIGdjQ29udHJv
bGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7CisgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6OlllcywgU3lu
Y2hyb25vdXM6Olllcyk7CiAKICAgICAgICAgV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1v
cnkoKTsKIApAQCAtMjEzLDE0ICsxOTAsMTQgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OmhvbGRPZmYodW5zaWduZWQgc2Vjb25kcykKICAgICB9KTsKIH0KIAotdm9pZCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGJvb2wgY3JpdGljYWwpCit2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWwg
Y3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQogewogI2lmICFQTEFURk9STShJT1Mp
CiAgICAgdW5pbnN0YWxsKCk7CiAgICAgZG91YmxlIHN0YXJ0VGltZSA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKLSAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGlj
YWwpOworICAgIG1fbG93TWVtb3J5SGFuZGxlcihjcml0aWNhbCwgc3luY2hyb25vdXMpOwogCiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICB1bnNpZ25lZCBob2xkT2ZmVGltZSA9IChtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRPZmZNdWx0aXBsaWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyTGludXguY3BwCmluZGV4IDJhMWViZTdlZjk1YTM0NDFkZTUwZTFkYWVkMDVj
MjBlZDI3Y2JmYjAuLmE1MjVlZjkyNmIzMWM0YmUzYmM1NDY5NDJiOGNkY2MwYzJlYzg0YTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFu
ZGxlckxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKQEAgLTE4OSwxNyArMTg5LDE3IEBAIHZvaWQgTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpob2xkT2ZmKHVuc2lnbmVkIHNlY29uZHMpCiAgICAgbV9ob2xkT2Zm
VGltZXIuc3RhcnRPbmVTaG90KHNlY29uZHMpOwogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoYm9vbCBjcml0aWNhbCkKK3ZvaWQgTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbCBjcml0aWNh
bCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAgICAgdW5pbnN0YWxsKCk7CiAKICAgICBk
b3VibGUgc3RhcnRUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgbV9s
b3dNZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsKKyAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGlj
YWwsIHN5bmNocm9ub3VzKTsKICAgICB1bnNpZ25lZCBob2xkT2ZmVGltZSA9IChtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRPZmZNdWx0aXBsaWVyOwog
ICAgIGhvbGRPZmYoc3RkOjptYXgoaG9sZE9mZlRpbWUsIHNfbWluaW11bUhvbGRPZmZUaW1lKSk7
CiB9CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnko
Ym9vbCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnko
Q3JpdGljYWwpCiB7CiAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUnVuIG1hbGxvY190cmltIik7CiAg
ICAgbWFsbG9jX3RyaW0oMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGY5YmM3NmRjNTQxN2ZmZDk0ZWJkMGQxOGViYjRlZjc4
YjFhYzUzNi4uMGY5NGU1MjU5MjFhOTI5NmJmOTY4ODU5MmEyZjBiZjRiNTU2ZmVmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAt
NDgsNyArNDgsNiBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CkBAIC0xNzUsNyArMTc0
LDcgQEAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRzQXV0
aGVudGljYXRpb25NYW5hZ2VyKCkKICAgICByZXR1cm4gYXV0aGVudGljYXRpb25NYW5hZ2VyKCk7
CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoYm9vbCBjcml0aWNh
bCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwgY3JpdGlj
YWwpCiB7CiAgICAgcGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsKICAgICBXVEY6
OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1lCiAgICAgV1RGOjpzZXRDdXJyZW50VGhyZWFkSXNVc2VySW5pdGlh
dGVkKCk7CiAKICAgICBhdXRvJiBtZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnNpbmdsZXRvbigpOwotICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dN
ZW1vcnlIYW5kbGVyKFt0aGlzXSAoYm9vbCBjcml0aWNhbCkgeworICAgIG1lbW9yeVByZXNzdXJl
SGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWwgY3JpdGljYWwsIFN5
bmNocm9ub3VzKSB7CiAgICAgICAgIGxvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwpOwogICAgIH0p
OwogICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5pbnN0YWxsKCk7CkBAIC01MTYsMTMgKzUxNSwx
MyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGUoKQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRsZWQpCiB7Ci0gICAg
bG93TWVtb3J5SGFuZGxlcih0cnVlKTsKKyAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZ
ZXMpOwogICAgIGhhbmRsZWQgPSB0cnVlOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVw
YXJlVG9TdXNwZW5kKCkKIHsKLSAgICBsb3dNZW1vcnlIYW5kbGVyKHRydWUpOworICAgIGxvd01l
bW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNw
ZW5kKCksIDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAppbmRleCA3YWRiZTEyMjEwMmQ2NTA2MmNjNDQxNmMwYzZlZDUzZmRhZmE5YmIx
Li5iOWQ2ZWQ5NWU5OTk2Yzk2MjBjNDg3Y2YyYmRlM2Y0MDlmY2Y3MzY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXJNYXAuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgpAQCAtOTcsOCArOTgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5h
dGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXRmb3JtVGVybWluYXRlKCk7CiAKLSAgICB2b2lk
IGxvd01lbW9yeUhhbmRsZXIoYm9vbCBjcml0aWNhbCk7Ci0gICAgdm9pZCBwbGF0Zm9ybUxvd01l
bW9yeUhhbmRsZXIoYm9vbCBjcml0aWNhbCk7CisgICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKFdl
YkNvcmU6OkNyaXRpY2FsKTsKKyAgICB2b2lkIHBsYXRmb3JtTG93TWVtb3J5SGFuZGxlcihXZWJD
b3JlOjpDcml0aWNhbCk7CiAKICAgICAvLyBDaGlsZFByb2Nlc3MKICAgICB2aXJ0dWFsIHZvaWQg
aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCA1YjYzZDEyNDJlM2Y3OGVj
ZDdmMDIxZmM2ODI1YWIwOTA2NzVkMjVjLi5mNGVjZGUzNTc0NTcyYWEzMjE4NDM3NzYzMzQ5NzNj
ZWUwNGI5ZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtTG93TWVtb3J5
SGFuZGxlcihib29sKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1vcnlIYW5k
bGVyKFdlYkNvcmU6OkNyaXRpY2FsKQogewogICAgIENGVVJMQ29ubmVjdGlvbkludmFsaWRhdGVD
b25uZWN0aW9uQ2FjaGUoKTsKICAgICBfQ0ZVUkxDYWNoZVB1cmdlTWVtb3J5Q2FjaGUoYWRvcHRD
RihDRlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCkpLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCmluZGV4IDIyMGNjMGRkMDI0NWU3
NzQ2NTFiNTE1ZmY0YTFhNWZhNDdhMzE2Y2EuLmUzM2RlMDAwYmJlMWViM2UzODJhYmY4OGY3NTRh
ZGMzZjcxMTkxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxp
emVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycwogICAg
IHBsYXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3MocGFyYW1ldGVycyk7CiAKICAgICBhdXRvJiBtZW1v
cnlQcmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpOwot
ICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoYm9v
bCkgeworICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlz
XSAoQ3JpdGljYWwsIFN5bmNocm9ub3VzKSB7CiAgICAgICAgIGlmIChzaG91bGRUZXJtaW5hdGUo
KSkKICAgICAgICAgICAgIHRlcm1pbmF0ZSgpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTYxMGNlNTdiMDJjMTkzZjExODlkZTM5NzA2MjQ1
MzZhOWIxMTExYy4uMDY5ZWIxZjQwZjI3NDhkNGVhNGU1MGQxYzRhOWIzOTg2YTFhMjU5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMjI2LDcgKzEyMjYs
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9ucygpCiAK
IHZvaWQgV2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZChTaG91bGRBY2tub3dsZWRn
ZVdoZW5SZWFkeVRvU3VzcGVuZCBzaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCkK
IHsKLSAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJlbGVhc2VNZW1vcnko
dHJ1ZSk7CisgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5yZWxlYXNlTWVt
b3J5KENyaXRpY2FsOjpZZXMsIFN5bmNocm9ub3VzOjpZZXMpOwogICAgIHNldEFsbExheWVyVHJl
ZVN0YXRlc0Zyb3plbih0cnVlKTsKIAogICAgIGlmIChtYXJrQWxsTGF5ZXJzVm9sYXRpbGVJZlBv
c3NpYmxlKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254251</attachid>
            <date>2015-06-03 23:23:22 -0700</date>
            <delta_ts>2015-06-03 23:26:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145633-20150603232302.patch</filename>
            <type>text/plain</type>
            <size>21954</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDliYjEzOWJhMDRiNjMzMzY3ZTFlYTNjN2YxOTUwZGMzNDE4YjI1Li41NjhmYzczMWVlYWFhZmY3
OTdjNWI4OWU1OTVmNWQ5NDUwYzJmNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wNi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNhY2hl
IGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIGxvbmdlciBtb3ZlIHByb3RlY3QgSW5jcmVtZW50YWxTd2Vl
cGVyOjpmdWxsU3dlZXAoKSBiZWhpbmQKKyAgICAgICAgVVNFKENGKSBzbyB3ZSBkb24ndCBuZWVk
ICNpZmRlZnMgYXQgY2FsbCBzaXRlcywgc2ltaWxhcmx5IHRvIHdoYXQgaXMKKyAgICAgICAgZG9u
ZSBmb3IgdGhlIHJlc3Qgb2YgdGhlIEluY3JlbWVudGFsU3dlZXBlciBBUEkuCisKKyAgICAgICAg
KiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFs
U3dlZXBlcjo6ZnVsbFN3ZWVwKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5o
OgorCiAyMDE1LTA2LTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2FsbExpbmtTdGF0dXMgc2hvdWxkIHJldHVybiB0YWtlc1Nsb3dQYXRoIGlmIHRoZSBHQyBv
ZnRlbiBjbGVhcmVkIHRoZSBJQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4Y2JlYjhlYmJhN2I2OTQzMGU4YzVh
ZmFkNmExNjUzZjg3ZTBhZDYuLjU5NTU1NjY3ZWJkY2ZkZjE5OTY3MTA1NDMyNzA1YmE1MmExNzY1
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNS0wNi0wMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2Vz
IGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBydW5lIG1vcmUgcmVzb3Vy
Y2VzIGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24gb3IKKyAg
ICAgICAgb24gc2ltdWxhdGVkIG1lbW9yeSB3YXJuaW5nIGJ5IGRvaW5nIGEgc3luY2hyb25vdXMg
SlMgZ2FyYmFnZSBjb2xsZWN0aW9uCisgICAgICAgIGFuZCBzd2VlcCAqYmVmb3JlKiBwcnVuaW5n
IGRlYWQgcmVzb3VyY2VzIGZyb20gdGhlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgUHJldmlvdXNs
eSwgd2Ugd291bGQgZG8gdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBwcnVuaW5nIHRoZQor
ICAgICAgICBNZW1vcnlDYWNoZSB3aGljaCBtZWFudCB0aGF0IGEgbG90IG9mIHJlc291cmNlcyBi
ZWNhbWUgZGVhZCBhZnRlciB3ZQorICAgICAgICB0cmllZCB0byBwcnVuZSB0aGVtLgorCisgICAg
ICAgIEF0IHRoZSBlbmQgYSBiYXNpYyBicm93c2luZyBvbiBhcHBsZS5jb20sIHdlIGFyZSBhYmxl
IHRvIHJlbW92ZSB+MTclCisgICAgICAgIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNh
Y2hlIG9uIHNpbXVsYXRlZCBtZW1vcnkgd2FybmluZyB3aXRoIHRoaXMKKyAgICAgICAgY2hhbmdl
LgorCisgICAgICAgIFBydW5pbmcgYXMgbXVjaCBhcyB3ZSBjYW4gZnJvbSB0aGUgbWVtb3J5IGNh
Y2hlIG9uIGNyaXRpY2FsIG1lbW9yeQorICAgICAgICBwcmVzc3VyZSBvciBiZWZvcmUgcHJvY2Vz
cyBzdXNwZW5zaW9uIGlzIG5vdCBvbmx5IHVzZWZ1bCB0byBmcmVlIHVwCisgICAgICAgIG1lbW9y
eSBidXQgYWxzbyB0byBtYWtlIHJvb20gaW4gdGhlIHZub2RlIHRhYmxlIGFzIGEgbG90IG9mCisg
ICAgICAgIENhY2hlZFJlc291cmNlcyBhcmUgbW1tYXAnZCBmcm9tIHRoZSBuZXR3b3JrIGRpc2sg
Y2FjaGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVzc3VyZUhh
bmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNl
Q3JpdGljYWxNZW1vcnkpOgorCisgICAgICAgIC0gUGFzcyAnc3luY2hyb25vdXMnIGFyZ3VtZW50
IHNvIHRoYXQgd2Uga25vdyBpZiB3ZSBuZWVkIHRvIGRvIGEKKyAgICAgICAgICBzeW5jaHJvbm91
cyBKUyBnYXJiYWdlIGNvbGxlY3Rpb24uCisgICAgICAgIC0gTW92ZSBoZXJlIGNvZGUgZnJvbSBp
biB0aGUgQ29jb2EgaGFuZGxlciB0aGF0IGlzIGRvaW5nIGEgSlMgZ2FyYmFnZQorICAgICAgICAg
IGNvbGxlY3Rpb24gYXMgd2VsbCBhcyBhIHN3ZWVwLCBhbmQgbWFrZSB0aGlzIGNvZGUgY3Jvc3Mt
cGxhdGZvcm0uCisgICAgICAgICAgVGhpcyBjb2RlIHVzZWQgdG8gYmUgaU9TIHNwZWNpZmljIGJ1
dCBJIHNlZSBubyByZWFzb24gd2Ugc2hvdWxkbid0CisgICAgICAgICAgZG8gdGhpcyBvbiBNYWMu
CisKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9y
eSk6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg6CisKKyAgICAg
ICAgVXNlIGVudW0gY2xhc3MgYXJndW1lbnRzIGZvciBjcml0aWNhbCAvIHN5bmNocm9ub3VzLiBU
aGUgJ3N5bmNocm9ub3VzJworICAgICAgICBhcmd1bWVudCBpcyBuZXcgc28gdGhhdCB0aGUgY2Fs
bCBzaXRlIGNhbiBsZXQgdXMga25vdyBpZiBtZW1vcnkgbmVlZHMKKyAgICAgICAgdG8gYmUgZnJl
ZWQgc3luY2hyb25vdXNseSAoZS5nLiBpbiBjYXNlIG9mIGltbWluZW50IHByb2Nlc3Mgc3VzcGVu
c2lvbikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZv
cm1SZWxlYXNlTWVtb3J5KToKKworICAgICAgICBSZW1vdmUgaU9TLXNwZWNpZmljIGNvZGUgdGhh
dCB3YXMgZG9pbmcgYSBKUyBnYXJiYWdlIGNvbGxlY3Rpb24gYW5kCisgICAgICAgIHN3ZWVwIGFz
IHRoaXMgY29kZSBpcyBub3cgaW4gdGhlIGdlbmVyaWMgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIu
CisKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisK
KyAgICAgICAgT24gc2ltdWxhdGVkIG1lbW9yeSBwcmVzc3VyZSwgc2V0ICdzeW5jaHJvbm91cycg
YXJndW1lbnQgdG8gWWVzIHNvIHRoYXQKKyAgICAgICAgYSBzeW5jaHJvbm91cyBHQyBpcyBkb25l
IGJ5IHRoZSBnZW5lcmljIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyLiBUaGlzCisgICAgICAgIHdh
eSwgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gZG8gYSBzeW5jIEdDIGFmdGVyIGNhbGxpbmcgdGhlIG1l
bW9yeSBwcmVzc3VyZQorICAgICAgICBoYW5kbGVyLiBUaGlzIGF2b2lkcyBjb2RlIGR1cGxpY2F0
aW9uIGFuZCBtYWtlcyBzdXJlIHRoZSBHQyBpcyBkb25lCisgICAgICAgIGJlZm9yZSBwcnVuaW5n
IHRoZSBtZW1vcnkgY2FjaGUuCisKKwogMjAxNS0wNi0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFudXAgYWZ0ZXIgcjE4NTE3NS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCAwMjc5YWMyY2U1YjA1MjdlNDE2NzA3YjExYmQwZDNkNGIyOTI1ODM3Li42OGNi
YzVkNWY0YjU3OTU5OThjMGI1NjM3YjVkZmFjM2JlYmU5MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzQgQEAKKzIwMTUtMDYtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV0syXSBQcnVuZSBtb3JlIHJlc291cmNlcyBmcm9tIHRoZSBNZW1vcnlDYWNoZSBi
ZWZvcmUgcHJvY2VzcyBzdXNwZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDU2MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKToKKyAgICAgICAg
KiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisKKyAgICAgICAgVXBkYXRlIGxvdyBtZW1v
cnkgaGFuZGxlciBwcm90b3R5cGUgdG8gbWF0Y2ggV2ViQ29yZSBjaGFuZ2VzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisKKyAgICAgICAgUGFzcyBTeW5jaHJvbm91czo6
WWVzIGFyZ3VtZW50IHRvIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeSgpCisg
ICAgICAgIHRvIHJlcXVlc3QgdGhhdCB0aGUgbWVtb3J5IGlzIGZyZWUgdXAgc3luY2hyb25vdXNs
eSAoZS5nLiBzeW5jaHJvbm91cworICAgICAgICBKUyBnYXJiYWdlIGNvbGxlY3Rpb24pIGFzIHRo
ZSBwcm9jZXNzIGlzIGFib3V0IHRvIGJlIHN1c3BlbmRlZC4KKyAgICAgICAgUHJldmlvdXNseSwg
dGhlIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyIHdhcyB0cnlpbmcgdG8gZGV0ZWN0IHRoaXMgY2Fz
ZQorICAgICAgICBieSBjaGVja2luZyBpZiB0aGUgc3lzdGVtIHdhcyByZWFsbHkgdW5kZXIgbWVt
b3J5IHByZXNzdXJlIGJ1dCB0aGlzIHdhcworICAgICAgICBhIGJpdCBoYWNraXNoIGFuZCBpdCB3
b3VsZG4ndCB3b3JrIGlmIHRoZSBwcm9jZXNzIGhhcHBlbmVkIHRvIGdldAorICAgICAgICBzdXNw
ZW5kZWQgd2hpbGUgdGhlIHN5c3RlbSB3YXMgdW5kZXIgbWVtb3J5IHByZXNzdXJlLgorCiAyMDE1
LTA2LTAyICBIeXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgogCiAg
ICAgICAgIFtFRkxdIEltcGxlbWVudCBsb2FkX3N0YXJ0ZWQgY2FsbGJhY2sgaW4gRXdrUGFnZUNs
aWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVw
ZXIuY3BwCmluZGV4IDNmZjRkOGMzYTA0MDZmZmQ2ZGU5OWJkODhjZGQ0NzNkYTQxYjg4ZDEuLjFl
MTk1N2U0OTBhMDg1OGY3NjEyMmIwMTU4MzA4ZWQ3MDllZmRjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcApAQCAtMTMyLDYgKzEz
MiwxMCBAQCB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6d2lsbEZpbmlzaFN3ZWVwaW5nKCkKIHsK
IH0KIAordm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmZ1bGxTd2VlcCgpCit7Cit9CisKIGJvb2wg
SW5jcmVtZW50YWxTd2VlcGVyOjpzd2VlcE5leHRCbG9jaygpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2Vl
cGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApp
bmRleCBmODEzYTM2ZmFhYzhkNTMzNjkwMWY4MzYxN2RjYTM5MmE1OGFjZDZlLi41OTYyMGEwNDg0
ZDM1ODMwY2UzOGRlN2UzMTJhN2UwNWYyN2NlOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApAQCAtMzksMTEgKzM5LDExIEBAIGNsYXNz
IEluY3JlbWVudGFsU3dlZXBlciA6IHB1YmxpYyBIZWFwVGltZXIgewogcHVibGljOgogI2lmIFVT
RShDRikKICAgICBKU19FWFBPUlRfUFJJVkFURSBJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCosIENG
UnVuTG9vcFJlZik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmdWxsU3dlZXAoKTsKICNl
bHNlCiAgICAgZXhwbGljaXQgSW5jcmVtZW50YWxTd2VlcGVyKFZNKik7CiAjZW5kaWYKIAorICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZnVsbFN3ZWVwKCk7CiAgICAgdm9pZCBzdGFydFN3ZWVw
aW5nKCk7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgZG9Xb3JrKCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmNwcAppbmRleCA3ZjNhMjFkNmMzMjkwN2JlODM0YzlkOTY3YmJlODliNWMxMzgwMWY3Li4w
MzJmMzQ5YTExZTc5OThlOGVkYWIxMjE5NWQwMGIyMzg1YTA1NmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUaHJlYWQu
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bmNyZW1lbnRhbFN3ZWVwZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAg
LTU0LDcgKzU1LDcgQEAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyJiBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnNpbmdsZXRvbigpCiBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcigpIAogICAgIDogbV9pbnN0YWxsZWQoZmFsc2UpCiAgICAgLCBtX2xhc3RSZXNwb25kVGlt
ZSgwKQotICAgICwgbV9sb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoYm9vbCBjcml0aWNhbCkgeyBy
ZWxlYXNlTWVtb3J5KGNyaXRpY2FsKTsgfSkKKyAgICAsIG1fbG93TWVtb3J5SGFuZGxlcihbdGhp
c10gKENyaXRpY2FsIGNyaXRpY2FsLCBTeW5jaHJvbm91cyBzeW5jaHJvbm91cykgeyByZWxlYXNl
TWVtb3J5KGNyaXRpY2FsLCBzeW5jaHJvbm91cyk7IH0pCiAgICAgLCBtX3VuZGVyTWVtb3J5UHJl
c3N1cmUoZmFsc2UpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBDYW4gd2Ugc2hh
cmUgbW9yZSBvZiB0aGlzIHdpdGggT3BlblNvdXJjZT8KQEAgLTEwMCw3ICsxMDEsNyBAQCB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU5vbmNyaXRpY2FsTWVtb3J5KCkKICAgICB9
CiB9CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnko
KQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5j
aHJvbm91cyBzeW5jaHJvbm91cykKIHsKICAgICB7CiAgICAgICAgIFJlbGllZkxvZ2dlciBsb2co
IkVtcHR5IHRoZSBQYWdlQ2FjaGUiKTsKQEAgLTEzNCwxMiArMTM1LDI4IEBAIHZvaWQgTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnkoKQogICAgICAgICBSZWxpZWZM
b2dnZXIgbG9nKCJJbnZhbGlkYXRlIGZvbnQgY2FjaGUiKTsKICAgICAgICAgRm9udENhY2hlOjpz
aW5nbGV0b24oKS5pbnZhbGlkYXRlKCk7CiAgICAgfQorCisgICAgaWYgKHN5bmNocm9ub3VzID09
IFN5bmNocm9ub3VzOjpZZXMpIHsKKyAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiQ29sbGVjdGlu
ZyBKYXZhU2NyaXB0IGdhcmJhZ2UiKTsKKyAgICAgICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNv
bGxlY3ROb3coKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRv
IGEgZ2FyYmFnZSBzd2VlcCBhbmQgcHJ1bmUgZGVhZCByZXNvdXJjZXMgZnJvbSB0aGUgTWVtb3J5
Q2FjaGUKKyAgICAgICAgLy8gYWZ0ZXIgdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBoYXMgY29tcGxl
dGVkIHRvIGZyZWUgdXAgbW9yZSBtZW1vcnkuCisgICAgICAgIGdjQ29udHJvbGxlcigpLmdhcmJh
Z2VDb2xsZWN0U29vbigpOworICAgIH0KKworICAgIC8vIERvIGEgZnVsbCBzd2VlcCBvZiBjb2xs
ZWN0ZWQgb2JqZWN0cy4KKyAgICB7CisgICAgICAgIFJlbGllZkxvZ2dlciBsb2coIkZ1bGwgSmF2
YVNjcmlwdCBnYXJiYWdlIHN3ZWVwIik7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2so
SlNET01XaW5kb3c6OmNvbW1vblZNKCkpOworICAgICAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0o
KS5oZWFwLnN3ZWVwZXIoKS0+ZnVsbFN3ZWVwKCk7CisgICAgfQogfQogCi12b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQordm9pZCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9u
b3VzIHN5bmNocm9ub3VzKQogewotICAgIGlmIChjcml0aWNhbCkKLSAgICAgICAgcmVsZWFzZUNy
aXRpY2FsTWVtb3J5KCk7CisgICAgaWYgKGNyaXRpY2FsID09IENyaXRpY2FsOjpZZXMpCisgICAg
ICAgIHJlbGVhc2VDcml0aWNhbE1lbW9yeShzeW5jaHJvbm91cyk7CiAKICAgICByZWxlYXNlTm9u
Y3JpdGljYWxNZW1vcnkoKTsKIApAQCAtMTYwLDcgKzE3Nyw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpyZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpCiB2b2lkIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6aW5zdGFsbCgpIHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnVu
aW5zdGFsbCgpIHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmhvbGRPZmYodW5zaWdu
ZWQpIHsgfQotdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNz
dXJlKGJvb2wpIHsgfQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9y
eVByZXNzdXJlKENyaXRpY2FsLCBTeW5jaHJvbm91cyA9IFN5bmNocm9ub3VzOjpObykgeyB9CiB2
b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KGJvb2wpIHsg
fQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZvcm1Mb2co
KSB7IH0KIHNpemVfdCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZv
cm1NZW1vcnlVc2FnZSgpIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKaW5kZXggYjljOGNlYzM1NDFjMzg0YzRiZWQwM2Yz
ODlmMTY3ZjczYzllMjU1NS4uNTU3MTA1ODgxNzZiMzNkYzA2OWM2NGUwMDViNzViYjhkZDRhNmRj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmgKQEAgLTQ5LDcgKzQ5LDEwIEBAIGVudW0gTWVtb3J5UHJlc3N1cmVSZWFzb24gewogfTsKICNl
bmRpZgogCi10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sIGNyaXRpY2FsKT4gTG93TWVt
b3J5SGFuZGxlcjsKK2VudW0gY2xhc3MgQ3JpdGljYWwgeyBObywgWWVzIH07CitlbnVtIGNsYXNz
IFN5bmNocm9ub3VzIHsgTm8sIFllcyB9OworCit0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChD
cml0aWNhbCwgU3luY2hyb25vdXMpPiBMb3dNZW1vcnlIYW5kbGVyOwogCiBjbGFzcyBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTA3LDEx
ICsxMTAsMTEgQEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBz
X2xvZ2dpbmdFbmFibGVkOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVh
c2VNZW1vcnkoYm9vbCBjcml0aWNhbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNl
TWVtb3J5KENyaXRpY2FsLCBTeW5jaHJvbm91cyA9IFN5bmNocm9ub3VzOjpObyk7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCByZWxlYXNlTm9uY3JpdGljYWxNZW1vcnkoKTsKLSAgICB2b2lkIHJlbGVh
c2VDcml0aWNhbE1lbW9yeSgpOworICAgIHZvaWQgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KFN5bmNo
cm9ub3VzKTsKIAogICAgIHZvaWQgdW5pbnN0YWxsKCk7CiAKQEAgLTEyMCw4ICsxMjMsOCBAQCBw
cml2YXRlOgogICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcigpOwogICAgIH5NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIoKSA9IGRlbGV0ZTsKIAotICAgIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUo
Ym9vbCBjcml0aWNhbCk7Ci0gICAgdm9pZCBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9vbCBjcml0
aWNhbCk7CisgICAgdm9pZCByZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbCwgU3luY2hy
b25vdXMgPSBTeW5jaHJvbm91czo6Tm8pOworICAgIHZvaWQgcGxhdGZvcm1SZWxlYXNlTWVtb3J5
KENyaXRpY2FsKTsKIAogICAgIGJvb2wgbV9pbnN0YWxsZWQ7CiAgICAgdGltZV90IG1fbGFzdFJl
c3BvbmRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQppbmRleCAxZWUzYjhmMDQyYzcxNDJiYmZm
NTBiNjhkNjUyM2FjMjU5ZTA1Mjk5Li5hNzNiNDFhNjU3MThjMDFjMjIwODhkNGZkOWY0OTU3NDFi
NmNjMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQpAQCAtMzQsNyArMzQsNiBAQAogI2ltcG9y
dCAiTGF5ZXJQb29sLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9JbmNyZW1lbnRhbFN3ZWVw
ZXIuaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8bWFjaC90YXNrX2luZm8uaD4K
ICNpbXBvcnQgPG1hbGxvYy9tYWxsb2MuaD4KQEAgLTUxLDcgKzUwLDcgQEAgZXh0ZXJuICJDIiB2
b2lkIF9zcWxpdGUzX3B1cmdlRWxpZ2libGVQYWdlckNhY2hlTWVtb3J5KHZvaWQpOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJl
bGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpw
bGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwpCiB7CiAgICAgewogICAgICAg
ICBSZWxpZWZMb2dnZXIgbG9nKCJQdXJnaW5nIFNRTGl0ZSBjYWNoZXMiKTsKQEAgLTcxLDcgKzcw
LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShi
b29sIGNyaXRpY2FsKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKGNyaXRpY2FsICYmICFpc1Vu
ZGVyTWVtb3J5UHJlc3N1cmUoKSkgeworICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVz
ICYmICFpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkgewogICAgICAgICAvLyBsaWJjYWNoZSBsaXN0
ZW5zIHRvIE9TIG1lbW9yeSBub3RpZmljYXRpb25zLCBidXQgZm9yIHByb2Nlc3Mgc3VzcGVuc2lv
bgogICAgICAgICAvLyBvciBtZW1vcnkgcHJlc3N1cmUgc2ltdWxhdGlvbiwgd2UgbmVlZCB0byBw
cm9kIGl0IG1hbnVhbGx5OgogICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJQdXJnaW5nIGxpYmNh
Y2hlIGNhY2hlcyIpOwpAQCAtODAsMjQgKzc5LDYgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oY3JpdGljYWwpOwogI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgaWYg
KGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7Ci0gICAgICAgIGdjQ29udHJvbGxlcigpLmdhcmJh
Z2VDb2xsZWN0U29vbigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIElmIHdlJ3JlIG5vdCB1
bmRlciBtZW1vcnkgcHJlc3N1cmUsIHRoYXQgbWVhbnMgd2UncmUgaGVyZSBkdWUgdG8gaW1wZW5k
aW5nIHByb2Nlc3Mgc3VzcGVuc2lvbi4KLSAgICAgICAgLy8gRG8gYSBmdWxsIEdDIHNpbmNlIHRo
aXMgaXMgb3VyIGxhc3QgY2hhbmNlIHRvIHJ1biBhbnkgY29kZS4KLSAgICAgICAgUmVsaWVmTG9n
Z2VyIGxvZygiQ29sbGVjdGluZyBKYXZhU2NyaXB0IGdhcmJhZ2UiKTsKLSAgICAgICAgZ2NDb250
cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3coKTsKLSAgICB9Ci0KLSAgICAvLyBEbyBhIGZ1bGwg
c3dlZXAgb2YgY29sbGVjdGVkIG9iamVjdHMuCi0gICAgewotICAgICAgICBSZWxpZWZMb2dnZXIg
bG9nKCJGdWxsIEphdmFTY3JpcHQgZ2FyYmFnZSBzd2VlcCIpOwotICAgICAgICBKU0M6OkpTTG9j
a0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAgICAgICAgSlNET01XaW5k
b3c6OmNvbW1vblZNKCkuaGVhcC5zd2VlcGVyKCktPmZ1bGxTd2VlcCgpOwotICAgIH0KLSNlbmRp
ZgogfQogCiBzdGF0aWMgZGlzcGF0Y2hfc291cmNlX3QgX2NhY2hlX2V2ZW50X3NvdXJjZSA9IDA7
CkBAIC0xNDcsNyArMTI4LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwo
KQogICAgICAgICAgICAgICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dpbmdFbmFibGVkKCkpCiAg
ICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiR290IG1lbW9yeSBwcmVzc3VyZSBub3RpZmljYXRp
b24gKCVzKSIsIGNyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJub24tY3JpdGljYWwiKTsKICNlbmRp
ZgotICAgICAgICAgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVz
cG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOworICAgICAgICAgICAgICAgIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGlj
YWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKF9jYWNoZV9ldmVudF9zb3VyY2UpOwogICAgICAgICB9
CkBAIC0xNTUsMTEgKzEzNiw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxs
KCkKIAogICAgIC8vIEFsbG93IHNpbXVsYXRpb24gb2YgbWVtb3J5IHByZXNzdXJlIHdpdGggIm5v
dGlmeXV0aWwgLXAgb3JnLldlYktpdC5sb3dNZW1vcnkiCiAgICAgbm90aWZ5X3JlZ2lzdGVyX2Rp
c3BhdGNoKCJvcmcuV2ViS2l0Lmxvd01lbW9yeSIsICZfbm90aWZ5VG9rZW4sIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF4oaW50KSB7Ci0gICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUodHJ1ZSk7Ci0KLSAgICAgICAgLy8g
V2Ugb25seSBkbyBhIHN5bmNocm9ub3VzIEdDIHdoZW4gKnNpbXVsYXRpbmcqIG1lbW9yeSBwcmVz
c3VyZS4KLSAgICAgICAgLy8gVGhpcyBnaXZlcyB1cyBhIG1vcmUgY29uc2lzdGVudCBwaWN0dXJl
IG9mIGxpdmUgb2JqZWN0cyBhdCB0aGUgZW5kIG9mIHRlc3RpbmcuCi0gICAgICAgIGdjQ29udHJv
bGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7CisgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6OlllcywgU3lu
Y2hyb25vdXM6Olllcyk7CiAKICAgICAgICAgV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1v
cnkoKTsKIApAQCAtMjEzLDE0ICsxOTAsMTQgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OmhvbGRPZmYodW5zaWduZWQgc2Vjb25kcykKICAgICB9KTsKIH0KIAotdm9pZCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGJvb2wgY3JpdGljYWwpCit2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWwg
Y3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQogewogI2lmICFQTEFURk9STShJT1Mp
CiAgICAgdW5pbnN0YWxsKCk7CiAgICAgZG91YmxlIHN0YXJ0VGltZSA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKLSAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGlj
YWwpOworICAgIG1fbG93TWVtb3J5SGFuZGxlcihjcml0aWNhbCwgc3luY2hyb25vdXMpOwogCiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICB1bnNpZ25lZCBob2xkT2ZmVGltZSA9IChtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRPZmZNdWx0aXBsaWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyTGludXguY3BwCmluZGV4IDJhMWViZTdlZjk1YTM0NDFkZTUwZTFkYWVkMDVj
MjBlZDI3Y2JmYjAuLmVhNjE5MDkxNzYxYTUxN2Q1YTAxMTQ2MWI1NWFkOTY4YWYxYzAwYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFu
ZGxlckxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6d2FpdEZvck1lbW9yeVByZXNzdXJlRXZlbnQodm9pZCopCiAKICAgICBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnNldFVuZGVyTWVtb3J5UHJlc3N1cmUo
Y3JpdGljYWwpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NyaXRpY2FsXSB7Ci0gICAgICAgIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUo
Y3JpdGljYWwpOworICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJl
c3BvbmRUb01lbW9yeVByZXNzdXJlKGNyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2Fs
OjpObyk7CiAgICAgfSk7CiB9CiAKQEAgLTE4OSwxNyArMTg5LDE3IEBAIHZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpob2xkT2ZmKHVuc2lnbmVkIHNlY29uZHMpCiAgICAgbV9ob2xkT2ZmVGlt
ZXIuc3RhcnRPbmVTaG90KHNlY29uZHMpOwogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoYm9vbCBjcml0aWNhbCkKK3ZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbCBjcml0aWNhbCwg
U3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAgICAgdW5pbnN0YWxsKCk7CiAKICAgICBkb3Vi
bGUgc3RhcnRUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgbV9sb3dN
ZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsKKyAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGljYWws
IHN5bmNocm9ub3VzKTsKICAgICB1bnNpZ25lZCBob2xkT2ZmVGltZSA9IChtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRPZmZNdWx0aXBsaWVyOwogICAg
IGhvbGRPZmYoc3RkOjptYXgoaG9sZE9mZlRpbWUsIHNfbWluaW11bUhvbGRPZmZUaW1lKSk7CiB9
CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9v
bCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3Jp
dGljYWwpCiB7CiAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUnVuIG1hbGxvY190cmltIik7CiAgICAg
bWFsbG9jX3RyaW0oMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGY5YmM3NmRjNTQxN2ZmZDk0ZWJkMGQxOGViYjRlZjc4YjFh
YzUzNi4uMGY5NGU1MjU5MjFhOTI5NmJmOTY4ODU5MmEyZjBiZjRiNTU2ZmVmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDgs
NyArNDgsNiBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CkBAIC0xNzUsNyArMTc0LDcg
QEAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRzQXV0aGVu
dGljYXRpb25NYW5hZ2VyKCkKICAgICByZXR1cm4gYXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CiB9
CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoYm9vbCBjcml0aWNhbCkK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwgY3JpdGljYWwp
CiB7CiAgICAgcGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsKICAgICBXVEY6OnJl
bGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1lCiAgICAgV1RGOjpzZXRDdXJyZW50VGhyZWFkSXNVc2VySW5pdGlhdGVk
KCk7CiAKICAgICBhdXRvJiBtZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNpbmdsZXRvbigpOwotICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1v
cnlIYW5kbGVyKFt0aGlzXSAoYm9vbCBjcml0aWNhbCkgeworICAgIG1lbW9yeVByZXNzdXJlSGFu
ZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNo
cm9ub3VzKSB7CiAgICAgICAgIGxvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwpOwogICAgIH0pOwog
ICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5pbnN0YWxsKCk7CkBAIC01MTYsMTMgKzUxNSwxMyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGUoKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
Ojpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRsZWQpCiB7Ci0gICAgbG93
TWVtb3J5SGFuZGxlcih0cnVlKTsKKyAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMp
OwogICAgIGhhbmRsZWQgPSB0cnVlOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKCkKIHsKLSAgICBsb3dNZW1vcnlIYW5kbGVyKHRydWUpOworICAgIGxvd01lbW9y
eUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5k
KCksIDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCA3YWRiZTEyMjEwMmQ2NTA2MmNjNDQxNmMwYzZlZDUzZmRhZmE5YmIxLi5i
OWQ2ZWQ5NWU5OTk2Yzk2MjBjNDg3Y2YyYmRlM2Y0MDlmY2Y3MzY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJN
YXAuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgpAQCAtOTcsOCArOTgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGUo
KSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXRmb3JtVGVybWluYXRlKCk7CiAKLSAgICB2b2lkIGxv
d01lbW9yeUhhbmRsZXIoYm9vbCBjcml0aWNhbCk7Ci0gICAgdm9pZCBwbGF0Zm9ybUxvd01lbW9y
eUhhbmRsZXIoYm9vbCBjcml0aWNhbCk7CisgICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKFdlYkNv
cmU6OkNyaXRpY2FsKTsKKyAgICB2b2lkIHBsYXRmb3JtTG93TWVtb3J5SGFuZGxlcihXZWJDb3Jl
OjpDcml0aWNhbCk7CiAKICAgICAvLyBDaGlsZFByb2Nlc3MKICAgICB2aXJ0dWFsIHZvaWQgaW5p
dGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCA1YjYzZDEyNDJlM2Y3OGVjZDdm
MDIxZmM2ODI1YWIwOTA2NzVkMjVjLi5mNGVjZGUzNTc0NTcyYWEzMjE4NDM3NzYzMzQ5NzNjZWUw
NGI5ZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtTG93TWVtb3J5SGFu
ZGxlcihib29sKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVy
KFdlYkNvcmU6OkNyaXRpY2FsKQogewogICAgIENGVVJMQ29ubmVjdGlvbkludmFsaWRhdGVDb25u
ZWN0aW9uQ2FjaGUoKTsKICAgICBfQ0ZVUkxDYWNoZVB1cmdlTWVtb3J5Q2FjaGUoYWRvcHRDRihD
RlVSTENhY2hlQ29weVNoYXJlZFVSTENhY2hlKCkpLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCmluZGV4IDIyMGNjMGRkMDI0NWU3NzQ2
NTFiNTE1ZmY0YTFhNWZhNDdhMzE2Y2EuLmUzM2RlMDAwYmJlMWViM2UzODJhYmY4OGY3NTRhZGMz
ZjcxMTkxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQ
cm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycwogICAgIHBs
YXRmb3JtSW5pdGlhbGl6ZVByb2Nlc3MocGFyYW1ldGVycyk7CiAKICAgICBhdXRvJiBtZW1vcnlQ
cmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpOwotICAg
IG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoYm9vbCkg
eworICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAo
Q3JpdGljYWwsIFN5bmNocm9ub3VzKSB7CiAgICAgICAgIGlmIChzaG91bGRUZXJtaW5hdGUoKSkK
ICAgICAgICAgICAgIHRlcm1pbmF0ZSgpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTYxMGNlNTdiMDJjMTkzZjExODlkZTM5NzA2MjQ1MzZh
OWIxMTExYy4uMDY5ZWIxZjQwZjI3NDhkNGVhNGU1MGQxYzRhOWIzOTg2YTFhMjU5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMjI2LDcgKzEyMjYsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9ucygpCiAKIHZv
aWQgV2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZChTaG91bGRBY2tub3dsZWRnZVdo
ZW5SZWFkeVRvU3VzcGVuZCBzaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCkKIHsK
LSAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJlbGVhc2VNZW1vcnkodHJ1
ZSk7CisgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5yZWxlYXNlTWVtb3J5
KENyaXRpY2FsOjpZZXMsIFN5bmNocm9ub3VzOjpZZXMpOwogICAgIHNldEFsbExheWVyVHJlZVN0
YXRlc0Zyb3plbih0cnVlKTsKIAogICAgIGlmIChtYXJrQWxsTGF5ZXJzVm9sYXRpbGVJZlBvc3Np
YmxlKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254253</attachid>
            <date>2015-06-03 23:26:14 -0700</date>
            <delta_ts>2015-06-04 10:12:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145633-20150603232554.patch</filename>
            <type>text/plain</type>
            <size>22187</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDliYjEzOWJhMDRiNjMzMzY3ZTFlYTNjN2YxOTUwZGMzNDE4YjI1Li41NjhmYzczMWVlYWFhZmY3
OTdjNWI4OWU1OTVmNWQ5NDUwYzJmNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wNi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNhY2hl
IGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIGxvbmdlciBtb3ZlIHByb3RlY3QgSW5jcmVtZW50YWxTd2Vl
cGVyOjpmdWxsU3dlZXAoKSBiZWhpbmQKKyAgICAgICAgVVNFKENGKSBzbyB3ZSBkb24ndCBuZWVk
ICNpZmRlZnMgYXQgY2FsbCBzaXRlcywgc2ltaWxhcmx5IHRvIHdoYXQgaXMKKyAgICAgICAgZG9u
ZSBmb3IgdGhlIHJlc3Qgb2YgdGhlIEluY3JlbWVudGFsU3dlZXBlciBBUEkuCisKKyAgICAgICAg
KiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFs
U3dlZXBlcjo6ZnVsbFN3ZWVwKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5o
OgorCiAyMDE1LTA2LTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2FsbExpbmtTdGF0dXMgc2hvdWxkIHJldHVybiB0YWtlc1Nsb3dQYXRoIGlmIHRoZSBHQyBv
ZnRlbiBjbGVhcmVkIHRoZSBJQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4Y2JlYjhlYmJhN2I2OTQzMGU4YzVh
ZmFkNmExNjUzZjg3ZTBhZDYuLjU5NTU1NjY3ZWJkY2ZkZjE5OTY3MTA1NDMyNzA1YmE1MmExNzY1
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNS0wNi0wMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2Vz
IGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBydW5lIG1vcmUgcmVzb3Vy
Y2VzIGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24gb3IKKyAg
ICAgICAgb24gc2ltdWxhdGVkIG1lbW9yeSB3YXJuaW5nIGJ5IGRvaW5nIGEgc3luY2hyb25vdXMg
SlMgZ2FyYmFnZSBjb2xsZWN0aW9uCisgICAgICAgIGFuZCBzd2VlcCAqYmVmb3JlKiBwcnVuaW5n
IGRlYWQgcmVzb3VyY2VzIGZyb20gdGhlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgUHJldmlvdXNs
eSwgd2Ugd291bGQgZG8gdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBwcnVuaW5nIHRoZQor
ICAgICAgICBNZW1vcnlDYWNoZSB3aGljaCBtZWFudCB0aGF0IGEgbG90IG9mIHJlc291cmNlcyBi
ZWNhbWUgZGVhZCBhZnRlciB3ZQorICAgICAgICB0cmllZCB0byBwcnVuZSB0aGVtLgorCisgICAg
ICAgIEF0IHRoZSBlbmQgYSBiYXNpYyBicm93c2luZyBvbiBhcHBsZS5jb20sIHdlIGFyZSBhYmxl
IHRvIHJlbW92ZSB+MTclCisgICAgICAgIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNh
Y2hlIG9uIHNpbXVsYXRlZCBtZW1vcnkgd2FybmluZyB3aXRoIHRoaXMKKyAgICAgICAgY2hhbmdl
LgorCisgICAgICAgIFBydW5pbmcgYXMgbXVjaCBhcyB3ZSBjYW4gZnJvbSB0aGUgbWVtb3J5IGNh
Y2hlIG9uIGNyaXRpY2FsIG1lbW9yeQorICAgICAgICBwcmVzc3VyZSBvciBiZWZvcmUgcHJvY2Vz
cyBzdXNwZW5zaW9uIGlzIG5vdCBvbmx5IHVzZWZ1bCB0byBmcmVlIHVwCisgICAgICAgIG1lbW9y
eSBidXQgYWxzbyB0byBtYWtlIHJvb20gaW4gdGhlIHZub2RlIHRhYmxlIGFzIGEgbG90IG9mCisg
ICAgICAgIENhY2hlZFJlc291cmNlcyBhcmUgbW1tYXAnZCBmcm9tIHRoZSBuZXR3b3JrIGRpc2sg
Y2FjaGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVzc3VyZUhh
bmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNl
Q3JpdGljYWxNZW1vcnkpOgorCisgICAgICAgIC0gUGFzcyAnc3luY2hyb25vdXMnIGFyZ3VtZW50
IHNvIHRoYXQgd2Uga25vdyBpZiB3ZSBuZWVkIHRvIGRvIGEKKyAgICAgICAgICBzeW5jaHJvbm91
cyBKUyBnYXJiYWdlIGNvbGxlY3Rpb24uCisgICAgICAgIC0gTW92ZSBoZXJlIGNvZGUgZnJvbSBp
biB0aGUgQ29jb2EgaGFuZGxlciB0aGF0IGlzIGRvaW5nIGEgSlMgZ2FyYmFnZQorICAgICAgICAg
IGNvbGxlY3Rpb24gYXMgd2VsbCBhcyBhIHN3ZWVwLCBhbmQgbWFrZSB0aGlzIGNvZGUgY3Jvc3Mt
cGxhdGZvcm0uCisgICAgICAgICAgVGhpcyBjb2RlIHVzZWQgdG8gYmUgaU9TIHNwZWNpZmljIGJ1
dCBJIHNlZSBubyByZWFzb24gd2Ugc2hvdWxkbid0CisgICAgICAgICAgZG8gdGhpcyBvbiBNYWMu
CisKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9y
eSk6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg6CisKKyAgICAg
ICAgVXNlIGVudW0gY2xhc3MgYXJndW1lbnRzIGZvciBjcml0aWNhbCAvIHN5bmNocm9ub3VzLiBU
aGUgJ3N5bmNocm9ub3VzJworICAgICAgICBhcmd1bWVudCBpcyBuZXcgc28gdGhhdCB0aGUgY2Fs
bCBzaXRlIGNhbiBsZXQgdXMga25vdyBpZiBtZW1vcnkgbmVlZHMKKyAgICAgICAgdG8gYmUgZnJl
ZWQgc3luY2hyb25vdXNseSAoZS5nLiBpbiBjYXNlIG9mIGltbWluZW50IHByb2Nlc3Mgc3VzcGVu
c2lvbikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZv
cm1SZWxlYXNlTWVtb3J5KToKKworICAgICAgICBSZW1vdmUgaU9TLXNwZWNpZmljIGNvZGUgdGhh
dCB3YXMgZG9pbmcgYSBKUyBnYXJiYWdlIGNvbGxlY3Rpb24gYW5kCisgICAgICAgIHN3ZWVwIGFz
IHRoaXMgY29kZSBpcyBub3cgaW4gdGhlIGdlbmVyaWMgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIu
CisKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisK
KyAgICAgICAgT24gc2ltdWxhdGVkIG1lbW9yeSBwcmVzc3VyZSwgc2V0ICdzeW5jaHJvbm91cycg
YXJndW1lbnQgdG8gWWVzIHNvIHRoYXQKKyAgICAgICAgYSBzeW5jaHJvbm91cyBHQyBpcyBkb25l
IGJ5IHRoZSBnZW5lcmljIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyLiBUaGlzCisgICAgICAgIHdh
eSwgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gZG8gYSBzeW5jIEdDIGFmdGVyIGNhbGxpbmcgdGhlIG1l
bW9yeSBwcmVzc3VyZQorICAgICAgICBoYW5kbGVyLiBUaGlzIGF2b2lkcyBjb2RlIGR1cGxpY2F0
aW9uIGFuZCBtYWtlcyBzdXJlIHRoZSBHQyBpcyBkb25lCisgICAgICAgIGJlZm9yZSBwcnVuaW5n
IHRoZSBtZW1vcnkgY2FjaGUuCisKKwogMjAxNS0wNi0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFudXAgYWZ0ZXIgcjE4NTE3NS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCAwMjc5YWMyY2U1YjA1MjdlNDE2NzA3YjExYmQwZDNkNGIyOTI1ODM3Li42OGNi
YzVkNWY0YjU3OTU5OThjMGI1NjM3YjVkZmFjM2JlYmU5MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzQgQEAKKzIwMTUtMDYtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV0syXSBQcnVuZSBtb3JlIHJlc291cmNlcyBmcm9tIHRoZSBNZW1vcnlDYWNoZSBi
ZWZvcmUgcHJvY2VzcyBzdXNwZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDU2MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKToKKyAgICAgICAg
KiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Qcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyk6CisKKyAgICAgICAgVXBkYXRlIGxvdyBtZW1v
cnkgaGFuZGxlciBwcm90b3R5cGUgdG8gbWF0Y2ggV2ViQ29yZSBjaGFuZ2VzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisKKyAgICAgICAgUGFzcyBTeW5jaHJvbm91czo6
WWVzIGFyZ3VtZW50IHRvIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeSgpCisg
ICAgICAgIHRvIHJlcXVlc3QgdGhhdCB0aGUgbWVtb3J5IGlzIGZyZWUgdXAgc3luY2hyb25vdXNs
eSAoZS5nLiBzeW5jaHJvbm91cworICAgICAgICBKUyBnYXJiYWdlIGNvbGxlY3Rpb24pIGFzIHRo
ZSBwcm9jZXNzIGlzIGFib3V0IHRvIGJlIHN1c3BlbmRlZC4KKyAgICAgICAgUHJldmlvdXNseSwg
dGhlIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyIHdhcyB0cnlpbmcgdG8gZGV0ZWN0IHRoaXMgY2Fz
ZQorICAgICAgICBieSBjaGVja2luZyBpZiB0aGUgc3lzdGVtIHdhcyByZWFsbHkgdW5kZXIgbWVt
b3J5IHByZXNzdXJlIGJ1dCB0aGlzIHdhcworICAgICAgICBhIGJpdCBoYWNraXNoIGFuZCBpdCB3
b3VsZG4ndCB3b3JrIGlmIHRoZSBwcm9jZXNzIGhhcHBlbmVkIHRvIGdldAorICAgICAgICBzdXNw
ZW5kZWQgd2hpbGUgdGhlIHN5c3RlbSB3YXMgdW5kZXIgbWVtb3J5IHByZXNzdXJlLgorCiAyMDE1
LTA2LTAyICBIeXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgogCiAg
ICAgICAgIFtFRkxdIEltcGxlbWVudCBsb2FkX3N0YXJ0ZWQgY2FsbGJhY2sgaW4gRXdrUGFnZUNs
aWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVw
ZXIuY3BwCmluZGV4IDNmZjRkOGMzYTA0MDZmZmQ2ZGU5OWJkODhjZGQ0NzNkYTQxYjg4ZDEuLjFl
MTk1N2U0OTBhMDg1OGY3NjEyMmIwMTU4MzA4ZWQ3MDllZmRjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcApAQCAtMTMyLDYgKzEz
MiwxMCBAQCB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6d2lsbEZpbmlzaFN3ZWVwaW5nKCkKIHsK
IH0KIAordm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmZ1bGxTd2VlcCgpCit7Cit9CisKIGJvb2wg
SW5jcmVtZW50YWxTd2VlcGVyOjpzd2VlcE5leHRCbG9jaygpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2Vl
cGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApp
bmRleCBmODEzYTM2ZmFhYzhkNTMzNjkwMWY4MzYxN2RjYTM5MmE1OGFjZDZlLi41OTYyMGEwNDg0
ZDM1ODMwY2UzOGRlN2UzMTJhN2UwNWYyN2NlOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApAQCAtMzksMTEgKzM5LDExIEBAIGNsYXNz
IEluY3JlbWVudGFsU3dlZXBlciA6IHB1YmxpYyBIZWFwVGltZXIgewogcHVibGljOgogI2lmIFVT
RShDRikKICAgICBKU19FWFBPUlRfUFJJVkFURSBJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCosIENG
UnVuTG9vcFJlZik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBmdWxsU3dlZXAoKTsKICNl
bHNlCiAgICAgZXhwbGljaXQgSW5jcmVtZW50YWxTd2VlcGVyKFZNKik7CiAjZW5kaWYKIAorICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZnVsbFN3ZWVwKCk7CiAgICAgdm9pZCBzdGFydFN3ZWVw
aW5nKCk7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgZG9Xb3JrKCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmNwcAppbmRleCA3ZjNhMjFkNmMzMjkwN2JlODM0YzlkOTY3YmJlODliNWMxMzgwMWY3Li4w
MzJmMzQ5YTExZTc5OThlOGVkYWIxMjE5NWQwMGIyMzg1YTA1NmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUaHJlYWQu
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bmNyZW1lbnRhbFN3ZWVwZXIuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAg
LTU0LDcgKzU1LDcgQEAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyJiBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnNpbmdsZXRvbigpCiBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcigpIAogICAgIDogbV9pbnN0YWxsZWQoZmFsc2UpCiAgICAgLCBtX2xhc3RSZXNwb25kVGlt
ZSgwKQotICAgICwgbV9sb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoYm9vbCBjcml0aWNhbCkgeyBy
ZWxlYXNlTWVtb3J5KGNyaXRpY2FsKTsgfSkKKyAgICAsIG1fbG93TWVtb3J5SGFuZGxlcihbdGhp
c10gKENyaXRpY2FsIGNyaXRpY2FsLCBTeW5jaHJvbm91cyBzeW5jaHJvbm91cykgeyByZWxlYXNl
TWVtb3J5KGNyaXRpY2FsLCBzeW5jaHJvbm91cyk7IH0pCiAgICAgLCBtX3VuZGVyTWVtb3J5UHJl
c3N1cmUoZmFsc2UpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBDYW4gd2Ugc2hh
cmUgbW9yZSBvZiB0aGlzIHdpdGggT3BlblNvdXJjZT8KQEAgLTEwMCw3ICsxMDEsNyBAQCB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU5vbmNyaXRpY2FsTWVtb3J5KCkKICAgICB9
CiB9CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnko
KQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5j
aHJvbm91cyBzeW5jaHJvbm91cykKIHsKICAgICB7CiAgICAgICAgIFJlbGllZkxvZ2dlciBsb2co
IkVtcHR5IHRoZSBQYWdlQ2FjaGUiKTsKQEAgLTEzNCwxMiArMTM1LDI4IEBAIHZvaWQgTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnkoKQogICAgICAgICBSZWxpZWZM
b2dnZXIgbG9nKCJJbnZhbGlkYXRlIGZvbnQgY2FjaGUiKTsKICAgICAgICAgRm9udENhY2hlOjpz
aW5nbGV0b24oKS5pbnZhbGlkYXRlKCk7CiAgICAgfQorCisgICAgaWYgKHN5bmNocm9ub3VzID09
IFN5bmNocm9ub3VzOjpZZXMpIHsKKyAgICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiQ29sbGVjdGlu
ZyBKYXZhU2NyaXB0IGdhcmJhZ2UiKTsKKyAgICAgICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNv
bGxlY3ROb3coKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRv
IGEgZ2FyYmFnZSBzd2VlcCBhbmQgcHJ1bmUgZGVhZCByZXNvdXJjZXMgZnJvbSB0aGUgTWVtb3J5
Q2FjaGUKKyAgICAgICAgLy8gYWZ0ZXIgdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBoYXMgY29tcGxl
dGVkIHRvIGZyZWUgdXAgbW9yZSBtZW1vcnkuCisgICAgICAgIGdjQ29udHJvbGxlcigpLmdhcmJh
Z2VDb2xsZWN0U29vbigpOworICAgIH0KKworICAgIC8vIERvIGEgZnVsbCBzd2VlcCBvZiBjb2xs
ZWN0ZWQgb2JqZWN0cy4KKyAgICB7CisgICAgICAgIFJlbGllZkxvZ2dlciBsb2coIkZ1bGwgSmF2
YVNjcmlwdCBnYXJiYWdlIHN3ZWVwIik7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2so
SlNET01XaW5kb3c6OmNvbW1vblZNKCkpOworICAgICAgICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0o
KS5oZWFwLnN3ZWVwZXIoKS0+ZnVsbFN3ZWVwKCk7CisgICAgfQogfQogCi12b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQordm9pZCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9u
b3VzIHN5bmNocm9ub3VzKQogewotICAgIGlmIChjcml0aWNhbCkKLSAgICAgICAgcmVsZWFzZUNy
aXRpY2FsTWVtb3J5KCk7CisgICAgaWYgKGNyaXRpY2FsID09IENyaXRpY2FsOjpZZXMpCisgICAg
ICAgIHJlbGVhc2VDcml0aWNhbE1lbW9yeShzeW5jaHJvbm91cyk7CiAKICAgICByZWxlYXNlTm9u
Y3JpdGljYWxNZW1vcnkoKTsKIApAQCAtMTYwLDcgKzE3Nyw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpyZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpCiB2b2lkIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6aW5zdGFsbCgpIHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnVu
aW5zdGFsbCgpIHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmhvbGRPZmYodW5zaWdu
ZWQpIHsgfQotdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNz
dXJlKGJvb2wpIHsgfQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9y
eVByZXNzdXJlKENyaXRpY2FsLCBTeW5jaHJvbm91cyA9IFN5bmNocm9ub3VzOjpObykgeyB9CiB2
b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KGJvb2wpIHsg
fQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZvcm1Mb2co
KSB7IH0KIHNpemVfdCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZv
cm1NZW1vcnlVc2FnZSgpIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKaW5kZXggYjljOGNlYzM1NDFjMzg0YzRiZWQwM2Yz
ODlmMTY3ZjczYzllMjU1NS4uNTU3MTA1ODgxNzZiMzNkYzA2OWM2NGUwMDViNzViYjhkZDRhNmRj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmgKQEAgLTQ5LDcgKzQ5LDEwIEBAIGVudW0gTWVtb3J5UHJlc3N1cmVSZWFzb24gewogfTsKICNl
bmRpZgogCi10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sIGNyaXRpY2FsKT4gTG93TWVt
b3J5SGFuZGxlcjsKK2VudW0gY2xhc3MgQ3JpdGljYWwgeyBObywgWWVzIH07CitlbnVtIGNsYXNz
IFN5bmNocm9ub3VzIHsgTm8sIFllcyB9OworCit0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChD
cml0aWNhbCwgU3luY2hyb25vdXMpPiBMb3dNZW1vcnlIYW5kbGVyOwogCiBjbGFzcyBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTA3LDEx
ICsxMTAsMTEgQEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBz
X2xvZ2dpbmdFbmFibGVkOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVh
c2VNZW1vcnkoYm9vbCBjcml0aWNhbCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNl
TWVtb3J5KENyaXRpY2FsLCBTeW5jaHJvbm91cyA9IFN5bmNocm9ub3VzOjpObyk7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCByZWxlYXNlTm9uY3JpdGljYWxNZW1vcnkoKTsKLSAgICB2b2lkIHJlbGVh
c2VDcml0aWNhbE1lbW9yeSgpOworICAgIHZvaWQgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KFN5bmNo
cm9ub3VzKTsKIAogICAgIHZvaWQgdW5pbnN0YWxsKCk7CiAKQEAgLTEyMCw4ICsxMjMsOCBAQCBw
cml2YXRlOgogICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcigpOwogICAgIH5NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIoKSA9IGRlbGV0ZTsKIAotICAgIHZvaWQgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUo
Ym9vbCBjcml0aWNhbCk7Ci0gICAgdm9pZCBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9vbCBjcml0
aWNhbCk7CisgICAgdm9pZCByZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbCwgU3luY2hy
b25vdXMgPSBTeW5jaHJvbm91czo6Tm8pOworICAgIHZvaWQgcGxhdGZvcm1SZWxlYXNlTWVtb3J5
KENyaXRpY2FsKTsKIAogICAgIGJvb2wgbV9pbnN0YWxsZWQ7CiAgICAgdGltZV90IG1fbGFzdFJl
c3BvbmRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQppbmRleCAxZWUzYjhmMDQyYzcxNDJiYmZm
NTBiNjhkNjUyM2FjMjU5ZTA1Mjk5Li5hNzNiNDFhNjU3MThjMDFjMjIwODhkNGZkOWY0OTU3NDFi
NmNjMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQpAQCAtMzQsNyArMzQsNiBAQAogI2ltcG9y
dCAiTGF5ZXJQb29sLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9JbmNyZW1lbnRhbFN3ZWVw
ZXIuaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8bWFjaC90YXNrX2luZm8uaD4K
ICNpbXBvcnQgPG1hbGxvYy9tYWxsb2MuaD4KQEAgLTUxLDcgKzUwLDcgQEAgZXh0ZXJuICJDIiB2
b2lkIF9zcWxpdGUzX3B1cmdlRWxpZ2libGVQYWdlckNhY2hlTWVtb3J5KHZvaWQpOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJl
bGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpw
bGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwpCiB7CiAgICAgewogICAgICAg
ICBSZWxpZWZMb2dnZXIgbG9nKCJQdXJnaW5nIFNRTGl0ZSBjYWNoZXMiKTsKQEAgLTcxLDcgKzcw
LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShi
b29sIGNyaXRpY2FsKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKGNyaXRpY2FsICYmICFpc1Vu
ZGVyTWVtb3J5UHJlc3N1cmUoKSkgeworICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVz
ICYmICFpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkgewogICAgICAgICAvLyBsaWJjYWNoZSBsaXN0
ZW5zIHRvIE9TIG1lbW9yeSBub3RpZmljYXRpb25zLCBidXQgZm9yIHByb2Nlc3Mgc3VzcGVuc2lv
bgogICAgICAgICAvLyBvciBtZW1vcnkgcHJlc3N1cmUgc2ltdWxhdGlvbiwgd2UgbmVlZCB0byBw
cm9kIGl0IG1hbnVhbGx5OgogICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJQdXJnaW5nIGxpYmNh
Y2hlIGNhY2hlcyIpOwpAQCAtODAsMjQgKzc5LDYgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oY3JpdGljYWwpOwogI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgaWYg
KGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7Ci0gICAgICAgIGdjQ29udHJvbGxlcigpLmdhcmJh
Z2VDb2xsZWN0U29vbigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIElmIHdlJ3JlIG5vdCB1
bmRlciBtZW1vcnkgcHJlc3N1cmUsIHRoYXQgbWVhbnMgd2UncmUgaGVyZSBkdWUgdG8gaW1wZW5k
aW5nIHByb2Nlc3Mgc3VzcGVuc2lvbi4KLSAgICAgICAgLy8gRG8gYSBmdWxsIEdDIHNpbmNlIHRo
aXMgaXMgb3VyIGxhc3QgY2hhbmNlIHRvIHJ1biBhbnkgY29kZS4KLSAgICAgICAgUmVsaWVmTG9n
Z2VyIGxvZygiQ29sbGVjdGluZyBKYXZhU2NyaXB0IGdhcmJhZ2UiKTsKLSAgICAgICAgZ2NDb250
cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3coKTsKLSAgICB9Ci0KLSAgICAvLyBEbyBhIGZ1bGwg
c3dlZXAgb2YgY29sbGVjdGVkIG9iamVjdHMuCi0gICAgewotICAgICAgICBSZWxpZWZMb2dnZXIg
bG9nKCJGdWxsIEphdmFTY3JpcHQgZ2FyYmFnZSBzd2VlcCIpOwotICAgICAgICBKU0M6OkpTTG9j
a0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAgICAgICAgSlNET01XaW5k
b3c6OmNvbW1vblZNKCkuaGVhcC5zd2VlcGVyKCktPmZ1bGxTd2VlcCgpOwotICAgIH0KLSNlbmRp
ZgogfQogCiBzdGF0aWMgZGlzcGF0Y2hfc291cmNlX3QgX2NhY2hlX2V2ZW50X3NvdXJjZSA9IDA7
CkBAIC0xNDcsNyArMTI4LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwo
KQogICAgICAgICAgICAgICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dpbmdFbmFibGVkKCkpCiAg
ICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiR290IG1lbW9yeSBwcmVzc3VyZSBub3RpZmljYXRp
b24gKCVzKSIsIGNyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJub24tY3JpdGljYWwiKTsKICNlbmRp
ZgotICAgICAgICAgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVz
cG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOworICAgICAgICAgICAgICAgIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGlj
YWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKF9jYWNoZV9ldmVudF9zb3VyY2UpOwogICAgICAgICB9
CkBAIC0xNTUsMTEgKzEzNiw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxs
KCkKIAogICAgIC8vIEFsbG93IHNpbXVsYXRpb24gb2YgbWVtb3J5IHByZXNzdXJlIHdpdGggIm5v
dGlmeXV0aWwgLXAgb3JnLldlYktpdC5sb3dNZW1vcnkiCiAgICAgbm90aWZ5X3JlZ2lzdGVyX2Rp
c3BhdGNoKCJvcmcuV2ViS2l0Lmxvd01lbW9yeSIsICZfbm90aWZ5VG9rZW4sIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF4oaW50KSB7Ci0gICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUodHJ1ZSk7Ci0KLSAgICAgICAgLy8g
V2Ugb25seSBkbyBhIHN5bmNocm9ub3VzIEdDIHdoZW4gKnNpbXVsYXRpbmcqIG1lbW9yeSBwcmVz
c3VyZS4KLSAgICAgICAgLy8gVGhpcyBnaXZlcyB1cyBhIG1vcmUgY29uc2lzdGVudCBwaWN0dXJl
IG9mIGxpdmUgb2JqZWN0cyBhdCB0aGUgZW5kIG9mIHRlc3RpbmcuCi0gICAgICAgIGdjQ29udHJv
bGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7CisgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6OlllcywgU3lu
Y2hyb25vdXM6Olllcyk7CiAKICAgICAgICAgV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1v
cnkoKTsKIApAQCAtMjEzLDE0ICsxOTAsMTQgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OmhvbGRPZmYodW5zaWduZWQgc2Vjb25kcykKICAgICB9KTsKIH0KIAotdm9pZCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGJvb2wgY3JpdGljYWwpCit2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWwg
Y3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQogewogI2lmICFQTEFURk9STShJT1Mp
CiAgICAgdW5pbnN0YWxsKCk7CiAgICAgZG91YmxlIHN0YXJ0VGltZSA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKLSAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGlj
YWwpOworICAgIG1fbG93TWVtb3J5SGFuZGxlcihjcml0aWNhbCwgc3luY2hyb25vdXMpOwogCiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICB1bnNpZ25lZCBob2xkT2ZmVGltZSA9IChtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRPZmZNdWx0aXBsaWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyTGludXguY3BwCmluZGV4IDJhMWViZTdlZjk1YTM0NDFkZTUwZTFkYWVkMDVj
MjBlZDI3Y2JmYjAuLmVhNjE5MDkxNzYxYTUxN2Q1YTAxMTQ2MWI1NWFkOTY4YWYxYzAwYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFu
ZGxlckxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6d2FpdEZvck1lbW9yeVByZXNzdXJlRXZlbnQodm9pZCopCiAKICAgICBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnNldFVuZGVyTWVtb3J5UHJlc3N1cmUo
Y3JpdGljYWwpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NyaXRpY2FsXSB7Ci0gICAgICAgIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUo
Y3JpdGljYWwpOworICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJl
c3BvbmRUb01lbW9yeVByZXNzdXJlKGNyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENyaXRpY2Fs
OjpObyk7CiAgICAgfSk7CiB9CiAKQEAgLTE4OSwxNyArMTg5LDE3IEBAIHZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpob2xkT2ZmKHVuc2lnbmVkIHNlY29uZHMpCiAgICAgbV9ob2xkT2ZmVGlt
ZXIuc3RhcnRPbmVTaG90KHNlY29uZHMpOwogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoYm9vbCBjcml0aWNhbCkKK3ZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNhbCBjcml0aWNhbCwg
U3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAgICAgdW5pbnN0YWxsKCk7CiAKICAgICBkb3Vi
bGUgc3RhcnRUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgbV9sb3dN
ZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsKKyAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGljYWws
IHN5bmNocm9ub3VzKTsKICAgICB1bnNpZ25lZCBob2xkT2ZmVGltZSA9IChtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRPZmZNdWx0aXBsaWVyOwogICAg
IGhvbGRPZmYoc3RkOjptYXgoaG9sZE9mZlRpbWUsIHNfbWluaW11bUhvbGRPZmZUaW1lKSk7CiB9
CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9v
bCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3Jp
dGljYWwpCiB7CiAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUnVuIG1hbGxvY190cmltIik7CiAgICAg
bWFsbG9jX3RyaW0oMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGY5YmM3NmRjNTQxN2ZmZDk0ZWJkMGQxOGViYjRlZjc4YjFh
YzUzNi4uMzM3OWUwMjdmNTM0N2U1YjUyNDEzYWQyNmFkMmE5YjgxZGU5ODUzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDgs
NyArNDgsNiBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CkBAIC0xNzUsNyArMTc0LDcg
QEAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRzQXV0aGVu
dGljYXRpb25NYW5hZ2VyKCkKICAgICByZXR1cm4gYXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CiB9
CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoYm9vbCBjcml0aWNhbCkK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwgY3JpdGljYWwp
CiB7CiAgICAgcGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsKICAgICBXVEY6OnJl
bGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwpAQCAtMTg4LDcgKzE4Nyw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1lCiAgICAgV1RGOjpzZXRDdXJyZW50VGhyZWFkSXNVc2VySW5pdGlhdGVk
KCk7CiAKICAgICBhdXRvJiBtZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNpbmdsZXRvbigpOwotICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1v
cnlIYW5kbGVyKFt0aGlzXSAoYm9vbCBjcml0aWNhbCkgeworICAgIG1lbW9yeVByZXNzdXJlSGFu
ZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNo
cm9ub3VzKSB7CiAgICAgICAgIGxvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwpOwogICAgIH0pOwog
ICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5pbnN0YWxsKCk7CkBAIC01MTYsMTMgKzUxNSwxMyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGUoKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
Ojpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRsZWQpCiB7Ci0gICAgbG93
TWVtb3J5SGFuZGxlcih0cnVlKTsKKyAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMp
OwogICAgIGhhbmRsZWQgPSB0cnVlOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKCkKIHsKLSAgICBsb3dNZW1vcnlIYW5kbGVyKHRydWUpOworICAgIGxvd01lbW9y
eUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5k
KCksIDApOwogfQogCkBAIC01NDgsNyArNTQ3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5p
dGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXIK
IHsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKGJv
b2wpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUxvd01lbW9yeUhhbmRsZXIoQ3JpdGlj
YWwpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCmluZGV4IDdhZGJlMTIyMTAyZDY1MDYyY2M0NDE2YzBjNmVkNTNmZGFmYTli
YjEuLmI5ZDZlZDk1ZTk5OTZjOTYyMGM0ODdjZjJiZGUzZjQwOWZjZjczNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlck1hcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CkBAIC05Nyw4ICs5OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHRlcm1p
bmF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcGxhdGZvcm1UZXJtaW5hdGUoKTsKIAotICAgIHZv
aWQgbG93TWVtb3J5SGFuZGxlcihib29sIGNyaXRpY2FsKTsKLSAgICB2b2lkIHBsYXRmb3JtTG93
TWVtb3J5SGFuZGxlcihib29sIGNyaXRpY2FsKTsKKyAgICB2b2lkIGxvd01lbW9yeUhhbmRsZXIo
V2ViQ29yZTo6Q3JpdGljYWwpOworICAgIHZvaWQgcGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKFdl
YkNvcmU6OkNyaXRpY2FsKTsKIAogICAgIC8vIENoaWxkUHJvY2VzcwogICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4IDViNjNkMTI0MmUzZjc4
ZWNkN2YwMjFmYzY4MjVhYjA5MDY3NWQyNWMuLmY0ZWNkZTM1NzQ1NzJhYTMyMTg0Mzc3NjMzNDk3
M2NlZTA0YjllYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtMzksNyArMzksNyBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dNZW1v
cnlIYW5kbGVyKGJvb2wpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUxvd01lbW9yeUhh
bmRsZXIoV2ViQ29yZTo6Q3JpdGljYWwpCiB7CiAgICAgQ0ZVUkxDb25uZWN0aW9uSW52YWxpZGF0
ZUNvbm5lY3Rpb25DYWNoZSgpOwogICAgIF9DRlVSTENhY2hlUHVyZ2VNZW1vcnlDYWNoZShhZG9w
dENGKENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKaW5kZXggMjIwY2MwZGQwMjQ1
ZTc3NDY1MWI1MTVmZjRhMWE1ZmE0N2EzMTZjYS4uZTMzZGUwMDBiYmUxZWIzZTM4MmFiZjg4Zjc1
NGFkYzNmNzExOTE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Qcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzCiAg
ICAgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2VzcyhwYXJhbWV0ZXJzKTsKIAogICAgIGF1dG8mIG1l
bW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCk7
Ci0gICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldExvd01lbW9yeUhhbmRsZXIoW3RoaXNdIChi
b29sKSB7CisgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldExvd01lbW9yeUhhbmRsZXIoW3Ro
aXNdIChDcml0aWNhbCwgU3luY2hyb25vdXMpIHsKICAgICAgICAgaWYgKHNob3VsZFRlcm1pbmF0
ZSgpKQogICAgICAgICAgICAgdGVybWluYXRlKCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBhNjEwY2U1N2IwMmMxOTNmMTE4OWRlMzk3MDYy
NDUzNmE5YjExMTFjLi4wNjllYjFmNDBmMjc0OGQ0ZWE0ZTUwZDFjNGE5YjM5ODZhMWEyNTlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTEyMjYsNyArMTIy
Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb25zKCkK
IAogdm9pZCBXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5kKFNob3VsZEFja25vd2xl
ZGdlV2hlblJlYWR5VG9TdXNwZW5kIHNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5k
KQogewotICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVsZWFzZU1lbW9y
eSh0cnVlKTsKKyAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnJlbGVhc2VN
ZW1vcnkoQ3JpdGljYWw6OlllcywgU3luY2hyb25vdXM6Olllcyk7CiAgICAgc2V0QWxsTGF5ZXJU
cmVlU3RhdGVzRnJvemVuKHRydWUpOwogCiAgICAgaWYgKG1hcmtBbGxMYXllcnNWb2xhdGlsZUlm
UG9zc2libGUoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254267</attachid>
            <date>2015-06-04 10:12:12 -0700</date>
            <delta_ts>2015-06-04 10:35:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145633-20150604101151.patch</filename>
            <type>text/plain</type>
            <size>22255</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDliYjEzOWJhMDRiNjMzMzY3ZTFlYTNjN2YxOTUwZGMzNDE4YjI1Li44MTU2OWQ4NDcyNGIzMDJk
YzJlYTQzZmU1NTdiY2NkYWM2ZmRkNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wNi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNhY2hl
IGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vIGxvbmdlciBtb3ZlIHByb3RlY3QgSW5jcmVtZW50YWxTd2Vl
cGVyOjpmdWxsU3dlZXAoKSBiZWhpbmQKKyAgICAgICAgVVNFKENGKSBzbyB3ZSBkb24ndCBuZWVk
ICNpZmRlZnMgYXQgY2FsbCBzaXRlcywgc2ltaWxhcmx5IHRvIHdoYXQgaXMKKyAgICAgICAgZG9u
ZSBmb3IgdGhlIHJlc3Qgb2YgdGhlIEluY3JlbWVudGFsU3dlZXBlciBBUEkuCisKKyAgICAgICAg
KiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFs
U3dlZXBlcjo6ZnVsbFN3ZWVwKToKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5o
OgorCiAyMDE1LTA2LTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2FsbExpbmtTdGF0dXMgc2hvdWxkIHJldHVybiB0YWtlc1Nsb3dQYXRoIGlmIHRoZSBHQyBv
ZnRlbiBjbGVhcmVkIHRoZSBJQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ4MDlhZDRkODE2NGI2N2Y2MjkyMzU0
MDhmZDI4NGVkZmM0Mjk1OTQuLjQ1N2M0OWZkZWM0ZjhiNmY2MjFjYmYxYTljNzY4MTliYjY1MjU4
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OSBAQAorMjAxNS0wNi0wNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2Vz
IGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBydW5lIG1vcmUgcmVzb3Vy
Y2VzIGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24gb3IKKyAg
ICAgICAgb24gc2ltdWxhdGVkIG1lbW9yeSB3YXJuaW5nIGJ5IGRvaW5nIGEgc3luY2hyb25vdXMg
SlMgZ2FyYmFnZSBjb2xsZWN0aW9uCisgICAgICAgIGFuZCBzd2VlcCAqYmVmb3JlKiBwcnVuaW5n
IGRlYWQgcmVzb3VyY2VzIGZyb20gdGhlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgUHJldmlvdXNs
eSwgd2Ugd291bGQgZG8gdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBhZnRlciBwcnVuaW5nIHRoZQor
ICAgICAgICBNZW1vcnlDYWNoZSB3aGljaCBtZWFudCB0aGF0IGEgbG90IG9mIHJlc291cmNlcyBi
ZWNhbWUgZGVhZCBhZnRlciB3ZQorICAgICAgICB0cmllZCB0byBwcnVuZSB0aGVtLgorCisgICAg
ICAgIEF0IHRoZSBlbmQgYSBiYXNpYyBicm93c2luZyBvbiBhcHBsZS5jb20sIHdlIGFyZSBhYmxl
IHRvIHJlbW92ZSB+MTclCisgICAgICAgIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNh
Y2hlIG9uIHNpbXVsYXRlZCBtZW1vcnkgd2FybmluZyB3aXRoIHRoaXMKKyAgICAgICAgY2hhbmdl
LgorCisgICAgICAgIFBydW5pbmcgYXMgbXVjaCBhcyB3ZSBjYW4gZnJvbSB0aGUgbWVtb3J5IGNh
Y2hlIG9uIGNyaXRpY2FsIG1lbW9yeQorICAgICAgICBwcmVzc3VyZSBvciBiZWZvcmUgcHJvY2Vz
cyBzdXNwZW5zaW9uIGlzIG5vdCBvbmx5IHVzZWZ1bCB0byBmcmVlIHVwCisgICAgICAgIG1lbW9y
eSBidXQgYWxzbyB0byBtYWtlIHJvb20gaW4gdGhlIHZub2RlIHRhYmxlIGFzIGEgbG90IG9mCisg
ICAgICAgIENhY2hlZFJlc291cmNlcyBhcmUgbW1tYXAnZCBmcm9tIHRoZSBuZXR3b3JrIGRpc2sg
Y2FjaGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVzc3VyZUhh
bmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNl
Q3JpdGljYWxNZW1vcnkpOgorCisgICAgICAgIC0gUGFzcyAnc3luY2hyb25vdXMnIGFyZ3VtZW50
IHNvIHRoYXQgd2Uga25vdyBpZiB3ZSBuZWVkIHRvIGRvIGEKKyAgICAgICAgICBzeW5jaHJvbm91
cyBKUyBnYXJiYWdlIGNvbGxlY3Rpb24uCisgICAgICAgIC0gTW92ZSBoZXJlIGNvZGUgZnJvbSBp
biB0aGUgQ29jb2EgaGFuZGxlciB0aGF0IGlzIGRvaW5nIGEgSlMgZ2FyYmFnZQorICAgICAgICAg
IGNvbGxlY3Rpb24gYXMgd2VsbCBhcyBhIHN3ZWVwLCBhbmQgbWFrZSB0aGlzIGNvZGUgY3Jvc3Mt
cGxhdGZvcm0uCisgICAgICAgICAgVGhpcyBjb2RlIHVzZWQgdG8gYmUgaU9TIHNwZWNpZmljIGJ1
dCBJIHNlZSBubyByZWFzb24gd2Ugc2hvdWxkbid0CisgICAgICAgICAgZG8gdGhpcyBvbiBNYWMu
CisKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9y
eSk6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg6CisKKyAgICAg
ICAgVXNlIGVudW0gY2xhc3MgYXJndW1lbnRzIGZvciBjcml0aWNhbCAvIHN5bmNocm9ub3VzLiBU
aGUgJ3N5bmNocm9ub3VzJworICAgICAgICBhcmd1bWVudCBpcyBuZXcgc28gdGhhdCB0aGUgY2Fs
bCBzaXRlIGNhbiBsZXQgdXMga25vdyBpZiBtZW1vcnkgbmVlZHMKKyAgICAgICAgdG8gYmUgZnJl
ZWQgc3luY2hyb25vdXNseSAoZS5nLiBpbiBjYXNlIG9mIGltbWluZW50IHByb2Nlc3Mgc3VzcGVu
c2lvbikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJD
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZv
cm1SZWxlYXNlTWVtb3J5KToKKworICAgICAgICBSZW1vdmUgaU9TLXNwZWNpZmljIGNvZGUgdGhh
dCB3YXMgZG9pbmcgYSBKUyBnYXJiYWdlIGNvbGxlY3Rpb24gYW5kCisgICAgICAgIHN3ZWVwIGFz
IHRoaXMgY29kZSBpcyBub3cgaW4gdGhlIGdlbmVyaWMgbWVtb3J5IHByZXNzdXJlIGhhbmRsZXIu
CisKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisK
KyAgICAgICAgT24gc2ltdWxhdGVkIG1lbW9yeSBwcmVzc3VyZSwgc2V0ICdzeW5jaHJvbm91cycg
YXJndW1lbnQgdG8gWWVzIHNvIHRoYXQKKyAgICAgICAgYSBzeW5jaHJvbm91cyBHQyBpcyBkb25l
IGJ5IHRoZSBnZW5lcmljIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyLiBUaGlzCisgICAgICAgIHdh
eSwgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gZG8gYSBzeW5jIEdDIGFmdGVyIGNhbGxpbmcgdGhlIG1l
bW9yeSBwcmVzc3VyZQorICAgICAgICBoYW5kbGVyLiBUaGlzIGF2b2lkcyBjb2RlIGR1cGxpY2F0
aW9uIGFuZCBtYWtlcyBzdXJlIHRoZSBHQyBpcyBkb25lCisgICAgICAgIGJlZm9yZSBwcnVuaW5n
IHRoZSBtZW1vcnkgY2FjaGUuCisKKwogMjAxNS0wNi0wMyAgQ2FybG9zIEFsYmVydG8gTG9wZXog
UGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbV2F5bGFuZF0gQnVp
bGQgaXMgYnJva2VuIG9uIHRydW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTdjYTM4YjQ2NGNkOTVmOWExMGEy
Y2Q5ZGZjYzUyOTEzMmE1ZjA5Yi4uZWRlNzMwNTc4M2Q1Y2FhZmQzY2JiOWYxNTY3YTU4YjM5Yzlh
ZDBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE1LTA2LTA0ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gUHJ1bmUgbW9yZSByZXNvdXJj
ZXMgZnJvbSB0aGUgTWVtb3J5Q2FjaGUgYmVmb3JlIHByb2Nlc3Mgc3VzcGVuc2lvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjMzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjps
b3dNZW1vcnlIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtTG93
TWVtb3J5SGFuZGxlcik6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgor
CisgICAgICAgIFVwZGF0ZSBsb3cgbWVtb3J5IGhhbmRsZXIgcHJvdG90eXBlIHRvIG1hdGNoIFdl
YkNvcmUgY2hhbmdlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQpOgorCisg
ICAgICAgIFBhc3MgU3luY2hyb25vdXM6OlllcyBhcmd1bWVudCB0byBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnJlbGVhc2VNZW1vcnkoKQorICAgICAgICB0byByZXF1ZXN0IHRoYXQgdGhlIG1lbW9y
eSBpcyBmcmVlIHVwIHN5bmNocm9ub3VzbHkgKGUuZy4gc3luY2hyb25vdXMKKyAgICAgICAgSlMg
Z2FyYmFnZSBjb2xsZWN0aW9uKSBhcyB0aGUgcHJvY2VzcyBpcyBhYm91dCB0byBiZSBzdXNwZW5k
ZWQuCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBtZW1vcnkgcHJlc3N1cmUgaGFuZGxlciB3YXMg
dHJ5aW5nIHRvIGRldGVjdCB0aGlzIGNhc2UKKyAgICAgICAgYnkgY2hlY2tpbmcgaWYgdGhlIHN5
c3RlbSB3YXMgcmVhbGx5IHVuZGVyIG1lbW9yeSBwcmVzc3VyZSBidXQgdGhpcyB3YXMKKyAgICAg
ICAgYSBiaXQgaGFja2lzaCBhbmQgaXQgd291bGRuJ3Qgd29yayBpZiB0aGUgcHJvY2VzcyBoYXBw
ZW5lZCB0byBnZXQKKyAgICAgICAgc3VzcGVuZGVkIHdoaWxlIHRoZSBzeXN0ZW0gd2FzIHVuZGVy
IG1lbW9yeSBwcmVzc3VyZS4KKwogMjAxNS0wNi0wMyAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVy
ZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbV2F5bGFuZF0gQnVpbGQg
aXMgYnJva2VuIG9uIHRydW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5j
cmVtZW50YWxTd2VlcGVyLmNwcAppbmRleCAzZmY0ZDhjM2EwNDA2ZmZkNmRlOTliZDg4Y2RkNDcz
ZGE0MWI4OGQxLi4xZTE5NTdlNDkwYTA4NThmNzYxMjJiMDE1ODMwOGVkNzA5ZWZkY2YyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAK
QEAgLTEzMiw2ICsxMzIsMTAgQEAgdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OndpbGxGaW5pc2hT
d2VlcGluZygpCiB7CiB9CiAKK3ZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpmdWxsU3dlZXAoKQor
eworfQorCiBib29sIEluY3JlbWVudGFsU3dlZXBlcjo6c3dlZXBOZXh0QmxvY2soKQogewogICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lu
Y3JlbWVudGFsU3dlZXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50
YWxTd2VlcGVyLmgKaW5kZXggZjgxM2EzNmZhYWM4ZDUzMzY5MDFmODM2MTdkY2EzOTJhNThhY2Q2
ZS4uNTk2MjBhMDQ4NGQzNTgzMGNlMzhkZTdlMzEyYTdlMDVmMjdjZTljNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKQEAgLTM5LDExICsz
OSwxMSBAQCBjbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXIgOiBwdWJsaWMgSGVhcFRpbWVyIHsKIHB1
YmxpYzoKICNpZiBVU0UoQ0YpCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSW5jcmVtZW50YWxTd2Vl
cGVyKEhlYXAqLCBDRlJ1bkxvb3BSZWYpOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZnVs
bFN3ZWVwKCk7CiAjZWxzZQogICAgIGV4cGxpY2l0IEluY3JlbWVudGFsU3dlZXBlcihWTSopOwog
I2VuZGlmCiAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGZ1bGxTd2VlcCgpOwogICAgIHZv
aWQgc3RhcnRTd2VlcGluZygpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lk
IGRvV29yaygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9y
eVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggN2YzYTIxZDZjMzI5MDdiZTgzNGM5ZDk2N2JiZTg5
YjVjMTM4MDFmNy4uOWNjMDg4NGYyMzE4ZjU5ZjhiMGEyNDVhMGNjYzcyMTA4NTU3MmUyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSW5jcmVtZW50YWxTd2VlcGVyLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CkBAIC01NCw3ICs1NSw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlciYgTWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKQogTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1v
cnlQcmVzc3VyZUhhbmRsZXIoKSAKICAgICA6IG1faW5zdGFsbGVkKGZhbHNlKQogICAgICwgbV9s
YXN0UmVzcG9uZFRpbWUoMCkKLSAgICAsIG1fbG93TWVtb3J5SGFuZGxlcihbdGhpc10gKGJvb2wg
Y3JpdGljYWwpIHsgcmVsZWFzZU1lbW9yeShjcml0aWNhbCk7IH0pCisgICAgLCBtX2xvd01lbW9y
eUhhbmRsZXIoW3RoaXNdIChDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25v
dXMpIHsgcmVsZWFzZU1lbW9yeShjcml0aWNhbCwgc3luY2hyb25vdXMpOyB9KQogICAgICwgbV91
bmRlck1lbW9yeVByZXNzdXJlKGZhbHNlKQogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhN
RTogQ2FuIHdlIHNoYXJlIG1vcmUgb2YgdGhpcyB3aXRoIE9wZW5Tb3VyY2U/CkBAIC0xMDAsNyAr
MTAxLDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VOb25jcml0aWNhbE1l
bW9yeSgpCiAgICAgfQogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNy
aXRpY2FsTWVtb3J5KCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGlj
YWxNZW1vcnkoU3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAgICAgewogICAgICAgICBSZWxp
ZWZMb2dnZXIgbG9nKCJFbXB0eSB0aGUgUGFnZUNhY2hlIik7CkBAIC0xMzQsMTIgKzEzNSwyOCBA
QCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KCkKICAg
ICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiSW52YWxpZGF0ZSBmb250IGNhY2hlIik7CiAgICAgICAg
IEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuaW52YWxpZGF0ZSgpOwogICAgIH0KKworICAgIGlmIChz
eW5jaHJvbm91cyA9PSBTeW5jaHJvbm91czo6WWVzKSB7CisgICAgICAgIFJlbGllZkxvZ2dlciBs
b2coIkNvbGxlY3RpbmcgSmF2YVNjcmlwdCBnYXJiYWdlIik7CisgICAgICAgIGdjQ29udHJvbGxl
cigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBkbyBhIGdhcmJhZ2Ugc3dlZXAgYW5kIHBydW5lIGRlYWQgcmVzb3VyY2VzIGZy
b20gdGhlIE1lbW9yeUNhY2hlCisgICAgICAgIC8vIGFmdGVyIHRoZSBnYXJiYWdlIGNvbGxlY3Rp
b24gaGFzIGNvbXBsZXRlZCB0byBmcmVlIHVwIG1vcmUgbWVtb3J5LgorICAgICAgICBnY0NvbnRy
b2xsZXIoKS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKKyAgICB9CisKKyAgICAvLyBEbyBhIGZ1bGwg
c3dlZXAgb2YgY29sbGVjdGVkIG9iamVjdHMuCisgICAgeworICAgICAgICBSZWxpZWZMb2dnZXIg
bG9nKCJGdWxsIEphdmFTY3JpcHQgZ2FyYmFnZSBzd2VlcCIpOworICAgICAgICBKU0M6OkpTTG9j
a0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKKyAgICAgICAgSlNET01XaW5k
b3c6OmNvbW1vblZNKCkuaGVhcC5zd2VlcGVyKCktPmZ1bGxTd2VlcCgpOworICAgIH0KIH0KIAot
dm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkK
K3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlTWVtb3J5KENyaXRpY2FsIGNyaXRp
Y2FsLCBTeW5jaHJvbm91cyBzeW5jaHJvbm91cykKIHsKLSAgICBpZiAoY3JpdGljYWwpCi0gICAg
ICAgIHJlbGVhc2VDcml0aWNhbE1lbW9yeSgpOworICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNh
bDo6WWVzKQorICAgICAgICByZWxlYXNlQ3JpdGljYWxNZW1vcnkoc3luY2hyb25vdXMpOwogCiAg
ICAgcmVsZWFzZU5vbmNyaXRpY2FsTWVtb3J5KCk7CiAKQEAgLTE2MCw4ICsxNzcsOCBAQCB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQogdm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjp1bmluc3RhbGwoKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpo
b2xkT2ZmKHVuc2lnbmVkKSB7IH0KLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25k
VG9NZW1vcnlQcmVzc3VyZShib29sKSB7IH0KLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpw
bGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9vbCkgeyB9Cit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWwsIFN5bmNocm9ub3VzKSB7IH0KK3Zv
aWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwp
IHsgfQogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxhdGZvcm1M
b2coKSB7IH0KIHNpemVfdCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6cGxh
dGZvcm1NZW1vcnlVc2FnZSgpIHsgcmV0dXJuIDA7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAppbmRleCBiOWM4Y2VjMzU0MWMz
ODRjNGJlZDAzZjM4OWYxNjdmNzNjOWUyNTU1Li41NTcxMDU4ODE3NmIzM2RjMDY5YzY0ZTAwNWI3
NWJiOGRkNGE2ZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuaApAQCAtNDksNyArNDksMTAgQEAgZW51bSBNZW1vcnlQcmVzc3VyZVJlYXNv
biB7CiB9OwogI2VuZGlmCiAKLXR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wgY3JpdGlj
YWwpPiBMb3dNZW1vcnlIYW5kbGVyOworZW51bSBjbGFzcyBDcml0aWNhbCB7IE5vLCBZZXMgfTsK
K2VudW0gY2xhc3MgU3luY2hyb25vdXMgeyBObywgWWVzIH07CisKK3R5cGVkZWYgc3RkOjpmdW5j
dGlvbjx2b2lkKENyaXRpY2FsLCBTeW5jaHJvbm91cyk+IExvd01lbW9yeUhhbmRsZXI7CiAKIGNs
YXNzIE1lbW9yeVByZXNzdXJlSGFuZGxlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CkBAIC0xMDcsMTEgKzExMCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBib29sIHNfbG9nZ2luZ0VuYWJsZWQ7CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3VzID0gU3luY2hyb25vdXM6Ok5v
KTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeSgpOwotICAg
IHZvaWQgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KCk7CisgICAgdm9pZCByZWxlYXNlQ3JpdGljYWxN
ZW1vcnkoU3luY2hyb25vdXMpOwogCiAgICAgdm9pZCB1bmluc3RhbGwoKTsKIApAQCAtMTIwLDgg
KzEyMyw4IEBAIHByaXZhdGU6CiAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyKCk7CiAgICAgfk1l
bW9yeVByZXNzdXJlSGFuZGxlcigpID0gZGVsZXRlOwogCi0gICAgdm9pZCByZXNwb25kVG9NZW1v
cnlQcmVzc3VyZShib29sIGNyaXRpY2FsKTsKLSAgICB2b2lkIHBsYXRmb3JtUmVsZWFzZU1lbW9y
eShib29sIGNyaXRpY2FsKTsKKyAgICB2b2lkIHJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRp
Y2FsLCBTeW5jaHJvbm91cyA9IFN5bmNocm9ub3VzOjpObyk7CisgICAgdm9pZCBwbGF0Zm9ybVJl
bGVhc2VNZW1vcnkoQ3JpdGljYWwpOwogCiAgICAgYm9vbCBtX2luc3RhbGxlZDsKICAgICB0aW1l
X3QgbV9sYXN0UmVzcG9uZFRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCmluZGV4IDFlZTNiOGYw
NDJjNzE0MmJiZmY1MGI2OGQ2NTIzYWMyNTllMDUyOTkuLmE3M2I0MWE2NTcxOGMwMWMyMjA4OGQ0
ZmQ5ZjQ5NTc0MWI2Y2MwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCkBAIC0zNCw3ICszNCw2
IEBACiAjaW1wb3J0ICJMYXllclBvb2wuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQg
IldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKLSNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luY3Jl
bWVudGFsU3dlZXBlci5oPgogI2ltcG9ydCA8bWFjaC9tYWNoLmg+CiAjaW1wb3J0IDxtYWNoL3Rh
c2tfaW5mby5oPgogI2ltcG9ydCA8bWFsbG9jL21hbGxvYy5oPgpAQCAtNTEsNyArNTAsNyBAQCBl
eHRlcm4gIkMiIHZvaWQgX3NxbGl0ZTNfcHVyZ2VFbGlnaWJsZVBhZ2VyQ2FjaGVNZW1vcnkodm9p
ZCk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQordm9pZCBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShDcml0aWNhbCBjcml0aWNhbCkKIHsKICAg
ICB7CiAgICAgICAgIFJlbGllZkxvZ2dlciBsb2coIlB1cmdpbmcgU1FMaXRlIGNhY2hlcyIpOwpA
QCAtNzEsNyArNzAsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxl
YXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykgfHwg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBpZiAoY3JpdGlj
YWwgJiYgIWlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7CisgICAgaWYgKGNyaXRpY2FsID09IENy
aXRpY2FsOjpZZXMgJiYgIWlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7CiAgICAgICAgIC8vIGxp
YmNhY2hlIGxpc3RlbnMgdG8gT1MgbWVtb3J5IG5vdGlmaWNhdGlvbnMsIGJ1dCBmb3IgcHJvY2Vz
cyBzdXNwZW5zaW9uCiAgICAgICAgIC8vIG9yIG1lbW9yeSBwcmVzc3VyZSBzaW11bGF0aW9uLCB3
ZSBuZWVkIHRvIHByb2QgaXQgbWFudWFsbHk6CiAgICAgICAgIFJlbGllZkxvZ2dlciBsb2coIlB1
cmdpbmcgbGliY2FjaGUgY2FjaGVzIik7CkBAIC04MCwyNCArNzksNiBAQCB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGljYWwpCiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShjcml0aWNhbCk7CiAjZW5kaWYKLQotI2lmIFBMQVRGT1JNKElP
UykKLSAgICBpZiAoaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpIHsKLSAgICAgICAgZ2NDb250cm9s
bGVyKCkuZ2FyYmFnZUNvbGxlY3RTb29uKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gSWYg
d2UncmUgbm90IHVuZGVyIG1lbW9yeSBwcmVzc3VyZSwgdGhhdCBtZWFucyB3ZSdyZSBoZXJlIGR1
ZSB0byBpbXBlbmRpbmcgcHJvY2VzcyBzdXNwZW5zaW9uLgotICAgICAgICAvLyBEbyBhIGZ1bGwg
R0Mgc2luY2UgdGhpcyBpcyBvdXIgbGFzdCBjaGFuY2UgdG8gcnVuIGFueSBjb2RlLgotICAgICAg
ICBSZWxpZWZMb2dnZXIgbG9nKCJDb2xsZWN0aW5nIEphdmFTY3JpcHQgZ2FyYmFnZSIpOwotICAg
ICAgICBnY0NvbnRyb2xsZXIoKS5nYXJiYWdlQ29sbGVjdE5vdygpOwotICAgIH0KLQotICAgIC8v
IERvIGEgZnVsbCBzd2VlcCBvZiBjb2xsZWN0ZWQgb2JqZWN0cy4KLSAgICB7Ci0gICAgICAgIFJl
bGllZkxvZ2dlciBsb2coIkZ1bGwgSmF2YVNjcmlwdCBnYXJiYWdlIHN3ZWVwIik7Ci0gICAgICAg
IEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6OmNvbW1vblZNKCkpOwotICAgICAg
ICBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLnN3ZWVwZXIoKS0+ZnVsbFN3ZWVwKCk7Ci0g
ICAgfQotI2VuZGlmCiB9CiAKIHN0YXRpYyBkaXNwYXRjaF9zb3VyY2VfdCBfY2FjaGVfZXZlbnRf
c291cmNlID0gMDsKQEAgLTE0Nyw3ICsxMjgsNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6aW5zdGFsbCgpCiAgICAgICAgICAgICAgICAgaWYgKFJlbGllZkxvZ2dlcjo6bG9nZ2luZ0Vu
YWJsZWQoKSkKICAgICAgICAgICAgICAgICAgICAgTlNMb2coQCJHb3QgbWVtb3J5IHByZXNzdXJl
IG5vdGlmaWNhdGlvbiAoJXMpIiwgY3JpdGljYWwgPyAiY3JpdGljYWwiIDogIm5vbi1jcml0aWNh
bCIpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5n
bGV0b24oKS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZShjcml0aWNhbCk7CisgICAgICAgICAgICAg
ICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5yZXNwb25kVG9NZW1vcnlQcmVz
c3VyZShjcml0aWNhbCA/IENyaXRpY2FsOjpZZXMgOiBDcml0aWNhbDo6Tm8pOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICBkaXNwYXRjaF9yZXN1bWUoX2NhY2hlX2V2ZW50X3NvdXJjZSk7
CiAgICAgICAgIH0KQEAgLTE1NSwxMSArMTM2LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6Omluc3RhbGwoKQogCiAgICAgLy8gQWxsb3cgc2ltdWxhdGlvbiBvZiBtZW1vcnkgcHJlc3N1
cmUgd2l0aCAibm90aWZ5dXRpbCAtcCBvcmcuV2ViS2l0Lmxvd01lbW9yeSIKICAgICBub3RpZnlf
cmVnaXN0ZXJfZGlzcGF0Y2goIm9yZy5XZWJLaXQubG93TWVtb3J5IiwgJl9ub3RpZnlUb2tlbiwg
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXihpbnQpIHsKLSAgICAgICAgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZSh0cnVlKTsKLQot
ICAgICAgICAvLyBXZSBvbmx5IGRvIGEgc3luY2hyb25vdXMgR0Mgd2hlbiAqc2ltdWxhdGluZyog
bWVtb3J5IHByZXNzdXJlLgotICAgICAgICAvLyBUaGlzIGdpdmVzIHVzIGEgbW9yZSBjb25zaXN0
ZW50IHBpY3R1cmUgb2YgbGl2ZSBvYmplY3RzIGF0IHRoZSBlbmQgb2YgdGVzdGluZy4KLSAgICAg
ICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3coKTsKKyAgICAgICAgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5yZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0aWNh
bDo6WWVzLCBTeW5jaHJvbm91czo6WWVzKTsKIAogICAgICAgICBXVEY6OnJlbGVhc2VGYXN0TWFs
bG9jRnJlZU1lbW9yeSgpOwogCkBAIC0yMTMsMTQgKzE5MCwxNCBAQCB2b2lkIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6aG9sZE9mZih1bnNpZ25lZCBzZWNvbmRzKQogICAgIH0pOwogfQogCi12b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoYm9vbCBjcml0
aWNhbCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3Vy
ZShDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAjaWYgIVBM
QVRGT1JNKElPUykKICAgICB1bmluc3RhbGwoKTsKICAgICBkb3VibGUgc3RhcnRUaW1lID0gbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAjZW5kaWYKIAotICAgIG1fbG93TWVtb3J5SGFu
ZGxlcihjcml0aWNhbCk7CisgICAgbV9sb3dNZW1vcnlIYW5kbGVyKGNyaXRpY2FsLCBzeW5jaHJv
bm91cyk7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHVuc2lnbmVkIGhvbGRPZmZUaW1lID0g
KG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnRUaW1lKSAqIHNfaG9sZE9mZk11
bHRpcGxpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1v
cnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51
eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKaW5kZXggMmExZWJlN2VmOTVhMzQ0MWRl
NTBlMWRhZWQwNWMyMGVkMjdjYmZiMC4uZWE2MTkwOTE3NjFhNTE3ZDVhMDExNDYxYjU1YWQ5Njhh
ZjFjMDBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZv
aWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp3YWl0Rm9yTWVtb3J5UHJlc3N1cmVFdmVudCh2b2lk
KikKIAogICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuc2V0VW5kZXJNZW1v
cnlQcmVzc3VyZShjcml0aWNhbCk7CiAgICAgY2FsbE9uTWFpblRocmVhZChbY3JpdGljYWxdIHsK
LSAgICAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5yZXNwb25kVG9NZW1v
cnlQcmVzc3VyZShjcml0aWNhbCk7CisgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2lu
Z2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGljYWwgPyBDcml0aWNhbDo6WWVz
IDogQ3JpdGljYWw6Ok5vKTsKICAgICB9KTsKIH0KIApAQCAtMTg5LDE3ICsxODksMTcgQEAgdm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmhvbGRPZmYodW5zaWduZWQgc2Vjb25kcykKICAgICBt
X2hvbGRPZmZUaW1lci5zdGFydE9uZVNob3Qoc2Vjb25kcyk7CiB9CiAKLXZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZShib29sIGNyaXRpY2FsKQordm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2Fs
IGNyaXRpY2FsLCBTeW5jaHJvbm91cyBzeW5jaHJvbm91cykKIHsKICAgICB1bmluc3RhbGwoKTsK
IAogICAgIGRvdWJsZSBzdGFydFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
LSAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwpOworICAgIG1fbG93TWVtb3J5SGFuZGxl
cihjcml0aWNhbCwgc3luY2hyb25vdXMpOwogICAgIHVuc2lnbmVkIGhvbGRPZmZUaW1lID0gKG1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnRUaW1lKSAqIHNfaG9sZE9mZk11bHRp
cGxpZXI7CiAgICAgaG9sZE9mZihzdGQ6Om1heChob2xkT2ZmVGltZSwgc19taW5pbXVtSG9sZE9m
ZlRpbWUpKTsKIH0KIAotdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFz
ZU1lbW9yeShib29sKQordm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFz
ZU1lbW9yeShDcml0aWNhbCkKIHsKICAgICBSZWxpZWZMb2dnZXIgbG9nKCJSdW4gbWFsbG9jX3Ry
aW0iKTsKICAgICBtYWxsb2NfdHJpbSgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA4ZjliYzc2ZGM1NDE3ZmZkOTRlYmQwZDE4
ZWJiNGVmNzhiMWFjNTM2Li4zMzc5ZTAyN2Y1MzQ3ZTViNTI0MTNhZDI2YWQyYTliODFkZTk4NTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCkBAIC00OCw3ICs0OCw2IEBACiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkhhc2guaD4KQEAgLTE3
NSw3ICsxNzQsNyBAQCBBdXRoZW50aWNhdGlvbk1hbmFnZXImIE5ldHdvcmtQcm9jZXNzOjpkb3du
bG9hZHNBdXRoZW50aWNhdGlvbk1hbmFnZXIoKQogICAgIHJldHVybiBhdXRoZW50aWNhdGlvbk1h
bmFnZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcihib29s
IGNyaXRpY2FsKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcihDcml0aWNh
bCBjcml0aWNhbCkKIHsKICAgICBwbGF0Zm9ybUxvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwpOwog
ICAgIFdURjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KCk7CkBAIC0xODgsNyArMTg3LDcg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWUKICAgICBXVEY6OnNldEN1cnJlbnRUaHJlYWRJc1Vz
ZXJJbml0aWF0ZWQoKTsKIAogICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCk7Ci0gICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVy
LnNldExvd01lbW9yeUhhbmRsZXIoW3RoaXNdIChib29sIGNyaXRpY2FsKSB7CisgICAgbWVtb3J5
UHJlc3N1cmVIYW5kbGVyLnNldExvd01lbW9yeUhhbmRsZXIoW3RoaXNdIChDcml0aWNhbCBjcml0
aWNhbCwgU3luY2hyb25vdXMpIHsKICAgICAgICAgbG93TWVtb3J5SGFuZGxlcihjcml0aWNhbCk7
CiAgICAgfSk7CiAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLmluc3RhbGwoKTsKQEAgLTUxNiwx
MyArNTE1LDEzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnRlcm1pbmF0ZSgpCiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkoYm9vbCYgaGFuZGxlZCkK
IHsKLSAgICBsb3dNZW1vcnlIYW5kbGVyKHRydWUpOworICAgIGxvd01lbW9yeUhhbmRsZXIoQ3Jp
dGljYWw6Olllcyk7CiAgICAgaGFuZGxlZCA9IHRydWU7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnByZXBhcmVUb1N1c3BlbmQoKQogewotICAgIGxvd01lbW9yeUhhbmRsZXIodHJ1ZSk7Cisg
ICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKICAgICBwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVh
ZHlUb1N1c3BlbmQoKSwgMCk7CiB9CiAKQEAgLTU0OCw3ICs1NDcsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlv
blBhcmFtZXRlcgogewogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUxvd01lbW9y
eUhhbmRsZXIoYm9vbCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtTG93TWVtb3J5SGFu
ZGxlcihDcml0aWNhbCkKIHsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggN2FkYmUxMjIxMDJkNjUwNjJjYzQ0MTZjMGM2
ZWQ1M2ZkYWZhOWJiMS4uYjlkNmVkOTVlOTk5NmM5NjIwYzQ4N2NmMmJkZTNmNDA5ZmNmNzM2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyTWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTk3LDggKzk4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgdGVybWluYXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybVRlcm1pbmF0ZSgp
OwogCi0gICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKGJvb2wgY3JpdGljYWwpOwotICAgIHZvaWQg
cGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKGJvb2wgY3JpdGljYWwpOworICAgIHZvaWQgbG93TWVt
b3J5SGFuZGxlcihXZWJDb3JlOjpDcml0aWNhbCk7CisgICAgdm9pZCBwbGF0Zm9ybUxvd01lbW9y
eUhhbmRsZXIoV2ViQ29yZTo6Q3JpdGljYWwpOwogCiAgICAgLy8gQ2hpbGRQcm9jZXNzCiAgICAg
dmlydHVhbCB2b2lkIGluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggNWI2
M2QxMjQyZTNmNzhlY2Q3ZjAyMWZjNjgyNWFiMDkwNjc1ZDI1Yy4uZjRlY2RlMzU3NDU3MmFhMzIx
ODQzNzc2MzM0OTczY2VlMDRiOWVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC0zOSw3ICsz
OSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybUxvd01lbW9yeUhhbmRsZXIoYm9vbCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3Jt
TG93TWVtb3J5SGFuZGxlcihXZWJDb3JlOjpDcml0aWNhbCkKIHsKICAgICBDRlVSTENvbm5lY3Rp
b25JbnZhbGlkYXRlQ29ubmVjdGlvbkNhY2hlKCk7CiAgICAgX0NGVVJMQ2FjaGVQdXJnZU1lbW9y
eUNhY2hlKGFkb3B0Q0YoQ0ZVUkxDYWNoZUNvcHlTaGFyZWRVUkxDYWNoZSgpKS5nZXQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCAy
MjBjYzBkZDAyNDVlNzc0NjUxYjUxNWZmNGExYTVmYTQ3YTMxNmNhLi5lMzNkZTAwMGJiZTFlYjNl
MzgyYWJmODhmNzU0YWRjM2Y3MTE5MTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBQbHVnaW5Qcm9j
ZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVQcm9jZXNzKHBhcmFtZXRlcnMpOwogCiAg
ICAgYXV0byYgbWVtb3J5UHJlc3N1cmVIYW5kbGVyID0gTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpz
aW5nbGV0b24oKTsKLSAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0TG93TWVtb3J5SGFuZGxl
cihbdGhpc10gKGJvb2wpIHsKKyAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0TG93TWVtb3J5
SGFuZGxlcihbdGhpc10gKENyaXRpY2FsLCBTeW5jaHJvbm91cykgewogICAgICAgICBpZiAoc2hv
dWxkVGVybWluYXRlKCkpCiAgICAgICAgICAgICB0ZXJtaW5hdGUoKTsKICAgICB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGE2MTBjZTU3YjAyYzE5M2Yx
MTg5ZGUzOTcwNjI0NTM2YTliMTExMWMuLjA2OWViMWY0MGYyNzQ4ZDRlYTRlNTBkMWM0YTliMzk4
NmExYTI1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
MTIyNiw3ICsxMjI2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpyZXNldEFsbEdlb2xvY2F0aW9uUGVy
bWlzc2lvbnMoKQogCiB2b2lkIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hv
dWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQgc2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVh
ZHlUb1N1c3BlbmQpCiB7Ci0gICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5y
ZWxlYXNlTWVtb3J5KHRydWUpOworICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9u
KCkucmVsZWFzZU1lbW9yeShDcml0aWNhbDo6WWVzLCBTeW5jaHJvbm91czo6WWVzKTsKICAgICBz
ZXRBbGxMYXllclRyZWVTdGF0ZXNGcm96ZW4odHJ1ZSk7CiAKICAgICBpZiAobWFya0FsbExheWVy
c1ZvbGF0aWxlSWZQb3NzaWJsZSgpKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254270</attachid>
            <date>2015-06-04 10:35:18 -0700</date>
            <delta_ts>2015-06-04 11:24:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145633-20150604103457.patch</filename>
            <type>text/plain</type>
            <size>22373</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MDliYjEzOWJhMDRiNjMzMzY3ZTFlYTNjN2YxOTUwZGMzNDE4YjI1Li4wMzZmYmQyYWIyZWE3MDll
YTE5YWFlMDhlMjJlNTE2MDhiZGY0YTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wNi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2VzIGZyb20gdGhlIE1lbW9yeUNhY2hl
IGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMg
S2xpbmcuCisKKyAgICAgICAgTm8gbG9uZ2VyIG1vdmUgcHJvdGVjdCBJbmNyZW1lbnRhbFN3ZWVw
ZXI6OmZ1bGxTd2VlcCgpIGJlaGluZAorICAgICAgICBVU0UoQ0YpIHNvIHdlIGRvbid0IG5lZWQg
I2lmZGVmcyBhdCBjYWxsIHNpdGVzLCBzaW1pbGFybHkgdG8gd2hhdCBpcworICAgICAgICBkb25l
IGZvciB0aGUgcmVzdCBvZiB0aGUgSW5jcmVtZW50YWxTd2VlcGVyIEFQSS4KKworICAgICAgICAq
IGhlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxT
d2VlcGVyOjpmdWxsU3dlZXApOgorICAgICAgICAqIGhlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmg6
CisKIDIwMTUtMDYtMDEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYWxsTGlua1N0YXR1cyBzaG91bGQgcmV0dXJuIHRha2VzU2xvd1BhdGggaWYgdGhlIEdDIG9m
dGVuIGNsZWFyZWQgdGhlIElDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgwOWFkNGQ4MTY0YjY3ZjYyOTIzNTQw
OGZkMjg0ZWRmYzQyOTU5NC4uZTkxYTkxODg5YzEzN2Q0MzBjY2Y0NTRmNDRhZWZmYTFjMjA1NTE2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE1LTA2LTA0ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gUHJ1bmUgbW9yZSByZXNvdXJjZXMg
ZnJvbSB0aGUgTWVtb3J5Q2FjaGUgYmVmb3JlIHByb2Nlc3Mgc3VzcGVuc2lvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjMzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICBQcnVuZSBtb3JlIHJlc291cmNl
cyBmcm9tIHRoZSBNZW1vcnlDYWNoZSBiZWZvcmUgcHJvY2VzcyBzdXNwZW5zaW9uIG9yCisgICAg
ICAgIG9uIHNpbXVsYXRlZCBtZW1vcnkgd2FybmluZyBieSBkb2luZyBhIHN5bmNocm9ub3VzIEpT
IGdhcmJhZ2UgY29sbGVjdGlvbgorICAgICAgICBhbmQgc3dlZXAgKmJlZm9yZSogcHJ1bmluZyBk
ZWFkIHJlc291cmNlcyBmcm9tIHRoZSBtZW1vcnkgY2FjaGUuCisgICAgICAgIFByZXZpb3VzbHks
IHdlIHdvdWxkIGRvIHRoZSBnYXJiYWdlIGNvbGxlY3Rpb24gYWZ0ZXIgcHJ1bmluZyB0aGUKKyAg
ICAgICAgTWVtb3J5Q2FjaGUgd2hpY2ggbWVhbnQgdGhhdCBhIGxvdCBvZiByZXNvdXJjZXMgYmVj
YW1lIGRlYWQgYWZ0ZXIgd2UKKyAgICAgICAgdHJpZWQgdG8gcHJ1bmUgdGhlbS4KKworICAgICAg
ICBBdCB0aGUgZW5kIGEgYmFzaWMgYnJvd3Npbmcgb24gYXBwbGUuY29tLCB3ZSBhcmUgYWJsZSB0
byByZW1vdmUgfjE3JQorICAgICAgICBtb3JlIHJlc291cmNlcyBmcm9tIHRoZSBNZW1vcnlDYWNo
ZSBvbiBzaW11bGF0ZWQgbWVtb3J5IHdhcm5pbmcgd2l0aCB0aGlzCisgICAgICAgIGNoYW5nZS4K
KworICAgICAgICBQcnVuaW5nIGFzIG11Y2ggYXMgd2UgY2FuIGZyb20gdGhlIG1lbW9yeSBjYWNo
ZSBvbiBjcml0aWNhbCBtZW1vcnkKKyAgICAgICAgcHJlc3N1cmUgb3IgYmVmb3JlIHByb2Nlc3Mg
c3VzcGVuc2lvbiBpcyBub3Qgb25seSB1c2VmdWwgdG8gZnJlZSB1cAorICAgICAgICBtZW1vcnkg
YnV0IGFsc28gdG8gbWFrZSByb29tIGluIHRoZSB2bm9kZSB0YWJsZSBhcyBhIGxvdCBvZgorICAg
ICAgICBDYWNoZWRSZXNvdXJjZXMgYXJlIG1tbWFwJ2QgZnJvbSB0aGUgbmV0d29yayBkaXNrIGNh
Y2hlLgorCisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6TWVtb3J5UHJlc3N1cmVIYW5k
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNy
aXRpY2FsTWVtb3J5KToKKworICAgICAgICAtIFBhc3MgJ3N5bmNocm9ub3VzJyBhcmd1bWVudCBz
byB0aGF0IHdlIGtub3cgaWYgd2UgbmVlZCB0byBkbyBhCisgICAgICAgICAgc3luY2hyb25vdXMg
SlMgZ2FyYmFnZSBjb2xsZWN0aW9uLgorICAgICAgICAtIE1vdmUgaGVyZSBjb2RlIGZyb20gaW4g
dGhlIENvY29hIGhhbmRsZXIgdGhhdCBpcyBkb2luZyBhIEpTIGdhcmJhZ2UKKyAgICAgICAgICBj
b2xsZWN0aW9uIGFzIHdlbGwgYXMgYSBzd2VlcCwgYW5kIG1ha2UgdGhpcyBjb2RlIGNyb3NzLXBs
YXRmb3JtLgorICAgICAgICAgIFRoaXMgY29kZSB1c2VkIHRvIGJlIGlPUyBzcGVjaWZpYyBidXQg
SSBzZWUgbm8gcmVhc29uIHdlIHNob3VsZG4ndAorICAgICAgICAgIGRvIHRoaXMgb24gTWFjLgor
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkp
OgorICAgICAgICAqIHBsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oOgorCisgICAgICAg
IFVzZSBlbnVtIGNsYXNzIGFyZ3VtZW50cyBmb3IgY3JpdGljYWwgLyBzeW5jaHJvbm91cy4gVGhl
ICdzeW5jaHJvbm91cycKKyAgICAgICAgYXJndW1lbnQgaXMgbmV3IHNvIHRoYXQgdGhlIGNhbGwg
c2l0ZSBjYW4gbGV0IHVzIGtub3cgaWYgbWVtb3J5IG5lZWRzCisgICAgICAgIHRvIGJlIGZyZWVk
IHN5bmNocm9ub3VzbHkgKGUuZy4gaW4gY2FzZSBvZiBpbW1pbmVudCBwcm9jZXNzIHN1c3BlbnNp
b24pLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29j
b2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3Jt
UmVsZWFzZU1lbW9yeSk6CisKKyAgICAgICAgUmVtb3ZlIGlPUy1zcGVjaWZpYyBjb2RlIHRoYXQg
d2FzIGRvaW5nIGEgSlMgZ2FyYmFnZSBjb2xsZWN0aW9uIGFuZAorICAgICAgICBzd2VlcCBhcyB0
aGlzIGNvZGUgaXMgbm93IGluIHRoZSBnZW5lcmljIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyLgor
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwpOgorCisg
ICAgICAgIE9uIHNpbXVsYXRlZCBtZW1vcnkgcHJlc3N1cmUsIHNldCAnc3luY2hyb25vdXMnIGFy
Z3VtZW50IHRvIFllcyBzbyB0aGF0CisgICAgICAgIGEgc3luY2hyb25vdXMgR0MgaXMgZG9uZSBi
eSB0aGUgZ2VuZXJpYyBtZW1vcnkgcHJlc3N1cmUgaGFuZGxlci4gVGhpcworICAgICAgICB3YXks
IHdlIG5vIGxvbmdlciBuZWVkIHRvIGRvIGEgc3luYyBHQyBhZnRlciBjYWxsaW5nIHRoZSBtZW1v
cnkgcHJlc3N1cmUKKyAgICAgICAgaGFuZGxlci4gVGhpcyBhdm9pZHMgY29kZSBkdXBsaWNhdGlv
biBhbmQgbWFrZXMgc3VyZSB0aGUgR0MgaXMgZG9uZQorICAgICAgICBiZWZvcmUgcHJ1bmluZyB0
aGUgbWVtb3J5IGNhY2hlLgorCisKIDIwMTUtMDYtMDMgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBl
cmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gW1dheWxhbmRdIEJ1aWxk
IGlzIGJyb2tlbiBvbiB0cnVuawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk3Y2EzOGI0NjRjZDk1ZjlhMTBhMmNk
OWRmY2M1MjkxMzJhNWYwOWIuLjIyNDM0MjFjNzJlMWZhMDE4MjQ4MmQwNjAxOTUxNTJlODFhYTQ3
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNS0wNi0wNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFBydW5lIG1vcmUgcmVzb3VyY2Vz
IGZyb20gdGhlIE1lbW9yeUNhY2hlIGJlZm9yZSBwcm9jZXNzIHN1c3BlbnNpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYzMworCisgICAgICAg
IFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpsb3dN
ZW1vcnlIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcm9j
ZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3ND
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtTG93TWVt
b3J5SGFuZGxlcik6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgorCisg
ICAgICAgIFVwZGF0ZSBsb3cgbWVtb3J5IGhhbmRsZXIgcHJvdG90eXBlIHRvIG1hdGNoIFdlYkNv
cmUgY2hhbmdlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQpOgorCisgICAg
ICAgIFBhc3MgU3luY2hyb25vdXM6OlllcyBhcmd1bWVudCB0byBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnJlbGVhc2VNZW1vcnkoKQorICAgICAgICB0byByZXF1ZXN0IHRoYXQgdGhlIG1lbW9yeSBp
cyBmcmVlIHVwIHN5bmNocm9ub3VzbHkgKGUuZy4gc3luY2hyb25vdXMKKyAgICAgICAgSlMgZ2Fy
YmFnZSBjb2xsZWN0aW9uKSBhcyB0aGUgcHJvY2VzcyBpcyBhYm91dCB0byBiZSBzdXNwZW5kZWQu
CisgICAgICAgIFByZXZpb3VzbHksIHRoZSBtZW1vcnkgcHJlc3N1cmUgaGFuZGxlciB3YXMgdHJ5
aW5nIHRvIGRldGVjdCB0aGlzIGNhc2UKKyAgICAgICAgYnkgY2hlY2tpbmcgaWYgdGhlIHN5c3Rl
bSB3YXMgcmVhbGx5IHVuZGVyIG1lbW9yeSBwcmVzc3VyZSBidXQgdGhpcyB3YXMKKyAgICAgICAg
YSBiaXQgaGFja2lzaCBhbmQgaXQgd291bGRuJ3Qgd29yayBpZiB0aGUgcHJvY2VzcyBoYXBwZW5l
ZCB0byBnZXQKKyAgICAgICAgc3VzcGVuZGVkIHdoaWxlIHRoZSBzeXN0ZW0gd2FzIHVuZGVyIG1l
bW9yeSBwcmVzc3VyZS4KKwogMjAxNS0wNi0wMyAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXog
IDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbV2F5bGFuZF0gQnVpbGQgaXMg
YnJva2VuIG9uIHRydW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
bmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVt
ZW50YWxTd2VlcGVyLmNwcAppbmRleCAzZmY0ZDhjM2EwNDA2ZmZkNmRlOTliZDg4Y2RkNDczZGE0
MWI4OGQxLi4xZTE5NTdlNDkwYTA4NThmNzYxMjJiMDE1ODMwOGVkNzA5ZWZkY2YyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKQEAg
LTEzMiw2ICsxMzIsMTAgQEAgdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OndpbGxGaW5pc2hTd2Vl
cGluZygpCiB7CiB9CiAKK3ZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpmdWxsU3dlZXAoKQorewor
fQorCiBib29sIEluY3JlbWVudGFsU3dlZXBlcjo6c3dlZXBOZXh0QmxvY2soKQogewogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3Jl
bWVudGFsU3dlZXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxT
d2VlcGVyLmgKaW5kZXggZjgxM2EzNmZhYWM4ZDUzMzY5MDFmODM2MTdkY2EzOTJhNThhY2Q2ZS4u
NTk2MjBhMDQ4NGQzNTgzMGNlMzhkZTdlMzEyYTdlMDVmMjdjZTljNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKQEAgLTM5LDExICszOSwx
MSBAQCBjbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXIgOiBwdWJsaWMgSGVhcFRpbWVyIHsKIHB1Ymxp
YzoKICNpZiBVU0UoQ0YpCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSW5jcmVtZW50YWxTd2VlcGVy
KEhlYXAqLCBDRlJ1bkxvb3BSZWYpOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZnVsbFN3
ZWVwKCk7CiAjZWxzZQogICAgIGV4cGxpY2l0IEluY3JlbWVudGFsU3dlZXBlcihWTSopOwogI2Vu
ZGlmCiAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGZ1bGxTd2VlcCgpOwogICAgIHZvaWQg
c3RhcnRTd2VlcGluZygpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIGRv
V29yaygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVBy
ZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggN2YzYTIxZDZjMzI5MDdiZTgzNGM5ZDk2N2JiZTg5YjVj
MTM4MDFmNy4uNjQ3Y2QwMzM0OWQ5ZjExNGZiNTI1OGI5YjRiMDUzZTRhOTBjYzBmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU2Nyb2xs
aW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSW5jcmVtZW50YWxTd2VlcGVyLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CkBAIC01NCw3ICs1NSw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlciYgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKQogTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIoKSAKICAgICA6IG1faW5zdGFsbGVkKGZhbHNlKQogICAgICwgbV9sYXN0
UmVzcG9uZFRpbWUoMCkKLSAgICAsIG1fbG93TWVtb3J5SGFuZGxlcihbdGhpc10gKGJvb2wgY3Jp
dGljYWwpIHsgcmVsZWFzZU1lbW9yeShjcml0aWNhbCk7IH0pCisgICAgLCBtX2xvd01lbW9yeUhh
bmRsZXIoW3RoaXNdIChDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMp
IHsgcmVsZWFzZU1lbW9yeShjcml0aWNhbCwgc3luY2hyb25vdXMpOyB9KQogICAgICwgbV91bmRl
ck1lbW9yeVByZXNzdXJlKGZhbHNlKQogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTog
Q2FuIHdlIHNoYXJlIG1vcmUgb2YgdGhpcyB3aXRoIE9wZW5Tb3VyY2U/CkBAIC0xMDAsNyArMTAx
LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VOb25jcml0aWNhbE1lbW9y
eSgpCiAgICAgfQogfQogCi12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRp
Y2FsTWVtb3J5KCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlQ3JpdGljYWxN
ZW1vcnkoU3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAgICAgewogICAgICAgICBSZWxpZWZM
b2dnZXIgbG9nKCJFbXB0eSB0aGUgUGFnZUNhY2hlIik7CkBAIC0xMzQsMTIgKzEzNSwyOSBAQCB2
b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KCkKICAgICAg
ICAgUmVsaWVmTG9nZ2VyIGxvZygiSW52YWxpZGF0ZSBmb250IGNhY2hlIik7CiAgICAgICAgIEZv
bnRDYWNoZTo6c2luZ2xldG9uKCkuaW52YWxpZGF0ZSgpOwogICAgIH0KKworICAgIGlmIChzeW5j
aHJvbm91cyA9PSBTeW5jaHJvbm91czo6WWVzKSB7CisgICAgICAgIFJlbGllZkxvZ2dlciBsb2co
IkNvbGxlY3RpbmcgSmF2YVNjcmlwdCBnYXJiYWdlIik7CisgICAgICAgIGdjQ29udHJvbGxlcigp
LmdhcmJhZ2VDb2xsZWN0Tm93KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBkbyBhIGdhcmJhZ2Ugc3dlZXAgYW5kIHBydW5lIGRlYWQgcmVzb3VyY2VzIGZyb20g
dGhlIE1lbW9yeUNhY2hlCisgICAgICAgIC8vIGFmdGVyIHRoZSBnYXJiYWdlIGNvbGxlY3Rpb24g
aGFzIGNvbXBsZXRlZCB0byBmcmVlIHVwIG1vcmUgbWVtb3J5LgorICAgICAgICBnY0NvbnRyb2xs
ZXIoKS5nYXJiYWdlQ29sbGVjdFNvb24oKTsKKworICAgICAgICAvLyBEbyBhIGZ1bGwgc3dlZXAg
b2YgY29sbGVjdGVkIG9iamVjdHMuIGdhcmJhZ2VDb2xsZWN0Tm93KCkgYWxyZWFkeSBkb2VzIHRo
aXMgc28gd2Ugb25seQorICAgICAgICAvLyBuZWVkIHRvIGRvIHRoaXMgaWYgaXQgaXNuJ3QgY2Fs
bGVkLgorICAgICAgICB7CisgICAgICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJGdWxsIEphdmFT
Y3JpcHQgZ2FyYmFnZSBzd2VlcCIpOworICAgICAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9j
ayhKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKSk7CisgICAgICAgICAgICBKU0RPTVdpbmRvdzo6Y29t
bW9uVk0oKS5oZWFwLnN3ZWVwZXIoKS0+ZnVsbFN3ZWVwKCk7CisgICAgICAgIH0KKyAgICB9CiB9
CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZWxlYXNlTWVtb3J5KGJvb2wgY3JpdGlj
YWwpCit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVsZWFzZU1lbW9yeShDcml0aWNhbCBj
cml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7Ci0gICAgaWYgKGNyaXRpY2FsKQot
ICAgICAgICByZWxlYXNlQ3JpdGljYWxNZW1vcnkoKTsKKyAgICBpZiAoY3JpdGljYWwgPT0gQ3Jp
dGljYWw6OlllcykKKyAgICAgICAgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KHN5bmNocm9ub3VzKTsK
IAogICAgIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeSgpOwogCkBAIC0xNjAsOCArMTc4LDggQEAg
dm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkK
IHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjppbnN0YWxsKCkgeyB9CiB2b2lkIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6dW5pbnN0YWxsKCkgeyB9CiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6aG9sZE9mZih1bnNpZ25lZCkgeyB9Ci12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVz
cG9uZFRvTWVtb3J5UHJlc3N1cmUoYm9vbCkgeyB9Ci12b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KGJvb2wpIHsgfQordm9pZCBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKENyaXRpY2FsLCBTeW5jaHJvbm91cykgeyB9
Cit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxlYXNlTWVtb3J5KENyaXRp
Y2FsKSB7IH0KIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6OnBsYXRm
b3JtTG9nKCkgeyB9CiBzaXplX3QgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZMb2dnZXI6
OnBsYXRmb3JtTWVtb3J5VXNhZ2UoKSB7IHJldHVybiAwOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgKaW5kZXggYjljOGNlYzM1
NDFjMzg0YzRiZWQwM2YzODlmMTY3ZjczYzllMjU1NS4uNTU3MTA1ODgxNzZiMzNkYzA2OWM2NGUw
MDViNzViYjhkZDRhNmRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmgKQEAgLTQ5LDcgKzQ5LDEwIEBAIGVudW0gTWVtb3J5UHJlc3N1cmVS
ZWFzb24gewogfTsKICNlbmRpZgogCi10eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sIGNy
aXRpY2FsKT4gTG93TWVtb3J5SGFuZGxlcjsKK2VudW0gY2xhc3MgQ3JpdGljYWwgeyBObywgWWVz
IH07CitlbnVtIGNsYXNzIFN5bmNocm9ub3VzIHsgTm8sIFllcyB9OworCit0eXBlZGVmIHN0ZDo6
ZnVuY3Rpb248dm9pZChDcml0aWNhbCwgU3luY2hyb25vdXMpPiBMb3dNZW1vcnlIYW5kbGVyOwog
CiBjbGFzcyBNZW1vcnlQcmVzc3VyZUhhbmRsZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwpAQCAtMTA3LDExICsxMTAsMTEgQEAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgYm9vbCBzX2xvZ2dpbmdFbmFibGVkOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZWxlYXNlTWVtb3J5KENyaXRpY2FsLCBTeW5jaHJvbm91cyA9IFN5bmNocm9ub3Vz
OjpObyk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZWxlYXNlTm9uY3JpdGljYWxNZW1vcnkoKTsK
LSAgICB2b2lkIHJlbGVhc2VDcml0aWNhbE1lbW9yeSgpOworICAgIHZvaWQgcmVsZWFzZUNyaXRp
Y2FsTWVtb3J5KFN5bmNocm9ub3VzKTsKIAogICAgIHZvaWQgdW5pbnN0YWxsKCk7CiAKQEAgLTEy
MCw4ICsxMjMsOCBAQCBwcml2YXRlOgogICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcigpOwogICAg
IH5NZW1vcnlQcmVzc3VyZUhhbmRsZXIoKSA9IGRlbGV0ZTsKIAotICAgIHZvaWQgcmVzcG9uZFRv
TWVtb3J5UHJlc3N1cmUoYm9vbCBjcml0aWNhbCk7Ci0gICAgdm9pZCBwbGF0Zm9ybVJlbGVhc2VN
ZW1vcnkoYm9vbCBjcml0aWNhbCk7CisgICAgdm9pZCByZXNwb25kVG9NZW1vcnlQcmVzc3VyZShD
cml0aWNhbCwgU3luY2hyb25vdXMgPSBTeW5jaHJvbm91czo6Tm8pOworICAgIHZvaWQgcGxhdGZv
cm1SZWxlYXNlTWVtb3J5KENyaXRpY2FsKTsKIAogICAgIGJvb2wgbV9pbnN0YWxsZWQ7CiAgICAg
dGltZV90IG1fbGFzdFJlc3BvbmRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQppbmRleCAxZWUz
YjhmMDQyYzcxNDJiYmZmNTBiNjhkNjUyM2FjMjU5ZTA1Mjk5Li5hNzNiNDFhNjU3MThjMDFjMjIw
ODhkNGZkOWY0OTU3NDFiNmNjMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQpAQCAtMzQsNyAr
MzQsNiBAQAogI2ltcG9ydCAiTGF5ZXJQb29sLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1w
b3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9J
bmNyZW1lbnRhbFN3ZWVwZXIuaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8bWFj
aC90YXNrX2luZm8uaD4KICNpbXBvcnQgPG1hbGxvYy9tYWxsb2MuaD4KQEAgLTUxLDcgKzUwLDcg
QEAgZXh0ZXJuICJDIiB2b2lkIF9zcWxpdGUzX3B1cmdlRWxpZ2libGVQYWdlckNhY2hlTWVtb3J5
KHZvaWQpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoYm9vbCBjcml0aWNhbCkKK3ZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwpCiB7
CiAgICAgewogICAgICAgICBSZWxpZWZMb2dnZXIgbG9nKCJQdXJnaW5nIFNRTGl0ZSBjYWNoZXMi
KTsKQEAgLTcxLDcgKzcwLDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3Jt
UmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Mp
IHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKGNy
aXRpY2FsICYmICFpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkgeworICAgIGlmIChjcml0aWNhbCA9
PSBDcml0aWNhbDo6WWVzICYmICFpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkgewogICAgICAgICAv
LyBsaWJjYWNoZSBsaXN0ZW5zIHRvIE9TIG1lbW9yeSBub3RpZmljYXRpb25zLCBidXQgZm9yIHBy
b2Nlc3Mgc3VzcGVuc2lvbgogICAgICAgICAvLyBvciBtZW1vcnkgcHJlc3N1cmUgc2ltdWxhdGlv
biwgd2UgbmVlZCB0byBwcm9kIGl0IG1hbnVhbGx5OgogICAgICAgICBSZWxpZWZMb2dnZXIgbG9n
KCJQdXJnaW5nIGxpYmNhY2hlIGNhY2hlcyIpOwpAQCAtODAsMjQgKzc5LDYgQEAgdm9pZCBNZW1v
cnlQcmVzc3VyZUhhbmRsZXI6OnBsYXRmb3JtUmVsZWFzZU1lbW9yeShib29sIGNyaXRpY2FsKQog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY3JpdGljYWwpOwogI2VuZGlmCi0KLSNpZiBQTEFURk9S
TShJT1MpCi0gICAgaWYgKGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7Ci0gICAgICAgIGdjQ29u
dHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0U29vbigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8v
IElmIHdlJ3JlIG5vdCB1bmRlciBtZW1vcnkgcHJlc3N1cmUsIHRoYXQgbWVhbnMgd2UncmUgaGVy
ZSBkdWUgdG8gaW1wZW5kaW5nIHByb2Nlc3Mgc3VzcGVuc2lvbi4KLSAgICAgICAgLy8gRG8gYSBm
dWxsIEdDIHNpbmNlIHRoaXMgaXMgb3VyIGxhc3QgY2hhbmNlIHRvIHJ1biBhbnkgY29kZS4KLSAg
ICAgICAgUmVsaWVmTG9nZ2VyIGxvZygiQ29sbGVjdGluZyBKYXZhU2NyaXB0IGdhcmJhZ2UiKTsK
LSAgICAgICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3coKTsKLSAgICB9Ci0KLSAg
ICAvLyBEbyBhIGZ1bGwgc3dlZXAgb2YgY29sbGVjdGVkIG9iamVjdHMuCi0gICAgewotICAgICAg
ICBSZWxpZWZMb2dnZXIgbG9nKCJGdWxsIEphdmFTY3JpcHQgZ2FyYmFnZSBzd2VlcCIpOwotICAg
ICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsKLSAg
ICAgICAgSlNET01XaW5kb3c6OmNvbW1vblZNKCkuaGVhcC5zd2VlcGVyKCktPmZ1bGxTd2VlcCgp
OwotICAgIH0KLSNlbmRpZgogfQogCiBzdGF0aWMgZGlzcGF0Y2hfc291cmNlX3QgX2NhY2hlX2V2
ZW50X3NvdXJjZSA9IDA7CkBAIC0xNDcsNyArMTI4LDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6Omluc3RhbGwoKQogICAgICAgICAgICAgICAgIGlmIChSZWxpZWZMb2dnZXI6OmxvZ2dp
bmdFbmFibGVkKCkpCiAgICAgICAgICAgICAgICAgICAgIE5TTG9nKEAiR290IG1lbW9yeSBwcmVz
c3VyZSBub3RpZmljYXRpb24gKCVzKSIsIGNyaXRpY2FsID8gImNyaXRpY2FsIiA6ICJub24tY3Jp
dGljYWwiKTsKICNlbmRpZgotICAgICAgICAgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOworICAgICAgICAg
ICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5
UHJlc3N1cmUoY3JpdGljYWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKF9jYWNoZV9ldmVudF9zb3Vy
Y2UpOwogICAgICAgICB9CkBAIC0xNTUsMTEgKzEzNiw3IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVI
YW5kbGVyOjppbnN0YWxsKCkKIAogICAgIC8vIEFsbG93IHNpbXVsYXRpb24gb2YgbWVtb3J5IHBy
ZXNzdXJlIHdpdGggIm5vdGlmeXV0aWwgLXAgb3JnLldlYktpdC5sb3dNZW1vcnkiCiAgICAgbm90
aWZ5X3JlZ2lzdGVyX2Rpc3BhdGNoKCJvcmcuV2ViS2l0Lmxvd01lbW9yeSIsICZfbm90aWZ5VG9r
ZW4sIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oaW50KSB7Ci0gICAgICAgIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUodHJ1ZSk7
Ci0KLSAgICAgICAgLy8gV2Ugb25seSBkbyBhIHN5bmNocm9ub3VzIEdDIHdoZW4gKnNpbXVsYXRp
bmcqIG1lbW9yeSBwcmVzc3VyZS4KLSAgICAgICAgLy8gVGhpcyBnaXZlcyB1cyBhIG1vcmUgY29u
c2lzdGVudCBwaWN0dXJlIG9mIGxpdmUgb2JqZWN0cyBhdCB0aGUgZW5kIG9mIHRlc3RpbmcuCi0g
ICAgICAgIGdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xsZWN0Tm93KCk7CisgICAgICAgIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3Jp
dGljYWw6OlllcywgU3luY2hyb25vdXM6Olllcyk7CiAKICAgICAgICAgV1RGOjpyZWxlYXNlRmFz
dE1hbGxvY0ZyZWVNZW1vcnkoKTsKIApAQCAtMjEzLDE0ICsxOTAsMTQgQEAgdm9pZCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OmhvbGRPZmYodW5zaWduZWQgc2Vjb25kcykKICAgICB9KTsKIH0KIAot
dm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGJvb2wg
Y3JpdGljYWwpCit2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJl
c3N1cmUoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQogewogI2lm
ICFQTEFURk9STShJT1MpCiAgICAgdW5pbnN0YWxsKCk7CiAgICAgZG91YmxlIHN0YXJ0VGltZSA9
IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKLSAgICBtX2xvd01lbW9y
eUhhbmRsZXIoY3JpdGljYWwpOworICAgIG1fbG93TWVtb3J5SGFuZGxlcihjcml0aWNhbCwgc3lu
Y2hyb25vdXMpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB1bnNpZ25lZCBob2xkT2ZmVGlt
ZSA9IChtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRP
ZmZNdWx0aXBsaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCmluZGV4IDJhMWViZTdlZjk1YTM0
NDFkZTUwZTFkYWVkMDVjMjBlZDI3Y2JmYjAuLmVhNjE5MDkxNzYxYTUxN2Q1YTAxMTQ2MWI1NWFk
OTY4YWYxYzAwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01l
bW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBA
QCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6d2FpdEZvck1lbW9yeVByZXNzdXJlRXZlbnQo
dm9pZCopCiAKICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLnNldFVuZGVy
TWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NyaXRpY2Fs
XSB7Ci0gICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkucmVzcG9uZFRv
TWVtb3J5UHJlc3N1cmUoY3JpdGljYWwpOworICAgICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OnNpbmdsZXRvbigpLnJlc3BvbmRUb01lbW9yeVByZXNzdXJlKGNyaXRpY2FsID8gQ3JpdGljYWw6
OlllcyA6IENyaXRpY2FsOjpObyk7CiAgICAgfSk7CiB9CiAKQEAgLTE4OSwxNyArMTg5LDE3IEBA
IHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpob2xkT2ZmKHVuc2lnbmVkIHNlY29uZHMpCiAg
ICAgbV9ob2xkT2ZmVGltZXIuc3RhcnRPbmVTaG90KHNlY29uZHMpOwogfQogCi12b2lkIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoYm9vbCBjcml0aWNhbCkK
K3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpyZXNwb25kVG9NZW1vcnlQcmVzc3VyZShDcml0
aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMpCiB7CiAgICAgdW5pbnN0YWxs
KCk7CiAKICAgICBkb3VibGUgc3RhcnRUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCk7Ci0gICAgbV9sb3dNZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsKKyAgICBtX2xvd01lbW9yeUhh
bmRsZXIoY3JpdGljYWwsIHN5bmNocm9ub3VzKTsKICAgICB1bnNpZ25lZCBob2xkT2ZmVGltZSA9
IChtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN0YXJ0VGltZSkgKiBzX2hvbGRPZmZN
dWx0aXBsaWVyOwogICAgIGhvbGRPZmYoc3RkOjptYXgoaG9sZE9mZlRpbWUsIHNfbWluaW11bUhv
bGRPZmZUaW1lKSk7CiB9CiAKLXZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJl
bGVhc2VNZW1vcnkoYm9vbCkKK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpwbGF0Zm9ybVJl
bGVhc2VNZW1vcnkoQ3JpdGljYWwpCiB7CiAgICAgUmVsaWVmTG9nZ2VyIGxvZygiUnVuIG1hbGxv
Y190cmltIik7CiAgICAgbWFsbG9jX3RyaW0oMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGY5YmM3NmRjNTQxN2ZmZDk0ZWJk
MGQxOGViYjRlZjc4YjFhYzUzNi4uMzM3OWUwMjdmNTM0N2U1YjUyNDEzYWQyNmFkMmE5YjgxZGU5
ODUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtNDgsNyArNDgsNiBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dp
bmcuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CkBA
IC0xNzUsNyArMTc0LDcgQEAgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBOZXR3b3JrUHJvY2Vzczo6
ZG93bmxvYWRzQXV0aGVudGljYXRpb25NYW5hZ2VyKCkKICAgICByZXR1cm4gYXV0aGVudGljYXRp
b25NYW5hZ2VyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIo
Ym9vbCBjcml0aWNhbCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoQ3Jp
dGljYWwgY3JpdGljYWwpCiB7CiAgICAgcGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKGNyaXRpY2Fs
KTsKICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwpAQCAtMTg4LDcgKzE4
Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25z
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1lCiAgICAgV1RGOjpzZXRDdXJyZW50VGhyZWFk
SXNVc2VySW5pdGlhdGVkKCk7CiAKICAgICBhdXRvJiBtZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpOwotICAgIG1lbW9yeVByZXNzdXJlSGFu
ZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoYm9vbCBjcml0aWNhbCkgeworICAgIG1l
bW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFt0aGlzXSAoQ3JpdGljYWwg
Y3JpdGljYWwsIFN5bmNocm9ub3VzKSB7CiAgICAgICAgIGxvd01lbW9yeUhhbmRsZXIoY3JpdGlj
YWwpOwogICAgIH0pOwogICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5pbnN0YWxsKCk7CkBAIC01
MTYsMTMgKzUxNSwxMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGUoKQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5KGJvb2wmIGhhbmRs
ZWQpCiB7Ci0gICAgbG93TWVtb3J5SGFuZGxlcih0cnVlKTsKKyAgICBsb3dNZW1vcnlIYW5kbGVy
KENyaXRpY2FsOjpZZXMpOwogICAgIGhhbmRsZWQgPSB0cnVlOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCkKIHsKLSAgICBsb3dNZW1vcnlIYW5kbGVyKHRydWUp
OworICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAgICAgcGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6UHJvY2Vz
c1JlYWR5VG9TdXNwZW5kKCksIDApOwogfQogCkBAIC01NDgsNyArNTQ3LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXIKIHsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Mb3dN
ZW1vcnlIYW5kbGVyKGJvb2wpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUxvd01lbW9y
eUhhbmRsZXIoQ3JpdGljYWwpCiB7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDdhZGJlMTIyMTAyZDY1MDYyY2M0NDE2
YzBjNmVkNTNmZGFmYTliYjEuLmI5ZDZlZDk1ZTk5OTZjOTYyMGM0ODdjZjJiZGUzZjQwOWZjZjcz
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlci5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC05Nyw4ICs5OCw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHRlcm1pbmF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcGxhdGZvcm1UZXJtaW5h
dGUoKTsKIAotICAgIHZvaWQgbG93TWVtb3J5SGFuZGxlcihib29sIGNyaXRpY2FsKTsKLSAgICB2
b2lkIHBsYXRmb3JtTG93TWVtb3J5SGFuZGxlcihib29sIGNyaXRpY2FsKTsKKyAgICB2b2lkIGxv
d01lbW9yeUhhbmRsZXIoV2ViQ29yZTo6Q3JpdGljYWwpOworICAgIHZvaWQgcGxhdGZvcm1Mb3dN
ZW1vcnlIYW5kbGVyKFdlYkNvcmU6OkNyaXRpY2FsKTsKIAogICAgIC8vIENoaWxkUHJvY2Vzcwog
ICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmluZGV4
IDViNjNkMTI0MmUzZjc4ZWNkN2YwMjFmYzY4MjVhYjA5MDY3NWQyNWMuLmY0ZWNkZTM1NzQ1NzJh
YTMyMTg0Mzc3NjMzNDk3M2NlZTA0YjllYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtMzks
NyArMzksNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1Mb3dNZW1vcnlIYW5kbGVyKGJvb2wpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybUxvd01lbW9yeUhhbmRsZXIoV2ViQ29yZTo6Q3JpdGljYWwpCiB7CiAgICAgQ0ZVUkxDb25u
ZWN0aW9uSW52YWxpZGF0ZUNvbm5lY3Rpb25DYWNoZSgpOwogICAgIF9DRlVSTENhY2hlUHVyZ2VN
ZW1vcnlDYWNoZShhZG9wdENGKENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSkuZ2V0KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKaW5k
ZXggMjIwY2MwZGQwMjQ1ZTc3NDY1MWI1MTVmZjRhMWE1ZmE0N2EzMTZjYS4uZTMzZGUwMDBiYmUx
ZWIzZTM4MmFiZjg4Zjc1NGFkYzNmNzExOTE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgUGx1Z2lu
UHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2VzcyhwYXJhbWV0ZXJzKTsK
IAogICAgIGF1dG8mIG1lbW9yeVByZXNzdXJlSGFuZGxlciA9IE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2luZ2xldG9uKCk7Ci0gICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldExvd01lbW9yeUhh
bmRsZXIoW3RoaXNdIChib29sKSB7CisgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldExvd01l
bW9yeUhhbmRsZXIoW3RoaXNdIChDcml0aWNhbCwgU3luY2hyb25vdXMpIHsKICAgICAgICAgaWYg
KHNob3VsZFRlcm1pbmF0ZSgpKQogICAgICAgICAgICAgdGVybWluYXRlKCk7CiAgICAgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBhNjEwY2U1N2IwMmMx
OTNmMTE4OWRlMzk3MDYyNDUzNmE5YjExMTFjLi4wNjllYjFmNDBmMjc0OGQ0ZWE0ZTUwZDFjNGE5
YjM5ODZhMWEyNTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
QEAgLTEyMjYsNyArMTIyNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVzZXRBbGxHZW9sb2NhdGlv
blBlcm1pc3Npb25zKCkKIAogdm9pZCBXZWJQcm9jZXNzOjphY3R1YWxQcmVwYXJlVG9TdXNwZW5k
KFNob3VsZEFja25vd2xlZGdlV2hlblJlYWR5VG9TdXNwZW5kIHNob3VsZEFja25vd2xlZGdlV2hl
blJlYWR5VG9TdXNwZW5kKQogewotICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9u
KCkucmVsZWFzZU1lbW9yeSh0cnVlKTsKKyAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmds
ZXRvbigpLnJlbGVhc2VNZW1vcnkoQ3JpdGljYWw6OlllcywgU3luY2hyb25vdXM6Olllcyk7CiAg
ICAgc2V0QWxsTGF5ZXJUcmVlU3RhdGVzRnJvemVuKHRydWUpOwogCiAgICAgaWYgKG1hcmtBbGxM
YXllcnNWb2xhdGlsZUlmUG9zc2libGUoKSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>