<?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>171966</bug_id>
          
          <creation_ts>2017-05-10 21:29:42 -0700</creation_ts>
          <short_desc>Stop using PassRefPtr in platform/audio</short_desc>
          <delta_ts>2017-05-11 09:30:06 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1307178</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-10 21:29:42 -0700</bug_when>
    <thetext>Stop using PassRefPtr in platform/audio.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307180</commentid>
    <comment_count>1</comment_count>
      <attachid>309690</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-10 21:32:34 -0700</bug_when>
    <thetext>Created attachment 309690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307185</commentid>
    <comment_count>2</comment_count>
      <attachid>309690</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-10 22:14:48 -0700</bug_when>
    <thetext>Comment on attachment 309690
Patch

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

&gt; Source/WebCore/platform/audio/HRTFDatabaseLoader.cpp:57
&gt; +    Ref&lt;HRTFDatabaseLoader&gt; loader = adoptRef(*new HRTFDatabaseLoader(sampleRate));

We can&apos;t use auto here?

&gt; Source/WebCore/platform/audio/mac/AudioBusMac.mm:-57
&gt; -        RefPtr&lt;AudioBus&gt; bus(createBusFromInMemoryAudioFile([audioData bytes], [audioData length], false, sampleRate));
&gt; -        return bus;

This was a strange piece of code!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307269</commentid>
    <comment_count>3</comment_count>
      <attachid>309712</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-11 08:47:39 -0700</bug_when>
    <thetext>Created attachment 309712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307284</commentid>
    <comment_count>4</comment_count>
      <attachid>309712</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-11 09:30:04 -0700</bug_when>
    <thetext>Comment on attachment 309712
Patch

Clearing flags on attachment: 309712

Committed r216679: &lt;http://trac.webkit.org/changeset/216679&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307285</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-11 09:30:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309690</attachid>
            <date>2017-05-10 21:32:34 -0700</date>
            <delta_ts>2017-05-11 08:47:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171966-20170510213233.patch</filename>
            <type>text/plain</type>
            <size>20222</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVlOWI5MWVhY2ZlMGJh
Y2Q4NzQwYmI0NzE0MzIwNzQ5NzI4N2Q4My4uMjg5ODQwM2Q4YmMzMTgwNjJkZjQyZGNkNjcyNjBk
ZTA4NWVlYTA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA1LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyBQYXNzUmVm
UHRyIGluIHBsYXRmb3JtL2F1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzE5NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTdG9wIHVzaW5nIFBhc3NSZWZQdHIgaW4gcGxhdGZvcm0vYXVkaW8uCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdXM6OkF1ZGlvQnVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVS
ZWFkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpjcmVhdGVBbmRMb2FkQXN5
bmNocm9ub3VzbHlJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRh
dGFiYXNlTG9hZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIUlRGS2VybmVsOjpjcmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhSVEZLZXJuZWw6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ2xpYi9B
dWRpb0J1c0dMaWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmxvYWRQbGF0Zm9y
bVJlc291cmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxl
UmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6
Y3JlYXRlQnVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJv
bUluTWVtb3J5QXVkaW9GaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9G
aWxlUmVhZGVySU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291cmNlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVhZGVyTWFjLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
QnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9GaWxlUmVhZGVyTWFjLmg6CisKIDIwMTctMDUtMTAgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlQgYXQgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuaAppbmRleCBkMThkYmRkOTQ0MjQ2NWQzM2U3ZTlkMGU3ZGNmODRlNmUwM2Mw
NWI3Li4yMTczZGM5MzgzZTRhMzNjMWI1OTM0NzY1YTFlNWIxMDc0NmYwM2ExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKQEAgLTE0NywxMCArMTQ3LDEwIEBAIHB1
YmxpYzoKICAgICAvLyBNYWtlcyBtYXhpbXVtIGFic29sdXRlIHZhbHVlID09IDEuMCAoaWYgcG9z
c2libGUpLgogICAgIHZvaWQgbm9ybWFsaXplKCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxB
dWRpb0J1cz4gbG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciogbmFtZSwgZmxvYXQgc2Ft
cGxlUmF0ZSk7CisgICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1cz4gbG9hZFBsYXRmb3JtUmVzb3Vy
Y2UoY29uc3QgY2hhciogbmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKIHByb3RlY3RlZDoKLSAg
ICBBdWRpb0J1cygpIHsgfTsKKyAgICBBdWRpb0J1cygpIHsgfQogCiAgICAgQXVkaW9CdXModW5z
aWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgYm9vbCBhbGxvY2F0ZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRmlsZVJlYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVyLmgKaW5k
ZXggOWE4MDFmYmQ0NmY3ZDg0YzI2ZDczMDdkMjc0NmJmNDA0N2NjMjQxMy4uOWVmNDdkNzRmNGE4
ZWMyOWRjODdhZDQxNTk4ODhlYWYzMWU3YzU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVhZGVyLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNkZWZpbmUg
QXVkaW9GaWxlUmVhZGVyX2gKIAogI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00Miw5ICs0MSw5IEBAIGNsYXNzIEF1ZGlvQnVzOwogLy8gc2FtcGxlUmF0ZSB3aWxs
IGJlIG1hZGUgKGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBtYXRjaCB0aGUgZmlsZSdzIHNhbXBsZS1y
YXRlKS4KIC8vIFRoZSBjcmVhdGVkIGJ1ZmZlciB3aWxsIGhhdmUgaXRzIHNhbXBsZS1yYXRlIHNl
dCBjb3JyZWN0bHkgdG8gdGhlIHJlc3VsdC4KIAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRl
QnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6
ZSwgYm9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpOworUmVmUHRyPEF1ZGlvQnVzPiBj
cmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRh
dGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKLVBhc3NSZWZQdHI8
QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJv
b2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKTsKK1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRl
QnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwgYm9vbCBtaXhUb01vbm8sIGZs
b2F0IHNhbXBsZVJhdGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC8vIE1h
eSBwYXNzIGluIDAuMCBmb3Igc2FtcGxlUmF0ZSBpbiB3aGljaCBjYXNlIGl0IHdpbGwgdXNlIHRo
ZSBBdWRpb0J1cydzIHNhbXBsZVJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiB2
b2lkIHdyaXRlQnVzVG9BdWRpb0ZpbGUoQXVkaW9CdXMqIGJ1cywgY29uc3QgY2hhciogZmlsZVBh
dGgsIGRvdWJsZSBmaWxlU2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAppbmRleCAwNjJlNDdiM2Q4MmZkYTZj
MWM5NWVlNTEzZDkxNWY5NWU1MTBmOGRiLi41NmQ5ZWUyYjBjMDE5NGEwNjNmOTU1M2JmMmI1NDZl
NDdhMTI0N2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRG
RGF0YWJhc2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5jcHAKQEAgLTQ1LDE4ICs0NSwxNyBAQCBzdGF0aWMgSGFzaE1hcDxk
b3VibGUsIEhSVEZEYXRhYmFzZUxvYWRlcio+JiBsb2FkZXJNYXAoKQogICAgIHJldHVybiBsb2Fk
ZXJNYXA7CiB9CiAKLVBhc3NSZWZQdHI8SFJURkRhdGFiYXNlTG9hZGVyPiBIUlRGRGF0YWJhc2VM
b2FkZXI6OmNyZWF0ZUFuZExvYWRBc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KGZsb2F0IHNhbXBs
ZVJhdGUpCitSZWY8SFJURkRhdGFiYXNlTG9hZGVyPiBIUlRGRGF0YWJhc2VMb2FkZXI6OmNyZWF0
ZUFuZExvYWRBc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIFJlZlB0cjxIUlRGRGF0YWJhc2VMb2Fk
ZXI+IGxvYWRlciA9IGxvYWRlck1hcCgpLmdldChzYW1wbGVSYXRlKTsKLSAgICBpZiAobG9hZGVy
KSB7CisgICAgaWYgKFJlZlB0cjxIUlRGRGF0YWJhc2VMb2FkZXI+IGxvYWRlciA9IGxvYWRlck1h
cCgpLmdldChzYW1wbGVSYXRlKSkgewogICAgICAgICBBU1NFUlQoc2FtcGxlUmF0ZSA9PSBsb2Fk
ZXItPmRhdGFiYXNlU2FtcGxlUmF0ZSgpKTsKLSAgICAgICAgcmV0dXJuIGxvYWRlcjsKKyAgICAg
ICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlTm9uTnVsbCgpOwogICAgIH0KIAotICAgIGxvYWRlciA9
IGFkb3B0UmVmKG5ldyBIUlRGRGF0YWJhc2VMb2FkZXIoc2FtcGxlUmF0ZSkpOwotICAgIGxvYWRl
ck1hcCgpLmFkZChzYW1wbGVSYXRlLCBsb2FkZXIuZ2V0KCkpOworICAgIFJlZjxIUlRGRGF0YWJh
c2VMb2FkZXI+IGxvYWRlciA9IGFkb3B0UmVmKCpuZXcgSFJURkRhdGFiYXNlTG9hZGVyKHNhbXBs
ZVJhdGUpKTsKKyAgICBsb2FkZXJNYXAoKS5hZGQoc2FtcGxlUmF0ZSwgbG9hZGVyLnB0cigpKTsK
IAogICAgIGxvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmgKaW5kZXggM2FkMjUxZjIx
OTkwOWY0YmM2NDU0ZDAxMzIwMWI2YTdjYTcwMjY4My4uODY4YjljYTI5ZjlhMmI0ZDFkYTY4ZWJm
YzMzMmRlYTY2ZTA5YTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURkRhdGFiYXNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURkRhdGFiYXNlTG9hZGVyLmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBhbmQgc3Rh
cnRzIGxvYWRpbmcgYXN5bmNocm9ub3VzbHkgKHdoZW4gY3JlYXRlZCB0aGUgZmlyc3QgdGltZSku
CiAgICAgLy8gUmV0dXJucyB0aGUgSFJURkRhdGFiYXNlTG9hZGVyLgogICAgIC8vIE11c3QgYmUg
Y2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhSVEZE
YXRhYmFzZUxvYWRlcj4gY3JlYXRlQW5kTG9hZEFzeW5jaHJvbm91c2x5SWZOZWNlc3NhcnkoZmxv
YXQgc2FtcGxlUmF0ZSk7CisgICAgc3RhdGljIFJlZjxIUlRGRGF0YWJhc2VMb2FkZXI+IGNyZWF0
ZUFuZExvYWRBc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KGZsb2F0IHNhbXBsZVJhdGUpOwogCiAg
ICAgLy8gQm90aCBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBtdXN0IGJlIGNhbGxlZCBmcm9t
IHRoZSBtYWluIHRocmVhZC4KICAgICB+SFJURkRhdGFiYXNlTG9hZGVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCmluZGV4IGFkMjI4MzNjYjFkZjEy
ZDRkMTIyYzU4YTFhMGUyOWU4YzU0MTlkZTkuLmVkZjZjNjBkMGRiODE0ZDk0YzBmNzFiNjMwNmU0
MzgyNjUzYWE0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZLZXJuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJu
ZWwuY3BwCkBAIC0xMTQsMTEgKzExNCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9DaGFubmVs
PiBIUlRGS2VybmVsOjpjcmVhdGVJbXB1bHNlUmVzcG9uc2UoKQogfQogCiAvLyBJbnRlcnBvbGF0
ZXMgdHdvIGtlcm5lbHMgd2l0aCB4OiAwIC0+IDEgYW5kIHJldHVybnMgdGhlIHJlc3VsdC4KLVBh
c3NSZWZQdHI8SFJURktlcm5lbD4gSFJURktlcm5lbDo6Y3JlYXRlSW50ZXJwb2xhdGVkS2VybmVs
KEhSVEZLZXJuZWwqIGtlcm5lbDEsIEhSVEZLZXJuZWwqIGtlcm5lbDIsIGZsb2F0IHgpCitSZWZQ
dHI8SFJURktlcm5lbD4gSFJURktlcm5lbDo6Y3JlYXRlSW50ZXJwb2xhdGVkS2VybmVsKEhSVEZL
ZXJuZWwqIGtlcm5lbDEsIEhSVEZLZXJuZWwqIGtlcm5lbDIsIGZsb2F0IHgpCiB7CiAgICAgQVNT
RVJUKGtlcm5lbDEgJiYga2VybmVsMik7CiAgICAgaWYgKCFrZXJuZWwxIHx8ICFrZXJuZWwyKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgCiAgICAgQVNTRVJU
KHggPj0gMC4wICYmIHggPCAxLjApOwogICAgIHggPSBzdGQ6Om1pbigxLjBmLCBzdGQ6Om1heCgw
LjBmLCB4KSk7CkBAIC0xMjcsNyArMTI3LDcgQEAgUGFzc1JlZlB0cjxIUlRGS2VybmVsPiBIUlRG
S2VybmVsOjpjcmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwoSFJURktlcm5lbCoga2VybmVsMSwKICAg
ICBmbG9hdCBzYW1wbGVSYXRlMiA9IGtlcm5lbDItPnNhbXBsZVJhdGUoKTsKICAgICBBU1NFUlQo
c2FtcGxlUmF0ZTEgPT0gc2FtcGxlUmF0ZTIpOwogICAgIGlmIChzYW1wbGVSYXRlMSAhPSBzYW1w
bGVSYXRlMikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IAogICAgIGZsb2F0IGZyYW1lRGVsYXkgPSAoMSAtIHgpICoga2VybmVsMS0+ZnJhbWVEZWxheSgp
ICsgeCAqIGtlcm5lbDItPmZyYW1lRGVsYXkoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZLZXJuZWwuaAppbmRleCBkOTk4ZjUwZDA0OGE3MjZjMGNlM2Y5MTI2MjM4
NmFhYzBmMTFmMjU4Li4zYjgwZmI2MGJmNzMxNzIyMTdiMzhlZTQyY2Y4OTE2M2RlNDlhNTVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5oCkBAIC0zMSw3ICsz
MSw2IEBACiAKICNpbmNsdWRlICJGRlRGcmFtZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUwLDE4ICs0
OSwxOCBAQCBjbGFzcyBIUlRGS2VybmVsIDogcHVibGljIFJlZkNvdW50ZWQ8SFJURktlcm5lbD4g
ewogcHVibGljOgogICAgIC8vIE5vdGU6IHRoaXMgaXMgZGVzdHJ1Y3RpdmUgb24gdGhlIHBhc3Nl
ZCBpbiBBdWRpb0NoYW5uZWwuCiAgICAgLy8gVGhlIGxlbmd0aCBvZiBjaGFubmVsIG11c3QgYmUg
YSBwb3dlciBvZiB0d28uCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFJURktlcm5lbD4gY3JlYXRl
KEF1ZGlvQ2hhbm5lbCogY2hhbm5lbCwgc2l6ZV90IGZmdFNpemUsIGZsb2F0IHNhbXBsZVJhdGUp
CisgICAgc3RhdGljIFJlZjxIUlRGS2VybmVsPiBjcmVhdGUoQXVkaW9DaGFubmVsKiBjaGFubmVs
LCBzaXplX3QgZmZ0U2l6ZSwgZmxvYXQgc2FtcGxlUmF0ZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgSFJURktlcm5lbChjaGFubmVsLCBmZnRTaXplLCBzYW1wbGVSYXRlKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhSVEZLZXJuZWwoY2hhbm5lbCwgZmZ0U2l6
ZSwgc2FtcGxlUmF0ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhSVEZLZXJu
ZWw+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8RkZURnJhbWU+IGZmdEZyYW1lLCBmbG9hdCBmcmFt
ZURlbGF5LCBmbG9hdCBzYW1wbGVSYXRlKQorICAgIHN0YXRpYyBSZWY8SFJURktlcm5lbD4gY3Jl
YXRlKHN0ZDo6dW5pcXVlX3B0cjxGRlRGcmFtZT4gZmZ0RnJhbWUsIGZsb2F0IGZyYW1lRGVsYXks
IGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhS
VEZLZXJuZWwoV1RGTW92ZShmZnRGcmFtZSksIGZyYW1lRGVsYXksIHNhbXBsZVJhdGUpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFJURktlcm5lbChXVEZNb3ZlKGZmdEZyYW1lKSwg
ZnJhbWVEZWxheSwgc2FtcGxlUmF0ZSkpOwogICAgIH0KIAogICAgIC8vIEdpdmVuIHR3byBIUlRG
S2VybmVscywgYW5kIGFuIGludGVycG9sYXRpb24gZmFjdG9yIHg6IDAgLT4gMSwgcmV0dXJucyBh
biBpbnRlcnBvbGF0ZWQgSFJURktlcm5lbC4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIUlRGS2Vy
bmVsPiBjcmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwoSFJURktlcm5lbCoga2VybmVsMSwgSFJURktl
cm5lbCoga2VybmVsMiwgZmxvYXQgeCk7CisgICAgc3RhdGljIFJlZlB0cjxIUlRGS2VybmVsPiBj
cmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwoSFJURktlcm5lbCoga2VybmVsMSwgSFJURktlcm5lbCog
a2VybmVsMiwgZmxvYXQgeCk7CiAgIAogICAgIEZGVEZyYW1lKiBmZnRGcmFtZSgpIHsgcmV0dXJu
IG1fZmZ0RnJhbWUuZ2V0KCk7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAppbmRleCA4MTk3NWI2NGE1ZDY3ZTVlZGJj
ZjA4N2VkYzc3ZmZhY2E2NjU4MDRlLi5mMWU0MjA5ZDVjNmRkYTljNDA4YjM3MGZlZGZjNDgzYjkx
ZDgyMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1
ZGlvQnVzR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9B
dWRpb0J1c0dMaWIuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNv
bnN0IGNoYXIqIG5hbWUsIGZsb2F0IHNhbXBsZVJhdGUpCitSZWZQdHI8QXVkaW9CdXM+IEF1ZGlv
QnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiBuYW1lLCBmbG9hdCBzYW1wbGVS
YXRlKQogewogICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChnX3N0cmR1cF9wcmludGYoQVVESU9f
R1JFU09VUkNFX1BBVEggIi8lcyIsIG5hbWUpKTsKICAgICBHUmVmUHRyPEdCeXRlcz4gZGF0YSA9
IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBfZGF0YShwYXRoLmdldCgpLCBHX1JFU09VUkNF
X0xPT0tVUF9GTEFHU19OT05FLCBudWxscHRyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJH
U3RyZWFtZXIuY3BwCmluZGV4IDFmMjVlOGU1NGU5ZWU4NWZhMGNjYTZhMzFiOTJlMTExZTZkZjBj
YTguLjBlNDFjYzgwNWJkMDhiNGI5NjcxNmQ1ZjE3YTllZmUyOWJmOGVkYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJH
U3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoK
ICAgICBBdWRpb0ZpbGVSZWFkZXIoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKTsK
ICAgICB+QXVkaW9GaWxlUmVhZGVyKCk7CiAKLSAgICBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVh
dGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pOworICAgIFJlZlB0cjxBdWRp
b0J1cz4gY3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKTsKIAogcHJp
dmF0ZToKICAgICBXZWFrUHRyPEF1ZGlvRmlsZVJlYWRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CkBAIC0zMzgsNyArMzM4LDcg
QEAgdm9pZCBBdWRpb0ZpbGVSZWFkZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24oKQogICAg
IH0KIH0KIAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMo
ZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCitSZWZQdHI8QXVkaW9CdXM+IEF1ZGlv
RmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQog
ewogICAgIG1fc2FtcGxlUmF0ZSA9IHNhbXBsZVJhdGU7CiAgICAgbV9jaGFubmVscyA9IG1peFRv
TW9ubyA/IDEgOiAyOwpAQCAtMzY3LDcgKzM2Nyw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1
ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25v
CiAgICAgcmV0dXJuIGF1ZGlvQnVzOwogfQogCi1QYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVC
dXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywgZmxv
YXQgc2FtcGxlUmF0ZSkKK1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShj
b25zdCBjaGFyKiBmaWxlUGF0aCwgYm9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCiB7
CiAgICAgUmVmUHRyPEF1ZGlvQnVzPiByZXR1cm5WYWx1ZTsKICAgICBhdXRvIHRocmVhZCA9IFRo
cmVhZDo6Y3JlYXRlKCJBdWRpb0ZpbGVSZWFkZXIiLCBbJnJldHVyblZhbHVlLCBmaWxlUGF0aCwg
bWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgUGFzc1JlZlB0cjxB
dWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwgYm9v
bCBtaXhUb01vbm8KICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKLVBhc3NSZWZQdHI8QXVk
aW9CdXM+IGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBz
aXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmUHRy
PEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29uc3Qgdm9pZCogZGF0
YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsK
ICAgICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVlOwogICAgIGF1dG8gdGhyZWFkID0gVGhy
ZWFkOjpjcmVhdGUoIkF1ZGlvRmlsZVJlYWRlciIsIFsmcmV0dXJuVmFsdWUsIGRhdGEsIGRhdGFT
aXplLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHAKaW5kZXggMDNkMjlj
MDUyZGE2ZWY2MjA0ZDg5Nzc3M2U0ZTNlNzA1NTc5MmY4NC4uNTAzZWY0MmQwMjhiNzQxZDJkOWM0
ZTFkOTlkNjhlMjA5ZTg5NWUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHAKQEAgLTEzMCw3ICsxMzAsNyBA
QCBTSW50NjQgQXVkaW9GaWxlUmVhZGVyOjpnZXRTaXplUHJvYyh2b2lkKiBjbGllbnREYXRhKQog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxBdWRpb0ZpbGVSZWFkZXIqPihjbGllbnREYXRhKS0+ZGF0
YVNpemUoKTsKIH0KIAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVh
dGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCitSZWZQdHI8QXVkaW9CdXM+
IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9N
b25vKQogewogICAgIGlmICghbV9leHRBdWRpb0ZpbGVSZWYpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMjMxLDEzICsyMzEsMTMgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxl
UmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8KICAgICBy
ZXR1cm4gYXVkaW9CdXMucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVh
dGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywg
ZmxvYXQgc2FtcGxlUmF0ZSkKK1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmls
ZShjb25zdCBjaGFyKiBmaWxlUGF0aCwgYm9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUp
CiB7CiAgICAgQXVkaW9GaWxlUmVhZGVyIHJlYWRlcihmaWxlUGF0aCk7CiAgICAgcmV0dXJuIHJl
YWRlci5jcmVhdGVCdXMoc2FtcGxlUmF0ZSwgbWl4VG9Nb25vKTsKIH0KIAotUGFzc1JlZlB0cjxB
dWRpb0J1cz4gY3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGNvbnN0IHZvaWQqIGRhdGEs
IHNpemVfdCBkYXRhU2l6ZSwgYm9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCitSZWZQ
dHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQog
ewogICAgIEF1ZGlvRmlsZVJlYWRlciByZWFkZXIoZGF0YSwgZGF0YVNpemUpOwogICAgIHJldHVy
biByZWFkZXIuY3JlYXRlQnVzKHNhbXBsZVJhdGUsIG1peFRvTW9ubyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmgKaW5k
ZXggMTY3MDc5NDU3NTRiZTUzZmEyYTc5OGYwOTExNTRkZjg5MWJhNTZlNy4uN2FkYTRjZDZjZDUw
Njk4M2RkYzc3NDVkZGM2NzAyZDc2ZmE4YjVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0ZpbGVSZWFkZXJJT1MuaApAQCAtMzIsNyArMzIs
NyBAQAogCiAjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPEF1
ZGlvVG9vbGJveC9FeHRlbmRlZEF1ZGlvRmlsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIEF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QgZGF0YVNpemUpOwogICAgIH5BdWRpb0ZpbGVSZWFkZXIoKTsKIAotICAgIFBh
c3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRv
TW9ubyk7IC8vIFJldHVybnMgbnVsbHB0ciBvbiBlcnJvcgorICAgIFJlZlB0cjxBdWRpb0J1cz4g
Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKTsgLy8gUmV0dXJucyBu
dWxscHRyIG9uIGVycm9yCiAKICAgICBjb25zdCB2b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9kYXRhOyB9CiAgICAgc2l6ZV90IGRhdGFTaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhU2l6
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlv
QnVzTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFj
Lm1tCmluZGV4IDZkMGRmMmUzZTEzMGRiYzlhZmI2YTg2ZTBjYzA5YWQ3OTcwNzE5OTYuLjcwM2E2
N2I3YjM4NDJjMTYyOTdmODkzZTk0NmE4YmMyMjRjNWQ0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9CdXNNYWMubW0KQEAgLTMxLDcgKzMxLDYgQEAK
ICNpbXBvcnQgIkF1ZGlvRmlsZVJlYWRlci5oIgogI2ltcG9ydCA8d3RmL0F1dG9kcmFpbmVkUG9v
bC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCiBAaW50ZXJmYWNlIFdlYkNvcmVB
dWRpb0J1bmRsZUNsYXNzIDogTlNPYmplY3QKQEAgLTQyLDcgKzQxLDcgQEAgQGVuZAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxh
dGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiBuYW1lLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmUHRy
PEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciogbmFt
ZSwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVk
IGZyb20gb3RoZXIgdGhhbiB0aGUgbWFpbiB0aHJlYWQsIHNvIHdlIG5lZWQgYW4gYXV0by1yZWxl
YXNlIHBvb2wuCiAgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7CkBAIC01MiwxMyArNTEsMTEgQEAg
UGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0
IGNoYXIqIG5hbWUsIGZsb2F0IHNhbXAKICAgICBOU0RhdGFSZWFkaW5nT3B0aW9ucyBvcHRpb25z
ID0gTlNEYXRhUmVhZGluZ01hcHBlZElmU2FmZTsKICAgICBOU0RhdGEgKmF1ZGlvRGF0YSA9IFtO
U0RhdGEgZGF0YVdpdGhDb250ZW50c09mVVJMOmF1ZGlvRmlsZVVSTCBvcHRpb25zOm9wdGlvbnMg
ZXJyb3I6bmlsXTsKIAotICAgIGlmIChhdWRpb0RhdGEpIHsKLSAgICAgICAgUmVmUHRyPEF1ZGlv
QnVzPiBidXMoY3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKFthdWRpb0RhdGEgYnl0ZXNd
LCBbYXVkaW9EYXRhIGxlbmd0aF0sIGZhbHNlLCBzYW1wbGVSYXRlKSk7Ci0gICAgICAgIHJldHVy
biBidXM7Ci0gICAgfQorICAgIGlmIChhdWRpb0RhdGEpCisgICAgICAgIHJldHVybiBjcmVhdGVC
dXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoW2F1ZGlvRGF0YSBieXRlc10sIFthdWRpb0RhdGEgbGVu
Z3RoXSwgZmFsc2UsIHNhbXBsZVJhdGUpOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b0ZpbGVSZWFkZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvRmlsZVJlYWRlck1hYy5jcHAKaW5kZXggOGRmMTM2NTE2YWU5MjVhZmU4Yzk0YzY1MzAzMWQy
ZDA4ZjM4ZmJkYi4uMmFmNTE4Yjk2MjQ4MjViMGI0YzcxNDRlYmU0NDZlNWMxMjRiMWM2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRl
ck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmls
ZVJlYWRlck1hYy5jcHAKQEAgLTEyOSwxNiArMTI5LDE2IEBAIFNJbnQ2NCBBdWRpb0ZpbGVSZWFk
ZXI6OmdldFNpemVQcm9jKHZvaWQqIGNsaWVudERhdGEpCiAgICAgcmV0dXJuIGF1ZGlvRmlsZVJl
YWRlci0+ZGF0YVNpemUoKTsKIH0KIAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVh
ZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCitSZWZQdHI8
QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJv
b2wgbWl4VG9Nb25vKQogewogICAgIGlmICghbV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEdldCBmaWxlJ3MgZGF0
YSBmb3JtYXQKICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihtX2ZpbGVEYXRhRm9ybWF0KTsKICAg
ICBPU1N0YXR1cyByZXN1bHQgPSBFeHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmls
ZVJlZiwga0V4dEF1ZGlvRmlsZVByb3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmls
ZURhdGFGb3JtYXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIE51bWJlciBvZiBjaGFubmVscwog
ICAgIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzID0gbV9maWxlRGF0YUZvcm1hdC5tQ2hhbm5lbHNQ
ZXJGcmFtZTsKQEAgLTE0OCw3ICsxNDgsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0Zp
bGVSZWFkZXI6OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubwogICAg
IHNpemUgPSBzaXplb2YobnVtYmVyT2ZGcmFtZXM2NCk7CiAgICAgcmVzdWx0ID0gRXh0QXVkaW9G
aWxlR2V0UHJvcGVydHkobV9leHRBdWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9G
aWxlTGVuZ3RoRnJhbWVzLCAmc2l6ZSwgJm51bWJlck9mRnJhbWVzNjQpOwogICAgIGlmIChyZXN1
bHQgIT0gbm9FcnIgfHwgbnVtYmVyT2ZGcmFtZXM2NCA8PSAwKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBTYW1wbGUtcmF0ZQogICAgIGRvdWJs
ZSBmaWxlU2FtcGxlUmF0ZSA9IG1fZmlsZURhdGFGb3JtYXQubVNhbXBsZVJhdGU7CkBAIC0xNzEs
NyArMTcxLDcgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVC
dXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8KIAogICAgIHJlc3VsdCA9IEV4dEF1
ZGlvRmlsZVNldFByb3BlcnR5KG1fZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVy
dHlfQ2xpZW50RGF0YUZvcm1hdCwgc2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiks
ICZtX2NsaWVudERhdGFGb3JtYXQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENoYW5nZSBudW1i
ZXJPZkZyYW1lczY0IHRvIGRlc3RpbmF0aW9uIHNhbXBsZS1yYXRlCiAgICAgbnVtYmVyT2ZGcmFt
ZXM2NCA9IG51bWJlck9mRnJhbWVzNjQgKiAobV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVSYXRl
IC8gZmlsZVNhbXBsZVJhdGUpOwpAQCAtMjIxLDcgKzIyMSw3IEBAIFBhc3NSZWZQdHI8QXVkaW9C
dXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4
VG9Nb25vCiAgICAgcmVzdWx0ID0gRXh0QXVkaW9GaWxlUmVhZChtX2V4dEF1ZGlvRmlsZVJlZiwg
JmZyYW1lc1RvUmVhZCwgYnVmZmVyTGlzdCk7CiAgICAgaWYgKHJlc3VsdCAhPSBub0Vycikgewog
ICAgICAgICBkZXN0cm95QXVkaW9CdWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKG1peFRvTW9u
byAmJiBudW1iZXJPZkNoYW5uZWxzID09IDIpIHsKQEAgLTIzNywxMiArMjM3LDEyIEBAIFBhc3NS
ZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJh
dGUsIGJvb2wgbWl4VG9Nb25vCiAgICAgcmV0dXJuIGF1ZGlvQnVzOwogfQogCi1QYXNzUmVmUHRy
PEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBi
b29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKK1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRl
QnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwgYm9vbCBtaXhUb01vbm8sIGZs
b2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgcmV0dXJuIEF1ZGlvRmlsZVJlYWRlcihmaWxlUGF0aCku
Y3JlYXRlQnVzKHNhbXBsZVJhdGUsIG1peFRvTW9ubyk7CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9C
dXM+IGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBzaXpl
X3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmUHRyPEF1
ZGlvQnVzPiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29uc3Qgdm9pZCogZGF0YSwg
c2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAg
ICByZXR1cm4gQXVkaW9GaWxlUmVhZGVyKGRhdGEsIGRhdGFTaXplKS5jcmVhdGVCdXMoc2FtcGxl
UmF0ZSwgbWl4VG9Nb25vKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb0ZpbGVSZWFkZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb0ZpbGVSZWFkZXJNYWMuaAppbmRleCBiMTBkYjIzMDJkZWM5N2JkMzEy
MGYzN2M5NWE5ZWQ5MmFjY2I0MzI4Li5jOWViNjhlZDYwMDkyMzFjYjZhOGZmZWIzNzA3ZmUyZmE0
YWQzZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVk
aW9GaWxlUmVhZGVyTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvRmlsZVJlYWRlck1hYy5oCkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNsdWRlIDxBdWRp
b1Rvb2xib3gvQXVkaW9GaWxlLmg+CiAjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVk
aW9GaWxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUsOCArNDUsOCBAQCBwdWJsaWM6
CiAgICAgQXVkaW9GaWxlUmVhZGVyKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSk7
CiAgICAgfkF1ZGlvRmlsZVJlYWRlcigpOwogCi0gICAgLy8gUmV0dXJucyAwIGlmIGVycm9yCi0g
ICAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wg
bWl4VG9Nb25vKTsKKyAgICAvLyBSZXR1cm5zIG51bGxwdHIgaWYgZXJyb3IKKyAgICBSZWZQdHI8
QXVkaW9CdXM+IGNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubyk7CiAK
ICAgICBjb25zdCB2b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAgICAgc2l6
ZV90IGRhdGFTaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhU2l6ZTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309712</attachid>
            <date>2017-05-11 08:47:39 -0700</date>
            <delta_ts>2017-05-11 09:30:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171966-20170511084737.patch</filename>
            <type>text/plain</type>
            <size>20201</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVlOWI5MWVhY2ZlMGJh
Y2Q4NzQwYmI0NzE0MzIwNzQ5NzI4N2Q4My4uNzI2M2UyOWU2YmU2NjY2N2Q3MDQwNmFjZDQ0N2Iw
YzdjNzBmMDYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE3LTA1LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyBQYXNzUmVm
UHRyIGluIHBsYXRmb3JtL2F1ZGlvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzE5NjYKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2Eu
CisKKyAgICAgICAgU3RvcCB1c2luZyBQYXNzUmVmUHRyIGluIHBsYXRmb3JtL2F1ZGlvLgorCisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVzOjpBdWRpb0J1cyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9GaWxlUmVh
ZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6Y3JlYXRlQW5kTG9hZEFzeW5j
aHJvbm91c2x5SWZOZWNlc3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZUxvYWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFJURktlcm5lbDo6Y3JlYXRlSW50ZXJwb2xhdGVkS2VybmVsKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmg6CisgICAgICAgIChXZWJDb3Jl
OjpIUlRGS2VybmVsOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVk
aW9CdXNHTGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1S
ZXNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJl
YWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmNy
ZWF0ZUJ1cyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyk6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVCdXNGcm9tQXVkaW9GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21J
bk1lbW9yeUF1ZGlvRmlsZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmls
ZVJlYWRlcklPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyk6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1
c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvRmlsZVJlYWRlck1hYy5oOgorCiAyMDE3LTA1LTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUIGF0IFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvQnVzLmgKaW5kZXggZDE4ZGJkZDk0NDI0NjVkMzNlN2U5ZDBlN2RjZjg0ZTZlMDNjMDVi
Ny4uMjE3M2RjOTM4M2U0YTMzYzFiNTkzNDc2NWExZTViMTA3NDZmMDNhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCkBAIC0xNDcsMTAgKzE0NywxMCBAQCBwdWJs
aWM6CiAgICAgLy8gTWFrZXMgbWF4aW11bSBhYnNvbHV0ZSB2YWx1ZSA9PSAxLjAgKGlmIHBvc3Np
YmxlKS4KICAgICB2b2lkIG5vcm1hbGl6ZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVk
aW9CdXM+IGxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIGZsb2F0IHNhbXBs
ZVJhdGUpOworICAgIHN0YXRpYyBSZWZQdHI8QXVkaW9CdXM+IGxvYWRQbGF0Zm9ybVJlc291cmNl
KGNvbnN0IGNoYXIqIG5hbWUsIGZsb2F0IHNhbXBsZVJhdGUpOwogCiBwcm90ZWN0ZWQ6Ci0gICAg
QXVkaW9CdXMoKSB7IH07CisgICAgQXVkaW9CdXMoKSB7IH0KIAogICAgIEF1ZGlvQnVzKHVuc2ln
bmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGJvb2wgYWxsb2NhdGUpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0ZpbGVSZWFkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRmlsZVJlYWRlci5oCmluZGV4
IDlhODAxZmJkNDZmN2Q4NGMyNmQ3MzA3ZDI3NDZiZjQwNDdjYzI0MTMuLjllZjQ3ZDc0ZjRhOGVj
MjlkYzg3YWQ0MTU5ODg4ZWFmMzFlN2M1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvRmlsZVJlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvRmlsZVJlYWRlci5oCkBAIC0zMCw3ICszMCw2IEBACiAjZGVmaW5lIEF1
ZGlvRmlsZVJlYWRlcl9oCiAKICNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDIsOSArNDEsOSBAQCBjbGFzcyBBdWRpb0J1czsKIC8vIHNhbXBsZVJhdGUgd2lsbCBi
ZSBtYWRlIChpZiBpdCBkb2Vzbid0IGFscmVhZHkgbWF0Y2ggdGhlIGZpbGUncyBzYW1wbGUtcmF0
ZSkuCiAvLyBUaGUgY3JlYXRlZCBidWZmZXIgd2lsbCBoYXZlIGl0cyBzYW1wbGUtcmF0ZSBzZXQg
Y29ycmVjdGx5IHRvIHRoZSByZXN1bHQuCiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1
c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUs
IGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKTsKK1JlZlB0cjxBdWRpb0J1cz4gY3Jl
YXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRh
U2l6ZSwgYm9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpOwogCi1QYXNzUmVmUHRyPEF1
ZGlvQnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29s
IG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSk7CitSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1
c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wgbWl4VG9Nb25vLCBmbG9h
dCBzYW1wbGVSYXRlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAvLyBNYXkg
cGFzcyBpbiAwLjAgZm9yIHNhbXBsZVJhdGUgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIHVzZSB0aGUg
QXVkaW9CdXMncyBzYW1wbGVSYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogdm9p
ZCB3cml0ZUJ1c1RvQXVkaW9GaWxlKEF1ZGlvQnVzKiBidXMsIGNvbnN0IGNoYXIqIGZpbGVQYXRo
LCBkb3VibGUgZmlsZVNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKaW5kZXggMDYyZTQ3YjNkODJmZGE2YzFj
OTVlZTUxM2Q5MTVmOTVlNTEwZjhkYi4uZjRjNzdmYjFmYjM2YzIzOGFkYjEyMWMxNDQwYjM2N2Jh
NDhkZmRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRh
dGFiYXNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRG
RGF0YWJhc2VMb2FkZXIuY3BwCkBAIC00NSwxOCArNDUsMTcgQEAgc3RhdGljIEhhc2hNYXA8ZG91
YmxlLCBIUlRGRGF0YWJhc2VMb2FkZXIqPiYgbG9hZGVyTWFwKCkKICAgICByZXR1cm4gbG9hZGVy
TWFwOwogfQogCi1QYXNzUmVmUHRyPEhSVEZEYXRhYmFzZUxvYWRlcj4gSFJURkRhdGFiYXNlTG9h
ZGVyOjpjcmVhdGVBbmRMb2FkQXN5bmNocm9ub3VzbHlJZk5lY2Vzc2FyeShmbG9hdCBzYW1wbGVS
YXRlKQorUmVmPEhSVEZEYXRhYmFzZUxvYWRlcj4gSFJURkRhdGFiYXNlTG9hZGVyOjpjcmVhdGVB
bmRMb2FkQXN5bmNocm9ub3VzbHlJZk5lY2Vzc2FyeShmbG9hdCBzYW1wbGVSYXRlKQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBSZWZQdHI8SFJURkRhdGFiYXNlTG9hZGVy
PiBsb2FkZXIgPSBsb2FkZXJNYXAoKS5nZXQoc2FtcGxlUmF0ZSk7Ci0gICAgaWYgKGxvYWRlcikg
eworICAgIGlmIChSZWZQdHI8SFJURkRhdGFiYXNlTG9hZGVyPiBsb2FkZXIgPSBsb2FkZXJNYXAo
KS5nZXQoc2FtcGxlUmF0ZSkpIHsKICAgICAgICAgQVNTRVJUKHNhbXBsZVJhdGUgPT0gbG9hZGVy
LT5kYXRhYmFzZVNhbXBsZVJhdGUoKSk7Ci0gICAgICAgIHJldHVybiBsb2FkZXI7CisgICAgICAg
IHJldHVybiBsb2FkZXIucmVsZWFzZU5vbk51bGwoKTsKICAgICB9CiAKLSAgICBsb2FkZXIgPSBh
ZG9wdFJlZihuZXcgSFJURkRhdGFiYXNlTG9hZGVyKHNhbXBsZVJhdGUpKTsKLSAgICBsb2FkZXJN
YXAoKS5hZGQoc2FtcGxlUmF0ZSwgbG9hZGVyLmdldCgpKTsKKyAgICBhdXRvIGxvYWRlciA9IGFk
b3B0UmVmKCpuZXcgSFJURkRhdGFiYXNlTG9hZGVyKHNhbXBsZVJhdGUpKTsKKyAgICBsb2FkZXJN
YXAoKS5hZGQoc2FtcGxlUmF0ZSwgbG9hZGVyLnB0cigpKTsKIAogICAgIGxvYWRlci0+bG9hZEFz
eW5jaHJvbm91c2x5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
SFJURkRhdGFiYXNlTG9hZGVyLmgKaW5kZXggM2FkMjUxZjIxOTkwOWY0YmM2NDU0ZDAxMzIwMWI2
YTdjYTcwMjY4My4uODY4YjljYTI5ZjlhMmI0ZDFkYTY4ZWJmYzMzMmRlYTY2ZTA5YTIzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVy
LmgKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBhbmQgc3RhcnRzIGxvYWRpbmcgYXN5bmNocm9u
b3VzbHkgKHdoZW4gY3JlYXRlZCB0aGUgZmlyc3QgdGltZSkuCiAgICAgLy8gUmV0dXJucyB0aGUg
SFJURkRhdGFiYXNlTG9hZGVyLgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4g
dGhyZWFkLgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhSVEZEYXRhYmFzZUxvYWRlcj4gY3JlYXRl
QW5kTG9hZEFzeW5jaHJvbm91c2x5SWZOZWNlc3NhcnkoZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAg
c3RhdGljIFJlZjxIUlRGRGF0YWJhc2VMb2FkZXI+IGNyZWF0ZUFuZExvYWRBc3luY2hyb25vdXNs
eUlmTmVjZXNzYXJ5KGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAgLy8gQm90aCBjb25zdHJ1Y3Rv
ciBhbmQgZGVzdHJ1Y3RvciBtdXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAg
ICB+SFJURkRhdGFiYXNlTG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGS2VybmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZLZXJuZWwuY3BwCmluZGV4IGFkMjI4MzNjYjFkZjEyZDRkMTIyYzU4YTFhMGUyOWU4YzU0
MTlkZTkuLmVkZjZjNjBkMGRiODE0ZDk0YzBmNzFiNjMwNmU0MzgyNjUzYWE0YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCkBAIC0xMTQsMTEgKzEx
NCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9DaGFubmVsPiBIUlRGS2VybmVsOjpjcmVhdGVJ
bXB1bHNlUmVzcG9uc2UoKQogfQogCiAvLyBJbnRlcnBvbGF0ZXMgdHdvIGtlcm5lbHMgd2l0aCB4
OiAwIC0+IDEgYW5kIHJldHVybnMgdGhlIHJlc3VsdC4KLVBhc3NSZWZQdHI8SFJURktlcm5lbD4g
SFJURktlcm5lbDo6Y3JlYXRlSW50ZXJwb2xhdGVkS2VybmVsKEhSVEZLZXJuZWwqIGtlcm5lbDEs
IEhSVEZLZXJuZWwqIGtlcm5lbDIsIGZsb2F0IHgpCitSZWZQdHI8SFJURktlcm5lbD4gSFJURktl
cm5lbDo6Y3JlYXRlSW50ZXJwb2xhdGVkS2VybmVsKEhSVEZLZXJuZWwqIGtlcm5lbDEsIEhSVEZL
ZXJuZWwqIGtlcm5lbDIsIGZsb2F0IHgpCiB7CiAgICAgQVNTRVJUKGtlcm5lbDEgJiYga2VybmVs
Mik7CiAgICAgaWYgKCFrZXJuZWwxIHx8ICFrZXJuZWwyKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgCiAgICAgQVNTRVJUKHggPj0gMC4wICYmIHggPCAxLjAp
OwogICAgIHggPSBzdGQ6Om1pbigxLjBmLCBzdGQ6Om1heCgwLjBmLCB4KSk7CkBAIC0xMjcsNyAr
MTI3LDcgQEAgUGFzc1JlZlB0cjxIUlRGS2VybmVsPiBIUlRGS2VybmVsOjpjcmVhdGVJbnRlcnBv
bGF0ZWRLZXJuZWwoSFJURktlcm5lbCoga2VybmVsMSwKICAgICBmbG9hdCBzYW1wbGVSYXRlMiA9
IGtlcm5lbDItPnNhbXBsZVJhdGUoKTsKICAgICBBU1NFUlQoc2FtcGxlUmF0ZTEgPT0gc2FtcGxl
UmF0ZTIpOwogICAgIGlmIChzYW1wbGVSYXRlMSAhPSBzYW1wbGVSYXRlMikKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAogICAgIGZsb2F0IGZyYW1lRGVs
YXkgPSAoMSAtIHgpICoga2VybmVsMS0+ZnJhbWVEZWxheSgpICsgeCAqIGtlcm5lbDItPmZyYW1l
RGVsYXkoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZLZXJuZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwu
aAppbmRleCBkOTk4ZjUwZDA0OGE3MjZjMGNlM2Y5MTI2MjM4NmFhYzBmMTFmMjU4Li4zYjgwZmI2
MGJmNzMxNzIyMTdiMzhlZTQyY2Y4OTE2M2RlNDlhNTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURktlcm5lbC5oCkBAIC0zMSw3ICszMSw2IEBACiAKICNpbmNsdWRlICJG
RlRGcmFtZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUwLDE4ICs0OSwxOCBAQCBjbGFzcyBIUlRGS2Vy
bmVsIDogcHVibGljIFJlZkNvdW50ZWQ8SFJURktlcm5lbD4gewogcHVibGljOgogICAgIC8vIE5v
dGU6IHRoaXMgaXMgZGVzdHJ1Y3RpdmUgb24gdGhlIHBhc3NlZCBpbiBBdWRpb0NoYW5uZWwuCiAg
ICAgLy8gVGhlIGxlbmd0aCBvZiBjaGFubmVsIG11c3QgYmUgYSBwb3dlciBvZiB0d28uCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8SFJURktlcm5lbD4gY3JlYXRlKEF1ZGlvQ2hhbm5lbCogY2hhbm5l
bCwgc2l6ZV90IGZmdFNpemUsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgc3RhdGljIFJlZjxIUlRG
S2VybmVsPiBjcmVhdGUoQXVkaW9DaGFubmVsKiBjaGFubmVsLCBzaXplX3QgZmZ0U2l6ZSwgZmxv
YXQgc2FtcGxlUmF0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFJURktl
cm5lbChjaGFubmVsLCBmZnRTaXplLCBzYW1wbGVSYXRlKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEhSVEZLZXJuZWwoY2hhbm5lbCwgZmZ0U2l6ZSwgc2FtcGxlUmF0ZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhSVEZLZXJuZWw+IGNyZWF0ZShzdGQ6OnVuaXF1
ZV9wdHI8RkZURnJhbWU+IGZmdEZyYW1lLCBmbG9hdCBmcmFtZURlbGF5LCBmbG9hdCBzYW1wbGVS
YXRlKQorICAgIHN0YXRpYyBSZWY8SFJURktlcm5lbD4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxG
RlRGcmFtZT4gZmZ0RnJhbWUsIGZsb2F0IGZyYW1lRGVsYXksIGZsb2F0IHNhbXBsZVJhdGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhSVEZLZXJuZWwoV1RGTW92ZShmZnRG
cmFtZSksIGZyYW1lRGVsYXksIHNhbXBsZVJhdGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSFJURktlcm5lbChXVEZNb3ZlKGZmdEZyYW1lKSwgZnJhbWVEZWxheSwgc2FtcGxlUmF0
ZSkpOwogICAgIH0KIAogICAgIC8vIEdpdmVuIHR3byBIUlRGS2VybmVscywgYW5kIGFuIGludGVy
cG9sYXRpb24gZmFjdG9yIHg6IDAgLT4gMSwgcmV0dXJucyBhbiBpbnRlcnBvbGF0ZWQgSFJURktl
cm5lbC4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIUlRGS2VybmVsPiBjcmVhdGVJbnRlcnBvbGF0
ZWRLZXJuZWwoSFJURktlcm5lbCoga2VybmVsMSwgSFJURktlcm5lbCoga2VybmVsMiwgZmxvYXQg
eCk7CisgICAgc3RhdGljIFJlZlB0cjxIUlRGS2VybmVsPiBjcmVhdGVJbnRlcnBvbGF0ZWRLZXJu
ZWwoSFJURktlcm5lbCoga2VybmVsMSwgSFJURktlcm5lbCoga2VybmVsMiwgZmxvYXQgeCk7CiAg
IAogICAgIEZGVEZyYW1lKiBmZnRGcmFtZSgpIHsgcmV0dXJuIG1fZmZ0RnJhbWUuZ2V0KCk7IH0K
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVk
aW9CdXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9C
dXNHTGliLmNwcAppbmRleCA4MTk3NWI2NGE1ZDY3ZTVlZGJjZjA4N2VkYzc3ZmZhY2E2NjU4MDRl
Li5mMWU0MjA5ZDVjNmRkYTljNDA4YjM3MGZlZGZjNDgzYjkxZDgyMjdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCkBAIC0z
NSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxBdWRpb0J1
cz4gQXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIGZsb2F0
IHNhbXBsZVJhdGUpCitSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNv
dXJjZShjb25zdCBjaGFyKiBuYW1lLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gcGF0aChnX3N0cmR1cF9wcmludGYoQVVESU9fR1JFU09VUkNFX1BBVEggIi8lcyIs
IG5hbWUpKTsKICAgICBHUmVmUHRyPEdCeXRlcz4gZGF0YSA9IGFkb3B0R1JlZihnX3Jlc291cmNl
c19sb29rdXBfZGF0YShwYXRoLmdldCgpLCBHX1JFU09VUkNFX0xPT0tVUF9GTEFHU19OT05FLCBu
dWxscHRyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3Ry
ZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDFm
MjVlOGU1NGU5ZWU4NWZhMGNjYTZhMzFiOTJlMTExZTZkZjBjYTguLjBlNDFjYzgwNWJkMDhiNGI5
NjcxNmQ1ZjE3YTllZmUyOWJmOGVkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3Ry
ZWFtZXIuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBBdWRpb0ZpbGVSZWFkZXIo
Y29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKTsKICAgICB+QXVkaW9GaWxlUmVhZGVy
KCk7CiAKLSAgICBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0
ZSwgYm9vbCBtaXhUb01vbm8pOworICAgIFJlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzKGZsb2F0
IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKTsKIAogcHJpdmF0ZToKICAgICBXZWFrUHRyPEF1
ZGlvRmlsZVJlYWRlcj4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CkBAIC0zMzgsNyArMzM4LDcgQEAgdm9pZCBBdWRpb0ZpbGVSZWFk
ZXI6OmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24oKQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxB
dWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9v
bCBtaXhUb01vbm8pCitSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVz
KGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogewogICAgIG1fc2FtcGxlUmF0ZSA9
IHNhbXBsZVJhdGU7CiAgICAgbV9jaGFubmVscyA9IG1peFRvTW9ubyA/IDEgOiAyOwpAQCAtMzY3
LDcgKzM2Nyw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRl
QnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiAgICAgcmV0dXJuIGF1ZGlvQnVz
OwogfQogCi1QYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0
IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKK1JlZlB0
cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwg
Ym9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgUmVmUHRyPEF1ZGlvQnVz
PiByZXR1cm5WYWx1ZTsKICAgICBhdXRvIHRocmVhZCA9IFRocmVhZDo6Y3JlYXRlKCJBdWRpb0Zp
bGVSZWFkZXIiLCBbJnJldHVyblZhbHVlLCBmaWxlUGF0aCwgbWl4VG9Nb25vLCBzYW1wbGVSYXRl
XSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJv
bUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwgYm9vbCBtaXhUb01vbm8KICAgICByZXR1
cm4gcmV0dXJuVmFsdWU7CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21J
bk1lbW9yeUF1ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wg
bWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNG
cm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBi
b29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+
IHJldHVyblZhbHVlOwogICAgIGF1dG8gdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIkF1ZGlvRmls
ZVJlYWRlciIsIFsmcmV0dXJuVmFsdWUsIGRhdGEsIGRhdGFTaXplLCBtaXhUb01vbm8sIHNhbXBs
ZVJhdGVdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9B
dWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvRmlsZVJlYWRlcklPUy5jcHAKaW5kZXggMDNkMjljMDUyZGE2ZWY2MjA0ZDg5Nzc3M2U0
ZTNlNzA1NTc5MmY4NC4uNTAzZWY0MmQwMjhiNzQxZDJkOWM0ZTFkOTlkNjhlMjA5ZTg5NWUxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJl
YWRlcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
RmlsZVJlYWRlcklPUy5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCBTSW50NjQgQXVkaW9GaWxlUmVh
ZGVyOjpnZXRTaXplUHJvYyh2b2lkKiBjbGllbnREYXRhKQogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxBdWRpb0ZpbGVSZWFkZXIqPihjbGllbnREYXRhKS0+ZGF0YVNpemUoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0
ZSwgYm9vbCBtaXhUb01vbm8pCitSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3Jl
YXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogewogICAgIGlmICghbV9l
eHRBdWRpb0ZpbGVSZWYpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjMxLDEzICsyMzEs
MTMgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxv
YXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8KICAgICByZXR1cm4gYXVkaW9CdXMucmVsZWFz
ZSgpOwogfQogCi1QYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNv
bnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKK1Jl
ZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0
aCwgYm9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgQXVkaW9GaWxlUmVh
ZGVyIHJlYWRlcihmaWxlUGF0aCk7CiAgICAgcmV0dXJuIHJlYWRlci5jcmVhdGVCdXMoc2FtcGxl
UmF0ZSwgbWl4VG9Nb25vKTsKIH0KIAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJv
bUluTWVtb3J5QXVkaW9GaWxlKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSwgYm9v
bCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCitSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1
c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUs
IGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIEF1ZGlvRmlsZVJlYWRl
ciByZWFkZXIoZGF0YSwgZGF0YVNpemUpOwogICAgIHJldHVybiByZWFkZXIuY3JlYXRlQnVzKHNh
bXBsZVJhdGUsIG1peFRvTW9ubyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmgKaW5kZXggMTY3MDc5NDU3NTRiZTUzZmEy
YTc5OGYwOTExNTRkZjg5MWJhNTZlNy4uN2FkYTRjZDZjZDUwNjk4M2RkYzc3NDVkZGM2NzAyZDc2
ZmE4YjVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1
ZGlvRmlsZVJlYWRlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lv
cy9BdWRpb0ZpbGVSZWFkZXJJT1MuaApAQCAtMzIsNyArMzIsNyBAQAogCiAjaW5jbHVkZSA8QXVk
aW9Ub29sYm94L0F1ZGlvRmlsZS5oPgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9FeHRlbmRlZEF1
ZGlvRmlsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGlj
OgogICAgIEF1ZGlvRmlsZVJlYWRlcihjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUp
OwogICAgIH5BdWRpb0ZpbGVSZWFkZXIoKTsKIAotICAgIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNy
ZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubyk7IC8vIFJldHVybnMgbnVs
bHB0ciBvbiBlcnJvcgorICAgIFJlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzKGZsb2F0IHNhbXBs
ZVJhdGUsIGJvb2wgbWl4VG9Nb25vKTsgLy8gUmV0dXJucyBudWxscHRyIG9uIGVycm9yCiAKICAg
ICBjb25zdCB2b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAgICAgc2l6ZV90
IGRhdGFTaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhU2l6ZTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tCmluZGV4IDZkMGRmMmUzZTEz
MGRiYzlhZmI2YTg2ZTBjYzA5YWQ3OTcwNzE5OTYuLjcwM2E2N2I3YjM4NDJjMTYyOTdmODkzZTk0
NmE4YmMyMjRjNWQ0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L21hYy9BdWRpb0J1c01hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9CdXNNYWMubW0KQEAgLTMxLDcgKzMxLDYgQEAKICNpbXBvcnQgIkF1ZGlvRmlsZVJl
YWRlci5oIgogI2ltcG9ydCA8d3RmL0F1dG9kcmFpbmVkUG9vbC5oPgogI2ltcG9ydCA8d3RmL1Jl
ZlB0ci5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPEZvdW5kYXRpb24v
Rm91bmRhdGlvbi5oPgogCiBAaW50ZXJmYWNlIFdlYkNvcmVBdWRpb0J1bmRsZUNsYXNzIDogTlNP
YmplY3QKQEAgLTQyLDcgKzQxLDcgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBj
aGFyKiBuYW1lLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6
bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciogbmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSkK
IHsKICAgICAvLyBUaGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIGZyb20gb3RoZXIgdGhhbiB0aGUg
bWFpbiB0aHJlYWQsIHNvIHdlIG5lZWQgYW4gYXV0by1yZWxlYXNlIHBvb2wuCiAgICAgQXV0b2Ry
YWluZWRQb29sIHBvb2w7CkBAIC01MiwxMyArNTEsMTEgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4g
QXVkaW9CdXM6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIGZsb2F0IHNh
bXAKICAgICBOU0RhdGFSZWFkaW5nT3B0aW9ucyBvcHRpb25zID0gTlNEYXRhUmVhZGluZ01hcHBl
ZElmU2FmZTsKICAgICBOU0RhdGEgKmF1ZGlvRGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhDb250ZW50
c09mVVJMOmF1ZGlvRmlsZVVSTCBvcHRpb25zOm9wdGlvbnMgZXJyb3I6bmlsXTsKIAotICAgIGlm
IChhdWRpb0RhdGEpIHsKLSAgICAgICAgUmVmUHRyPEF1ZGlvQnVzPiBidXMoY3JlYXRlQnVzRnJv
bUluTWVtb3J5QXVkaW9GaWxlKFthdWRpb0RhdGEgYnl0ZXNdLCBbYXVkaW9EYXRhIGxlbmd0aF0s
IGZhbHNlLCBzYW1wbGVSYXRlKSk7Ci0gICAgICAgIHJldHVybiBidXM7Ci0gICAgfQorICAgIGlm
IChhdWRpb0RhdGEpCisgICAgICAgIHJldHVybiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0Zp
bGUoW2F1ZGlvRGF0YSBieXRlc10sIFthdWRpb0RhdGEgbGVuZ3RoXSwgZmFsc2UsIHNhbXBsZVJh
dGUpOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAK
aW5kZXggOGRmMTM2NTE2YWU5MjVhZmU4Yzk0YzY1MzAzMWQyZDA4ZjM4ZmJkYi4uMmFmNTE4Yjk2
MjQ4MjViMGI0YzcxNDRlYmU0NDZlNWMxMjRiMWM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAKQEAgLTEy
OSwxNiArMTI5LDE2IEBAIFNJbnQ2NCBBdWRpb0ZpbGVSZWFkZXI6OmdldFNpemVQcm9jKHZvaWQq
IGNsaWVudERhdGEpCiAgICAgcmV0dXJuIGF1ZGlvRmlsZVJlYWRlci0+ZGF0YVNpemUoKTsKIH0K
IAotUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQg
c2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCitSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJl
YWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogewogICAg
IGlmICghbV9leHRBdWRpb0ZpbGVSZWYpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIC8vIEdldCBmaWxlJ3MgZGF0YSBmb3JtYXQKICAgICBVSW50MzIg
c2l6ZSA9IHNpemVvZihtX2ZpbGVEYXRhRm9ybWF0KTsKICAgICBPU1N0YXR1cyByZXN1bHQgPSBF
eHRBdWRpb0ZpbGVHZXRQcm9wZXJ0eShtX2V4dEF1ZGlvRmlsZVJlZiwga0V4dEF1ZGlvRmlsZVBy
b3BlcnR5X0ZpbGVEYXRhRm9ybWF0LCAmc2l6ZSwgJm1fZmlsZURhdGFGb3JtYXQpOwogICAgIGlm
IChyZXN1bHQgIT0gbm9FcnIpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIC8vIE51bWJlciBvZiBjaGFubmVscwogICAgIHNpemVfdCBudW1iZXJPZkNo
YW5uZWxzID0gbV9maWxlRGF0YUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKQEAgLTE0OCw3ICsx
NDgsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6OmNyZWF0ZUJ1cyhm
bG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubwogICAgIHNpemUgPSBzaXplb2YobnVtYmVy
T2ZGcmFtZXM2NCk7CiAgICAgcmVzdWx0ID0gRXh0QXVkaW9GaWxlR2V0UHJvcGVydHkobV9leHRB
dWRpb0ZpbGVSZWYsIGtFeHRBdWRpb0ZpbGVQcm9wZXJ0eV9GaWxlTGVuZ3RoRnJhbWVzLCAmc2l6
ZSwgJm51bWJlck9mRnJhbWVzNjQpOwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIgfHwgbnVtYmVy
T2ZGcmFtZXM2NCA8PSAwKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICAvLyBTYW1wbGUtcmF0ZQogICAgIGRvdWJsZSBmaWxlU2FtcGxlUmF0ZSA9IG1f
ZmlsZURhdGFGb3JtYXQubVNhbXBsZVJhdGU7CkBAIC0xNzEsNyArMTcxLDcgQEAgUGFzc1JlZlB0
cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwg
Ym9vbCBtaXhUb01vbm8KIAogICAgIHJlc3VsdCA9IEV4dEF1ZGlvRmlsZVNldFByb3BlcnR5KG1f
ZXh0QXVkaW9GaWxlUmVmLCBrRXh0QXVkaW9GaWxlUHJvcGVydHlfQ2xpZW50RGF0YUZvcm1hdCwg
c2l6ZW9mKEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiksICZtX2NsaWVudERhdGFGb3JtYXQp
OwogICAgIGlmIChyZXN1bHQgIT0gbm9FcnIpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENoYW5nZSBudW1iZXJPZkZyYW1lczY0IHRvIGRlc3Rp
bmF0aW9uIHNhbXBsZS1yYXRlCiAgICAgbnVtYmVyT2ZGcmFtZXM2NCA9IG51bWJlck9mRnJhbWVz
NjQgKiAobV9jbGllbnREYXRhRm9ybWF0Lm1TYW1wbGVSYXRlIC8gZmlsZVNhbXBsZVJhdGUpOwpA
QCAtMjIxLDcgKzIyMSw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6
Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiAgICAgcmVzdWx0ID0g
RXh0QXVkaW9GaWxlUmVhZChtX2V4dEF1ZGlvRmlsZVJlZiwgJmZyYW1lc1RvUmVhZCwgYnVmZmVy
TGlzdCk7CiAgICAgaWYgKHJlc3VsdCAhPSBub0VycikgewogICAgICAgICBkZXN0cm95QXVkaW9C
dWZmZXJMaXN0KGJ1ZmZlckxpc3QpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQogCiAgICAgaWYgKG1peFRvTW9ubyAmJiBudW1iZXJPZkNoYW5uZWxz
ID09IDIpIHsKQEAgLTIzNywxMiArMjM3LDEyIEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlv
RmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiAg
ICAgcmV0dXJuIGF1ZGlvQnVzOwogfQogCi1QYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNG
cm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywgZmxvYXQg
c2FtcGxlUmF0ZSkKK1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShjb25z
dCBjaGFyKiBmaWxlUGF0aCwgYm9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAg
ICAgcmV0dXJuIEF1ZGlvRmlsZVJlYWRlcihmaWxlUGF0aCkuY3JlYXRlQnVzKHNhbXBsZVJhdGUs
IG1peFRvTW9ubyk7CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21Jbk1l
bW9yeUF1ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4
VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQorUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9t
SW5NZW1vcnlBdWRpb0ZpbGUoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29s
IG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICByZXR1cm4gQXVkaW9GaWxlUmVh
ZGVyKGRhdGEsIGRhdGFTaXplKS5jcmVhdGVCdXMoc2FtcGxlUmF0ZSwgbWl4VG9Nb25vKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0ZpbGVS
ZWFkZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0ZpbGVS
ZWFkZXJNYWMuaAppbmRleCBiMTBkYjIzMDJkZWM5N2JkMzEyMGYzN2M5NWE5ZWQ5MmFjY2I0MzI4
Li5jOWViNjhlZDYwMDkyMzFjYjZhOGZmZWIzNzA3ZmUyZmE0YWQzZTM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVhZGVyTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5o
CkBAIC0zMSw3ICszMSw3IEBACiAKICNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9GaWxlLmg+
CiAjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0V4dGVuZGVkQXVkaW9GaWxlLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDUsOCArNDUsOCBAQCBwdWJsaWM6CiAgICAgQXVkaW9GaWxlUmVhZGVy
KGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSk7CiAgICAgfkF1ZGlvRmlsZVJlYWRl
cigpOwogCi0gICAgLy8gUmV0dXJucyAwIGlmIGVycm9yCi0gICAgUGFzc1JlZlB0cjxBdWRpb0J1
cz4gY3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKTsKKyAgICAvLyBS
ZXR1cm5zIG51bGxwdHIgaWYgZXJyb3IKKyAgICBSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1cyhm
bG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubyk7CiAKICAgICBjb25zdCB2b2lkKiBkYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAgICAgc2l6ZV90IGRhdGFTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9kYXRhU2l6ZTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>