<?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>161020</bug_id>
          
          <creation_ts>2016-08-19 16:56:42 -0700</creation_ts>
          <short_desc>[GTK] Unreviewed GTK build fix since r204665 and 204668</short_desc>
          <delta_ts>2016-08-20 02:40:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Javier Fernandez">jfernandez</reporter>
          <assigned_to name="Javier Fernandez">jfernandez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jfernandez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221541</commentid>
    <comment_count>0</comment_count>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 16:56:42 -0700</bug_when>
    <thetext>[GTK] GTK] Unreviewed GTK build fix since r204665</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221544</commentid>
    <comment_count>1</comment_count>
      <attachid>286498</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 16:59:23 -0700</bug_when>
    <thetext>Created attachment 286498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221567</commentid>
    <comment_count>2</comment_count>
      <attachid>286507</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 18:10:53 -0700</bug_when>
    <thetext>Created attachment 286507
Fix build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221568</commentid>
    <comment_count>3</comment_count>
      <attachid>286508</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 18:18:51 -0700</bug_when>
    <thetext>Created attachment 286508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221569</commentid>
    <comment_count>4</comment_count>
      <attachid>286509</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 18:19:40 -0700</bug_when>
    <thetext>Created attachment 286509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221576</commentid>
    <comment_count>5</comment_count>
      <attachid>286514</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 18:46:13 -0700</bug_when>
    <thetext>Created attachment 286514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221580</commentid>
    <comment_count>6</comment_count>
      <attachid>286515</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 18:51:19 -0700</bug_when>
    <thetext>Created attachment 286515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221581</commentid>
    <comment_count>7</comment_count>
      <attachid>286516</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 18:53:42 -0700</bug_when>
    <thetext>Created attachment 286516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221591</commentid>
    <comment_count>8</comment_count>
      <attachid>286518</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-19 19:38:54 -0700</bug_when>
    <thetext>Created attachment 286518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221639</commentid>
    <comment_count>9</comment_count>
      <attachid>286518</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-20 01:35:29 -0700</bug_when>
    <thetext>Comment on attachment 286518
Patch

Rejecting attachment 286518 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 286518, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
file Source/WebKit2/Shared/WebBatteryStatus.h
patching file Source/WebKit2/Shared/gtk/ArgumentCodersGtk.cpp
patching file Source/WebKit2/Shared/gtk/ArgumentCodersGtk.h
patching file Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp
patching file Source/WebKit2/UIProcess/LegacySessionStateCodingNone.cpp
patching file Source/WebKit2/UIProcess/WebBatteryManagerProxy.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/1906604</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221640</commentid>
    <comment_count>10</comment_count>
      <attachid>286538</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-20 01:59:25 -0700</bug_when>
    <thetext>Created attachment 286538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221641</commentid>
    <comment_count>11</comment_count>
      <attachid>286538</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-20 02:01:29 -0700</bug_when>
    <thetext>Comment on attachment 286538
Patch

Rejecting attachment 286538 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 286538, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebKit2/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/1906765</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221642</commentid>
    <comment_count>12</comment_count>
      <attachid>286539</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-08-20 02:10:19 -0700</bug_when>
    <thetext>Created attachment 286539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221643</commentid>
    <comment_count>13</comment_count>
      <attachid>286539</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-20 02:40:21 -0700</bug_when>
    <thetext>Comment on attachment 286539
Patch

Clearing flags on attachment: 286539

Committed r204678: &lt;http://trac.webkit.org/changeset/204678&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221644</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-20 02:40:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286498</attachid>
            <date>2016-08-19 16:59:23 -0700</date>
            <delta_ts>2016-08-19 18:11:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161020-20160820015730.patch</filename>
            <type>text/plain</type>
            <size>2138</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjAwYTdjMTA0MzU3YTY1
ZWM4YzQwYzIzZjdhM2M3YmU4YjM3ODYwZC4uZTMyZDcwMDQ0ZmY0M2VlYjkwZjU3MTZiZjBkNjBj
Nzg4MjU1ZjAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA4LTE5ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEdU
S10gVW5yZXZpZXdlZCBHVEsgYnVpbGQgZml4IHNpbmNlIHIyMDQ2NjUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTAyMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisKIDIwMTYtMDgtMTkgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgWGNvZGUgcHJvamVjdC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKaW5kZXggMjg3NmQyODE2MGY4YzZmMTdlMjEzMWJjZjI5YTJhZTM5NTZm
ODVmYy4uNGM0ZjYzM2NmYTFkYTU4NmQ2YTZkYjUyYjMxNTAyZmM0MGY2YWY1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQKQEAgLTIxOCwxMiArMjE4LDExIEBAIHNldChXZWJLaXQyX1NPVVJDRVMKIAog
ICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKICAgICBQbGF0Zm9ybS9JUEMvQXJn
dW1lbnREZWNvZGVyLmNwcAotICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVudEVuY29kZXIuY3BwCiAg
ICAgUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuY3BwCiAgICAgUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwCiAgICAgUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuY3BwCisgICAgUGxhdGZvcm0v
SVBDL0VuY29kZXIuY3BwCiAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAotICAg
IFBsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAKICAgICBQbGF0Zm9ybS9JUEMvTWVzc2Fn
ZVJlY2VpdmVyTWFwLmNwcAogICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmNwcAogICAg
IFBsYXRmb3JtL0lQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtl
CmluZGV4IDc4ODk2NjQ4Y2M0M2VhNzRiZGE5Mjg2ZThmOGEyNTljZDRhYWNjYjIuLmYzYzI3MjJh
NGMxZDQ0YWQ4OGJiYTdhMWY3MjFmNTQzMDM1Mzc1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC02OTUsMTIgKzY5NSwxMSBAQCBpZiAoRU5BQkxFX1BMVUdJTl9QUk9DRVNTX0dUSzIp
CiAKICAgICAgICAgUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAogICAgICAgICBQbGF0
Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmNwcAotICAgICAgICBQbGF0Zm9ybS9JUEMvQXJndW1l
bnRFbmNvZGVyLmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5jcHAKICAgICAg
ICAgUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9EYXRh
UmVmZXJlbmNlLmNwcAorICAgICAgICBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKICAgICAgICAg
UGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAotICAgICAgICBQbGF0Zm9ybS9JUEMvTWVz
c2FnZUVuY29kZXIuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAu
Y3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmNwcAogICAgICAgICBQbGF0
Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286507</attachid>
            <date>2016-08-19 18:10:53 -0700</date>
            <delta_ts>2016-08-19 18:18:51 -0700</delta_ts>
            <desc>Fix build</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>3451</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAKaW5k
ZXggN2EyZDZjNC4uMzE3ODBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0
ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9B
cmd1bWVudENvZGVyc0d0ay5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXN0YXRpYyB2b2lkIGVuY29kZUltYWdlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgR2RrUGl4YnVmKiBwaXhidWYpCitzdGF0aWMgdm9p
ZCBlbmNvZGVJbWFnZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBHZGtQaXhidWYqIHBpeGJ1ZikK
IHsKICAgICBJbnRTaXplIGltYWdlU2l6ZShnZGtfcGl4YnVmX2dldF93aWR0aChwaXhidWYpLCBn
ZGtfcGl4YnVmX2dldF9oZWlnaHQocGl4YnVmKSk7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoaW1hZ2VTaXplLCBT
aGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEpOwpAQCAtODIsNyArODIsNyBAQCBzdGF0aWMg
Ym9vbCBkZWNvZGVJbWFnZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8R2RrUGl4
YnVmPiYgcGl4YnVmKQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVE
YXRhT2JqZWN0KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YU9iamVjdEd0ayog
ZGF0YU9iamVjdCkKK3N0YXRpYyB2b2lkIGVuY29kZURhdGFPYmplY3QoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCkKIHsKICAgICBib29sIGhhc1RleHQg
PSBkYXRhT2JqZWN0LT5oYXNUZXh0KCk7CiAgICAgZW5jb2RlciA8PCBoYXNUZXh0OwpAQCAtMTg4
LDcgKzE4OCw3IEBAIHN0YXRpYyBib29sIGRlY29kZURhdGFPYmplY3QoQXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBSZWZQdHI8RGF0YU9iamVjdEd0az4mIGRhCiB9CiAKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQotdm9pZCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQordm9pZCBBcmd1bWVu
dENvZGVyPERyYWdEYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERyYWdEYXRh
JiBkcmFnRGF0YSkKIHsKICAgICBlbmNvZGVyIDw8IGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCk7
CiAgICAgZW5jb2RlciA8PCBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpOwpAQCAtMjM2LDcgKzIz
Niw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIERyYWdEYXRhJiBkcmFnRGF0CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdf
U1VQUE9SVCkKIAotc3RhdGljIHZvaWQgZW5jb2RlR0tleUZpbGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBHS2V5RmlsZSoga2V5RmlsZSkKK3N0YXRpYyB2b2lkIGVuY29kZUdLZXlGaWxlKEVu
Y29kZXImIGVuY29kZXIsIEdLZXlGaWxlKiBrZXlGaWxlKQogewogICAgIGdzaXplIGRhdGFTaXpl
OwogICAgIEdVbmlxdWVQdHI8Y2hhcj4gZGF0YShnX2tleV9maWxlX3RvX2RhdGEoa2V5RmlsZSwg
JmRhdGFTaXplLCAwKSk7CkBAIC0yNjEsNyArMjYxLDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlR0tl
eUZpbGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHVW5pcXVlUHRyPEdLZXlGaWxlPiYga2V5
RmkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBHdGtQcmludFNldHRpbmdzKiBwcmludFNldHRpbmdzKQordm9pZCBlbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgR3RrUHJpbnRTZXR0aW5ncyogcHJpbnRTZXR0aW5ncykKIHsKICAgICBH
VW5pcXVlUHRyPEdLZXlGaWxlPiBrZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgIGd0a19w
cmludF9zZXR0aW5nc190b19rZXlfZmlsZShwcmludFNldHRpbmdzLCBrZXlGaWxlLmdldCgpLCAi
UHJpbnQgU2V0dGluZ3MiKTsKQEAgLTI4NCw3ICsyODQsNyBAQCBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mIHByaW50U2V0dGlu
Z3MpCiAgICAgcmV0dXJuIHByaW50U2V0dGluZ3M7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgR3RrUGFnZVNldHVwKiBwYWdlU2V0dXApCit2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBHdGtQYWdlU2V0dXAqIHBhZ2VTZXR1cCkKIHsKICAgICBHVW5pcXVl
UHRyPEdLZXlGaWxlPiBrZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgIGd0a19wYWdlX3Nl
dHVwX3RvX2tleV9maWxlKHBhZ2VTZXR1cCwga2V5RmlsZS5nZXQoKSwgIlBhZ2UgU2V0dXAiKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaAppbmRleCA4
MGE1ZGMxLi5kYTJlMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0Fy
Z3VtZW50Q29kZXJzR3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVu
dENvZGVyc0d0ay5oCkBAIC00MSwxNSArNDEsMTUgQEAgbmFtZXNwYWNlIElQQyB7CiAKICNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpEcmFnRGF0YT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKIH07CiAjZW5kaWYKIAotdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgR3RrUHJpbnRTZXR0aW5ncyopOwordm9pZCBlbmNv
ZGUoRW5jb2RlciYsIEd0a1ByaW50U2V0dGluZ3MqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mKTsKIAotdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiwgR3RrUGFnZVNldHVwKik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgR3RrUGFn
ZVNldHVwKik7CiBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBHUmVmUHRyPEd0a1BhZ2VT
ZXR1cD4mKTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>286508</attachid>
            <date>2016-08-19 18:18:51 -0700</date>
            <delta_ts>2016-08-19 18:19:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>application/octet-stream</type>
            <size>21546</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">Y29tbWl0IDE3OWVmMjNmOTliOWRiZGQxMDVkMjVkODAxMzJhZGJiOGQwODQ1OWUKQXV0aG9yOiBK
YXZpZXIgRmVybmFuZGV6IDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CkRhdGU6ICAgU2F0IEF1ZyAy
MCAwMjoxNDoyNyAyMDE2ICswMjAwCgogICAgRml4ZWQgQ21ha2UuCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dAppbmRleCAyODc2ZDI4Li40YzRmNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjE4LDEy
ICsyMTgsMTEgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmNwcAogICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwCi0gICAg
UGxhdGZvcm0vSVBDL0FyZ3VtZW50RW5jb2Rlci5jcHAKICAgICBQbGF0Zm9ybS9JUEMvQXR0YWNo
bWVudC5jcHAKICAgICBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKICAgICBQbGF0Zm9ybS9J
UEMvRGF0YVJlZmVyZW5jZS5jcHAKKyAgICBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKICAgICBQ
bGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCi0gICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VF
bmNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCiAgICAg
UGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCiAgICAgUGxhdGZvcm0vSVBDL1N0cmluZ1Jl
ZmVyZW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MDBhN2MxLi5lMzJkNzAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTYtMDgtMTkgIEphdmllciBGZXJuYW5kZXogIDxqZmVybmFuZGV6
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gR1RLXSBVbnJldmlld2VkIEdUSyBidWlsZCBm
aXggc2luY2UgcjIwNDY2NQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYxMDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToK
KwogMjAxNi0wOC0xOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVwZGF0ZSBYY29kZSBwcm9qZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IDhjM2I2MDkuLjdkN2NlMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25V
bml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9u
VW5peC5jcHAKQEAgLTQwMiw3ICs0MDIsNyBAQCBib29sIENvbm5lY3Rpb246OnBsYXRmb3JtQ2Fu
U2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdAogICAgIHJldHVybiBtX2lzQ29ubmVjdGVkOwog
fQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQorYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdN
ZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNvZGVyKQogewogICAgIENPTVBJTEVf
QVNTRVJUKHNpemVvZihNZXNzYWdlSW5mbykgKyBhdHRhY2htZW50TWF4QW1vdW50ICogc2l6ZW9m
KHNpemVfdCkgPD0gbWVzc2FnZU1heFNpemUsIEF0dGFjaG1lbnRzRml0VG9NZXNzYWdlSW5saW5l
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1v
cnlVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5p
eC5jcHAKaW5kZXggYWE1ZWFhMC4uZTkzNThiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5j
bHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNp
bmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVk
ZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAt
NjQsNyArNjQsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAog
ICAgIHJldHVybiBtX2F0dGFjaG1lbnQuZmlsZURlc2NyaXB0b3IoKSA9PSAtMTsKIH0KIAotdm9p
ZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAordm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHJlbGVhc2VBdHRhY2htZW50KCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDc4ODk2NjQuLmYzYzI3MjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC02OTUsMTIgKzY5NSwxMSBAQCBpZiAoRU5BQkxFX1BM
VUdJTl9QUk9DRVNTX0dUSzIpCiAKICAgICAgICAgUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmNwcAotICAgICAgICBQ
bGF0Zm9ybS9JUEMvQXJndW1lbnRFbmNvZGVyLmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvQXR0
YWNobWVudC5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCiAgICAgICAg
IFBsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNwcAorICAgICAgICBQbGF0Zm9ybS9JUEMvRW5j
b2Rlci5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAotICAgICAg
ICBQbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9N
ZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVy
LmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
NDA3YjRkYS4uMjBkMDU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZpbHRlcnMuc2l6ZSgpKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyArK2kpIHsKQEAgLTE2OCw3ICsxNjgsNyBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKK3Zv
aWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7
CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odHJhbnNmb3JtT3BlcmF0aW9u
cy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgb3BlcmF0aW9uIDogdHJhbnNmb3JtT3Bl
cmF0aW9ucy5vcGVyYXRpb25zKCkpIHsKQEAgLTMzNSw3ICszMzUsNyBAQCBib29sIEFyZ3VtZW50
Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIFRyYW5zZgogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVUaW1p
bmdGdW5jdGlvbihBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbWluZ0Z1bmN0aW9u
KiB0aW1pbmdGdW5jdGlvbikKK3N0YXRpYyB2b2lkIGVuY29kZVRpbWluZ0Z1bmN0aW9uKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKIHsKICAg
ICBpZiAoIXRpbWluZ0Z1bmN0aW9uKSB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShUaW1p
bmdGdW5jdGlvbjo6VGltaW5nRnVuY3Rpb25UeXBlKC0xKSk7CkBAIC00NDMsNyArNDQzLDcgQEAg
Ym9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0
cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQXJn
dW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9p
ZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAg
IGVuY29kZXIgPDwgYW5pbWF0aW9uLm5hbWUoKTsKICAgICBlbmNvZGVyIDw8IGFuaW1hdGlvbi5i
b3hTaXplKCk7CkBAIC01NzUsNyArNTc1LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRleHR1cmVN
YXBwZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUZXgKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmlt
YXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCit2b2lkIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1h
cHBlckFuaW1hdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBhbmltYXRpb25z
LmFuaW1hdGlvbnMoKTsKIH0KQEAgLTU4Niw3ICs1ODYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8
VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBUZQogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi12b2lkIEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4pCit2b2lk
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mIHRva2Vu
KQogewogI2lmIE9TKERBUldJTikKICAgICBlbmNvZGVyIDw8IEF0dGFjaG1lbnQodG9rZW4uZnJv
bnRCdWZmZXJIYW5kbGUsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKQEAgLTYxNCw3ICs2MTQs
NyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZAogfQogI2VuZGlmCiAKLXZvaWQgQXJndW1lbnRD
b2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbykKK3ZvaWQgQXJndW1l
bnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBTdXJmYWNlVXBkYXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJn
dW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmVuY29kZShlbmNvZGVyLCBzdXJmYWNlVXBk
YXRlSW5mbyk7CiB9CkBAIC02MjQsNyArNjI0LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFN1cmZh
Y2VVcGRhdGVJbmZvPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3VyZmFjZVUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29k
ZShkZWNvZGVyLCBzdXJmYWNlVXBkYXRlSW5mbyk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQg
QXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUp
CiB7CiAgICAgZW5jb2RlciA8PCBzdGF0ZS5jaGFuZ2VNYXNrOwogCkBAIC04MDIsNyArODAyLDcg
QEAgYm9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBB
cmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgVGlsZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCit2b2lkIEFyZ3VtZW50Q29k
ZXI8VGlsZVVwZGF0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGlsZVVw
ZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxUaWxlVXBk
YXRlSW5mbz46OmVuY29kZShlbmNvZGVyLCB1cGRhdGVJbmZvKTsKIH0KQEAgLTgxMiw3ICs4MTIs
NyBAQCBib29sIEFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBUaWxlVXBkYXRlSQogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZGVjb2RlKGRlY29kZXIsIHVwZGF0ZUluZm8pOwogfQogCi12
b2lkIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFRpbGVDcmVhdGlvbkluZm8mIHVwZGF0ZUluZm8pCit2b2lkIEFy
Z3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUaWxlQ3JlYXRpb25JbmZvJiB1cGRhdGVJbmZvKQogewogICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZShlbmNvZGVyLCB1cGRhdGVJbmZvKTsKIH0K
QEAgLTgyMiw3ICs4MjIsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRpbGVDcmVhdAogICAgIHJldHVybiBT
aW1wbGVBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+OjpkZWNvZGUoZGVjb2RlciwgdXBk
YXRlSW5mbyk7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZUNvb3JkaW5hdGVkU3VyZmFjZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBz
dXJmYWNlKQorc3RhdGljIHZvaWQgZW5jb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBzdXJmYWNlKQogewogICAg
IGJvb2wgaXNWYWxpZFN1cmZhY2UgPSBmYWxzZTsKICAgICBpZiAoIXN1cmZhY2UpIHsKQEAgLTg1
OCw3ICs4NTgsNyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVDb29yZGluYXRlZFN1cmZhY2UoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8Q29vcmRpbmF0ZQogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRl
JiBzdGF0ZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJiBz
dGF0ZSkKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRlLnJvb3RDb21wb3NpdGluZ0xheWVyOwogICAg
IGVuY29kZXIgPDwgc3RhdGUuc2Nyb2xsUG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCmluZGV4IGVjZGQwMTQuLjMzM2U2NjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVy
cy5oCkBAIC01NCw1NCArNTQsNTQgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVRva2VuOwogbmFt
ZXNwYWNlIElQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CisgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
VHJhbnNmb3JtT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zJik7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25z
Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRy
YW5zZm9ybU9wZXJhdGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1h
dGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJBbmltYXRpb25zJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb25zJik7CiB9OwogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmlt
YXRpb24+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYpOwogICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyQW5pbWF0aW9uJik7CiB9OwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzU3VyZmFjZVRva2VuJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOwogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYp
OwogfTsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlN1cmZhY2VVcGRhdGVJbmZvPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTdXJmYWNlVXBkYXRlSW5mbyYpOwog
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTdXJmYWNl
VXBkYXRlSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
U3RhdGUmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
VGlsZVVwZGF0ZUluZm8+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6VGlsZVVwZGF0ZUluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvJik7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvJik7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRpbGVDcmVh
dGlvbkluZm8+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbyYpOwogICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUaWxlQ3JlYXRpb25JbmZvJik7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmKTsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFj
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29y
ZGluYXRlZFN1cmZhY2UuY3BwCmluZGV4IGUzMjg5MDcuLjQxYjE3YTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3Vy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBXZWJDb29yZGluYXRl
ZFN1cmZhY2U6OkhhbmRsZTo6SGFuZGxlKCkKIHsKIH0KIAotdm9pZCBXZWJDb29yZGluYXRlZFN1
cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAordm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG1fc2l6ZSA8PCBtX2ZsYWdzOwog
I2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2Uu
aAppbmRleCA2ZDcwNjJiLi5hMzVlN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZh
Y2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICBIYW5k
bGUoKTsKIAotICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgSGFuZGxlJik7CiAKICNpZiBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJCYXR0ZXJ5U3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3Rh
dHVzLmNwcAppbmRleCBkMDEyZDcwLi5iMmRiOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkJhdHRlcnlTdGF0dXMuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFdlYkJhdHRlcnlTdGF0dXM6
On5XZWJCYXR0ZXJ5U3RhdHVzKCkKIHsKIH0KIAotdm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRh
OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkJh
dHRlcnlTdGF0dXM6OkRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgZW5jb2RlciA8PCBpc0NoYXJnaW5nOwogICAgIGVuY29kZXIgPDwgY2hhcmdpbmdUaW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKaW5kZXggMjI3YTMzMi4u
OGU1NzQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0
dXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oCkBAIC0z
MCwxNCArMzAsMTQgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkFyZ3Vt
ZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkVu
Y29kZXIuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkJhdHRlcnlTdGF0dXMg
OiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpCYXR0ZXJ5U3RhdHVz
PiB7CiBwdWJsaWM6CiAgICAgc3RydWN0IERhdGEgewotICAgICAgICB2b2lkIGVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29k
ZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiwgRGF0YSYpOwogCiAgICAgICAgIGJvb2wgaXNDaGFyZ2luZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAKaW5kZXggN2EyZDZjNC4uMzE3
ODBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVy
c0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0
ay5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNw
YWNlIElQQyB7CiAKLXN0YXRpYyB2b2lkIGVuY29kZUltYWdlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgR2RrUGl4YnVmKiBwaXhidWYpCitzdGF0aWMgdm9pZCBlbmNvZGVJbWFnZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBHZGtQaXhidWYqIHBpeGJ1ZikKIHsKICAgICBJbnRTaXpl
IGltYWdlU2l6ZShnZGtfcGl4YnVmX2dldF93aWR0aChwaXhidWYpLCBnZGtfcGl4YnVmX2dldF9o
ZWlnaHQocGl4YnVmKSk7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hh
cmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoaW1hZ2VTaXplLCBTaGFyZWFibGVCaXRtYXA6
OlN1cHBvcnRzQWxwaGEpOwpAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVJbWFn
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8R2RrUGl4YnVmPiYgcGl4YnVmKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVEYXRhT2JqZWN0KEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCkKK3N0
YXRpYyB2b2lkIGVuY29kZURhdGFPYmplY3QoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YU9i
amVjdEd0ayogZGF0YU9iamVjdCkKIHsKICAgICBib29sIGhhc1RleHQgPSBkYXRhT2JqZWN0LT5o
YXNUZXh0KCk7CiAgICAgZW5jb2RlciA8PCBoYXNUZXh0OwpAQCAtMTg4LDcgKzE4OCw3IEBAIHN0
YXRpYyBib29sIGRlY29kZURhdGFPYmplY3QoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8RGF0YU9iamVjdEd0az4mIGRhCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9p
ZCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQordm9pZCBBcmd1bWVudENvZGVyPERyYWdEYXRh
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsK
ICAgICBlbmNvZGVyIDw8IGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCk7CiAgICAgZW5jb2RlciA8
PCBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpOwpAQCAtMjM2LDcgKzIzNiw3IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxEcmFnRGF0YT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERy
YWdEYXRhJiBkcmFnRGF0CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKIAotc3Rh
dGljIHZvaWQgZW5jb2RlR0tleUZpbGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHS2V5Rmls
ZSoga2V5RmlsZSkKK3N0YXRpYyB2b2lkIGVuY29kZUdLZXlGaWxlKEVuY29kZXImIGVuY29kZXIs
IEdLZXlGaWxlKiBrZXlGaWxlKQogewogICAgIGdzaXplIGRhdGFTaXplOwogICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gZGF0YShnX2tleV9maWxlX3RvX2RhdGEoa2V5RmlsZSwgJmRhdGFTaXplLCAwKSk7
CkBAIC0yNjEsNyArMjYxLDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlR0tleUZpbGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBHVW5pcXVlUHRyPEdLZXlGaWxlPiYga2V5RmkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHdGtQcmlu
dFNldHRpbmdzKiBwcmludFNldHRpbmdzKQordm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
R3RrUHJpbnRTZXR0aW5ncyogcHJpbnRTZXR0aW5ncykKIHsKICAgICBHVW5pcXVlUHRyPEdLZXlG
aWxlPiBrZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgIGd0a19wcmludF9zZXR0aW5nc190
b19rZXlfZmlsZShwcmludFNldHRpbmdzLCBrZXlGaWxlLmdldCgpLCAiUHJpbnQgU2V0dGluZ3Mi
KTsKQEAgLTI4NCw3ICsyODQsNyBAQCBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mIHByaW50U2V0dGluZ3MpCiAgICAgcmV0dXJu
IHByaW50U2V0dGluZ3M7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgR3RrUGFnZVNldHVwKiBwYWdlU2V0dXApCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBHdGtQYWdlU2V0dXAqIHBhZ2VTZXR1cCkKIHsKICAgICBHVW5pcXVlUHRyPEdLZXlGaWxlPiBr
ZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgIGd0a19wYWdlX3NldHVwX3RvX2tleV9maWxl
KHBhZ2VTZXR1cCwga2V5RmlsZS5nZXQoKSwgIlBhZ2UgU2V0dXAiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaAppbmRleCA4MGE1ZGMxLi5kYTJlMDVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3Rr
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5oCkBA
IC00MSwxNSArNDEsMTUgQEAgbmFtZXNwYWNlIElQQyB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFnRGF0YT4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpEcmFnRGF0YSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6RHJhZ0RhdGEmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKIH07CiAjZW5kaWYKIAotdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiwgR3RrUHJpbnRTZXR0aW5ncyopOwordm9pZCBlbmNvZGUoRW5jb2RlciYsIEd0
a1ByaW50U2V0dGluZ3MqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIEdSZWZQdHI8
R3RrUHJpbnRTZXR0aW5ncz4mKTsKIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgR3Rr
UGFnZVNldHVwKik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgR3RrUGFnZVNldHVwKik7CiBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBHUmVmUHRyPEd0a1BhZ2VTZXR1cD4mKTsKIAogfSAv
LyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDdlZDY3NjIuLjZjNzUzNDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVy
c1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVu
dENvZGVyc1NvdXAuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgSVBDIHsKIAotdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVz
dD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQordm9pZCBBcmd1bWVudENvZGVyPFJlc291
cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKICAgICBlbmNvZGVyIDw8IHJlc291
cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKTsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVxdWVz
dC5odHRwTWV0aG9kKCk7CkBAIC0xMzQsNyArMTM0LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJl
c291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRl
SW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENlcnRpZmljYXRl
SW5mbyYgY2VydGlmaWNhdGVJbmZvKQordm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5m
bz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRp
ZmljYXRlSW5mbykKIHsKICAgICBpZiAoIWNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZSgpKSB7
CiAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CkBAIC0xODQsNyArMTg0LDcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIENlcnRpZmljYXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQordm9pZCBBcmd1bWVudENv
ZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsKICAgICBlbmNvZGVyLmVuY29k
ZUVudW0ocmVzb3VyY2VFcnJvci50eXBlKCkpOwogICAgIGlmIChyZXNvdXJjZUVycm9yLmlzTnVs
bCgpKQpAQCAtMjM2LDcgKzIzNiw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9y
Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmVuY29k
ZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKQor
dm9pZCBBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmVuY29kZVBsYXRmb3JtRGF0YShF
bmNvZGVyJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KQEAgLTI0Nyw3ICsyNDcsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlv
blNwYWNlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYsIFByb3RlYwogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+OjplbmNv
ZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgQ3JlZGVudGlhbCYpCit2b2lk
IEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwg
Y29uc3QgQ3JlZGVudGlhbCYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
Tm9uZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29k
aW5nTm9uZS5jcHAKaW5kZXggNDYyN2JjOS4uZDkwYmFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdOb25lLmNwcApA
QCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgIkFyZ3Vt
ZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkVu
Y29kZXIuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKIApAQCAtMzYsNyArMzYsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
UmVmUHRyPEFQSTo6RGF0YT4gZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25T
dGF0ZSYgc2Vzc2lvblN0YXRlKQogewotICAgIElQQzo6QXJndW1lbnRFbmNvZGVyIGVuY29kZXI7
CisgICAgLy8gRklYTUU6IEknbSBub3Qgc3VyZSB3aGV0aGVyIHRoZXNlIGFyZSB0aGUgcHJvcGVy
IGFyZ3VtZW50cyBmb3IgdGhlIGVuY29kZXIuCisgICAgSVBDOjpFbmNvZGVyIGVuY29kZXIoIklQ
QyIsICJMZWdhY3lTZXNzaW9uU3RhdGUiLCAwKTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0
ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5yZW5k
ZXJUcmVlU2l6ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286509</attachid>
            <date>2016-08-19 18:19:40 -0700</date>
            <delta_ts>2016-08-19 18:46:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>21546</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">Y29tbWl0IDE3OWVmMjNmOTliOWRiZGQxMDVkMjVkODAxMzJhZGJiOGQwODQ1OWUKQXV0aG9yOiBK
YXZpZXIgRmVybmFuZGV6IDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CkRhdGU6ICAgU2F0IEF1ZyAy
MCAwMjoxNDoyNyAyMDE2ICswMjAwCgogICAgRml4ZWQgQ21ha2UuCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dAppbmRleCAyODc2ZDI4Li40YzRmNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjE4LDEy
ICsyMTgsMTEgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmNwcAogICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwCi0gICAg
UGxhdGZvcm0vSVBDL0FyZ3VtZW50RW5jb2Rlci5jcHAKICAgICBQbGF0Zm9ybS9JUEMvQXR0YWNo
bWVudC5jcHAKICAgICBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKICAgICBQbGF0Zm9ybS9J
UEMvRGF0YVJlZmVyZW5jZS5jcHAKKyAgICBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKICAgICBQ
bGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCi0gICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VF
bmNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCiAgICAg
UGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCiAgICAgUGxhdGZvcm0vSVBDL1N0cmluZ1Jl
ZmVyZW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MDBhN2MxLi5lMzJkNzAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTYtMDgtMTkgIEphdmllciBGZXJuYW5kZXogIDxqZmVybmFuZGV6
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gR1RLXSBVbnJldmlld2VkIEdUSyBidWlsZCBm
aXggc2luY2UgcjIwNDY2NQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYxMDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToK
KwogMjAxNi0wOC0xOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVwZGF0ZSBYY29kZSBwcm9qZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IDhjM2I2MDkuLjdkN2NlMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25V
bml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9u
VW5peC5jcHAKQEAgLTQwMiw3ICs0MDIsNyBAQCBib29sIENvbm5lY3Rpb246OnBsYXRmb3JtQ2Fu
U2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdAogICAgIHJldHVybiBtX2lzQ29ubmVjdGVkOwog
fQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQorYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdN
ZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNvZGVyKQogewogICAgIENPTVBJTEVf
QVNTRVJUKHNpemVvZihNZXNzYWdlSW5mbykgKyBhdHRhY2htZW50TWF4QW1vdW50ICogc2l6ZW9m
KHNpemVfdCkgPD0gbWVzc2FnZU1heFNpemUsIEF0dGFjaG1lbnRzRml0VG9NZXNzYWdlSW5saW5l
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1v
cnlVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5p
eC5jcHAKaW5kZXggYWE1ZWFhMC4uZTkzNThiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5j
bHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAKICNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNp
bmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVk
ZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAt
NjQsNyArNjQsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAog
ICAgIHJldHVybiBtX2F0dGFjaG1lbnQuZmlsZURlc2NyaXB0b3IoKSA9PSAtMTsKIH0KIAotdm9p
ZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAordm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHJlbGVhc2VBdHRhY2htZW50KCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDc4ODk2NjQuLmYzYzI3MjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC02OTUsMTIgKzY5NSwxMSBAQCBpZiAoRU5BQkxFX1BM
VUdJTl9QUk9DRVNTX0dUSzIpCiAKICAgICAgICAgUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmNwcAotICAgICAgICBQ
bGF0Zm9ybS9JUEMvQXJndW1lbnRFbmNvZGVyLmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvQXR0
YWNobWVudC5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCiAgICAgICAg
IFBsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNwcAorICAgICAgICBQbGF0Zm9ybS9JUEMvRW5j
b2Rlci5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAotICAgICAg
ICBQbGF0Zm9ybS9JUEMvTWVzc2FnZUVuY29kZXIuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9N
ZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVy
LmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNlLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
NDA3YjRkYS4uMjBkMDU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIGVuY29kZXIg
PDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZpbHRlcnMuc2l6ZSgpKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyArK2kpIHsKQEAgLTE2OCw3ICsxNjgsNyBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKK3Zv
aWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7
CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odHJhbnNmb3JtT3BlcmF0aW9u
cy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgb3BlcmF0aW9uIDogdHJhbnNmb3JtT3Bl
cmF0aW9ucy5vcGVyYXRpb25zKCkpIHsKQEAgLTMzNSw3ICszMzUsNyBAQCBib29sIEFyZ3VtZW50
Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIFRyYW5zZgogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVUaW1p
bmdGdW5jdGlvbihBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbWluZ0Z1bmN0aW9u
KiB0aW1pbmdGdW5jdGlvbikKK3N0YXRpYyB2b2lkIGVuY29kZVRpbWluZ0Z1bmN0aW9uKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKIHsKICAg
ICBpZiAoIXRpbWluZ0Z1bmN0aW9uKSB7CiAgICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShUaW1p
bmdGdW5jdGlvbjo6VGltaW5nRnVuY3Rpb25UeXBlKC0xKSk7CkBAIC00NDMsNyArNDQzLDcgQEAg
Ym9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0
cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQXJn
dW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9p
ZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAg
IGVuY29kZXIgPDwgYW5pbWF0aW9uLm5hbWUoKTsKICAgICBlbmNvZGVyIDw8IGFuaW1hdGlvbi5i
b3hTaXplKCk7CkBAIC01NzUsNyArNTc1LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRleHR1cmVN
YXBwZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUZXgKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmlt
YXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCit2b2lkIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1h
cHBlckFuaW1hdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBhbmltYXRpb25z
LmFuaW1hdGlvbnMoKTsKIH0KQEAgLTU4Niw3ICs1ODYsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8
VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBUZQogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi12b2lkIEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4pCit2b2lk
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mIHRva2Vu
KQogewogI2lmIE9TKERBUldJTikKICAgICBlbmNvZGVyIDw8IEF0dGFjaG1lbnQodG9rZW4uZnJv
bnRCdWZmZXJIYW5kbGUsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKQEAgLTYxNCw3ICs2MTQs
NyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZAogfQogI2VuZGlmCiAKLXZvaWQgQXJndW1lbnRD
b2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbykKK3ZvaWQgQXJndW1l
bnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBTdXJmYWNlVXBkYXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJn
dW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmVuY29kZShlbmNvZGVyLCBzdXJmYWNlVXBk
YXRlSW5mbyk7CiB9CkBAIC02MjQsNyArNjI0LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFN1cmZh
Y2VVcGRhdGVJbmZvPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgU3VyZmFjZVUK
ICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29k
ZShkZWNvZGVyLCBzdXJmYWNlVXBkYXRlSW5mbyk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQg
QXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUp
CiB7CiAgICAgZW5jb2RlciA8PCBzdGF0ZS5jaGFuZ2VNYXNrOwogCkBAIC04MDIsNyArODAyLDcg
QEAgYm9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBB
cmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgVGlsZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCit2b2lkIEFyZ3VtZW50Q29k
ZXI8VGlsZVVwZGF0ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGlsZVVw
ZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxUaWxlVXBk
YXRlSW5mbz46OmVuY29kZShlbmNvZGVyLCB1cGRhdGVJbmZvKTsKIH0KQEAgLTgxMiw3ICs4MTIs
NyBAQCBib29sIEFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBUaWxlVXBkYXRlSQogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENv
ZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZGVjb2RlKGRlY29kZXIsIHVwZGF0ZUluZm8pOwogfQogCi12
b2lkIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFRpbGVDcmVhdGlvbkluZm8mIHVwZGF0ZUluZm8pCit2b2lkIEFy
Z3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBUaWxlQ3JlYXRpb25JbmZvJiB1cGRhdGVJbmZvKQogewogICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZShlbmNvZGVyLCB1cGRhdGVJbmZvKTsKIH0K
QEAgLTgyMiw3ICs4MjIsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRpbGVDcmVhdAogICAgIHJldHVybiBT
aW1wbGVBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+OjpkZWNvZGUoZGVjb2RlciwgdXBk
YXRlSW5mbyk7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZUNvb3JkaW5hdGVkU3VyZmFjZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBz
dXJmYWNlKQorc3RhdGljIHZvaWQgZW5jb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBzdXJmYWNlKQogewogICAg
IGJvb2wgaXNWYWxpZFN1cmZhY2UgPSBmYWxzZTsKICAgICBpZiAoIXN1cmZhY2UpIHsKQEAgLTg1
OCw3ICs4NTgsNyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVDb29yZGluYXRlZFN1cmZhY2UoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8Q29vcmRpbmF0ZQogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRl
JiBzdGF0ZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJiBz
dGF0ZSkKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRlLnJvb3RDb21wb3NpdGluZ0xheWVyOwogICAg
IGVuY29kZXIgPDwgc3RhdGUuc2Nyb2xsUG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCmluZGV4IGVjZGQwMTQuLjMzM2U2NjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVy
cy5oCkBAIC01NCw1NCArNTQsNTQgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVRva2VuOwogbmFt
ZXNwYWNlIElQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CisgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
VHJhbnNmb3JtT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zJik7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25z
Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRy
YW5zZm9ybU9wZXJhdGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1h
dGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJBbmltYXRpb25zJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb25zJik7CiB9OwogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmlt
YXRpb24+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYpOwogICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyQW5pbWF0aW9uJik7CiB9OwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzU3VyZmFjZVRva2VuJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOwogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYp
OwogfTsKICNlbmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlN1cmZhY2VVcGRhdGVJbmZvPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTdXJmYWNlVXBkYXRlSW5mbyYpOwog
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTdXJmYWNl
VXBkYXRlSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
U3RhdGUmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
VGlsZVVwZGF0ZUluZm8+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6VGlsZVVwZGF0ZUluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvJik7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvJik7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRpbGVDcmVh
dGlvbkluZm8+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbyYpOwogICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUaWxlQ3JlYXRpb25JbmZvJik7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmKTsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFj
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29y
ZGluYXRlZFN1cmZhY2UuY3BwCmluZGV4IGUzMjg5MDcuLjQxYjE3YTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3Vy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBXZWJDb29yZGluYXRl
ZFN1cmZhY2U6OkhhbmRsZTo6SGFuZGxlKCkKIHsKIH0KIAotdm9pZCBXZWJDb29yZGluYXRlZFN1
cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAordm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IG1fc2l6ZSA8PCBtX2ZsYWdzOwog
I2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2Uu
aAppbmRleCA2ZDcwNjJiLi5hMzVlN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZh
Y2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICBIYW5k
bGUoKTsKIAotICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgSGFuZGxlJik7CiAKICNpZiBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJCYXR0ZXJ5U3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3Rh
dHVzLmNwcAppbmRleCBkMDEyZDcwLi5iMmRiOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkJhdHRlcnlTdGF0dXMuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFdlYkJhdHRlcnlTdGF0dXM6
On5XZWJCYXR0ZXJ5U3RhdHVzKCkKIHsKIH0KIAotdm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRh
OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkJh
dHRlcnlTdGF0dXM6OkRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgZW5jb2RlciA8PCBpc0NoYXJnaW5nOwogICAgIGVuY29kZXIgPDwgY2hhcmdpbmdUaW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKaW5kZXggMjI3YTMzMi4u
OGU1NzQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0
dXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oCkBAIC0z
MCwxNCArMzAsMTQgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkFyZ3Vt
ZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkVu
Y29kZXIuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkJhdHRlcnlTdGF0dXMg
OiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpCYXR0ZXJ5U3RhdHVz
PiB7CiBwdWJsaWM6CiAgICAgc3RydWN0IERhdGEgewotICAgICAgICB2b2lkIGVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29k
ZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNv
ZGVyJiwgRGF0YSYpOwogCiAgICAgICAgIGJvb2wgaXNDaGFyZ2luZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAKaW5kZXggN2EyZDZjNC4uMzE3
ODBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVy
c0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0
ay5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNw
YWNlIElQQyB7CiAKLXN0YXRpYyB2b2lkIGVuY29kZUltYWdlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3QgR2RrUGl4YnVmKiBwaXhidWYpCitzdGF0aWMgdm9pZCBlbmNvZGVJbWFnZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBHZGtQaXhidWYqIHBpeGJ1ZikKIHsKICAgICBJbnRTaXpl
IGltYWdlU2l6ZShnZGtfcGl4YnVmX2dldF93aWR0aChwaXhidWYpLCBnZGtfcGl4YnVmX2dldF9o
ZWlnaHQocGl4YnVmKSk7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hh
cmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoaW1hZ2VTaXplLCBTaGFyZWFibGVCaXRtYXA6
OlN1cHBvcnRzQWxwaGEpOwpAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVJbWFn
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8R2RrUGl4YnVmPiYgcGl4YnVmKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVEYXRhT2JqZWN0KEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCkKK3N0
YXRpYyB2b2lkIGVuY29kZURhdGFPYmplY3QoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YU9i
amVjdEd0ayogZGF0YU9iamVjdCkKIHsKICAgICBib29sIGhhc1RleHQgPSBkYXRhT2JqZWN0LT5o
YXNUZXh0KCk7CiAgICAgZW5jb2RlciA8PCBoYXNUZXh0OwpAQCAtMTg4LDcgKzE4OCw3IEBAIHN0
YXRpYyBib29sIGRlY29kZURhdGFPYmplY3QoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8RGF0YU9iamVjdEd0az4mIGRhCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9p
ZCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQordm9pZCBBcmd1bWVudENvZGVyPERyYWdEYXRh
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsK
ICAgICBlbmNvZGVyIDw8IGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCk7CiAgICAgZW5jb2RlciA8
PCBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpOwpAQCAtMjM2LDcgKzIzNiw3IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxEcmFnRGF0YT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERy
YWdEYXRhJiBkcmFnRGF0CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKIAotc3Rh
dGljIHZvaWQgZW5jb2RlR0tleUZpbGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHS2V5Rmls
ZSoga2V5RmlsZSkKK3N0YXRpYyB2b2lkIGVuY29kZUdLZXlGaWxlKEVuY29kZXImIGVuY29kZXIs
IEdLZXlGaWxlKiBrZXlGaWxlKQogewogICAgIGdzaXplIGRhdGFTaXplOwogICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gZGF0YShnX2tleV9maWxlX3RvX2RhdGEoa2V5RmlsZSwgJmRhdGFTaXplLCAwKSk7
CkBAIC0yNjEsNyArMjYxLDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlR0tleUZpbGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBHVW5pcXVlUHRyPEdLZXlGaWxlPiYga2V5RmkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHdGtQcmlu
dFNldHRpbmdzKiBwcmludFNldHRpbmdzKQordm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
R3RrUHJpbnRTZXR0aW5ncyogcHJpbnRTZXR0aW5ncykKIHsKICAgICBHVW5pcXVlUHRyPEdLZXlG
aWxlPiBrZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgIGd0a19wcmludF9zZXR0aW5nc190
b19rZXlfZmlsZShwcmludFNldHRpbmdzLCBrZXlGaWxlLmdldCgpLCAiUHJpbnQgU2V0dGluZ3Mi
KTsKQEAgLTI4NCw3ICsyODQsNyBAQCBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mIHByaW50U2V0dGluZ3MpCiAgICAgcmV0dXJu
IHByaW50U2V0dGluZ3M7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgR3RrUGFnZVNldHVwKiBwYWdlU2V0dXApCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBHdGtQYWdlU2V0dXAqIHBhZ2VTZXR1cCkKIHsKICAgICBHVW5pcXVlUHRyPEdLZXlGaWxlPiBr
ZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgIGd0a19wYWdlX3NldHVwX3RvX2tleV9maWxl
KHBhZ2VTZXR1cCwga2V5RmlsZS5nZXQoKSwgIlBhZ2UgU2V0dXAiKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaAppbmRleCA4MGE1ZGMxLi5kYTJlMDVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3Rr
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5oCkBA
IC00MSwxNSArNDEsMTUgQEAgbmFtZXNwYWNlIElQQyB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFnRGF0YT4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpEcmFnRGF0YSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6RHJhZ0RhdGEmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKIH07CiAjZW5kaWYKIAotdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiwgR3RrUHJpbnRTZXR0aW5ncyopOwordm9pZCBlbmNvZGUoRW5jb2RlciYsIEd0
a1ByaW50U2V0dGluZ3MqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIEdSZWZQdHI8
R3RrUHJpbnRTZXR0aW5ncz4mKTsKIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgR3Rr
UGFnZVNldHVwKik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgR3RrUGFnZVNldHVwKik7CiBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXImLCBHUmVmUHRyPEd0a1BhZ2VTZXR1cD4mKTsKIAogfSAv
LyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDdlZDY3NjIuLjZjNzUzNDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVy
c1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVu
dENvZGVyc1NvdXAuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgSVBDIHsKIAotdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVz
dD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQordm9pZCBBcmd1bWVudENvZGVyPFJlc291
cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKICAgICBlbmNvZGVyIDw8IHJlc291
cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKTsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVxdWVz
dC5odHRwTWV0aG9kKCk7CkBAIC0xMzQsNyArMTM0LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJl
c291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRl
SW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENlcnRpZmljYXRl
SW5mbyYgY2VydGlmaWNhdGVJbmZvKQordm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5m
bz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRp
ZmljYXRlSW5mbykKIHsKICAgICBpZiAoIWNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZSgpKSB7
CiAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CkBAIC0xODQsNyArMTg0LDcgQEAgYm9vbCBBcmd1
bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIENlcnRpZmljYXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQordm9pZCBBcmd1bWVudENv
ZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKIHsKICAgICBlbmNvZGVyLmVuY29k
ZUVudW0ocmVzb3VyY2VFcnJvci50eXBlKCkpOwogICAgIGlmIChyZXNvdXJjZUVycm9yLmlzTnVs
bCgpKQpAQCAtMjM2LDcgKzIzNiw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9y
Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmVuY29k
ZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKQor
dm9pZCBBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmVuY29kZVBsYXRmb3JtRGF0YShF
bmNvZGVyJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KQEAgLTI0Nyw3ICsyNDcsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlv
blNwYWNlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYsIFByb3RlYwogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+OjplbmNv
ZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgQ3JlZGVudGlhbCYpCit2b2lk
IEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwg
Y29uc3QgQ3JlZGVudGlhbCYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
Tm9uZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29k
aW5nTm9uZS5jcHAKaW5kZXggNDYyN2JjOS4uZDkwYmFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdOb25lLmNwcApA
QCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgIkFyZ3Vt
ZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkVu
Y29kZXIuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKIApAQCAtMzYsNyArMzYsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
UmVmUHRyPEFQSTo6RGF0YT4gZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25T
dGF0ZSYgc2Vzc2lvblN0YXRlKQogewotICAgIElQQzo6QXJndW1lbnRFbmNvZGVyIGVuY29kZXI7
CisgICAgLy8gRklYTUU6IEknbSBub3Qgc3VyZSB3aGV0aGVyIHRoZXNlIGFyZSB0aGUgcHJvcGVy
IGFyZ3VtZW50cyBmb3IgdGhlIGVuY29kZXIuCisgICAgSVBDOjpFbmNvZGVyIGVuY29kZXIoIklQ
QyIsICJMZWdhY3lTZXNzaW9uU3RhdGUiLCAwKTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0
ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5yZW5k
ZXJUcmVlU2l6ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286514</attachid>
            <date>2016-08-19 18:46:13 -0700</date>
            <delta_ts>2016-08-19 18:51:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>21578</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">Y29tbWl0IGE4MmUxMmU1ZDE3YjUzMmY0YmJjMWRiYjc5OTQxZTZjNTRhODgyNTUKQXV0aG9yOiBK
YXZpZXIgRmVybmFuZGV6IDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CkRhdGU6ICAgU2F0IEF1ZyAy
MCAwMjoxNDoyNyAyMDE2ICswMjAwCgogICAgRml4ZWQgQ21ha2UuCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dAppbmRleCAyODc2ZDI4Li40YzRmNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjE4LDEy
ICsyMTgsMTEgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmNwcAogICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwCi0gICAg
UGxhdGZvcm0vSVBDL0FyZ3VtZW50RW5jb2Rlci5jcHAKICAgICBQbGF0Zm9ybS9JUEMvQXR0YWNo
bWVudC5jcHAKICAgICBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKICAgICBQbGF0Zm9ybS9J
UEMvRGF0YVJlZmVyZW5jZS5jcHAKKyAgICBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKICAgICBQ
bGF0Zm9ybS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCi0gICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VF
bmNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCiAgICAg
UGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCiAgICAgUGxhdGZvcm0vSVBDL1N0cmluZ1Jl
ZmVyZW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxMjQwZWEyLi5kYWMxY2Y1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTYtMDgtMTkgIEphdmllciBGZXJuYW5kZXogIDxqZmVybmFuZGV6
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gR1RLXSBVbnJldmlld2VkIEdUSyBidWlsZCBm
aXggc2luY2UgcjIwNDY2NQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYxMDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToK
KwogMjAxNi0wOC0xOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1lcmdlIE1lc3NhZ2VEZWNvZGVyIGFuZCBBcmd1bWVudERlY29kZXIgaW50byBEZWNv
ZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0
aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9u
VW5peC5jcHAKaW5kZXggOGMzYjYwOS4uN2Q3Y2UwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcApAQCAtNDAyLDcgKzQwMiw3
IEBAIGJvb2wgQ29ubmVjdGlvbjo6cGxhdGZvcm1DYW5TZW5kT3V0Z29pbmdNZXNzYWdlcygpIGNv
bnN0CiAgICAgcmV0dXJuIG1faXNDb25uZWN0ZWQ7CiB9CiAKLWJvb2wgQ29ubmVjdGlvbjo6c2Vu
ZE91dGdvaW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIp
Citib29sIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEVu
Y29kZXI+IGVuY29kZXIpCiB7CiAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKE1lc3NhZ2VJbmZv
KSArIGF0dGFjaG1lbnRNYXhBbW91bnQgKiBzaXplb2Yoc2l6ZV90KSA8PSBtZXNzYWdlTWF4U2l6
ZSwgQXR0YWNobWVudHNGaXRUb01lc3NhZ2VJbmxpbmUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAppbmRleCBhYTVlYWEwLi5lOTM1
OGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5
VW5peC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKIAog
I2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5o
IgorI2luY2x1ZGUgIkVuY29kZXIuaCIKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZj
bnRsLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgU2hhcmVk
TWVtb3J5OjpIYW5kbGU6OmlzTnVsbCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYXR0YWNobWVudC5m
aWxlRGVzY3JpcHRvcigpID09IC0xOwogfQogCi12b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpl
bmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNoYXJlZE1l
bW9yeTo6SGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAg
IGVuY29kZXIgPDwgcmVsZWFzZUF0dGFjaG1lbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21h
a2UKaW5kZXggNzg4OTY2NC4uZjNjMjcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAg
LTY5NSwxMiArNjk1LDExIEBAIGlmIChFTkFCTEVfUExVR0lOX1BST0NFU1NfR1RLMikKIAogICAg
ICAgICBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQ
Qy9Bcmd1bWVudERlY29kZXIuY3BwCi0gICAgICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVudEVuY29k
ZXIuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcAogICAgICAgICBQbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVu
Y2UuY3BwCisgICAgICAgIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcAogICAgICAgICBQbGF0Zm9y
bS9JUEMvTWVzc2FnZURlY29kZXIuY3BwCi0gICAgICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlRW5j
b2Rlci5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1hcC5jcHAKICAg
ICAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQ
Qy9TdHJpbmdSZWZlcmVuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA0MDdiNGRhLi4yMGQwNTllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIElQ
QyB7CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0
aW9ucyYgZmlsdGVycykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
ZmlsdGVycy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmlsdGVycy5zaXpl
KCk7ICsraSkgewpAQCAtMTY4LDcgKzE2OCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGaWx0ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9wZXJhdGlv
bnM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUcmFuc2Zvcm1PcGVy
YXRpb25zJiB0cmFuc2Zvcm1PcGVyYXRpb25zKQordm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9y
bU9wZXJhdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtT3Bl
cmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19j
YXN0PHVpbnQzMl90Pih0cmFuc2Zvcm1PcGVyYXRpb25zLnNpemUoKSk7CiAgICAgZm9yIChjb25z
dCBhdXRvJiBvcGVyYXRpb24gOiB0cmFuc2Zvcm1PcGVyYXRpb25zLm9wZXJhdGlvbnMoKSkgewpA
QCAtMzM1LDcgKzMzNSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25z
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVHJhbnNmCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZVRpbWluZ0Z1bmN0aW9uKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQorc3RhdGlj
IHZvaWQgZW5jb2RlVGltaW5nRnVuY3Rpb24oRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGltaW5n
RnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIGlmICghdGltaW5nRnVuY3Rpb24pIHsK
ICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKFRpbWluZ0Z1bmN0aW9uOjpUaW1pbmdGdW5jdGlv
blR5cGUoLTEpKTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBib29sIGRlY29kZVRpbWluZ0Z1bmN0aW9u
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiYgdGltaQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJB
bmltYXRpb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0dXJl
TWFwcGVyQW5pbWF0aW9uJiBhbmltYXRpb24pCit2b2lkIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1h
cHBlckFuaW1hdGlvbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0dXJlTWFw
cGVyQW5pbWF0aW9uJiBhbmltYXRpb24pCiB7CiAgICAgZW5jb2RlciA8PCBhbmltYXRpb24ubmFt
ZSgpOwogICAgIGVuY29kZXIgPDwgYW5pbWF0aW9uLmJveFNpemUoKTsKQEAgLTU3NSw3ICs1NzUs
NyBAQCBib29sIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFRleAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYgYW5pbWF0aW9u
cykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYgYW5pbWF0aW9u
cykKIHsKICAgICBlbmNvZGVyIDw8IGFuaW1hdGlvbnMuYW5pbWF0aW9ucygpOwogfQpAQCAtNTg2
LDcgKzU4Niw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucz46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRlCiB9CiAKICNpZiBVU0UoR1JBUEhJ
Q1NfU1VSRkFDRSkKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VU
b2tlbj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzU3VyZmFjZVRva2VuJiB0b2tlbikKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpH
cmFwaGljc1N1cmZhY2VUb2tlbj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJD
b3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4pCiB7CiAjaWYgT1MoREFSV0lOKQogICAg
IGVuY29kZXIgPDwgQXR0YWNobWVudCh0b2tlbi5mcm9udEJ1ZmZlckhhbmRsZSwgTUFDSF9NU0df
VFlQRV9NT1ZFX1NFTkQpOwpAQCAtNjE0LDcgKzYxNCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kCiB9CiAjZW5kaWYKIAotdm9pZCBBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8m
IHN1cmZhY2VVcGRhdGVJbmZvKQordm9pZCBBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJbmZv
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiBzdXJm
YWNlVXBkYXRlSW5mbykKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJ
bmZvPjo6ZW5jb2RlKGVuY29kZXIsIHN1cmZhY2VVcGRhdGVJbmZvKTsKIH0KQEAgLTYyNCw3ICs2
MjQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8U3VyZmFjZVVwZGF0ZUluZm8+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTdXJmYWNlVQogICAgIHJldHVybiBTaW1wbGVBcmd1bWVu
dENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6ZGVjb2RlKGRlY29kZXIsIHN1cmZhY2VVcGRhdGVJ
bmZvKTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0
YXRlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQordm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRl
LmNoYW5nZU1hc2s7CiAKQEAgLTgwMiw3ICs4MDIsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUlu
Zm8+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaWxlVXBkYXRlSW5m
byYgdXBkYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaWxlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKIHsK
ICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZW5jb2RlKGVuY29kZXIs
IHVwZGF0ZUluZm8pOwogfQpAQCAtODEyLDcgKzgxMiw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxU
aWxlVXBkYXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRpbGVVcGRh
dGVJCiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+OjpkZWNv
ZGUoZGVjb2RlciwgdXBkYXRlSW5mbyk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUaWxlQ3Jl
YXRpb25JbmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGlsZUNy
ZWF0aW9uSW5mbyYgdXBkYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25J
bmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbGVDcmVhdGlvbkluZm8mIHVw
ZGF0ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6
ZW5jb2RlKGVuY29kZXIsIHVwZGF0ZUluZm8pOwogfQpAQCAtODIyLDcgKzgyMiw3IEBAIGJvb2wg
QXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgVGlsZUNyZWF0CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZUNy
ZWF0aW9uSW5mbz46OmRlY29kZShkZWNvZGVyLCB1cGRhdGVJbmZvKTsKIH0KIAotc3RhdGljIHZv
aWQgZW5jb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4mIHN1cmZhY2UpCitzdGF0aWMgdm9pZCBlbmNv
ZGVDb29yZGluYXRlZFN1cmZhY2UoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmUHRyPENvb3Jk
aW5hdGVkU3VyZmFjZT4mIHN1cmZhY2UpCiB7CiAgICAgYm9vbCBpc1ZhbGlkU3VyZmFjZSA9IGZh
bHNlOwogICAgIGlmICghc3VyZmFjZSkgewpAQCAtODU4LDcgKzg1OCw3IEBAIHN0YXRpYyBib29s
IGRlY29kZUNvb3JkaW5hdGVkU3VyZmFjZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0
cjxDb29yZGluYXRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxD
b29yZGluYXRlZEdyYXBoaWNzU3RhdGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmIHN0YXRlKQordm9pZCBBcmd1bWVudENv
ZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmIHN0YXRlKQogewogICAgIGVuY29kZXIgPDwg
c3RhdGUucm9vdENvbXBvc2l0aW5nTGF5ZXI7CiAgICAgZW5jb2RlciA8PCBzdGF0ZS5zY3JvbGxQ
b3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50
Q29kZXJzLmgKaW5kZXggZWNkZDAxNC4uMzMzZTY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50
Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKQEAgLTU0LDU0ICs1NCw1NCBAQCBz
dHJ1Y3QgR3JhcGhpY3NTdXJmYWNlVG9rZW47CiBuYW1lc3BhY2UgSVBDIHsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZpbHRl
ck9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRy
YW5zZm9ybU9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucyYpOwogfTsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
QW5pbWF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYpOworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbnMm
KTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckFuaW1hdGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbj4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5p
bWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb24mKTsKIH07CiAKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mKTsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
U3VyZmFjZVRva2VuJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJik7CiB9OwogI2VuZGlmCiAKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U3VyZmFjZVVwZGF0ZUluZm8+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U3Vy
ZmFjZVVwZGF0ZUluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllclN0YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUaWxlVXBkYXRlSW5mbz4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUaWxlVXBk
YXRlSW5mbyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6VGlsZVVwZGF0ZUluZm8mKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6VGlsZVVwZGF0ZUluZm8mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbz4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUaWxlQ3JlYXRpb25J
bmZvJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpU
aWxlQ3JlYXRpb25JbmZvJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYsIFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NTdGF0ZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJik7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NT
dGF0ZSYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKaW5kZXgg
ZTMyODkwNy4uNDFiMTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3Bw
CkBAIC00MCw3ICs0MCw3IEBAIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlOjpIYW5kbGUo
KQogewogfQogCi12b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkNvb3JkaW5hdGVkU3Vy
ZmFjZTo6SGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAg
IGVuY29kZXIgPDwgbV9zaXplIDw8IG1fZmxhZ3M7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9X
ZWJDb29yZGluYXRlZFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCmluZGV4IDZkNzA2MmIuLmEzNWU3Y2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dl
YkNvb3JkaW5hdGVkU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCkBAIC00Myw3ICs0Myw3IEBAIHB1
YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIEhhbmRsZSgpOwogCi0gICAgICAgIHZvaWQgZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1
bWVudERlY29kZXImLCBIYW5kbGUmKTsKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCmluZGV4IGQwMTJkNzAuLmIy
ZGI4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAKQEAg
LTQ1LDcgKzQ1LDcgQEAgV2ViQmF0dGVyeVN0YXR1czo6fldlYkJhdHRlcnlTdGF0dXMoKQogewog
fQogCi12b2lkIFdlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViQmF0dGVyeVN0YXR1czo6RGF0YTo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IGlzQ2hhcmdp
bmc7CiAgICAgZW5jb2RlciA8PCBjaGFyZ2luZ1RpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkJhdHRlcnlTdGF0dXMuaAppbmRleCAyMjdhMzMyLi44ZTU3NDgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKQEAgLTMwLDE0ICszMCwxNCBAQAogCiAjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAi
QXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViQmF0dGVyeVN0YXR1cyA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8
QVBJOjpPYmplY3Q6OlR5cGU6OkJhdHRlcnlTdGF0dXM+IHsKIHB1YmxpYzoKICAgICBzdHJ1Y3Qg
RGF0YSB7Ci0gICAgICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7
CisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBEYXRhJik7CiAKICAgICAgICAg
Ym9vbCBpc0NoYXJnaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9B
cmd1bWVudENvZGVyc0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50
Q29kZXJzR3RrLmNwcAppbmRleCA3YTJkNmM0Li4zMTc4MGM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcApAQCAtNDEsNyArNDEsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgSVBDIHsKIAotc3RhdGljIHZvaWQg
ZW5jb2RlSW1hZ2UoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBHZGtQaXhidWYqIHBp
eGJ1ZikKK3N0YXRpYyB2b2lkIGVuY29kZUltYWdlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEdk
a1BpeGJ1ZiogcGl4YnVmKQogewogICAgIEludFNpemUgaW1hZ2VTaXplKGdka19waXhidWZfZ2V0
X3dpZHRoKHBpeGJ1ZiksIGdka19waXhidWZfZ2V0X2hlaWdodChwaXhidWYpKTsKICAgICBSZWZQ
dHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJl
YWJsZShpbWFnZVNpemUsIFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSk7CkBAIC04Miw3
ICs4Miw3IEBAIHN0YXRpYyBib29sIGRlY29kZUltYWdlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgR1JlZlB0cjxHZGtQaXhidWY+JiBwaXhidWYpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0
YXRpYyB2b2lkIGVuY29kZURhdGFPYmplY3QoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0KQorc3RhdGljIHZvaWQgZW5jb2RlRGF0YU9iamVj
dChFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0KQogewog
ICAgIGJvb2wgaGFzVGV4dCA9IGRhdGFPYmplY3QtPmhhc1RleHQoKTsKICAgICBlbmNvZGVyIDw8
IGhhc1RleHQ7CkBAIC0xODgsNyArMTg4LDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlRGF0YU9iamVj
dChBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiYgZGEKIH0K
IAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi12b2lkIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+
OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFnRGF0YSYgZHJhZ0Rh
dGEpCit2b2lkIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIGVuY29kZXIgPDwgZHJhZ0RhdGEu
Y2xpZW50UG9zaXRpb24oKTsKICAgICBlbmNvZGVyIDw8IGRyYWdEYXRhLmdsb2JhbFBvc2l0aW9u
KCk7CkBAIC0yMzYsNyArMjM2LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRHJhZ0RhdGEmIGRyYWdEYXQKIH0KICNlbmRp
ZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1zdGF0aWMgdm9pZCBlbmNvZGVHS2V5RmlsZShB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsIEdLZXlGaWxlKiBrZXlGaWxlKQorc3RhdGljIHZvaWQg
ZW5jb2RlR0tleUZpbGUoRW5jb2RlciYgZW5jb2RlciwgR0tleUZpbGUqIGtleUZpbGUpCiB7CiAg
ICAgZ3NpemUgZGF0YVNpemU7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkYXRhKGdfa2V5X2ZpbGVf
dG9fZGF0YShrZXlGaWxlLCAmZGF0YVNpemUsIDApKTsKQEAgLTI2MSw3ICsyNjEsNyBAQCBzdGF0
aWMgYm9vbCBkZWNvZGVHS2V5RmlsZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdVbmlxdWVQ
dHI8R0tleUZpbGU+JiBrZXlGaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsIEd0a1ByaW50U2V0dGluZ3MqIHByaW50U2V0dGluZ3Mp
Cit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBHdGtQcmludFNldHRpbmdzKiBwcmludFNl
dHRpbmdzKQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmlsZV9u
ZXcoKSk7CiAgICAgZ3RrX3ByaW50X3NldHRpbmdzX3RvX2tleV9maWxlKHByaW50U2V0dGluZ3Ms
IGtleUZpbGUuZ2V0KCksICJQcmludCBTZXR0aW5ncyIpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHdGtQcmludFNldHRp
bmdzPiYgcHJpbnRTZXR0aW5ncykKICAgICByZXR1cm4gcHJpbnRTZXR0aW5nczsKIH0KIAotdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHdGtQYWdlU2V0dXAqIHBhZ2VTZXR1
cCkKK3ZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIEd0a1BhZ2VTZXR1cCogcGFnZVNldHVw
KQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmlsZV9uZXcoKSk7
CiAgICAgZ3RrX3BhZ2Vfc2V0dXBfdG9fa2V5X2ZpbGUocGFnZVNldHVwLCBrZXlGaWxlLmdldCgp
LCAiUGFnZSBTZXR1cCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9B
cmd1bWVudENvZGVyc0d0ay5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENv
ZGVyc0d0ay5oCmluZGV4IDgwYTVkYzEuLmRhMmUwNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmgKQEAgLTQxLDE1ICs0MSwxNSBAQCBuYW1lc3Bh
Y2UgSVBDIHsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkRyYWdEYXRhPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhJik7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYpOwogICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpEcmFnRGF0YSYpOwog
fTsKICNlbmRpZgogCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBHdGtQcmludFNldHRp
bmdzKik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgR3RrUHJpbnRTZXR0aW5ncyopOwogYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgR1JlZlB0cjxHdGtQcmludFNldHRpbmdzPiYpOwogCi12
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBHdGtQYWdlU2V0dXAqKTsKK3ZvaWQgZW5jb2Rl
KEVuY29kZXImLCBHdGtQYWdlU2V0dXAqKTsKIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IEdSZWZQdHI8R3RrUGFnZVNldHVwPiYpOwogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291
cC5jcHAKaW5kZXggN2VkNjc2Mi4uNmM3NTM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKQEAgLTM5LDcg
KzM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBJUEMgewogCi12
b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJl
cXVlc3QpCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlUGxhdGZv
cm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0KQogewogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXF1ZXN0LnVybCgpLnN0cmluZygp
OwogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXF1ZXN0Lmh0dHBNZXRob2QoKTsKQEAgLTEzNCw3
ICsxMzQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxh
dGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlcgogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCit2
b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIGlmICgh
Y2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlKCkpIHsKICAgICAgICAgZW5jb2RlciA8PCBmYWxz
ZTsKQEAgLTE4NCw3ICsxODQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZv
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ2VydGlmaWNhdAogICAgIHJldHVy
biB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBs
YXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3Im
IHJlc291cmNlRXJyb3IpCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29k
ZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNv
dXJjZUVycm9yKQogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShyZXNvdXJjZUVycm9yLnR5cGUo
KSk7CiAgICAgaWYgKHJlc291cmNlRXJyb3IuaXNOdWxsKCkpCkBAIC0yMzYsNyArMjM2LDcgQEAg
Ym9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5j
b2RlciYsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpCit2b2lkIEFyZ3VtZW50Q29kZXI8UHJvdGVj
dGlvblNwYWNlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBQcm90ZWN0aW9u
U3BhY2UmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtMjQ3LDcgKzI0Nyw3
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoQXJndW1lbnREZWNvZGVyJiwgUHJvdGVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBDcmVkZW50aWFsJikKK3ZvaWQgQXJndW1lbnRDb2RlcjxDcmVkZW50aWFs
Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBDcmVkZW50aWFsJikKIHsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdOb25lLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdOb25lLmNwcAppbmRleCA0NjI3YmM5
Li5kOTBiYWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vz
c2lvblN0YXRlQ29kaW5nTm9uZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xl
Z2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNs
dWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCi0jaW5jbHVkZSAi
QXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgIlNlc3Np
b25TdGF0ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0zNiw3
ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBSZWZQdHI8QVBJOjpEYXRhPiBlbmNvZGVM
ZWdhY3lTZXNzaW9uU3RhdGUoY29uc3QgU2Vzc2lvblN0YXRlJiBzZXNzaW9uU3RhdGUpCiB7Ci0g
ICAgSVBDOjpBcmd1bWVudEVuY29kZXIgZW5jb2RlcjsKKyAgICAvLyBGSVhNRTogSSdtIG5vdCBz
dXJlIHdoZXRoZXIgdGhlc2UgYXJlIHRoZSBwcm9wZXIgYXJndW1lbnRzIGZvciB0aGUgZW5jb2Rl
ci4KKyAgICBJUEM6OkVuY29kZXIgZW5jb2RlcigiSVBDIiwgIkxlZ2FjeVNlc3Npb25TdGF0ZSIs
IDApOwogICAgIGVuY29kZXIgPDwgc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJkTGlzdFN0YXRlOwog
ICAgIGVuY29kZXIgPDwgc2Vzc2lvblN0YXRlLnJlbmRlclRyZWVTaXplOwogICAgIGVuY29kZXIg
PDwgc2Vzc2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286515</attachid>
            <date>2016-08-19 18:51:19 -0700</date>
            <delta_ts>2016-08-19 18:53:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161020-20160820034926.patch</filename>
            <type>text/plain</type>
            <size>33178</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTI0MGVhMjU1NTU0OGJh
OTUzOGMyZTU0ZTJiOTYyMGJhMjJhNTRkMi4uYWJiNjcxNmU3MjhlYWEyMmI4ZDdhYzFiZjg4OGNm
NWVhNjA4NzVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE2LTA4LTE5ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFVu
cmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBzaW5jZSByMjA0NjY1IGFuZCAyMDQ2NjgKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTAyMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisKIDIwMTYtMDgtMTkgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXJnZSBNZXNzYWdlRGVjb2Rl
ciBhbmQgQXJndW1lbnREZWNvZGVyIGludG8gRGVjb2RlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRl
eCAyODc2ZDI4MTYwZjhjNmYxN2UyMTMxYmNmMjlhMmFlMzk1NmY4NWZjLi40YjE3NzcyMzk0Yjg2
MzJkODMwMmRmYjk2MmJlYzA3NjdiMTM5MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjE3
LDEzICsyMTcsMTEgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFBsYXRmb3JtL01vZHVsZS5j
cHAKIAogICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5jcHAKLSAgICBQbGF0Zm9ybS9J
UEMvQXJndW1lbnREZWNvZGVyLmNwcAotICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVudEVuY29kZXIu
Y3BwCiAgICAgUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuY3BwCiAgICAgUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uY3BwCiAgICAgUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuY3BwCi0gICAgUGxh
dGZvcm0vSVBDL01lc3NhZ2VEZWNvZGVyLmNwcAotICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlRW5j
b2Rlci5jcHAKKyAgICBQbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKKyAgICBQbGF0Zm9ybS9JUEMv
RW5jb2Rlci5jcHAKICAgICBQbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAogICAg
IFBsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9TdHJpbmdS
ZWZlcmVuY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5p
eC9Db25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9D
b25uZWN0aW9uVW5peC5jcHAKaW5kZXggOGMzYjYwOTc5N2ZhZWFhMzY0YzVlODI3NzE3YjJjZmE5
ZDU5OTZhYi4uMmE4YTk0MGIzMWQzM2Q5MjMxYWI0MGE4YTVlZTFjNDJhYTkzNGU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNw
cApAQCAtMjQ1LDcgKzI0NSw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6cHJvY2Vzc01lc3NhZ2UoKQog
ICAgIGlmIChtZXNzYWdlSW5mby5pc01lc3NhZ2VCb2R5SXNPdXRPZkxpbmUoKSkKICAgICAgICAg
bWVzc2FnZUJvZHkgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihvb2xNZXNzYWdlQm9keS0+
ZGF0YSgpKTsKIAotICAgIGF1dG8gZGVjb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2FnZURl
Y29kZXI+KERhdGFSZWZlcmVuY2UobWVzc2FnZUJvZHksIG1lc3NhZ2VJbmZvLmJvZHlTaXplKCkp
LCBXVEZNb3ZlKGF0dGFjaG1lbnRzKSk7CisgICAgYXV0byBkZWNvZGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxEZWNvZGVyPihEYXRhUmVmZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlSW5mby5ib2R5
U2l6ZSgpKSwgV1RGTW92ZShhdHRhY2htZW50cykpOwogCiAgICAgcHJvY2Vzc0luY29taW5nTWVz
c2FnZShXVEZNb3ZlKGRlY29kZXIpKTsKIApAQCAtNDAyLDcgKzQwMiw3IEBAIGJvb2wgQ29ubmVj
dGlvbjo6cGxhdGZvcm1DYW5TZW5kT3V0Z29pbmdNZXNzYWdlcygpIGNvbnN0CiAgICAgcmV0dXJu
IG1faXNDb25uZWN0ZWQ7CiB9CiAKLWJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2Fn
ZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCitib29sIENvbm5lY3Rp
b246OnNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IGVuY29kZXIp
CiB7CiAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKE1lc3NhZ2VJbmZvKSArIGF0dGFjaG1lbnRN
YXhBbW91bnQgKiBzaXplb2Yoc2l6ZV90KSA8PSBtZXNzYWdlTWF4U2l6ZSwgQXR0YWNobWVudHNG
aXRUb01lc3NhZ2VJbmxpbmUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5p
eC9TaGFyZWRNZW1vcnlVbml4LmNwcAppbmRleCBhYTVlYWEwODMxNTIwM2QyNGUyN2E2OWE5MjE5
ZjEzMGQzNTNhYWY2Li4yN2IyNWI3ZTViM2M3ZDE3NDk4NjE0NDZmMGUwOTY5ODIyMzUzODRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5j
cHAKQEAgLTI5LDggKzI5LDggQEAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICNpbmNs
dWRlICJTaGFyZWRNZW1vcnkuaCIKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2lu
Y2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRl
ICJFbmNvZGVyLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2lu
Y2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNjQsMTIgKzY0LDEyIEBAIGJvb2wgU2hhcmVkTWVtb3J5OjpI
YW5kbGU6OmlzTnVsbCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYXR0YWNobWVudC5maWxlRGVzY3Jp
cHRvcigpID09IC0xOwogfQogCi12b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNoYXJlZE1lbW9yeTo6SGFu
ZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIg
PDwgcmVsZWFzZUF0dGFjaG1lbnQoKTsKIH0KIAotYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKK2Jv
b2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEhh
bmRsZSYgaGFuZGxlKQogewogICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBoYW5kbGUuaXNOdWxsKCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDc4ODk2NjQ4Y2M0M2VhNzRiZGE5Mjg2
ZThmOGEyNTljZDRhYWNjYjIuLjM0M2U5NmJjNTFlNzI3MjJmZjE2ZmFkODBjZjBkN2NjMjNlM2I5
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC02OTQsMTMgKzY5NCwxMSBAQCBpZiAo
RU5BQkxFX1BMVUdJTl9QUk9DRVNTX0dUSzIpCiAgICAgICAgIFBsYXRmb3JtL01vZHVsZS5jcHAK
IAogICAgICAgICBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCi0gICAgICAgIFBsYXRm
b3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwCi0gICAgICAgIFBsYXRmb3JtL0lQQy9Bcmd1bWVu
dEVuY29kZXIuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcAogICAgICAg
ICBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL0RhdGFS
ZWZlcmVuY2UuY3BwCi0gICAgICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHAKLSAg
ICAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmNwcAorICAgICAgICBQbGF0Zm9ybS9J
UEMvRGVjb2Rlci5jcHAKKyAgICAgICAgUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwCiAgICAgICAg
IFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQ
Qy9NZXNzYWdlU2VuZGVyLmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJlbmNl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENv
ZGVycy5jcHAKaW5kZXggNDA3YjRkYTc1ZjA0OTQxMzRmMmI3MjkzYjJhMTU1ZmVjOGJiZjQ0Yi4u
OWE4NzM1OGIwODU0MzUxOGQ4MDQ2NjMxYjUxOTMwM2UwYTMxYzRhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC02MCw3
ICs2MCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi12
b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmIGZp
bHRlcnMpCit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBm
aWx0ZXJzKQogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGZpbHRlcnMu
c2l6ZSgpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyArK2kp
IHsKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9w
ZXJhdGlvbnM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLAogICAgIH0KIH0KIAot
Ym9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJz
KQorYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsK
ICAgICB1aW50MzJfdCBzaXplOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCkBAIC0x
NjgsNyArMTY4LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlv
bnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLAogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9y
bU9wZXJhdGlvbnMpCit2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB0cmFuc2Zv
cm1PcGVyYXRpb25zKQogewogICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRy
YW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIG9wZXJhdGlv
biA6IHRyYW5zZm9ybU9wZXJhdGlvbnMub3BlcmF0aW9ucygpKSB7CkBAIC0yMzQsNyArMjM0LDcg
QEAgdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9wZXJhdGlvbnM+OjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdAogICAgIH0KIH0KIAotYm9vbCBBcmd1bWVudENvZGVy
PFRyYW5zZm9ybU9wZXJhdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBU
cmFuc2Zvcm1PcGVyYXRpb25zJiB0cmFuc2Zvcm1PcGVyYXRpb25zKQorYm9vbCBBcmd1bWVudENv
ZGVyPFRyYW5zZm9ybU9wZXJhdGlvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVHJhbnNm
b3JtT3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKIHsKICAgICB1aW50MzJfdCBvcGVy
YXRpb25zU2l6ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG9wZXJhdGlvbnNTaXplKSkKQEAg
LTMzNSw3ICszMzUsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRyYW5zZgogICAgIHJldHVybiB0cnVl
OwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKK3N0YXRpYyB2
b2lkIGVuY29kZVRpbWluZ0Z1bmN0aW9uKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbWluZ0Z1
bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKIHsKICAgICBpZiAoIXRpbWluZ0Z1bmN0aW9uKSB7CiAg
ICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShUaW1pbmdGdW5jdGlvbjo6VGltaW5nRnVuY3Rpb25U
eXBlKC0xKSk7CkBAIC0zNzYsNyArMzc2LDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlVGltaW5nRnVu
Y3Rpb24oQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaW1pbmdGdW5jdGlvbioKICAg
ICB9CiB9CiAKLWJvb2wgZGVjb2RlVGltaW5nRnVuY3Rpb24oQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBSZWZQdHI8VGltaW5nRnVuY3Rpb24+JiB0aW1pbmdGdW5jdGlvbikKK2Jvb2wgZGVjb2Rl
VGltaW5nRnVuY3Rpb24oRGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiYg
dGltaW5nRnVuY3Rpb24pCiB7CiAgICAgVGltaW5nRnVuY3Rpb246OlRpbWluZ0Z1bmN0aW9uVHlw
ZSB0eXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQpAQCAtNDQzLDcgKzQ0
Myw3IEBAIGJvb2wgZGVjb2RlVGltaW5nRnVuY3Rpb24oQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBSZWZQdHI8VGltaW5nRnVuY3Rpb24+JiB0aW1pCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12
b2lkIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj46OmVuY29kZShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHR1cmVNYXBwZXJBbmltYXRpb24mIGFuaW1hdGlv
bikKK3ZvaWQgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFRleHR1cmVNYXBwZXJBbmltYXRpb24mIGFuaW1hdGlvbikK
IHsKICAgICBlbmNvZGVyIDw8IGFuaW1hdGlvbi5uYW1lKCk7CiAgICAgZW5jb2RlciA8PCBhbmlt
YXRpb24uYm94U2l6ZSgpOwpAQCAtNDgyLDcgKzQ4Miw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxU
ZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uCiAgICAgfQogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlv
bj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRleHR1cmVNYXBwZXJBbmltYXRp
b24mIGFuaW1hdGlvbikKK2Jvb2wgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9u
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFRleHR1cmVNYXBwZXJBbmltYXRpb24mIGFuaW1h
dGlvbikKIHsKICAgICBTdHJpbmcgbmFtZTsKICAgICBGbG9hdFNpemUgYm94U2l6ZTsKQEAgLTU3
NSwxOCArNTc1LDE4IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9u
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGV4CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucz46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHR1cmVNYXBwZXJBbmltYXRpb25z
JiBhbmltYXRpb25zKQordm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb25z
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHR1cmVNYXBwZXJBbmltYXRpb25z
JiBhbmltYXRpb25zKQogewogICAgIGVuY29kZXIgPDwgYW5pbWF0aW9ucy5hbmltYXRpb25zKCk7
CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucz46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRleHR1cmVNYXBwZXJBbmltYXRpb25zJiBhbmlt
YXRpb25zKQorYm9vbCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb25zPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFRleHR1cmVNYXBwZXJBbmltYXRpb25zJiBhbmltYXRpb25z
KQogewogICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShhbmltYXRpb25zLmFuaW1hdGlvbnMoKSk7
CiB9CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJiB0b2tlbikKK3ZvaWQgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4pCiB7
CiAjaWYgT1MoREFSV0lOKQogICAgIGVuY29kZXIgPDwgQXR0YWNobWVudCh0b2tlbi5mcm9udEJ1
ZmZlckhhbmRsZSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOwpAQCAtNTk2LDcgKzU5Niw3IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kCiAjZW5kaWYKIH0KIAotYm9vbCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mIHRva2VuKQorYm9vbCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJiB0b2tlbikKIHsKICNpZiBP
UyhEQVJXSU4pCiAgICAgQXR0YWNobWVudCBmcm9udEF0dGFjaG1lbnQsIGJhY2tBdHRhY2htZW50
OwpAQCAtNjE0LDE3ICs2MTQsMTcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBo
aWNzU3VyZmFjZVRva2VuPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2QKIH0KICNlbmRp
ZgogCi12b2lkIEFyZ3VtZW50Q29kZXI8U3VyZmFjZVVwZGF0ZUluZm8+OjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgc3VyZmFjZVVwZGF0
ZUluZm8pCit2b2lkIEFyZ3VtZW50Q29kZXI8U3VyZmFjZVVwZGF0ZUluZm8+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHN1cmZhY2VVcGRhdGVJbmZv
KQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8U3VyZmFjZVVwZGF0ZUluZm8+OjplbmNvZGUo
ZW5jb2Rlciwgc3VyZmFjZVVwZGF0ZUluZm8pOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8U3Vy
ZmFjZVVwZGF0ZUluZm8+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBTdXJmYWNl
VXBkYXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8pCitib29sIEFyZ3VtZW50Q29kZXI8U3VyZmFj
ZVVwZGF0ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU3VyZmFjZVVwZGF0ZUluZm8m
IHN1cmZhY2VVcGRhdGVJbmZvKQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFN1
cmZhY2VVcGRhdGVJbmZvPjo6ZGVjb2RlKGRlY29kZXIsIHN1cmZhY2VVcGRhdGVJbmZvKTsKIH0K
IAotdm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyU3RhdGUmIHN0YXRlKQordm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllclN0YXRlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRlLmNoYW5nZU1h
c2s7CiAKQEAgLTcwNSw3ICs3MDUsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZAogICAgICAg
ICBlbmNvZGVyIDw8IHN0YXRlLmNvbW1pdHRlZFNjcm9sbE9mZnNldDsKIH0KIAotYm9vbCBBcmd1
bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQor
Ym9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkK
IHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRlLmNoYW5nZU1hc2spKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC04MDIsMjcgKzgwMiwyNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUlu
Zm8+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaWxlVXBkYXRlSW5m
byYgdXBkYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaWxlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKIHsK
ICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZW5jb2RlKGVuY29kZXIs
IHVwZGF0ZUluZm8pOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUaWxlVXBkYXRlSW5mbyYgdXBkYXRlSW5m
bykKK2Jvb2wgQXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBUaWxlVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKIHsKICAgICByZXR1cm4gU2ltcGxl
QXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmRlY29kZShkZWNvZGVyLCB1cGRhdGVJbmZv
KTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaWxlQ3JlYXRpb25JbmZvJiB1cGRhdGVJbmZv
KQordm9pZCBBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgVGlsZUNyZWF0aW9uSW5mbyYgdXBkYXRlSW5mbykKIHsKICAgICBTaW1w
bGVBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+OjplbmNvZGUoZW5jb2RlciwgdXBkYXRl
SW5mbyk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6ZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGlsZUNyZWF0aW9uSW5mbyYgdXBkYXRlSW5mbykK
K2Jvb2wgQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFRpbGVDcmVhdGlvbkluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgcmV0dXJuIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmRlY29kZShkZWNvZGVyLCB1cGRhdGVJ
bmZvKTsKIH0KIAotc3RhdGljIHZvaWQgZW5jb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4mIHN1cmZh
Y2UpCitzdGF0aWMgdm9pZCBlbmNvZGVDb29yZGluYXRlZFN1cmZhY2UoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4mIHN1cmZhY2UpCiB7CiAgICAgYm9v
bCBpc1ZhbGlkU3VyZmFjZSA9IGZhbHNlOwogICAgIGlmICghc3VyZmFjZSkgewpAQCAtODQxLDcg
Kzg0MSw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZUNvb3JkaW5hdGVkU3VyZmFjZShBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFJlZlB0cjxDb29yCiAgICAgICAgIGVuY29kZXIgPDwgaGFu
ZGxlOwogfQogCi1zdGF0aWMgYm9vbCBkZWNvZGVDb29yZGluYXRlZFN1cmZhY2UoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiYgc3VyZmFjZSkKK3N0
YXRpYyBib29sIGRlY29kZUNvb3JkaW5hdGVkU3VyZmFjZShEZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiYgc3VyZmFjZSkKIHsKICAgICBib29sIGlzVmFsaWRTdXJm
YWNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNWYWxpZFN1cmZhY2UpKQpAQCAtODU4LDcg
Kzg1OCw3IEBAIHN0YXRpYyBib29sIGRlY29kZUNvb3JkaW5hdGVkU3VyZmFjZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFJlZlB0cjxDb29yZGluYXRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmIHN0
YXRlKQordm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmIHN0YXRl
KQogewogICAgIGVuY29kZXIgPDwgc3RhdGUucm9vdENvbXBvc2l0aW5nTGF5ZXI7CiAgICAgZW5j
b2RlciA8PCBzdGF0ZS5zY3JvbGxQb3NpdGlvbjsKQEAgLTg4OSw3ICs4ODksNyBAQCB2b2lkIEFy
Z3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPjo6ZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlciwgYwogICAgIGVuY29kZXIgPDwgc3RhdGUudXBkYXRlQXRsYXNlc1RvUmVt
b3ZlOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRl
JiBzdGF0ZSkKK2Jvb2wgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJiBzdGF0ZSkK
IHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRlLnJvb3RDb21wb3NpdGluZ0xheWVyKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuaAppbmRleCBlY2RkMDE0YzViMTY0NTFhMTUzYjVhMjZmNGU0
YWZkMGMxZDlmNzQzLi5mNzI0YWFhZWQwMjBlYzkxN2ZhODlhMjRlODY2ZmJkNmNlNDNhM2YwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMu
aApAQCAtNTQsNTUgKzU0LDU1IEBAIHN0cnVjdCBHcmFwaGljc1N1cmZhY2VUb2tlbjsKIG5hbWVz
cGFjZSBJUEMgewogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZp
bHRlck9wZXJhdGlvbnM+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwotICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b25zJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGaWx0ZXJP
cGVyYXRpb25zJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlRyYW5zZm9ybU9wZXJhdGlvbnM+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucyYpOwotICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVy
YXRpb25zJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1PcGVyYXRpb25zJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb25zPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJBbmltYXRpb25zJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb25zJik7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9u
cyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6VGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9u
Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb24mKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb24mKTsKIH07
CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9r
ZW4mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
R3JhcGhpY3NTdXJmYWNlVG9rZW4mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOwogfTsKICNl
bmRpZgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlN1cmZhY2VV
cGRhdGVJbmZvPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTdXJmYWNlVXBkYXRlSW5m
byYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6U3VyZmFjZVVw
ZGF0ZUluZm8mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyU3RhdGUmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0
YXRlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpUaWxlVXBkYXRlSW5mbz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUaWxlVXBkYXRlSW5mbyYpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUaWxlVXBkYXRl
SW5mbyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
VGlsZVVwZGF0ZUluZm8mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OlRpbGVVcGRhdGVJbmZvJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbyYpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUaWxlQ3JlYXRp
b25JbmZvJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpUaWxlQ3JlYXRpb25JbmZvJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpUaWxlQ3JlYXRpb25JbmZvJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzU3RhdGUmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJik7CisgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUm
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NTdGF0ZSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1
cmZhY2UuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlLmNwcAppbmRleCBlMzI4OTA3NTM3NTY4OGFiYjE1ZjdiOTc1ZDU3
YjI5NWUyZjQ5MGI5Li4yYzVjMTJmNjA3ZmY1NWY0M2EyNmUyYjE0YWZjMDI1MDY5ZjM5MGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJD
b29yZGluYXRlZFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAg
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OkhhbmRsZSgpCiB7CiB9CiAKLXZvaWQgV2Vi
Q29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8PCBtX3NpemUg
PDwgbV9mbGFnczsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKQEAgLTUxLDcgKzUxLDcgQEAg
dm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9iaXRtYXBIYW5kbGU7CiB9
CiAKLWJvb2wgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCitib29sIFdlYkNvb3JkaW5hdGVk
U3VyZmFjZTo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhh
bmRsZSkKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZS5tX3NpemUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCmluZGV4IDZk
NzA2MmI2MDgzNmE0YmQ4MzI2Y2MyYmQ1NWYxY2NjZmQ3ZWU1NWUuLjZhYjdjNjQwZThkNWE4ODAy
Y2IyYTI1ZmQ3MWMwMjA4MWM4ZGY3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFj
ZS5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIEhhbmRs
ZSgpOwogCi0gICAgICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7
Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIEhhbmRs
ZSYpOworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIEhhbmRsZSYpOwogCiAjaWYgVVNFKEdS
QVBISUNTX1NVUkZBQ0UpCiAgICAgICAgIFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuIGdy
YXBoaWNzU3VyZmFjZVRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9ncmFwaGljc1N1cmZhY2VUb2tl
bjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCmluZGV4IGQw
MTJkNzA2M2I2MDViZDQxMTM4M2ZkYjNkNTJiOGZhNzM2Yjk3OWUuLjgxNTdiNDVhNDA2OWU4ZjM4
MDcyMzNlYzM4Y2NmOGVhOWZmY2ZmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0
dGVyeVN0YXR1cy5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgV2ViQmF0dGVyeVN0YXR1czo6fldlYkJh
dHRlcnlTdGF0dXMoKQogewogfQogCi12b2lkIFdlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViQmF0dGVyeVN0
YXR1czo6RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBl
bmNvZGVyIDw8IGlzQ2hhcmdpbmc7CiAgICAgZW5jb2RlciA8PCBjaGFyZ2luZ1RpbWU7CkBAIC01
Myw3ICs1Myw3IEBAIHZvaWQgV2ViQmF0dGVyeVN0YXR1czo6RGF0YTo6ZW5jb2RlKElQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbGV2ZWw7CiB9CiAK
LWJvb2wgV2ViQmF0dGVyeVN0YXR1czo6RGF0YTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBEYXRhJiByZXN1bHQpCitib29sIFdlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIERhdGEmIHJlc3VsdCkKIHsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5pc0NoYXJnaW5nKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKaW5kZXggMjI3YTMzMmQ0ZDI1
MmQyMzk5YWNiYmJjNWVkOGY0ODViODQyMjU0MC4uMzQ5YThmMDQ1MmExOWM3NGQwOWFmOGE0Njg0
YThjNTY3Njg1NDZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRl
cnlTdGF0dXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5o
CkBAIC0yOSwxNiArMjksMTYgQEAKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRl
ICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5j
b2Rlci5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQmF0dGVyeVN0YXR1cyA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJhdHRlcnlTdGF0dXM+
IHsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgRGF0YSB7Ci0gICAgICAgIHZvaWQgZW5jb2RlKElQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkFyZ3VtZW50RGVjb2RlciYsIERhdGEmKTsKKyAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNv
ZGVyJikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBE
YXRhJik7CiAKICAgICAgICAgYm9vbCBpc0NoYXJnaW5nOwogICAgICAgICBkb3VibGUgY2hhcmdp
bmdUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENv
ZGVyc0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3Rr
LmNwcAppbmRleCA3YTJkNmM0YWFlZGUyMmU2N2RhYmM5N2VhZjhhZGNmNjdkZTYyOWE2Li5mZDk0
NWEwNjFkNDRkMmRjOTUyY2M4YWI2YTM2YmQwMzRkN2U0MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcApAQCAtNDEsNyArNDEsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgSVBDIHsKIAotc3RhdGljIHZvaWQg
ZW5jb2RlSW1hZ2UoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBHZGtQaXhidWYqIHBp
eGJ1ZikKK3N0YXRpYyB2b2lkIGVuY29kZUltYWdlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEdk
a1BpeGJ1ZiogcGl4YnVmKQogewogICAgIEludFNpemUgaW1hZ2VTaXplKGdka19waXhidWZfZ2V0
X3dpZHRoKHBpeGJ1ZiksIGdka19waXhidWZfZ2V0X2hlaWdodChwaXhidWYpKTsKICAgICBSZWZQ
dHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJl
YWJsZShpbWFnZVNpemUsIFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSk7CkBAIC01Nyw3
ICs1Nyw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZUltYWdlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgR2RrUGl4YnVmKiBwaXhidWYpCiAgICAgZW5jb2RlciA8PCBoYW5kbGU7CiB9CiAK
LXN0YXRpYyBib29sIGRlY29kZUltYWdlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0
cjxHZGtQaXhidWY+JiBwaXhidWYpCitzdGF0aWMgYm9vbCBkZWNvZGVJbWFnZShEZWNvZGVyJiBk
ZWNvZGVyLCBHUmVmUHRyPEdka1BpeGJ1Zj4mIHBpeGJ1ZikKIHsKICAgICBTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSBoYW5kbGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYW5kbGUpKQpAQCAt
ODIsNyArODIsNyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVJbWFnZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIEdSZWZQdHI8R2RrUGl4YnVmPiYgcGl4YnVmKQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1zdGF0aWMgdm9pZCBlbmNvZGVEYXRhT2JqZWN0KEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgRGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCkKK3N0YXRpYyB2b2lkIGVuY29kZURhdGFP
YmplY3QoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCkK
IHsKICAgICBib29sIGhhc1RleHQgPSBkYXRhT2JqZWN0LT5oYXNUZXh0KCk7CiAgICAgZW5jb2Rl
ciA8PCBoYXNUZXh0OwpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lkIGVuY29kZURhdGFP
YmplY3QoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRhT2JqZWN0R3RrKiBkYXRh
CiAgICAgICAgIGVuY29kZXIgPDwgZGF0YU9iamVjdC0+dW5rbm93blR5cGVzKCk7CiB9CiAKLXN0
YXRpYyBib29sIGRlY29kZURhdGFPYmplY3QoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8RGF0YU9iamVjdEd0az4mIGRhdGFPYmplY3QpCitzdGF0aWMgYm9vbCBkZWNvZGVEYXRhT2Jq
ZWN0KERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiYgZGF0YU9iamVjdCkK
IHsKICAgICBSZWZQdHI8RGF0YU9iamVjdEd0az4gZGF0YSA9IERhdGFPYmplY3RHdGs6OmNyZWF0
ZSgpOwogCkBAIC0xODgsNyArMTg4LDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlRGF0YU9iamVjdChB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiYgZGEKIH0KIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi12b2lkIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEp
Cit2b2lkIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIGVuY29kZXIgPDwgZHJhZ0RhdGEuY2xp
ZW50UG9zaXRpb24oKTsKICAgICBlbmNvZGVyIDw8IGRyYWdEYXRhLmdsb2JhbFBvc2l0aW9uKCk7
CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRHJhZ0RhdGEmIGQKICAgICAgICAgZW5j
b2RlRGF0YU9iamVjdChlbmNvZGVyLCBwbGF0Zm9ybURhdGEpOwogfQogCi1ib29sIEFyZ3VtZW50
Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0
YSYgZHJhZ0RhdGEpCitib29sIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIEludFBvaW50IGNsaWVudFBv
c2l0aW9uOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY2xpZW50UG9zaXRpb24pKQpAQCAtMjM2
LDE0ICsyMzYsMTQgQEAgYm9vbCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgRHJhZ0RhdGEmIGRyYWdEYXQKIH0KICNlbmRpZiAvLyBFTkFC
TEUoRFJBR19TVVBQT1JUKQogCi1zdGF0aWMgdm9pZCBlbmNvZGVHS2V5RmlsZShBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIsIEdLZXlGaWxlKiBrZXlGaWxlKQorc3RhdGljIHZvaWQgZW5jb2RlR0tl
eUZpbGUoRW5jb2RlciYgZW5jb2RlciwgR0tleUZpbGUqIGtleUZpbGUpCiB7CiAgICAgZ3NpemUg
ZGF0YVNpemU7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBkYXRhKGdfa2V5X2ZpbGVfdG9fZGF0YShr
ZXlGaWxlLCAmZGF0YVNpemUsIDApKTsKICAgICBlbmNvZGVyIDw8IERhdGFSZWZlcmVuY2UocmVp
bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YS5nZXQoKSksIGRhdGFTaXplKTsKIH0KIAotc3Rh
dGljIGJvb2wgZGVjb2RlR0tleUZpbGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHVW5pcXVl
UHRyPEdLZXlGaWxlPiYga2V5RmlsZSkKK3N0YXRpYyBib29sIGRlY29kZUdLZXlGaWxlKERlY29k
ZXImIGRlY29kZXIsIEdVbmlxdWVQdHI8R0tleUZpbGU+JiBrZXlGaWxlKQogewogICAgIERhdGFS
ZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZl
cmVuY2UpKQpAQCAtMjYxLDE0ICsyNjEsMTQgQEAgc3RhdGljIGJvb2wgZGVjb2RlR0tleUZpbGUo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHVW5pcXVlUHRyPEdLZXlGaWxlPiYga2V5RmkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBHdGtQcmludFNldHRpbmdzKiBwcmludFNldHRpbmdzKQordm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgR3RrUHJpbnRTZXR0aW5ncyogcHJpbnRTZXR0aW5ncykKIHsKICAgICBHVW5pcXVl
UHRyPEdLZXlGaWxlPiBrZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgIGd0a19wcmludF9z
ZXR0aW5nc190b19rZXlfZmlsZShwcmludFNldHRpbmdzLCBrZXlGaWxlLmdldCgpLCAiUHJpbnQg
U2V0dGluZ3MiKTsKICAgICBlbmNvZGVHS2V5RmlsZShlbmNvZGVyLCBrZXlGaWxlLmdldCgpKTsK
IH0KIAotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEd0a1By
aW50U2V0dGluZ3M+JiBwcmludFNldHRpbmdzKQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgR1JlZlB0cjxHdGtQcmludFNldHRpbmdzPiYgcHJpbnRTZXR0aW5ncykKIHsKICAgICBHVW5p
cXVlUHRyPEdLZXlGaWxlPiBrZXlGaWxlOwogICAgIGlmICghZGVjb2RlR0tleUZpbGUoZGVjb2Rl
ciwga2V5RmlsZSkpCkBAIC0yODQsMTQgKzI4NCwxNCBAQCBib29sIGRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mIHByaW50U2V0dGluZ3Mp
CiAgICAgcmV0dXJuIHByaW50U2V0dGluZ3M7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlciwgR3RrUGFnZVNldHVwKiBwYWdlU2V0dXApCit2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBHdGtQYWdlU2V0dXAqIHBhZ2VTZXR1cCkKIHsKICAgICBHVW5pcXVlUHRy
PEdLZXlGaWxlPiBrZXlGaWxlKGdfa2V5X2ZpbGVfbmV3KCkpOwogICAgIGd0a19wYWdlX3NldHVw
X3RvX2tleV9maWxlKHBhZ2VTZXR1cCwga2V5RmlsZS5nZXQoKSwgIlBhZ2UgU2V0dXAiKTsKICAg
ICBlbmNvZGVHS2V5RmlsZShlbmNvZGVyLCBrZXlGaWxlLmdldCgpKTsKIH0KIAotYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEd0a1BhZ2VTZXR1cD4mIHBhZ2VT
ZXR1cCkKK2Jvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8R3RrUGFnZVNldHVw
PiYgcGFnZVNldHVwKQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGU7CiAgICAg
aWYgKCFkZWNvZGVHS2V5RmlsZShkZWNvZGVyLCBrZXlGaWxlKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaAppbmRleCA4MGE1ZGMxZWRlYmVhMGQzZDY1
MzUyODAzNDhiNTRkODUwZjFkZmYwLi4wMWFjNGNmMGVmMTg1ZTE4MDVhMjEyMGJkOWY3NjhkYTEx
Mjc0YzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29k
ZXJzR3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0
ay5oCkBAIC00MSwxNiArNDEsMTYgQEAgbmFtZXNwYWNlIElQQyB7CiAKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFn
RGF0YT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpEcmFnRGF0YSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCBXZWJDb3JlOjpEcmFnRGF0YSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6OkRyYWdEYXRhJik7CiB9OwogI2VuZGlmCiAKLXZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYsIEd0a1ByaW50U2V0dGluZ3MqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mKTsKK3ZvaWQgZW5jb2RlKEVuY29k
ZXImLCBHdGtQcmludFNldHRpbmdzKik7Citib29sIGRlY29kZShEZWNvZGVyJiwgR1JlZlB0cjxH
dGtQcmludFNldHRpbmdzPiYpOwogCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBHdGtQ
YWdlU2V0dXAqKTsKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIEdSZWZQdHI8R3RrUGFn
ZVNldHVwPiYpOwordm9pZCBlbmNvZGUoRW5jb2RlciYsIEd0a1BhZ2VTZXR1cCopOworYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIEdSZWZQdHI8R3RrUGFnZVNldHVwPiYpOwogCiB9IC8vIG5hbWVzcGFj
ZSBJUEMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNTb3VwLmNwcAppbmRleCA3ZWQ2NzYyMjEyODE2ZDE0MmE1YmU2YmYwM2Nl
YTA0ZjQzYzNiNWRjLi4wZjk3MmMwMDM2NDk5NzE0ZGU3NGYzZDYxMjI1ZGUzOGM5YjBjZTJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1l
bnRDb2RlcnNTb3VwLmNwcApAQCAtMzksNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVl
c3Q+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKK3ZvaWQgQXJndW1lbnRDb2RlcjxSZXNv
dXJjZVJlcXVlc3Q+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCiB7CiAgICAgZW5jb2RlciA8PCByZXNv
dXJjZVJlcXVlc3QudXJsKCkuc3RyaW5nKCk7CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlcXVl
c3QuaHR0cE1ldGhvZCgpOwpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cgogICAgIGVuY29kZXIgPDwgcmVzb3VyY2VSZXF1ZXN0LmluaXRpYXRpbmdQYWdlSUQoKTsKIH0K
IAotYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3JtRGF0
YShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1
ZXN0KQorYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmRlY29kZVBsYXRmb3Jt
RGF0YShEZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkK
IHsKICAgICBTdHJpbmcgdXJsOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUodXJsKSkKQEAgLTEz
NCw3ICsxMzQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2Rl
UGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlcgogICAgIHJldHVybiB0cnVlOwog
fQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8p
Cit2b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAgIGlm
ICghY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlKCkpIHsKICAgICAgICAgZW5jb2RlciA8PCBm
YWxzZTsKQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJ
bmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2VydAogICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGNlcnRpZmljYXRlSW5mby50bHNFcnJvcnMo
KSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykK
K2Jvb2wgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgYm9vbCBoYXND
ZXJ0aWZpY2F0ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0NlcnRpZmljYXRlKSkKQEAg
LTE4NCw3ICsxODQsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ2VydGlmaWNhdAogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3Jt
RGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291
cmNlRXJyb3IpCit2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRm
b3JtRGF0YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVy
cm9yKQogewogICAgIGVuY29kZXIuZW5jb2RlRW51bShyZXNvdXJjZUVycm9yLnR5cGUoKSk7CiAg
ICAgaWYgKHJlc291cmNlRXJyb3IuaXNOdWxsKCkpCkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBB
cmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLAogICAgIGVuY29kZXIgPDwgQ2VydGlmaWNhdGVJbmZvKHJlc291cmNl
RXJyb3IpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBs
YXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlc291cmNlRXJyb3ImIHJlc291
cmNlRXJyb3IpCitib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRm
b3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQog
ewogICAgIFJlc291cmNlRXJyb3JCYXNlOjpUeXBlIGVycm9yVHlwZTsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRW51bShlcnJvclR5cGUpKQpAQCAtMjM2LDIzICsyMzYsMjMgQEAgYm9vbCBBcmd1
bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8
UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYsIGNv
bnN0IFByb3RlY3Rpb25TcGFjZSYpCit2b2lkIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNl
Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKQog
ewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UHJv
dGVjdGlvblNwYWNlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYsIFByb3Rl
Y3Rpb25TcGFjZSYpCitib29sIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZGVjb2Rl
UGxhdGZvcm1EYXRhKERlY29kZXImLCBQcm90ZWN0aW9uU3BhY2UmKQogewogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVy
PENyZWRlbnRpYWw+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiwgY29uc3Qg
Q3JlZGVudGlhbCYpCit2b2lkIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZVBsYXRm
b3JtRGF0YShFbmNvZGVyJiwgY29uc3QgQ3JlZGVudGlhbCYpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZGVjb2RlUGxh
dGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYsIENyZWRlbnRpYWwmKQorYm9vbCBBcmd1bWVudENv
ZGVyPENyZWRlbnRpYWw+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIENyZWRlbnRpYWwm
KQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdO
b25lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2Rp
bmdOb25lLmNwcAppbmRleCA0NjI3YmM5OTBmNzZmYTYwNmIyZGU4ZTQxYjY4ZmNlNGU2ZDJkZmVj
Li4zMDNmOTE1ODRhYzg5MmIyMGRlMTY5NTM4M2U2ZDM4N2E2NTZmMmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9uZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05v
bmUuY3BwCkBAIC0yNyw4ICsyNyw5IEBACiAjaW5jbHVkZSAiTGVnYWN5U2Vzc2lvblN0YXRlQ29k
aW5nLmgiCiAKICNpbmNsdWRlICJBUElEYXRhLmgiCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVy
LmgiCi0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5j
ZS5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVk
ZSAiU2Vzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAK
QEAgLTM2LDcgKzM3LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFJlZlB0cjxBUEk6OkRhdGE+
IGVuY29kZUxlZ2FjeVNlc3Npb25TdGF0ZShjb25zdCBTZXNzaW9uU3RhdGUmIHNlc3Npb25TdGF0
ZSkKIHsKLSAgICBJUEM6OkFyZ3VtZW50RW5jb2RlciBlbmNvZGVyOworICAgIC8vIEZJWE1FOiBJ
J20gbm90IHN1cmUgd2hldGhlciB0aGVzZSBhcmUgdGhlIHByb3BlciBhcmd1bWVudHMgZm9yIHRo
ZSBlbmNvZGVyLgorICAgIElQQzo6RW5jb2RlciBlbmNvZGVyKCJJUEMiLCAiTGVnYWN5U2Vzc2lv
blN0YXRlIiwgMCk7CiAgICAgZW5jb2RlciA8PCBzZXNzaW9uU3RhdGUuYmFja0ZvcndhcmRMaXN0
U3RhdGU7CiAgICAgZW5jb2RlciA8PCBzZXNzaW9uU3RhdGUucmVuZGVyVHJlZVNpemU7CiAgICAg
ZW5jb2RlciA8PCBzZXNzaW9uU3RhdGUucHJvdmlzaW9uYWxVUkw7CkBAIC00NSw3ICs0Nyw3IEBA
IFJlZlB0cjxBUEk6OkRhdGE+IGVuY29kZUxlZ2FjeVNlc3Npb25TdGF0ZShjb25zdCBTZXNzaW9u
U3RhdGUmIHNlc3Npb25TdGF0ZSkKIAogYm9vbCBkZWNvZGVMZWdhY3lTZXNzaW9uU3RhdGUoY29u
c3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBTZXNzaW9uU3RhdGUmIHNlc3Npb25T
dGF0ZSkKIHsKLSAgICBJUEM6OkFyZ3VtZW50RGVjb2RlciBkZWNvZGVyKGRhdGEsIGRhdGFTaXpl
KTsKKyAgICBJUEM6OkRlY29kZXIgZGVjb2RlcihJUEM6OkRhdGFSZWZlcmVuY2UoZGF0YSwgZGF0
YVNpemUpLCBWZWN0b3I8SVBDOjpBdHRhY2htZW50PigpKTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHNlc3Npb25TdGF0ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlc3Npb25TdGF0ZS5yZW5kZXJUcmVlU2l6
ZSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286516</attachid>
            <date>2016-08-19 18:53:42 -0700</date>
            <delta_ts>2016-08-19 19:38:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161020-20160820035148.patch</filename>
            <type>text/plain</type>
            <size>36722</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTI0MGVhMjU1NTU0OGJh
OTUzOGMyZTU0ZTJiOTYyMGJhMjJhNTRkMi4uODBkYzEwYWRlYjZlMzBkZTIzZjQxNzg0ZTc5Zjcw
Y2NlYmVlNWRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE2LTA4LTE5ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFVu
cmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBzaW5jZSByMjA0NjY1IGFuZCAyMDQ2NjgKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTAyMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwOgorICAgICAg
ICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzTWVzc2FnZSk6CisgICAgICAgIChJUEM6OkNvbm5l
Y3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL3VuaXgvU2hh
cmVkTWVtb3J5VW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxl
OjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2Rl
KToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjplbmNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlv
bnM+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9wZXJh
dGlvbnM+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9w
ZXJhdGlvbnM+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjplbmNvZGVUaW1pbmdGdW5jdGlvbik6
CisgICAgICAgIChJUEM6OmRlY29kZVRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZGVjb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucz46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+Ojpk
ZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3Vy
ZmFjZVRva2VuPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8U3VyZmFjZVVwZGF0ZUluZm8+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjpkZWNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZW5jb2Rl
KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmRlY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZSk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmRlY29kZSk6
CisgICAgICAgIChJUEM6OmVuY29kZUNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChJUEM6
OmRlY29kZUNvb3JkaW5hdGVkU3VyZmFjZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU+OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVk
U3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1cmZhY2U6Okhh
bmRsZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJD
b29yZGluYXRlZFN1cmZhY2UuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmVuY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaDoKKyAgICAgICAgKiBTaGFyZWQvZ3RrL0FyZ3Vt
ZW50Q29kZXJzR3RrLmNwcDoKKyAgICAgICAgKElQQzo6ZW5jb2RlSW1hZ2UpOgorICAgICAgICAo
SVBDOjpkZWNvZGVJbWFnZSk6CisgICAgICAgIChJUEM6OmVuY29kZURhdGFPYmplY3QpOgorICAg
ICAgICAoSVBDOjpkZWNvZGVEYXRhT2JqZWN0KToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxEcmFnRGF0YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RHJhZ0Rh
dGE+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjplbmNvZGVHS2V5RmlsZSk6CisgICAgICAgIChJ
UEM6OmRlY29kZUdLZXlGaWxlKToKKyAgICAgICAgKElQQzo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmg6Cisg
ICAgICAgICogU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHA6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1E
YXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWNv
ZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENlcnRpZmljYXRl
SW5mbz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJ
bmZvPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9y
Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZXNv
dXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZVBsYXRmb3JtRGF0
YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmRlY29kZVBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05v
bmUuY3BwOgorICAgICAgICAoV2ViS2l0OjplbmNvZGVMZWdhY3lTZXNzaW9uU3RhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpkZWNvZGVMZWdhY3lTZXNzaW9uU3RhdGUpOgorCiAyMDE2LTA4LTE5ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgTWVz
c2FnZURlY29kZXIgYW5kIEFyZ3VtZW50RGVjb2RlciBpbnRvIERlY29kZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKaW5kZXggMjg3NmQyODE2MGY4YzZmMTdlMjEzMWJjZjI5YTJhZTM5NTZmODVmYy4uNGIx
Nzc3MjM5NGI4NjMyZDgzMDJkZmI5NjJiZWMwNzY3YjEzOTIyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKQEAgLTIxNywxMyArMjE3LDExIEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9y
bS9Nb2R1bGUuY3BwCiAKICAgICBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCi0gICAg
UGxhdGZvcm0vSVBDL0FyZ3VtZW50RGVjb2Rlci5jcHAKLSAgICBQbGF0Zm9ybS9JUEMvQXJndW1l
bnRFbmNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcAogICAgIFBsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmNwcAogICAgIFBsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNw
cAotICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHAKLSAgICBQbGF0Zm9ybS9JUEMv
TWVzc2FnZUVuY29kZXIuY3BwCisgICAgUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwCisgICAgUGxh
dGZvcm0vSVBDL0VuY29kZXIuY3BwCiAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1h
cC5jcHAKICAgICBQbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5jcHAKICAgICBQbGF0Zm9ybS9J
UEMvU3RyaW5nUmVmZXJlbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IDhjM2I2MDk3OTdmYWVhYTM2NGM1ZTgy
NzcxN2IyY2ZhOWQ1OTk2YWIuLjJhOGE5NDBiMzFkMzNkOTIzMWFiNDBhOGE1ZWUxYzQyYWE5MzRl
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rp
b25Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0
aW9uVW5peC5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBib29sIENvbm5lY3Rpb246OnByb2Nlc3NN
ZXNzYWdlKCkKICAgICBpZiAobWVzc2FnZUluZm8uaXNNZXNzYWdlQm9keUlzT3V0T2ZMaW5lKCkp
CiAgICAgICAgIG1lc3NhZ2VCb2R5ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ob29sTWVz
c2FnZUJvZHktPmRhdGEoKSk7CiAKLSAgICBhdXRvIGRlY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PE1lc3NhZ2VEZWNvZGVyPihEYXRhUmVmZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlSW5mby5i
b2R5U2l6ZSgpKSwgV1RGTW92ZShhdHRhY2htZW50cykpOworICAgIGF1dG8gZGVjb2RlciA9IHN0
ZDo6bWFrZV91bmlxdWU8RGVjb2Rlcj4oRGF0YVJlZmVyZW5jZShtZXNzYWdlQm9keSwgbWVzc2Fn
ZUluZm8uYm9keVNpemUoKSksIFdURk1vdmUoYXR0YWNobWVudHMpKTsKIAogICAgIHByb2Nlc3NJ
bmNvbWluZ01lc3NhZ2UoV1RGTW92ZShkZWNvZGVyKSk7CiAKQEAgLTQwMiw3ICs0MDIsNyBAQCBi
b29sIENvbm5lY3Rpb246OnBsYXRmb3JtQ2FuU2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdAog
ICAgIHJldHVybiBtX2lzQ29ubmVjdGVkOwogfQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRPdXRn
b2luZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQorYm9v
bCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVy
PiBlbmNvZGVyKQogewogICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihNZXNzYWdlSW5mbykgKyBh
dHRhY2htZW50TWF4QW1vdW50ICogc2l6ZW9mKHNpemVfdCkgPD0gbWVzc2FnZU1heFNpemUsIEF0
dGFjaG1lbnRzRml0VG9NZXNzYWdlSW5saW5lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKaW5kZXggYWE1ZWFhMDgzMTUyMDNkMjRl
MjdhNjlhOTIxOWYxMzBkMzUzYWFmNi4uMjdiMjViN2U1YjNjN2QxNzQ5ODYxNDQ2ZjBlMDk2OTgy
MjM1Mzg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRN
ZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1l
bW9yeVVuaXguY3BwCkBAIC0yOSw4ICsyOSw4IEBACiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tF
VFMpCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgi
CisjaW5jbHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNu
dGwuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTY0LDEyICs2NCwxMiBAQCBib29sIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAogICAgIHJldHVybiBtX2F0dGFjaG1lbnQu
ZmlsZURlc2NyaXB0b3IoKSA9PSAtMTsKIH0KIAotdm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBTaGFyZWRN
ZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAg
ICBlbmNvZGVyIDw8IHJlbGVhc2VBdHRhY2htZW50KCk7CiB9CiAKLWJvb2wgU2hhcmVkTWVtb3J5
OjpIYW5kbGU6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiBo
YW5kbGUpCitib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBBU1NFUlRfQVJHKGhhbmRsZSwgaGFuZGxl
LmlzTnVsbCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA3ODg5NjY0OGNjNDNl
YTc0YmRhOTI4NmU4ZjhhMjU5Y2Q0YWFjY2IyLi4zNDNlOTZiYzUxZTcyNzIyZmYxNmZhZDgwY2Yw
ZDdjYzIzZTNiOWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNjk0LDEzICs2OTQs
MTEgQEAgaWYgKEVOQUJMRV9QTFVHSU5fUFJPQ0VTU19HVEsyKQogICAgICAgICBQbGF0Zm9ybS9N
b2R1bGUuY3BwCiAKICAgICAgICAgUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmNwcAotICAg
ICAgICBQbGF0Zm9ybS9JUEMvQXJndW1lbnREZWNvZGVyLmNwcAotICAgICAgICBQbGF0Zm9ybS9J
UEMvQXJndW1lbnRFbmNvZGVyLmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5j
cHAKICAgICAgICAgUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCiAgICAgICAgIFBsYXRmb3Jt
L0lQQy9EYXRhUmVmZXJlbmNlLmNwcAotICAgICAgICBQbGF0Zm9ybS9JUEMvTWVzc2FnZURlY29k
ZXIuY3BwCi0gICAgICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlRW5jb2Rlci5jcHAKKyAgICAgICAg
UGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwCisgICAgICAgIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNw
cAogICAgICAgICBQbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY2VpdmVyTWFwLmNwcAogICAgICAgICBQ
bGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL1N0cmlu
Z1JlZmVyZW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNz
QXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDQwN2I0ZGE3NWYwNDk0MTM0ZjJiNzI5M2IyYTE1NWZl
YzhiYmY0NGIuLjlhODczNThiMDg1NDM1MThkODA0NjYzMWI1MTkzMDNlMGEzMWM0YTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNw
cApAQCAtNjAsNyArNjAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2Ug
SVBDIHsKIAotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVy
YXRpb25zJiBmaWx0ZXJzKQordm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3Bl
cmF0aW9ucyYgZmlsdGVycykKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90
PihmaWx0ZXJzLnNpemUoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmaWx0ZXJzLnNp
emUoKTsgKytpKSB7CkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwKICAg
ICB9CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9u
cyYgZmlsdGVycykKK2Jvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25z
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmIGZp
bHRlcnMpCiB7CiAgICAgdWludDMyX3Qgc2l6ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNp
emUpKQpAQCAtMTY4LDcgKzE2OCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0
ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9wZXJhdGlvbnM+Ojpl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25z
JiB0cmFuc2Zvcm1PcGVyYXRpb25zKQordm9pZCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9wZXJh
dGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9u
cyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVp
bnQzMl90Pih0cmFuc2Zvcm1PcGVyYXRpb25zLnNpemUoKSk7CiAgICAgZm9yIChjb25zdCBhdXRv
JiBvcGVyYXRpb24gOiB0cmFuc2Zvcm1PcGVyYXRpb25zLm9wZXJhdGlvbnMoKSkgewpAQCAtMjM0
LDcgKzIzNCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QKICAgICB9CiB9CiAKLWJvb2wgQXJn
dW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKK2Jvb2wg
QXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7CiAgICAgdWlu
dDMyX3Qgb3BlcmF0aW9uc1NpemU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShvcGVyYXRpb25z
U2l6ZSkpCkBAIC0zMzUsNyArMzM1LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRyYW5zZm9ybU9w
ZXJhdGlvbnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUcmFuc2YKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgZW5jb2RlVGltaW5nRnVuY3Rpb24oQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24p
CitzdGF0aWMgdm9pZCBlbmNvZGVUaW1pbmdGdW5jdGlvbihFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24pCiB7CiAgICAgaWYgKCF0aW1pbmdGdW5j
dGlvbikgewogICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0oVGltaW5nRnVuY3Rpb246OlRpbWlu
Z0Z1bmN0aW9uVHlwZSgtMSkpOwpAQCAtMzc2LDcgKzM3Niw3IEBAIHN0YXRpYyB2b2lkIGVuY29k
ZVRpbWluZ0Z1bmN0aW9uKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGltaW5nRnVu
Y3Rpb24qCiAgICAgfQogfQogCi1ib29sIGRlY29kZVRpbWluZ0Z1bmN0aW9uKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiYgdGltaW5nRnVuY3Rpb24pCiti
b29sIGRlY29kZVRpbWluZ0Z1bmN0aW9uKERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxUaW1pbmdG
dW5jdGlvbj4mIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIFRpbWluZ0Z1bmN0aW9uOjpUaW1pbmdG
dW5jdGlvblR5cGUgdHlwZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSh0eXBlKSkKQEAg
LTQ0Myw3ICs0NDMsNyBAQCBib29sIGRlY29kZVRpbWluZ0Z1bmN0aW9uKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiYgdGltaQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+OjplbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0dXJlTWFwcGVyQW5pbWF0aW9u
JiBhbmltYXRpb24pCit2b2lkIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0dXJlTWFwcGVyQW5pbWF0aW9uJiBh
bmltYXRpb24pCiB7CiAgICAgZW5jb2RlciA8PCBhbmltYXRpb24ubmFtZSgpOwogICAgIGVuY29k
ZXIgPDwgYW5pbWF0aW9uLmJveFNpemUoKTsKQEAgLTQ4Miw3ICs0ODIsNyBAQCB2b2lkIEFyZ3Vt
ZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbgogICAgIH0KIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBw
ZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUZXh0dXJlTWFw
cGVyQW5pbWF0aW9uJiBhbmltYXRpb24pCitib29sIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBl
ckFuaW1hdGlvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUZXh0dXJlTWFwcGVyQW5pbWF0
aW9uJiBhbmltYXRpb24pCiB7CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgRmxvYXRTaXplIGJveFNp
emU7CkBAIC01NzUsMTggKzU3NSwxOCBAQCBib29sIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBl
ckFuaW1hdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRleAogICAgIHJl
dHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlv
bnM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0dXJlTWFwcGVy
QW5pbWF0aW9ucyYgYW5pbWF0aW9ucykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVy
QW5pbWF0aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0dXJlTWFwcGVy
QW5pbWF0aW9ucyYgYW5pbWF0aW9ucykKIHsKICAgICBlbmNvZGVyIDw8IGFuaW1hdGlvbnMuYW5p
bWF0aW9ucygpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlv
bnM+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUZXh0dXJlTWFwcGVyQW5pbWF0
aW9ucyYgYW5pbWF0aW9ucykKK2Jvb2wgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0
aW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYg
YW5pbWF0aW9ucykKIHsKICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoYW5pbWF0aW9ucy5hbmlt
YXRpb25zKCkpOwogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi12b2lkIEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4p
Cit2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4m
IHRva2VuKQogewogI2lmIE9TKERBUldJTikKICAgICBlbmNvZGVyIDw8IEF0dGFjaG1lbnQodG9r
ZW4uZnJvbnRCdWZmZXJIYW5kbGUsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKQEAgLTU5Niw3
ICs1OTYsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9r
ZW4+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZAogI2VuZGlmCiB9CiAKLWJvb2wgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJiB0b2tlbikK
K2Jvb2wgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4p
CiB7CiAjaWYgT1MoREFSV0lOKQogICAgIEF0dGFjaG1lbnQgZnJvbnRBdHRhY2htZW50LCBiYWNr
QXR0YWNobWVudDsKQEAgLTYxNCwxNyArNjE0LDE3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29k
CiB9CiAjZW5kaWYKIAotdm9pZCBBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mIHN1
cmZhY2VVcGRhdGVJbmZvKQordm9pZCBBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiBzdXJmYWNl
VXBkYXRlSW5mbykKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJbmZv
Pjo6ZW5jb2RlKGVuY29kZXIsIHN1cmZhY2VVcGRhdGVJbmZvKTsKIH0KIAotYm9vbCBBcmd1bWVu
dENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgU3VyZmFjZVVwZGF0ZUluZm8mIHN1cmZhY2VVcGRhdGVJbmZvKQorYm9vbCBBcmd1bWVudENv
ZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFN1cmZhY2VV
cGRhdGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbykKIHsKICAgICByZXR1cm4gU2ltcGxlQXJndW1l
bnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZShkZWNvZGVyLCBzdXJmYWNlVXBkYXRl
SW5mbyk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJT
dGF0ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0
ZS5jaGFuZ2VNYXNrOwogCkBAIC03MDUsNyArNzA1LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2QKICAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5jb21taXR0ZWRTY3JvbGxPZmZzZXQ7CiB9CiAK
LWJvb2wgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmRlY29k
ZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRl
JiBzdGF0ZSkKK2Jvb2wgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0ZS5jaGFuZ2VNYXNrKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODAyLDI3ICs4MDIsMjcgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRp
bGVVcGRhdGVJbmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGls
ZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCit2b2lkIEFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUlu
Zm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGlsZVVwZGF0ZUluZm8mIHVwZGF0
ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmVuY29k
ZShlbmNvZGVyLCB1cGRhdGVJbmZvKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRpbGVVcGRh
dGVJbmZvPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGlsZVVwZGF0ZUluZm8m
IHVwZGF0ZUluZm8pCitib29sIEFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgVGlsZVVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+OjpkZWNvZGUoZGVjb2Rlciwg
dXBkYXRlSW5mbyk7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGlsZUNyZWF0aW9uSW5mbyYg
dXBkYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbGVDcmVhdGlvbkluZm8mIHVwZGF0ZUluZm8pCiB7
CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6ZW5jb2RlKGVuY29k
ZXIsIHVwZGF0ZUluZm8pOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5m
bz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRpbGVDcmVhdGlvbkluZm8mIHVw
ZGF0ZUluZm8pCitib29sIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBUaWxlQ3JlYXRpb25JbmZvJiB1cGRhdGVJbmZvKQogewogICAgIHJl
dHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+OjpkZWNvZGUoZGVjb2Rl
ciwgdXBkYXRlSW5mbyk7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZUNvb3JkaW5hdGVkU3VyZmFj
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZlB0cjxDb29yZGluYXRlZFN1cmZh
Y2U+JiBzdXJmYWNlKQorc3RhdGljIHZvaWQgZW5jb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBzdXJmYWNlKQog
ewogICAgIGJvb2wgaXNWYWxpZFN1cmZhY2UgPSBmYWxzZTsKICAgICBpZiAoIXN1cmZhY2UpIHsK
QEAgLTg0MSw3ICs4NDEsNyBAQCBzdGF0aWMgdm9pZCBlbmNvZGVDb29yZGluYXRlZFN1cmZhY2Uo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWZQdHI8Q29vcgogICAgICAgICBlbmNv
ZGVyIDw8IGhhbmRsZTsKIH0KIAotc3RhdGljIGJvb2wgZGVjb2RlQ29vcmRpbmF0ZWRTdXJmYWNl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4mIHN1
cmZhY2UpCitzdGF0aWMgYm9vbCBkZWNvZGVDb29yZGluYXRlZFN1cmZhY2UoRGVjb2RlciYgZGVj
b2RlciwgUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4mIHN1cmZhY2UpCiB7CiAgICAgYm9vbCBp
c1ZhbGlkU3VyZmFjZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzVmFsaWRTdXJmYWNlKSkK
QEAgLTg1OCw3ICs4NTgsNyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVDb29yZGluYXRlZFN1cmZhY2Uo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8Q29vcmRpbmF0ZQogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPjo6
ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGlj
c1N0YXRlJiBzdGF0ZSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzU3Rh
dGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0
YXRlJiBzdGF0ZSkKIHsKICAgICBlbmNvZGVyIDw8IHN0YXRlLnJvb3RDb21wb3NpdGluZ0xheWVy
OwogICAgIGVuY29kZXIgPDwgc3RhdGUuc2Nyb2xsUG9zaXRpb247CkBAIC04ODksNyArODg5LDcg
QEAgdm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT46OmVuY29kZShB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsIGMKICAgICBlbmNvZGVyIDw8IHN0YXRlLnVwZGF0ZUF0
bGFzZXNUb1JlbW92ZTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENvb3JkaW5hdGVkR3Jh
cGhpY3NTdGF0ZSYgc3RhdGUpCitib29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGlj
c1N0YXRlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0ZS5yb290Q29tcG9zaXRp
bmdMYXllcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVu
dENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggZWNkZDAxNGM1YjE2NDUxYTE1
M2I1YTI2ZjRlNGFmZDBjMWQ5Zjc0My4uZjcyNGFhYWVkMDIwZWM5MTdmYTg5YTI0ZTg2NmZiZDZj
ZTQzYTNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTU0LDU1ICs1NCw1NSBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJmYWNlVG9r
ZW47CiBuYW1lc3BhY2UgSVBDIHsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9u
cyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6RmlsdGVyT3BlcmF0aW9ucyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMm
KTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VHJh
bnNmb3JtT3BlcmF0aW9ucyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucyYpOworICAgIHN0YXRpYyBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucyYpOwogfTsKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9u
cz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYpOworICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckFuaW1hdGlvbnMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OlRleHR1cmVNYXBwZXJBbmltYXRpb25zJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb24+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckFuaW1hdGlvbiYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uJik7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0
aW9uJik7CiB9OwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPiB7Ci0gICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
U3VyZmFjZVRva2VuJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4m
KTsKIH07CiAjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpTdXJmYWNlVXBkYXRlSW5mbz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpTdXJmYWNlVXBkYXRlSW5mbyYpOwotICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpTdXJmYWNlVXBkYXRlSW5mbyYp
OworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U3VyZmFj
ZVVwZGF0ZUluZm8mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OlN1cmZhY2VVcGRhdGVJbmZvJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPiB7Ci0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJTdGF0ZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGlsZVVwZGF0ZUluZm8+IHsKLSAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGlsZVVwZGF0ZUlu
Zm8mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
VGlsZVVwZGF0ZUluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXZWJDb3JlOjpUaWxlVXBkYXRlSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUaWxlQ3JlYXRpb25JbmZvPiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRpbGVDcmVhdGlvbklu
Zm8mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
VGlsZUNyZWF0aW9uSW5mbyYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU+IHsK
LSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYpOworICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc1N0YXRlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzU3RhdGUmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElQQwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKaW5kZXggZTMyODkwNzUzNzU2ODhhYmIx
NWY3Yjk3NWQ1N2IyOTVlMmY0OTBiOS4uMmM1YzEyZjYwN2ZmNTVmNDNhMjZlMmIxNGFmYzAyNTA2
OWYzOTBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwCkBAIC00MCw3
ICs0MCw3IEBAIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlOjpIYW5kbGUoKQogewogfQog
Ci12b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlOjplbmNvZGUoSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIg
PDwgbV9zaXplIDw8IG1fZmxhZ3M7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCkBAIC01MSw3
ICs1MSw3IEBAIHZvaWQgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OmVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fYml0bWFw
SGFuZGxlOwogfQogCi1ib29sIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlOjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQorYm9vbCBXZWJD
b29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
SGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYW5kbGUubV9zaXpl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2Uu
aAppbmRleCA2ZDcwNjJiNjA4MzZhNGJkODMyNmNjMmJkNTVmMWNjY2ZkN2VlNTVlLi42YWI3YzY0
MGU4ZDVhODgwMmNiMmEyNWZkNzFjMDIwODFjOGRmNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGlu
YXRlZFN1cmZhY2UuaApAQCAtNDMsOCArNDMsOCBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAg
ICAgICBIYW5kbGUoKTsKIAotICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYpIGNvbnN0OwotICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29k
ZXImLCBIYW5kbGUmKTsKKyAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBIYW5kbGUmKTsKIAog
I2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgICAgICBXZWJDb3JlOjpHcmFwaGljc1N1cmZh
Y2VUb2tlbiBncmFwaGljc1N1cmZhY2VUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhcGhpY3NT
dXJmYWNlVG9rZW47IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0
ZXJ5U3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmNw
cAppbmRleCBkMDEyZDcwNjNiNjA1YmQ0MTEzODNmZGIzZDUyYjhmYTczNmI5NzllLi44MTU3YjQ1
YTQwNjllOGYzODA3MjMzZWMzOGNjZjhlYTlmZmNmZjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFdlYkJhdHRlcnlTdGF0
dXM6On5XZWJCYXR0ZXJ5U3RhdHVzKCkKIHsKIH0KIAotdm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpE
YXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdl
YkJhdHRlcnlTdGF0dXM6OkRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiB7CiAgICAgZW5jb2RlciA8PCBpc0NoYXJnaW5nOwogICAgIGVuY29kZXIgPDwgY2hhcmdpbmdU
aW1lOwpAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFdlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGxl
dmVsOwogfQogCi1ib29sIFdlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgRGF0YSYgcmVzdWx0KQorYm9vbCBXZWJCYXR0ZXJ5U3RhdHVz
OjpEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBEYXRhJiByZXN1bHQpCiB7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNDaGFyZ2luZykpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3Rh
dHVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oCmluZGV4IDIy
N2EzMzJkNGQyNTJkMjM5OWFjYmJiYzVlZDhmNDg1Yjg0MjI1NDAuLjM0OWE4ZjA0NTJhMTljNzRk
MDlhZjhhNDY4NGE4YzU2NzY4NTQ2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRl
cnlTdGF0dXMuaApAQCAtMjksMTYgKzI5LDE2IEBACiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVT
KQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgi
Ci0jaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2lu
Y2x1ZGUgIkVuY29kZXIuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkJhdHRl
cnlTdGF0dXMgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpCYXR0
ZXJ5U3RhdHVzPiB7CiBwdWJsaWM6CiAgICAgc3RydWN0IERhdGEgewotICAgICAgICB2b2lkIGVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBEYXRhJik7CisgICAgICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpE
ZWNvZGVyJiwgRGF0YSYpOwogCiAgICAgICAgIGJvb2wgaXNDaGFyZ2luZzsKICAgICAgICAgZG91
YmxlIGNoYXJnaW5nVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsv
QXJndW1lbnRDb2RlcnNHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVu
dENvZGVyc0d0ay5jcHAKaW5kZXggN2EyZDZjNGFhZWRlMjJlNjdkYWJjOTdlYWY4YWRjZjY3ZGU2
MjlhNi4uZmQ5NDVhMDYxZDQ0ZDJkYzk1MmNjOGFiNmEzNmJkMDM0ZDdlNDExMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXN0
YXRpYyB2b2lkIGVuY29kZUltYWdlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgR2Rr
UGl4YnVmKiBwaXhidWYpCitzdGF0aWMgdm9pZCBlbmNvZGVJbWFnZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBHZGtQaXhidWYqIHBpeGJ1ZikKIHsKICAgICBJbnRTaXplIGltYWdlU2l6ZShnZGtf
cGl4YnVmX2dldF93aWR0aChwaXhidWYpLCBnZGtfcGl4YnVmX2dldF9oZWlnaHQocGl4YnVmKSk7
CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpj
cmVhdGVTaGFyZWFibGUoaW1hZ2VTaXplLCBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEp
OwpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgdm9pZCBlbmNvZGVJbWFnZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEdka1BpeGJ1ZiogcGl4YnVmKQogICAgIGVuY29kZXIgPDwgaGFu
ZGxlOwogfQogCi1zdGF0aWMgYm9vbCBkZWNvZGVJbWFnZShBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIEdSZWZQdHI8R2RrUGl4YnVmPiYgcGl4YnVmKQorc3RhdGljIGJvb2wgZGVjb2RlSW1hZ2Uo
RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHZGtQaXhidWY+JiBwaXhidWYpCiB7CiAgICAgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFu
ZGxlKSkKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlSW1hZ2UoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEdka1BpeGJ1Zj4mIHBpeGJ1ZikKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotc3RhdGljIHZvaWQgZW5jb2RlRGF0YU9iamVjdChBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IERhdGFPYmplY3RHdGsqIGRhdGFPYmplY3QpCitzdGF0aWMgdm9pZCBl
bmNvZGVEYXRhT2JqZWN0KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERhdGFPYmplY3RHdGsqIGRh
dGFPYmplY3QpCiB7CiAgICAgYm9vbCBoYXNUZXh0ID0gZGF0YU9iamVjdC0+aGFzVGV4dCgpOwog
ICAgIGVuY29kZXIgPDwgaGFzVGV4dDsKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgdm9pZCBl
bmNvZGVEYXRhT2JqZWN0KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGF0YU9iamVj
dEd0ayogZGF0YQogICAgICAgICBlbmNvZGVyIDw8IGRhdGFPYmplY3QtPnVua25vd25UeXBlcygp
OwogfQogCi1zdGF0aWMgYm9vbCBkZWNvZGVEYXRhT2JqZWN0KEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUmVmUHRyPERhdGFPYmplY3RHdGs+JiBkYXRhT2JqZWN0KQorc3RhdGljIGJvb2wgZGVj
b2RlRGF0YU9iamVjdChEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8RGF0YU9iamVjdEd0az4mIGRh
dGFPYmplY3QpCiB7CiAgICAgUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGEgPSBEYXRhT2JqZWN0
R3RrOjpjcmVhdGUoKTsKIApAQCAtMTg4LDcgKzE4OCw3IEBAIHN0YXRpYyBib29sIGRlY29kZURh
dGFPYmplY3QoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8RGF0YU9iamVjdEd0az4m
IGRhCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9pZCBBcmd1bWVudENvZGVyPERy
YWdEYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRHJhZ0RhdGEm
IGRyYWdEYXRhKQordm9pZCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAgICBlbmNvZGVyIDw8IGRy
YWdEYXRhLmNsaWVudFBvc2l0aW9uKCk7CiAgICAgZW5jb2RlciA8PCBkcmFnRGF0YS5nbG9iYWxQ
b3NpdGlvbigpOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxEcmFnRGF0
YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERyYWdEYXRhJiBkCiAg
ICAgICAgIGVuY29kZURhdGFPYmplY3QoZW5jb2RlciwgcGxhdGZvcm1EYXRhKTsKIH0KIAotYm9v
bCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgRHJhZ0RhdGEmIGRyYWdEYXRhKQorYm9vbCBBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAgICBJbnRQb2lu
dCBjbGllbnRQb3NpdGlvbjsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNsaWVudFBvc2l0aW9u
KSkKQEAgLTIzNiwxNCArMjM2LDE0IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERyYWdEYXRhJiBkcmFnRGF0CiB9CiAjZW5k
aWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKIAotc3RhdGljIHZvaWQgZW5jb2RlR0tleUZpbGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHS2V5RmlsZSoga2V5RmlsZSkKK3N0YXRpYyB2b2lk
IGVuY29kZUdLZXlGaWxlKEVuY29kZXImIGVuY29kZXIsIEdLZXlGaWxlKiBrZXlGaWxlKQogewog
ICAgIGdzaXplIGRhdGFTaXplOwogICAgIEdVbmlxdWVQdHI8Y2hhcj4gZGF0YShnX2tleV9maWxl
X3RvX2RhdGEoa2V5RmlsZSwgJmRhdGFTaXplLCAwKSk7CiAgICAgZW5jb2RlciA8PCBEYXRhUmVm
ZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGRhdGEuZ2V0KCkpLCBkYXRhU2l6ZSk7
CiB9CiAKLXN0YXRpYyBib29sIGRlY29kZUdLZXlGaWxlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgR1VuaXF1ZVB0cjxHS2V5RmlsZT4mIGtleUZpbGUpCitzdGF0aWMgYm9vbCBkZWNvZGVHS2V5
RmlsZShEZWNvZGVyJiBkZWNvZGVyLCBHVW5pcXVlUHRyPEdLZXlGaWxlPiYga2V5RmlsZSkKIHsK
ICAgICBEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShkYXRhUmVmZXJlbmNlKSkKQEAgLTI2MSwxNCArMjYxLDE0IEBAIHN0YXRpYyBib29sIGRlY29k
ZUdLZXlGaWxlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1VuaXF1ZVB0cjxHS2V5RmlsZT4m
IGtleUZpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgR3RrUHJpbnRTZXR0aW5ncyogcHJpbnRTZXR0aW5ncykKK3ZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIEd0a1ByaW50U2V0dGluZ3MqIHByaW50U2V0dGluZ3MpCiB7CiAg
ICAgR1VuaXF1ZVB0cjxHS2V5RmlsZT4ga2V5RmlsZShnX2tleV9maWxlX25ldygpKTsKICAgICBn
dGtfcHJpbnRfc2V0dGluZ3NfdG9fa2V5X2ZpbGUocHJpbnRTZXR0aW5ncywga2V5RmlsZS5nZXQo
KSwgIlByaW50IFNldHRpbmdzIik7CiAgICAgZW5jb2RlR0tleUZpbGUoZW5jb2Rlciwga2V5Rmls
ZS5nZXQoKSk7CiB9CiAKLWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1Jl
ZlB0cjxHdGtQcmludFNldHRpbmdzPiYgcHJpbnRTZXR0aW5ncykKK2Jvb2wgZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mIHByaW50U2V0dGluZ3MpCiB7
CiAgICAgR1VuaXF1ZVB0cjxHS2V5RmlsZT4ga2V5RmlsZTsKICAgICBpZiAoIWRlY29kZUdLZXlG
aWxlKGRlY29kZXIsIGtleUZpbGUpKQpAQCAtMjg0LDE0ICsyODQsMTQgQEAgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEd0a1ByaW50U2V0dGluZ3M+JiBwcmlu
dFNldHRpbmdzKQogICAgIHJldHVybiBwcmludFNldHRpbmdzOwogfQogCi12b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsIEd0a1BhZ2VTZXR1cCogcGFnZVNldHVwKQordm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgR3RrUGFnZVNldHVwKiBwYWdlU2V0dXApCiB7CiAgICAg
R1VuaXF1ZVB0cjxHS2V5RmlsZT4ga2V5RmlsZShnX2tleV9maWxlX25ldygpKTsKICAgICBndGtf
cGFnZV9zZXR1cF90b19rZXlfZmlsZShwYWdlU2V0dXAsIGtleUZpbGUuZ2V0KCksICJQYWdlIFNl
dHVwIik7CiAgICAgZW5jb2RlR0tleUZpbGUoZW5jb2Rlciwga2V5RmlsZS5nZXQoKSk7CiB9CiAK
LWJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHdGtQYWdlU2V0
dXA+JiBwYWdlU2V0dXApCitib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEd0
a1BhZ2VTZXR1cD4mIHBhZ2VTZXR1cCkKIHsKICAgICBHVW5pcXVlUHRyPEdLZXlGaWxlPiBrZXlG
aWxlOwogICAgIGlmICghZGVjb2RlR0tleUZpbGUoZGVjb2Rlciwga2V5RmlsZSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmgKaW5kZXggODBhNWRjMWVk
ZWJlYTBkM2Q2NTM1MjgwMzQ4YjU0ZDg1MGYxZGZmMC4uMDFhYzRjZjBlZjE4NWUxODA1YTIxMjBi
ZDlmNzY4ZGExMTI3NGMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9B
cmd1bWVudENvZGVyc0d0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1l
bnRDb2RlcnNHdGsuaApAQCAtNDEsMTYgKzQxLDE2IEBAIG5hbWVzcGFjZSBJUEMgewogCiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6RHJhZ0RhdGE+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiwgY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhJik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpEcmFnRGF0YSYpOwogfTsKICNlbmRpZgogCi12b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImLCBHdGtQcmludFNldHRpbmdzKik7Ci1ib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBHUmVmUHRyPEd0a1ByaW50U2V0dGluZ3M+Jik7Cit2b2lkIGVu
Y29kZShFbmNvZGVyJiwgR3RrUHJpbnRTZXR0aW5ncyopOworYm9vbCBkZWNvZGUoRGVjb2RlciYs
IEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mKTsKIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiwgR3RrUGFnZVNldHVwKik7Ci1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBHUmVm
UHRyPEd0a1BhZ2VTZXR1cD4mKTsKK3ZvaWQgZW5jb2RlKEVuY29kZXImLCBHdGtQYWdlU2V0dXAq
KTsKK2Jvb2wgZGVjb2RlKERlY29kZXImLCBHUmVmUHRyPEd0a1BhZ2VTZXR1cD4mKTsKIAogfSAv
LyBuYW1lc3BhY2UgSVBDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3Nv
dXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKaW5kZXggN2VkNjc2MjIxMjgxNmQxNDJh
NWJlNmJmMDNjZWEwNGY0M2MzYjVkYy4uMGY5NzJjMDAzNjQ5OTcxNGRlNzRmM2Q2MTIyNWRlMzhj
OWIwY2UyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBJUEMgewogCi12b2lkIEFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCit2b2lkIEFyZ3VtZW50
Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogewogICAgIGVuY29k
ZXIgPDwgcmVzb3VyY2VSZXF1ZXN0LnVybCgpLnN0cmluZygpOwogICAgIGVuY29kZXIgPDwgcmVz
b3VyY2VSZXF1ZXN0Lmh0dHBNZXRob2QoKTsKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIKICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVxdWVzdC5pbml0aWF0aW5nUGFn
ZUlEKCk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWNvZGVQ
bGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCkKK2Jvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWNv
ZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QpCiB7CiAgICAgU3RyaW5nIHVybDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVy
bCkpCkBAIC0xMzQsNyArMTM0LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVz
dD46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29kZXIKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlm
aWNhdGVJbmZvKQordm9pZCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykK
IHsKICAgICBpZiAoIWNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZSgpKSB7CiAgICAgICAgIGVu
Y29kZXIgPDwgZmFsc2U7CkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPENl
cnRpZmljYXRlSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENl
cnQKICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihjZXJ0aWZpY2F0ZUluZm8u
dGxzRXJyb3JzKCkpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZp
Y2F0ZUluZm8pCitib29sIEFyZ3VtZW50Q29kZXI8Q2VydGlmaWNhdGVJbmZvPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogewogICAg
IGJvb2wgaGFzQ2VydGlmaWNhdGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNDZXJ0aWZp
Y2F0ZSkpCkBAIC0xODQsNyArMTg0LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRl
SW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENlcnRpZmljYXQKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNv
ZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZUVy
cm9yJiByZXNvdXJjZUVycm9yKQordm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJvciYg
cmVzb3VyY2VFcnJvcikKIHsKICAgICBlbmNvZGVyLmVuY29kZUVudW0ocmVzb3VyY2VFcnJvci50
eXBlKCkpOwogICAgIGlmIChyZXNvdXJjZUVycm9yLmlzTnVsbCgpKQpAQCAtMTk4LDcgKzE5OCw3
IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRh
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwKICAgICBlbmNvZGVyIDw8IENlcnRpZmljYXRlSW5m
byhyZXNvdXJjZUVycm9yKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+
OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZUVy
cm9yJiByZXNvdXJjZUVycm9yKQorYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+Ojpk
ZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VFcnJvciYgcmVzb3Vy
Y2VFcnJvcikKIHsKICAgICBSZXNvdXJjZUVycm9yQmFzZTo6VHlwZSBlcnJvclR5cGU7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZUVudW0oZXJyb3JUeXBlKSkKQEAgLTIzNiwyMyArMjM2LDIzIEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1
bWVudENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVu
Y29kZXImLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKQordm9pZCBBcmd1bWVudENvZGVyPFByb3Rl
Y3Rpb25TcGFjZT46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiwgY29uc3QgUHJvdGVjdGlv
blNwYWNlJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotYm9vbCBBcmd1bWVu
dENvZGVyPFByb3RlY3Rpb25TcGFjZT46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29k
ZXImLCBQcm90ZWN0aW9uU3BhY2UmKQorYm9vbCBBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFj
ZT46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgUHJvdGVjdGlvblNwYWNlJikKIHsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQXJn
dW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2Rl
ciYsIGNvbnN0IENyZWRlbnRpYWwmKQordm9pZCBBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+Ojpl
bmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IENyZWRlbnRpYWwmKQogewogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46
OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImLCBDcmVkZW50aWFsJikKK2Jvb2wg
QXJndW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImLCBD
cmVkZW50aWFsJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0
YXRlQ29kaW5nTm9uZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nTm9uZS5jcHAKaW5kZXggNDYyN2JjOTkwZjc2ZmE2MDZiMmRlOGU0MWI2OGZj
ZTRlNmQyZGZlYy4uMzAzZjkxNTg0YWM4OTJiMjBkZTE2OTUzODNlNmQzODdhNjU2ZjJkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Z05vbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3Rh
dGVDb2RpbmdOb25lLmNwcApAQCAtMjcsOCArMjcsOSBAQAogI2luY2x1ZGUgIkxlZ2FjeVNlc3Np
b25TdGF0ZUNvZGluZy5oIgogCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgotI2luY2x1ZGUgIkFyZ3Vt
ZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5o
IgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogCkBAIC0zNiw3ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBSZWZQdHI8
QVBJOjpEYXRhPiBlbmNvZGVMZWdhY3lTZXNzaW9uU3RhdGUoY29uc3QgU2Vzc2lvblN0YXRlJiBz
ZXNzaW9uU3RhdGUpCiB7Ci0gICAgSVBDOjpBcmd1bWVudEVuY29kZXIgZW5jb2RlcjsKKyAgICAv
LyBGSVhNRTogSSdtIG5vdCBzdXJlIHdoZXRoZXIgdGhlc2UgYXJlIHRoZSBwcm9wZXIgYXJndW1l
bnRzIGZvciB0aGUgZW5jb2Rlci4KKyAgICBJUEM6OkVuY29kZXIgZW5jb2RlcigiSVBDIiwgIkxl
Z2FjeVNlc3Npb25TdGF0ZSIsIDApOwogICAgIGVuY29kZXIgPDwgc2Vzc2lvblN0YXRlLmJhY2tG
b3J3YXJkTGlzdFN0YXRlOwogICAgIGVuY29kZXIgPDwgc2Vzc2lvblN0YXRlLnJlbmRlclRyZWVT
aXplOwogICAgIGVuY29kZXIgPDwgc2Vzc2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMOwpAQCAtNDUs
NyArNDcsNyBAQCBSZWZQdHI8QVBJOjpEYXRhPiBlbmNvZGVMZWdhY3lTZXNzaW9uU3RhdGUoY29u
c3QgU2Vzc2lvblN0YXRlJiBzZXNzaW9uU3RhdGUpCiAKIGJvb2wgZGVjb2RlTGVnYWN5U2Vzc2lv
blN0YXRlKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSwgU2Vzc2lvblN0YXRl
JiBzZXNzaW9uU3RhdGUpCiB7Ci0gICAgSVBDOjpBcmd1bWVudERlY29kZXIgZGVjb2RlcihkYXRh
LCBkYXRhU2l6ZSk7CisgICAgSVBDOjpEZWNvZGVyIGRlY29kZXIoSVBDOjpEYXRhUmVmZXJlbmNl
KGRhdGEsIGRhdGFTaXplKSwgVmVjdG9yPElQQzo6QXR0YWNobWVudD4oKSk7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzZXNzaW9uU3RhdGUuYmFja0ZvcndhcmRMaXN0U3RhdGUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXNzaW9uU3RhdGUucmVu
ZGVyVHJlZVNpemUpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286518</attachid>
            <date>2016-08-19 19:38:54 -0700</date>
            <delta_ts>2016-08-20 01:59:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161020-20160820043700.patch</filename>
            <type>text/plain</type>
            <size>48195</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTI0MGVhMjU1NTU0OGJh
OTUzOGMyZTU0ZTJiOTYyMGJhMjJhNTRkMi4uZjQzNjNkNWQ5N2Q0OWM0ZGVhNWJiNzkyNTIwZDkz
MzAyNjk3ODljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE2LTA4LTE5ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFVu
cmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBzaW5jZSByMjA0NjY1IGFuZCAyMDQ2NjgKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTAyMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHA6CisgICAgICAgIChJ
UEM6Ok1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkT3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHA6CisgICAgICAgIChJUEM6OkNvbm5l
Y3Rpb246OnByb2Nlc3NNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE91
dGdvaW5nTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAq
IFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3Nh
Z2VSZWNlaXZlci1leHBlY3RlZC5jcHA6CisgICAgICAgIChNZXNzYWdlczo6V2ViUGFnZTo6R2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KToKKyAg
ICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVk
UmVwbHk6OkRlbGF5ZWRSZXBseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2Vp
dmVXZWJQYWdlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVT
eW5jV2ViUGFnZU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3Nh
Z2VzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVy
LWV4cGVjdGVkLmNwcDoKKyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkpOgorICAgICAgICAoTWVz
c2FnZXM6OldlYlBhZ2U6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVs
YXllZFJlcGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
LmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0
ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUcmFu
c2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxU
cmFuc2Zvcm1PcGVyYXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6ZW5jb2RlVGltaW5n
RnVuY3Rpb24pOgorICAgICAgICAoSVBDOjpkZWNvZGVUaW1pbmdGdW5jdGlvbik6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj46OmVuY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj46OmRlY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmlt
YXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpH
cmFwaGljc1N1cmZhY2VUb2tlbj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0
YXRlPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5m
bz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+
OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+
OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjplbmNvZGVDb29yZGluYXRlZFN1cmZhY2UpOgorICAg
ICAgICAoSVBDOjpkZWNvZGVDb29yZGluYXRlZFN1cmZhY2UpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJn
dW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJD
b29yZGluYXRlZFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1
cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0ZWRT
dXJmYWNlOjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkJhdHRl
cnlTdGF0dXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmg6CisgICAgICAgICogU2hhcmVk
L2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHA6CisgICAgICAgIChJUEM6OmVuY29kZUltYWdlKToK
KyAgICAgICAgKElQQzo6ZGVjb2RlSW1hZ2UpOgorICAgICAgICAoSVBDOjplbmNvZGVEYXRhT2Jq
ZWN0KToKKyAgICAgICAgKElQQzo6ZGVjb2RlRGF0YU9iamVjdCk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RHJhZ0RhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPERyYWdEYXRhPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6ZW5jb2RlR0tleUZpbGUpOgor
ICAgICAgICAoSVBDOjpkZWNvZGVHS2V5RmlsZSk6CisgICAgICAgIChJUEM6OmVuY29kZSk6Cisg
ICAgICAgIChJUEM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVy
c0d0ay5oOgorICAgICAgICAqIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAu
Y3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29k
ZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1
ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxD
ZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENl
cnRpZmljYXRlSW5mbz46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9y
bURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+OjplbmNvZGVQ
bGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+Ojpk
ZWNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3Rh
dGVDb2RpbmdOb25lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZW5jb2RlTGVnYWN5U2Vzc2lvblN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6ZGVjb2RlTGVnYWN5U2Vzc2lvblN0YXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oOgorCiAyMDE2LTA4LTE5ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgTWVz
c2FnZURlY29kZXIgYW5kIEFyZ3VtZW50RGVjb2RlciBpbnRvIERlY29kZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKaW5kZXggMjg3NmQyODE2MGY4YzZmMTdlMjEzMWJjZjI5YTJhZTM5NTZmODVmYy4uNGIx
Nzc3MjM5NGI4NjMyZDgzMDJkZmI5NjJiZWMwNzY3YjEzOTIyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKQEAgLTIxNywxMyArMjE3LDExIEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBQbGF0Zm9y
bS9Nb2R1bGUuY3BwCiAKICAgICBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCi0gICAg
UGxhdGZvcm0vSVBDL0FyZ3VtZW50RGVjb2Rlci5jcHAKLSAgICBQbGF0Zm9ybS9JUEMvQXJndW1l
bnRFbmNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcAogICAgIFBsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmNwcAogICAgIFBsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNw
cAotICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHAKLSAgICBQbGF0Zm9ybS9JUEMv
TWVzc2FnZUVuY29kZXIuY3BwCisgICAgUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwCisgICAgUGxh
dGZvcm0vSVBDL0VuY29kZXIuY3BwCiAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNlaXZlck1h
cC5jcHAKICAgICBQbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5jcHAKICAgICBQbGF0Zm9ybS9J
UEMvU3RyaW5nUmVmZXJlbmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
TWVzc2FnZVJlY29yZGVyLmNwcAppbmRleCAyZDhmM2RmMzAyYjZmYTczMmYwM2UwMTI5NmQ0ZWQ3
NDRhZGVhMzhmLi45YmY3NDYyYTMyMWJhOGI0NmU5MjIzODVlZjRiODI4Mjk2ZDJiMzQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY29yZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvTWVzc2FnZVJlY29yZGVyLmNwcApAQCAt
MjksOCArMjksOCBAQAogI2lmIEhBVkUoRFRSQUNFKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgotI2luY2x1ZGUgIk1lc3NhZ2VEZWNvZGVyLmgiCi0jaW5jbHVkZSAiTWVzc2FnZUVuY29kZXIu
aCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNvcmRlclByb2Jlcy5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
CkBAIC00MSw3ICs0MSw3IEBAIGJvb2wgTWVzc2FnZVJlY29yZGVyOjppc0VuYWJsZWQoKQogICAg
IHJldHVybiBXRUJLSVRNRVNTQUdFUkVDT1JERVJfTUVTU0FHRV9SRUNFSVZFRF9FTkFCTEVEKCkg
fHwgV0VCS0lUTUVTU0FHRVJFQ09SREVSX01FU1NBR0VfU0VOVF9FTkFCTEVEKCk7CiB9CiAKLXN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+IE1l
c3NhZ2VSZWNvcmRlcjo6cmVjb3JkT3V0Z29pbmdNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIE1lc3NhZ2VFbmNvZGVyJiBlbmNvZGVyKQorc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VSZWNv
cmRlcjo6TWVzc2FnZVByb2Nlc3NpbmdUb2tlbj4gTWVzc2FnZVJlY29yZGVyOjpyZWNvcmRPdXRn
b2luZ01lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgRW5jb2RlciYgZW5jb2RlcikKIHsK
ICAgICBpZiAoIWlzRW5hYmxlZCgpIHx8ICFjb25uZWN0aW9uLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
dW5peC9Db25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5p
eC9Db25uZWN0aW9uVW5peC5jcHAKaW5kZXggOGMzYjYwOTc5N2ZhZWFhMzY0YzVlODI3NzE3YjJj
ZmE5ZDU5OTZhYi4uMmE4YTk0MGIzMWQzM2Q5MjMxYWI0MGE4YTVlZTFjNDJhYTkzNGU4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4
LmNwcApAQCAtMjQ1LDcgKzI0NSw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6cHJvY2Vzc01lc3NhZ2Uo
KQogICAgIGlmIChtZXNzYWdlSW5mby5pc01lc3NhZ2VCb2R5SXNPdXRPZkxpbmUoKSkKICAgICAg
ICAgbWVzc2FnZUJvZHkgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihvb2xNZXNzYWdlQm9k
eS0+ZGF0YSgpKTsKIAotICAgIGF1dG8gZGVjb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8TWVzc2Fn
ZURlY29kZXI+KERhdGFSZWZlcmVuY2UobWVzc2FnZUJvZHksIG1lc3NhZ2VJbmZvLmJvZHlTaXpl
KCkpLCBXVEZNb3ZlKGF0dGFjaG1lbnRzKSk7CisgICAgYXV0byBkZWNvZGVyID0gc3RkOjptYWtl
X3VuaXF1ZTxEZWNvZGVyPihEYXRhUmVmZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlSW5mby5i
b2R5U2l6ZSgpKSwgV1RGTW92ZShhdHRhY2htZW50cykpOwogCiAgICAgcHJvY2Vzc0luY29taW5n
TWVzc2FnZShXVEZNb3ZlKGRlY29kZXIpKTsKIApAQCAtNDAyLDcgKzQwMiw3IEBAIGJvb2wgQ29u
bmVjdGlvbjo6cGxhdGZvcm1DYW5TZW5kT3V0Z29pbmdNZXNzYWdlcygpIGNvbnN0CiAgICAgcmV0
dXJuIG1faXNDb25uZWN0ZWQ7CiB9CiAKLWJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVz
c2FnZShzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCitib29sIENvbm5l
Y3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IGVuY29k
ZXIpCiB7CiAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKE1lc3NhZ2VJbmZvKSArIGF0dGFjaG1l
bnRNYXhBbW91bnQgKiBzaXplb2Yoc2l6ZV90KSA8PSBtZXNzYWdlTWF4U2l6ZSwgQXR0YWNobWVu
dHNGaXRUb01lc3NhZ2VJbmxpbmUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
dW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAppbmRleCBhYTVlYWEwODMxNTIwM2QyNGUyN2E2OWE5
MjE5ZjEzMGQzNTNhYWY2Li4yN2IyNWI3ZTViM2M3ZDE3NDk4NjE0NDZmMGUwOTY5ODIyMzUzODRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVu
aXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5p
eC5jcHAKQEAgLTI5LDggKzI5LDggQEAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICNp
bmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKIAotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgot
I2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNs
dWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxmY250bC5oPgog
I2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNjQsMTIgKzY0LDEyIEBAIGJvb2wgU2hhcmVkTWVtb3J5
OjpIYW5kbGU6OmlzTnVsbCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYXR0YWNobWVudC5maWxlRGVz
Y3JpcHRvcigpID09IC0xOwogfQogCi12b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNoYXJlZE1lbW9yeTo6
SGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29k
ZXIgPDwgcmVsZWFzZUF0dGFjaG1lbnQoKTsKIH0KIAotYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRs
ZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkK
K2Jvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IEhhbmRsZSYgaGFuZGxlKQogewogICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBoYW5kbGUuaXNOdWxs
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDc4ODk2NjQ4Y2M0M2VhNzRiZGE5
Mjg2ZThmOGEyNTljZDRhYWNjYjIuLjM0M2U5NmJjNTFlNzI3MjJmZjE2ZmFkODBjZjBkN2NjMjNl
M2I5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC02OTQsMTMgKzY5NCwxMSBAQCBp
ZiAoRU5BQkxFX1BMVUdJTl9QUk9DRVNTX0dUSzIpCiAgICAgICAgIFBsYXRmb3JtL01vZHVsZS5j
cHAKIAogICAgICAgICBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuY3BwCi0gICAgICAgIFBs
YXRmb3JtL0lQQy9Bcmd1bWVudERlY29kZXIuY3BwCi0gICAgICAgIFBsYXRmb3JtL0lQQy9Bcmd1
bWVudEVuY29kZXIuY3BwCiAgICAgICAgIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcAogICAg
ICAgICBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKICAgICAgICAgUGxhdGZvcm0vSVBDL0Rh
dGFSZWZlcmVuY2UuY3BwCi0gICAgICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlRGVjb2Rlci5jcHAK
LSAgICAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VFbmNvZGVyLmNwcAorICAgICAgICBQbGF0Zm9y
bS9JUEMvRGVjb2Rlci5jcHAKKyAgICAgICAgUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwCiAgICAg
ICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCiAgICAgICAgIFBsYXRmb3Jt
L0lQQy9NZXNzYWdlU2VuZGVyLmNwcAogICAgICAgICBQbGF0Zm9ybS9JUEMvU3RyaW5nUmVmZXJl
bmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTGVnYWN5
TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Vi
a2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKaW5kZXggMjQwZmM3Mzc0Y2Iz
OWUxZThmYjFhYWNhNmZkZjQ5YjI4N2EyYjA0ZS4uMmEwNTU2YTcxYWEyNTY4NGFkNmI1MDA4NjAx
MTk5MDYwY2VjZTQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQv
TGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCkBAIC0zNyw3
ICszNyw3IEBACiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5k
aWYKLSNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNp
bmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
ZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBT
T01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkgfHwgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYm
IChORVNURURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElP
TikpCkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBNZXNzYWdlcyB7CiAKIG5hbWVzcGFjZSBX
ZWJQYWdlIHsKIAotR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVs
YXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKK0dldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gZW5jb2Rl
cikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9lbmNvZGVyKFdURk1v
dmUoZW5jb2RlcikpCiB7CkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgR2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6c2VuZChjb25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRs
CiAgICAgcmV0dXJuIF9yZXN1bHQ7CiB9CiAKLVRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5
ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0
aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKK1Rlc3RN
dWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8
SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiBlbmNvZGVyKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2VuY29k
ZXIoV1RGTW92ZShlbmNvZGVyKSkKIHsKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFRlc3RNdWx0
aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlV2ViUGFnZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
KQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6
OkxvYWRVUkw6Om5hbWUoKSkgewogICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6
OldlYlBhZ2U6OkxvYWRVUkw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKQEAg
LTE4OCw3ICsxODgsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikK
K3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW46Om5hbWUoKSkgewogICAgICAg
ICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVj
b2RlciwgKnJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBl
Y3RlZC5oIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhw
ZWN0ZWQuaAppbmRleCA2Mzk3YzEwNDNmYWNhZjc2YWE4YjE0ZTYyZDM3ZGQ1MjY2MzI2ZjNiLi5k
MGM3NjI1ZmZlODk5ODJjOTYzYTMyNTA4YjViNjc0MWY3OGM4MDJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmgK
QEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKLSNpbmNsdWRlICJNZXNzYWdlRW5jb2Rlci5oIgorI2luY2x1ZGUgIkVuY29k
ZXIuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTdHJpbmdSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KQEAgLTM2NSwxNCArMzY1LDE0IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCiAgICAgc3Ry
dWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVkUmVw
bHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+KTsKKyAgICAgICAgRGVsYXllZFJl
cGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5j
b2Rlcj4pOwogICAgICAgICB+RGVsYXllZFJlcGx5KCk7CiAKICAgICAgICAgYm9vbCBzZW5kKGNv
bnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKTsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gbV9lbmNvZGVyOwogICAgIH07CiAK
ICAgICB0eXBlZGVmIElQQzo6QXJndW1lbnRzPElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJj4gUmVw
bHk7CkBAIC0zOTksMTQgKzM5OSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
aXNTeW5jID0gdHJ1ZTsKIAogICAgIHN0cnVjdCBEZWxheWVkUmVwbHkgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8RGVsYXllZFJlcGx5PiB7Ci0gICAgICAgIERlbGF5ZWRSZXBseShQYXNz
UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNv
ZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4s
IHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+KTsKICAgICAgICAgfkRlbGF5ZWRSZXBseSgp
OwogCiAgICAgICAgIGJvb2wgc2VuZCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRy
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpNZXNzYWdlRW5jb2Rlcj4gbV9lbmNvZGVyOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiBtX2VuY29kZXI7CiAgICAgfTsKIAogICAgIHR5cGVkZWYgSVBDOjpBcmd1
bWVudHM8PiBSZXBseTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCmluZGV4IDhkNWUxM2RlYWExNmUwZWMz
ODBhNWZmYmRhMGI0YWVjYmQ1YzI4MTcuLmI0YTE0OTY5MDA5NTI3YmU1NmVmODBmMGRkMDExYjgx
ZTM3MDg3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L01lc3Nh
Z2VSZWNlaXZlci1leHBlY3RlZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJr
aXQvTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2lmIFBM
QVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2VuZGlmCi0jaW5jbHVkZSAiTWVz
c2FnZURlY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaWYgKEVOQUJMRShUT1VDSF9F
VkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdF
X0NPTkRJVElPTikpIHx8IChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0Vf
Q09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQpAQCAtNTksNyArNTks
NyBAQCBuYW1lc3BhY2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgV2ViUGFnZSB7CiAKLUdldFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVm
UHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVz
c2FnZUVuY29kZXI+IGVuY29kZXIpCitHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rp
b24sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IGVuY29kZXIpCiAgICAgOiBtX2Nvbm5l
Y3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1fZW5jb2RlcihXVEZNb3ZlKGVuY29kZXIpKQogewpA
QCAtNzksNyArNzksNyBAQCBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk6OnNlbmQoY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbAogICAgIHJldHVybiBfcmVz
dWx0OwogfQogCi1UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRS
ZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCitUZXN0TXVsdGlwbGVBdHRyaWJ1dGVz
OjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4g
Y29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6
IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9lbmNvZGVyKFdURk1vdmUoZW5jb2Rl
cikpCiB7CkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpE
ZWxheWVkUmVwbHk6OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdl
OjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIElQQzo6TWVz
c2FnZURlY29kZXImIGRlY29kZXIpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRVUkw6
Om5hbWUoKSkgewogICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6
OkxvYWRVUkw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKQEAgLTE4OSw3ICsx
ODksNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlcgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29k
ZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFn
ZTo6Q3JlYXRlUGx1Z2luOjpuYW1lKCkpIHsKICAgICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlPE1l
c3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW4+KGRlY29kZXIsICpyZXBseUVuY29kZXIsIHRo
aXMsICZXZWJQYWdlOjpjcmVhdGVQbHVnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQvTWVzc2FnZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgKaW5kZXggNjM5N2MxMDQzZmFjYWY3NmFhOGIx
NGU2MmQzN2RkNTI2NjMyNmYzYi4uZDBjNzYyNWZmZTg5OTgyYzk2M2EzMjUwOGI1YjY3NDFmNzhj
ODAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXMt
ZXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlcy1l
eHBlY3RlZC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiTWVzc2FnZUVuY29kZXIuaCIKKyNpbmNs
dWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVm
ZXJlbmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CkBAIC0zNjUsMTQg
KzM2NSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsK
IAogICAgIHN0cnVjdCBEZWxheWVkUmVwbHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
RGVsYXllZFJlcGx5PiB7Ci0gICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CisgICAgICAg
IERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHN0ZDo6dW5pcXVlX3B0
cjxJUEM6OkVuY29kZXI+KTsKICAgICAgICAgfkRlbGF5ZWRSZXBseSgpOwogCiAgICAgICAgIGJv
b2wgc2VuZChjb25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2Vu
Y29kZXI7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IG1fZW5jb2RlcjsK
ICAgICB9OwogCiAgICAgdHlwZWRlZiBJUEM6OkFyZ3VtZW50czxJUEM6OkNvbm5lY3Rpb246Okhh
bmRsZSY+IFJlcGx5OwpAQCAtMzk5LDE0ICszOTksMTQgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKICAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5IDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBseT4gewotICAgICAgICBEZWxheWVk
UmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpN
ZXNzYWdlRW5jb2Rlcj4pOworICAgICAgICBEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNv
bm5lY3Rpb24+LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPik7CiAgICAgICAgIH5EZWxh
eWVkUmVwbHkoKTsKIAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gbV9lbmNvZGVyOwogICAgIH07CiAKICAgICB0eXBlZGVm
IElQQzo6QXJndW1lbnRzPD4gUmVwbHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA0MDdiNGRhNzVmMDQ5NDEzNGYyYjcy
OTNiMmExNTVmZWM4YmJmNDRiLi45YTg3MzU4YjA4NTQzNTE4ZDgwNDY2MzFiNTE5MzAzZTBhMzFj
NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVu
dENvZGVycy5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAog
bmFtZXNwYWNlIElQQyB7CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVy
YXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpG
aWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6
OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oZmlsdGVycy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
ZmlsdGVycy5zaXplKCk7ICsraSkgewpAQCAtOTksNyArOTksNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsCiAgICAgfQogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3Bl
cmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkZpbHRl
ck9wZXJhdGlvbnMmIGZpbHRlcnMpCitib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVy
T3BlcmF0aW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpGaWx0ZXJPcGVy
YXRpb25zJiBmaWx0ZXJzKQogewogICAgIHVpbnQzMl90IHNpemU7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzaXplKSkKQEAgLTE2OCw3ICsxNjgsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVy
YXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJhbnNmb3Jt
T3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUcmFu
c2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDx1aW50MzJfdD4odHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCkpOwogICAgIGZvciAo
Y29uc3QgYXV0byYgb3BlcmF0aW9uIDogdHJhbnNmb3JtT3BlcmF0aW9ucy5vcGVyYXRpb25zKCkp
IHsKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0
aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgfQogfQog
Ci1ib29sIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlv
bnMpCitib29sIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB0cmFuc2Zvcm1PcGVyYXRpb25zKQog
ewogICAgIHVpbnQzMl90IG9wZXJhdGlvbnNTaXplOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
b3BlcmF0aW9uc1NpemUpKQpAQCAtMzM1LDcgKzMzNSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxU
cmFuc2Zvcm1PcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVHJh
bnNmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZVRpbWluZ0Z1bmN0
aW9uKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWlu
Z0Z1bmN0aW9uKQorc3RhdGljIHZvaWQgZW5jb2RlVGltaW5nRnVuY3Rpb24oRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIGlmICgh
dGltaW5nRnVuY3Rpb24pIHsKICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKFRpbWluZ0Z1bmN0
aW9uOjpUaW1pbmdGdW5jdGlvblR5cGUoLTEpKTsKQEAgLTM3Niw3ICszNzYsNyBAQCBzdGF0aWMg
dm9pZCBlbmNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFRpbWluZ0Z1bmN0aW9uKgogICAgIH0KIH0KIAotYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWluZ0Z1
bmN0aW9uKQorYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihEZWNvZGVyJiBkZWNvZGVyLCBSZWZQ
dHI8VGltaW5nRnVuY3Rpb24+JiB0aW1pbmdGdW5jdGlvbikKIHsKICAgICBUaW1pbmdGdW5jdGlv
bjo6VGltaW5nRnVuY3Rpb25UeXBlIHR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0o
dHlwZSkpCkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0
aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBl
ckFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJB
bmltYXRpb24+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFu
aW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGVuY29kZXIgPDwgYW5pbWF0aW9uLm5hbWUoKTsK
ICAgICBlbmNvZGVyIDw8IGFuaW1hdGlvbi5ib3hTaXplKCk7CkBAIC00ODIsNyArNDgyLDcgQEAg
dm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+OjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb24KICAgICB9CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxU
ZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQorYm9vbCBBcmd1bWVudENvZGVyPFRl
eHR1cmVNYXBwZXJBbmltYXRpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVGV4dHVyZU1h
cHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIFN0cmluZyBuYW1lOwogICAgIEZsb2F0
U2l6ZSBib3hTaXplOwpAQCAtNTc1LDE4ICs1NzUsMTggQEAgYm9vbCBBcmd1bWVudENvZGVyPFRl
eHR1cmVNYXBwZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBU
ZXgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBw
ZXJBbmltYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4
dHVyZU1hcHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCit2b2lkIEFyZ3VtZW50Q29kZXI8VGV4
dHVyZU1hcHBlckFuaW1hdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4
dHVyZU1hcHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBhbmlt
YXRpb25zLmFuaW1hdGlvbnMoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBw
ZXJBbmltYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCitib29sIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1h
cHBlckFuaW1hdGlvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVGV4dHVyZU1hcHBlckFu
aW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGFuaW1h
dGlvbnMuYW5pbWF0aW9ucygpKTsKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9p
ZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPjo6ZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9r
ZW4mIHRva2VuKQordm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRv
a2VuPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzU3Vy
ZmFjZVRva2VuJiB0b2tlbikKIHsKICNpZiBPUyhEQVJXSU4pCiAgICAgZW5jb2RlciA8PCBBdHRh
Y2htZW50KHRva2VuLmZyb250QnVmZmVySGFuZGxlLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCk7
CkBAIC01OTYsNyArNTk2LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNz
U3VyZmFjZVRva2VuPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2QKICNlbmRpZgogfQog
Ci1ib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tl
biYgdG9rZW4pCitib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9r
ZW4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9r
ZW4mIHRva2VuKQogewogI2lmIE9TKERBUldJTikKICAgICBBdHRhY2htZW50IGZyb250QXR0YWNo
bWVudCwgYmFja0F0dGFjaG1lbnQ7CkBAIC02MTQsMTcgKzYxNCwxNyBAQCBib29sIEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZAogfQogI2VuZGlmCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRl
SW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN1cmZhY2VVcGRh
dGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBk
YXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5m
byYgc3VyZmFjZVVwZGF0ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxTdXJmYWNl
VXBkYXRlSW5mbz46OmVuY29kZShlbmNvZGVyLCBzdXJmYWNlVXBkYXRlSW5mbyk7CiB9CiAKLWJv
b2wgQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFN1cmZhY2VVcGRhdGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbykKK2Jvb2wg
QXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBTdXJmYWNlVXBkYXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8pCiB7CiAgICAgcmV0dXJuIFNp
bXBsZUFyZ3VtZW50Q29kZXI8U3VyZmFjZVVwZGF0ZUluZm8+OjpkZWNvZGUoZGVjb2Rlciwgc3Vy
ZmFjZVVwZGF0ZUluZm8pOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyU3RhdGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewogICAgIGVuY29k
ZXIgPDwgc3RhdGUuY2hhbmdlTWFzazsKIApAQCAtNzA1LDcgKzcwNSw3IEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShBcmd1bWVudEVu
Y29kZXImIGVuY29kCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY29tbWl0dGVkU2Nyb2xsT2Zm
c2V0OwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3Rh
dGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYgc3RhdGUpCitib29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUmIHN0YXRlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUuY2hh
bmdlTWFzaykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgwMiwyNyArODAyLDI3IEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFRpbGVVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQordm9pZCBBcmd1bWVudENvZGVyPFRp
bGVVcGRhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbGVVcGRhdGVJ
bmZvJiB1cGRhdGVJbmZvKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUlu
Zm8+OjplbmNvZGUoZW5jb2RlciwgdXBkYXRlSW5mbyk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2Rl
cjxUaWxlVXBkYXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRpbGVV
cGRhdGVJbmZvJiB1cGRhdGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZv
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFRpbGVVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQog
ewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZGVjb2Rl
KGRlY29kZXIsIHVwZGF0ZUluZm8pOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0
aW9uSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbGVDcmVh
dGlvbkluZm8mIHVwZGF0ZUluZm8pCit2b2lkIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5m
bz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaWxlQ3JlYXRpb25JbmZvJiB1cGRh
dGVJbmZvKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVu
Y29kZShlbmNvZGVyLCB1cGRhdGVJbmZvKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRpbGVD
cmVhdGlvbkluZm8+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUaWxlQ3JlYXRp
b25JbmZvJiB1cGRhdGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVGlsZUNyZWF0aW9uSW5mbyYgdXBkYXRlSW5mbykK
IHsKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6ZGVj
b2RlKGRlY29kZXIsIHVwZGF0ZUluZm8pOwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVDb29yZGlu
YXRlZFN1cmZhY2UoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWZQdHI8Q29vcmRp
bmF0ZWRTdXJmYWNlPiYgc3VyZmFjZSkKK3N0YXRpYyB2b2lkIGVuY29kZUNvb3JkaW5hdGVkU3Vy
ZmFjZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiYg
c3VyZmFjZSkKIHsKICAgICBib29sIGlzVmFsaWRTdXJmYWNlID0gZmFsc2U7CiAgICAgaWYgKCFz
dXJmYWNlKSB7CkBAIC04NDEsNyArODQxLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlQ29vcmRpbmF0
ZWRTdXJmYWNlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmUHRyPENvb3IKICAg
ICAgICAgZW5jb2RlciA8PCBoYW5kbGU7CiB9CiAKLXN0YXRpYyBib29sIGRlY29kZUNvb3JkaW5h
dGVkU3VyZmFjZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxDb29yZGluYXRlZFN1
cmZhY2U+JiBzdXJmYWNlKQorc3RhdGljIGJvb2wgZGVjb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKERl
Y29kZXImIGRlY29kZXIsIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBzdXJmYWNlKQogewog
ICAgIGJvb2wgaXNWYWxpZFN1cmZhY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1ZhbGlk
U3VyZmFjZSkpCkBAIC04NTgsNyArODU4LDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlQ29vcmRpbmF0
ZWRTdXJmYWNlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPENvb3JkaW5hdGUKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZSYgc3RhdGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRH
cmFwaGljc1N0YXRlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb3JkaW5hdGVk
R3JhcGhpY3NTdGF0ZSYgc3RhdGUpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0ZS5yb290Q29tcG9z
aXRpbmdMYXllcjsKICAgICBlbmNvZGVyIDw8IHN0YXRlLnNjcm9sbFBvc2l0aW9uOwpAQCAtODg5
LDcgKzg4OSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU+
OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjCiAgICAgZW5jb2RlciA8PCBzdGF0
ZS51cGRhdGVBdGxhc2VzVG9SZW1vdmU7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxDb29yZGlu
YXRlZEdyYXBoaWNzU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDb29y
ZGluYXRlZEdyYXBoaWNzU3RhdGUmIHN0YXRlKQorYm9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDb29yZGluYXRlZEdy
YXBoaWNzU3RhdGUmIHN0YXRlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUucm9v
dENvbXBvc2l0aW5nTGF5ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCmluZGV4IGVjZGQwMTRj
NWIxNjQ1MWExNTNiNWEyNmY0ZTRhZmQwYzFkOWY3NDMuLmY3MjRhYWFlZDAyMGVjOTE3ZmE4OWEy
NGU4NjZmYmQ2Y2U0M2EzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5oCkBAIC01NCw1NSArNTQsNTUgQEAgc3RydWN0IEdyYXBoaWNz
U3VyZmFjZVRva2VuOwogbmFtZXNwYWNlIElQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7
Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZpbHRl
ck9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucz4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1P
cGVyYXRpb25zJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdl
YkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMmKTsKIH07
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckFuaW1hdGlvbnM+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbnMmKTsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlv
bnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJBbmltYXRpb25zJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYpOwogfTsKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJBbmltYXRpb24mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiwgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlv
biYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6VGV4dHVyZU1h
cHBlckFuaW1hdGlvbiYpOwogfTsKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOworICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4m
KTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkdyYXBoaWNzU3Vy
ZmFjZVRva2VuJik7CiB9OwogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6U3VyZmFjZVVwZGF0ZUluZm8+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U3VyZmFjZVVwZGF0ZUluZm8mKTsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U3VyZmFjZVVw
ZGF0ZUluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXZWJDb3JlOjpTdXJmYWNlVXBkYXRlSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYp
OworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRp
bGVVcGRhdGVJbmZvJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpUaWxlVXBkYXRlSW5mbyYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6VGlsZVVwZGF0ZUluZm8mKTsKIH07CiAKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbz4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUaWxl
Q3JlYXRpb25JbmZvJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c1N0YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYpOwotICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUm
KTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NTdGF0ZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJik7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwCmluZGV4IGUzMjg5MDc1
Mzc1Njg4YWJiMTVmN2I5NzVkNTdiMjk1ZTJmNDkwYjkuLjJjNWMxMmY2MDdmZjU1ZjQzYTI2ZTJi
MTRhZmMwMjUwNjlmMzkwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNw
cApAQCAtNDAsNyArNDAsNyBAQCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6SGFuZGxl
KCkKIHsKIH0KIAotdm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJDb29yZGluYXRlZFN1
cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAg
ICBlbmNvZGVyIDw8IG1fc2l6ZSA8PCBtX2ZsYWdzOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNF
KQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlOjpl
bmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8
PCBtX2JpdG1hcEhhbmRsZTsKIH0KIAotYm9vbCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRs
ZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkK
K2Jvb2wgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFu
ZGxlLm1fc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0
ZWRTdXJmYWNlLmgKaW5kZXggNmQ3MDYyYjYwODM2YTRiZDgzMjZjYzJiZDU1ZjFjY2NmZDdlZTU1
ZS4uNmFiN2M2NDBlOGQ1YTg4MDJjYjJhMjVmZDcxYzAyMDgxYzhkZjc4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRT
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
V2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgKQEAgLTQzLDggKzQzLDggQEAgcHVibGljOgogICAgIHB1
YmxpYzoKICAgICAgICAgSGFuZGxlKCk7CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiwgSGFuZGxlJik7CisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0OworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgSGFu
ZGxlJik7CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICAgICAgV2ViQ29yZTo6R3Jh
cGhpY3NTdXJmYWNlVG9rZW4gZ3JhcGhpY3NTdXJmYWNlVG9rZW4oKSBjb25zdCB7IHJldHVybiBt
X2dyYXBoaWNzU3VyZmFjZVRva2VuOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVy
eVN0YXR1cy5jcHAKaW5kZXggZDAxMmQ3MDYzYjYwNWJkNDExMzgzZmRiM2Q1MmI4ZmE3MzZiOTc5
ZS4uODE1N2I0NWE0MDY5ZThmMzgwNzIzM2VjMzhjY2Y4ZWE5ZmZjZmY3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcApAQCAtNDUsNyArNDUsNyBAQCBXZWJC
YXR0ZXJ5U3RhdHVzOjp+V2ViQmF0dGVyeVN0YXR1cygpCiB7CiB9CiAKLXZvaWQgV2ViQmF0dGVy
eVN0YXR1czo6RGF0YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAordm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgaXNDaGFyZ2luZzsKICAgICBlbmNvZGVyIDw8
IGNoYXJnaW5nVGltZTsKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpE
YXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCBsZXZlbDsKIH0KIAotYm9vbCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERhdGEmIHJlc3VsdCkKK2Jvb2wgV2ViQmF0
dGVyeVN0YXR1czo6RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgRGF0YSYgcmVz
dWx0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzQ2hhcmdpbmcpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
QmF0dGVyeVN0YXR1cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMu
aAppbmRleCAyMjdhMzMyZDRkMjUyZDIzOTlhY2JiYmM1ZWQ4ZjQ4NWI4NDIyNTQwLi4zNDlhOGYw
NDUyYTE5Yzc0ZDA5YWY4YTQ2ODRhOGM1Njc2ODU0NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKQEAgLTI5LDE2ICsyOSwxNiBAQAogI2lmIEVOQUJMRShCQVRU
RVJZX1NUQVRVUykKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkFyZ3VtZW50
RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkRlY29k
ZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJCYXR0ZXJ5U3RhdHVzIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6
VHlwZTo6QmF0dGVyeVN0YXR1cz4gewogcHVibGljOgogICAgIHN0cnVjdCBEYXRhIHsKLSAgICAg
ICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgRGF0YSYpOworICAgICAgICB2
b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKElQQzo6RGVjb2RlciYsIERhdGEmKTsKIAogICAgICAgICBib29sIGlzQ2hhcmdpbmc7CiAg
ICAgICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9n
dGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwCmluZGV4IDdhMmQ2YzRhYWVkZTIyZTY3ZGFiYzk3ZWFm
OGFkY2Y2N2RlNjI5YTYuLmZkOTQ1YTA2MWQ0NGQyZGM5NTJjYzhhYjZhMzZiZDAzNGQ3ZTQxMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3Bw
CkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBJ
UEMgewogCi1zdGF0aWMgdm9pZCBlbmNvZGVJbWFnZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEdka1BpeGJ1ZiogcGl4YnVmKQorc3RhdGljIHZvaWQgZW5jb2RlSW1hZ2UoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgR2RrUGl4YnVmKiBwaXhidWYpCiB7CiAgICAgSW50U2l6ZSBpbWFn
ZVNpemUoZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgocGl4YnVmKSwgZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0
KHBpeGJ1ZikpOwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJs
ZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKGltYWdlU2l6ZSwgU2hhcmVhYmxlQml0bWFwOjpTdXBw
b3J0c0FscGhhKTsKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlSW1hZ2UoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBHZGtQaXhidWYqIHBpeGJ1ZikKICAgICBlbmNv
ZGVyIDw8IGhhbmRsZTsKIH0KIAotc3RhdGljIGJvb2wgZGVjb2RlSW1hZ2UoQXJndW1lbnREZWNv
ZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEdka1BpeGJ1Zj4mIHBpeGJ1ZikKK3N0YXRpYyBib29sIGRl
Y29kZUltYWdlKERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8R2RrUGl4YnVmPiYgcGl4YnVmKQog
ewogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGhhbmRsZSkpCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBib29sIGRlY29kZUltYWdl
KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHZGtQaXhidWY+JiBwaXhidWYpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZURhdGFPYmplY3QoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0KQorc3Rh
dGljIHZvaWQgZW5jb2RlRGF0YU9iamVjdChFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRhT2Jq
ZWN0R3RrKiBkYXRhT2JqZWN0KQogewogICAgIGJvb2wgaGFzVGV4dCA9IGRhdGFPYmplY3QtPmhh
c1RleHQoKTsKICAgICBlbmNvZGVyIDw8IGhhc1RleHQ7CkBAIC0xMTUsNyArMTE1LDcgQEAgc3Rh
dGljIHZvaWQgZW5jb2RlRGF0YU9iamVjdChBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IERhdGFPYmplY3RHdGsqIGRhdGEKICAgICAgICAgZW5jb2RlciA8PCBkYXRhT2JqZWN0LT51bmtu
b3duVHlwZXMoKTsKIH0KIAotc3RhdGljIGJvb2wgZGVjb2RlRGF0YU9iamVjdChBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiYgZGF0YU9iamVjdCkKK3N0YXRp
YyBib29sIGRlY29kZURhdGFPYmplY3QoRGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPERhdGFPYmpl
Y3RHdGs+JiBkYXRhT2JqZWN0KQogewogICAgIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiBkYXRhID0g
RGF0YU9iamVjdEd0azo6Y3JlYXRlKCk7CiAKQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0aWMgYm9v
bCBkZWNvZGVEYXRhT2JqZWN0KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPERhdGFP
YmplY3RHdGs+JiBkYQogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLXZvaWQgQXJndW1l
bnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IERyYWdEYXRhJiBkcmFnRGF0YSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAgICAgZW5j
b2RlciA8PCBkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpOwogICAgIGVuY29kZXIgPDwgZHJhZ0Rh
dGEuZ2xvYmFsUG9zaXRpb24oKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIEFyZ3VtZW50Q29k
ZXI8RHJhZ0RhdGE+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFn
RGF0YSYgZAogICAgICAgICBlbmNvZGVEYXRhT2JqZWN0KGVuY29kZXIsIHBsYXRmb3JtRGF0YSk7
CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIERyYWdEYXRhJiBkcmFnRGF0YSkKK2Jvb2wgQXJndW1lbnRDb2RlcjxEcmFn
RGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAg
ICAgSW50UG9pbnQgY2xpZW50UG9zaXRpb247CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjbGll
bnRQb3NpdGlvbikpCkBAIC0yMzYsMTQgKzIzNiwxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8RHJh
Z0RhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0YSYgZHJhZ0Rh
dAogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXN0YXRpYyB2b2lkIGVuY29k
ZUdLZXlGaWxlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgR0tleUZpbGUqIGtleUZpbGUpCitz
dGF0aWMgdm9pZCBlbmNvZGVHS2V5RmlsZShFbmNvZGVyJiBlbmNvZGVyLCBHS2V5RmlsZSoga2V5
RmlsZSkKIHsKICAgICBnc2l6ZSBkYXRhU2l6ZTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRhdGEo
Z19rZXlfZmlsZV90b19kYXRhKGtleUZpbGUsICZkYXRhU2l6ZSwgMCkpOwogICAgIGVuY29kZXIg
PDwgRGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhLmdldCgpKSwg
ZGF0YVNpemUpOwogfQogCi1zdGF0aWMgYm9vbCBkZWNvZGVHS2V5RmlsZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEdVbmlxdWVQdHI8R0tleUZpbGU+JiBrZXlGaWxlKQorc3RhdGljIGJvb2wg
ZGVjb2RlR0tleUZpbGUoRGVjb2RlciYgZGVjb2RlciwgR1VuaXF1ZVB0cjxHS2V5RmlsZT4mIGtl
eUZpbGUpCiB7CiAgICAgRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCkBAIC0yNjEsMTQgKzI2MSwxNCBAQCBzdGF0aWMg
Ym9vbCBkZWNvZGVHS2V5RmlsZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdVbmlxdWVQdHI8
R0tleUZpbGU+JiBrZXlGaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIsIEd0a1ByaW50U2V0dGluZ3MqIHByaW50U2V0dGluZ3MpCit2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBHdGtQcmludFNldHRpbmdzKiBwcmludFNldHRp
bmdzKQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmlsZV9uZXco
KSk7CiAgICAgZ3RrX3ByaW50X3NldHRpbmdzX3RvX2tleV9maWxlKHByaW50U2V0dGluZ3MsIGtl
eUZpbGUuZ2V0KCksICJQcmludCBTZXR0aW5ncyIpOwogICAgIGVuY29kZUdLZXlGaWxlKGVuY29k
ZXIsIGtleUZpbGUuZ2V0KCkpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mIHByaW50U2V0dGluZ3MpCitib29sIGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEd0a1ByaW50U2V0dGluZ3M+JiBwcmludFNl
dHRpbmdzKQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGU7CiAgICAgaWYgKCFk
ZWNvZGVHS2V5RmlsZShkZWNvZGVyLCBrZXlGaWxlKSkKQEAgLTI4NCwxNCArMjg0LDE0IEBAIGJv
b2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHdGtQcmludFNldHRp
bmdzPiYgcHJpbnRTZXR0aW5ncykKICAgICByZXR1cm4gcHJpbnRTZXR0aW5nczsKIH0KIAotdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHdGtQYWdlU2V0dXAqIHBhZ2VTZXR1
cCkKK3ZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIEd0a1BhZ2VTZXR1cCogcGFnZVNldHVw
KQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmlsZV9uZXcoKSk7
CiAgICAgZ3RrX3BhZ2Vfc2V0dXBfdG9fa2V5X2ZpbGUocGFnZVNldHVwLCBrZXlGaWxlLmdldCgp
LCAiUGFnZSBTZXR1cCIpOwogICAgIGVuY29kZUdLZXlGaWxlKGVuY29kZXIsIGtleUZpbGUuZ2V0
KCkpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8
R3RrUGFnZVNldHVwPiYgcGFnZVNldHVwKQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
R1JlZlB0cjxHdGtQYWdlU2V0dXA+JiBwYWdlU2V0dXApCiB7CiAgICAgR1VuaXF1ZVB0cjxHS2V5
RmlsZT4ga2V5RmlsZTsKICAgICBpZiAoIWRlY29kZUdLZXlGaWxlKGRlY29kZXIsIGtleUZpbGUp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0
ay5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5oCmluZGV4
IDgwYTVkYzFlZGViZWEwZDNkNjUzNTI4MDM0OGI1NGQ4NTBmMWRmZjAuLjAxYWM0Y2YwZWYxODVl
MTgwNWEyMTIwYmQ5Zjc2OGRhMTEyNzRjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Z3RrL0FyZ3VtZW50Q29kZXJzR3RrLmgKQEAgLTQxLDE2ICs0MSwxNiBAQCBuYW1lc3BhY2UgSVBD
IHsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkRyYWdEYXRhPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhJik7Ci0gICAgc3RhdGljIGJvb2wg
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkRyYWdEYXRhJik7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKIH07CiAjZW5k
aWYKIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgR3RrUHJpbnRTZXR0aW5ncyopOwot
Ym9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgR1JlZlB0cjxHdGtQcmludFNldHRpbmdzPiYp
Owordm9pZCBlbmNvZGUoRW5jb2RlciYsIEd0a1ByaW50U2V0dGluZ3MqKTsKK2Jvb2wgZGVjb2Rl
KERlY29kZXImLCBHUmVmUHRyPEd0a1ByaW50U2V0dGluZ3M+Jik7CiAKLXZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYsIEd0a1BhZ2VTZXR1cCopOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgR1JlZlB0cjxHdGtQYWdlU2V0dXA+Jik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgR3Rr
UGFnZVNldHVwKik7Citib29sIGRlY29kZShEZWNvZGVyJiwgR1JlZlB0cjxHdGtQYWdlU2V0dXA+
Jik7CiAKIH0gLy8gbmFtZXNwYWNlIElQQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDdlZDY3NjIy
MTI4MTZkMTQyYTViZTZiZjAzY2VhMDRmNDNjM2I1ZGMuLjBmOTcyYzAwMzY0OTk3MTRkZTc0ZjNk
NjEyMjVkZTM4YzliMGNlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgSVBDIHsKIAotdm9pZCBBcmd1bWVu
dENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQordm9p
ZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsK
ICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKTsKICAgICBlbmNv
ZGVyIDw8IHJlc291cmNlUmVxdWVzdC5odHRwTWV0aG9kKCk7CkBAIC02NCw3ICs2NCw3IEBAIHZv
aWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyCiAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlcXVlc3QuaW5p
dGlhdGluZ1BhZ2VJRCgpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0
Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCitib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1
ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVxdWVz
dCYgcmVzb3VyY2VSZXF1ZXN0KQogewogICAgIFN0cmluZyB1cmw7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSh1cmwpKQpAQCAtMTM0LDcgKzEzNCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNv
dXJjZVJlcXVlc3Q+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUlu
Zm8+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUlu
Zm8mIGNlcnRpZmljYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZp
Y2F0ZUluZm8pCiB7CiAgICAgaWYgKCFjZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGUoKSkgewog
ICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgQXJndW1l
bnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBDZXJ0CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oY2VydGlm
aWNhdGVJbmZvLnRsc0Vycm9ycygpKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENlcnRpZmlj
YXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENlcnRpZmljYXRlSW5m
byYgY2VydGlmaWNhdGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5m
bykKIHsKICAgICBib29sIGhhc0NlcnRpZmljYXRlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aGFzQ2VydGlmaWNhdGUpKQpAQCAtMTg0LDcgKzE4NCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxD
ZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZp
Y2F0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVy
cm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKK3ZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJj
ZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291
cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHJlc291
cmNlRXJyb3IudHlwZSgpKTsKICAgICBpZiAocmVzb3VyY2VFcnJvci5pc051bGwoKSkKQEAgLTE5
OCw3ICsxOTgsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBs
YXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsCiAgICAgZW5jb2RlciA8PCBDZXJ0
aWZpY2F0ZUluZm8ocmVzb3VyY2VFcnJvcik7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxSZXNv
dXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
UmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKK2Jvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJj
ZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFJlc291cmNlRXJy
b3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgUmVzb3VyY2VFcnJvckJhc2U6OlR5cGUgZXJyb3JU
eXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGVycm9yVHlwZSkpCkBAIC0yMzYsMjMg
KzIzNiwyMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRm
b3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29kZXIsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGVQbGF0Zm9ybURhdGEo
QXJndW1lbnRFbmNvZGVyJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJikKK3ZvaWQgQXJndW1lbnRD
b2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLWJv
b2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJn
dW1lbnREZWNvZGVyJiwgUHJvdGVjdGlvblNwYWNlJikKK2Jvb2wgQXJndW1lbnRDb2RlcjxQcm90
ZWN0aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIFByb3RlY3Rpb25TcGFj
ZSYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1
bWVudEVuY29kZXImLCBjb25zdCBDcmVkZW50aWFsJikKK3ZvaWQgQXJndW1lbnRDb2RlcjxDcmVk
ZW50aWFsPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBDcmVkZW50aWFsJikK
IHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENy
ZWRlbnRpYWw+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiwgQ3JlZGVudGlh
bCYpCitib29sIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJiwgQ3JlZGVudGlhbCYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xlZ2Fj
eVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xl
Z2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3BwCmluZGV4IDQ2MjdiYzk5MGY3NmZhNjA2YjJk
ZThlNDFiNjhmY2U0ZTZkMmRmZWMuLjMwM2Y5MTU4NGFjODkyYjIwZGUxNjk1MzgzZTZkMzg3YTY1
NmYyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9u
U3RhdGVDb2RpbmdOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5
U2Vzc2lvblN0YXRlQ29kaW5nTm9uZS5jcHAKQEAgLTI3LDggKzI3LDkgQEAKICNpbmNsdWRlICJM
ZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIKLSNpbmNs
dWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUg
IkVuY29kZXIuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKIApAQCAtMzYsNyArMzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogUmVmUHRyPEFQSTo6RGF0YT4gZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Np
b25TdGF0ZSYgc2Vzc2lvblN0YXRlKQogewotICAgIElQQzo6QXJndW1lbnRFbmNvZGVyIGVuY29k
ZXI7CisgICAgLy8gRklYTUU6IEknbSBub3Qgc3VyZSB3aGV0aGVyIHRoZXNlIGFyZSB0aGUgcHJv
cGVyIGFyZ3VtZW50cyBmb3IgdGhlIGVuY29kZXIuCisgICAgSVBDOjpFbmNvZGVyIGVuY29kZXIo
IklQQyIsICJMZWdhY3lTZXNzaW9uU3RhdGUiLCAwKTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25T
dGF0ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5y
ZW5kZXJUcmVlU2l6ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5wcm92aXNpb25hbFVS
TDsKQEAgLTQ1LDcgKzQ3LDcgQEAgUmVmUHRyPEFQSTo6RGF0YT4gZW5jb2RlTGVnYWN5U2Vzc2lv
blN0YXRlKGNvbnN0IFNlc3Npb25TdGF0ZSYgc2Vzc2lvblN0YXRlKQogCiBib29sIGRlY29kZUxl
Z2FjeVNlc3Npb25TdGF0ZShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIFNl
c3Npb25TdGF0ZSYgc2Vzc2lvblN0YXRlKQogewotICAgIElQQzo6QXJndW1lbnREZWNvZGVyIGRl
Y29kZXIoZGF0YSwgZGF0YVNpemUpOworICAgIElQQzo6RGVjb2RlciBkZWNvZGVyKElQQzo6RGF0
YVJlZmVyZW5jZShkYXRhLCBkYXRhU2l6ZSksIFZlY3RvcjxJUEM6OkF0dGFjaG1lbnQ+KCkpOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJkTGlzdFN0YXRl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Vzc2lv
blN0YXRlLnJlbmRlclRyZWVTaXplKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCmluZGV4IDY4NzMyODQ5ZjljODdlYWNkZWQwNWViZmVk
NjFjYmVmZWFiYWU4ZGIuLmM5N2E4OGVjN2VhNDE1NzcxNTA4MGRjYmM2NmFjMmI4YzYzMWQ1YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJv
eHkuaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVyZWZXZWJDb250ZXh0
U3VwcGxlbWVudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURl
Y29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdGFydFVwZGF0aW5n
KCk7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286538</attachid>
            <date>2016-08-20 01:59:25 -0700</date>
            <delta_ts>2016-08-20 02:10:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161020-20160820105731.patch</filename>
            <type>text/plain</type>
            <size>47157</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjViMjA2ZjhmMjY5ZDQ3
NDI2ZDhiZjlmYzExNzFjMzIzZmI0OTY2Yy4uZjFiNDBiNzlhZDE0YTBiMTJkYjU4YmNjYzYwZjhi
NTQwZjY0YTgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE2LTA4LTE5ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFVu
cmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBzaW5jZSByMjA0NjY1IGFuZCAyMDQ2NjgKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTAyMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHA6CisgICAgICAgIChJ
UEM6Ok1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkT3V0Z29pbmdNZXNzYWdlKToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHA6CisgICAgICAgIChJUEM6OkNvbm5l
Y3Rpb246OnByb2Nlc3NNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE91
dGdvaW5nTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAq
IFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3Nh
Z2VSZWNlaXZlci1leHBlY3RlZC5jcHA6CisgICAgICAgIChNZXNzYWdlczo6V2ViUGFnZTo6R2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KToKKyAg
ICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVk
UmVwbHk6OkRlbGF5ZWRSZXBseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2Vp
dmVXZWJQYWdlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVT
eW5jV2ViUGFnZU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3Nh
Z2VzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVy
LWV4cGVjdGVkLmNwcDoKKyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkpOgorICAgICAgICAoTWVz
c2FnZXM6OldlYlBhZ2U6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVs
YXllZFJlcGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
LmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0
ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUcmFu
c2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxU
cmFuc2Zvcm1PcGVyYXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6ZW5jb2RlVGltaW5n
RnVuY3Rpb24pOgorICAgICAgICAoSVBDOjpkZWNvZGVUaW1pbmdGdW5jdGlvbik6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj46OmVuY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbj46OmRlY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmlt
YXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpH
cmFwaGljc1N1cmZhY2VUb2tlbj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0
YXRlPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5m
bz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+
OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+
OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjplbmNvZGVDb29yZGluYXRlZFN1cmZhY2UpOgorICAg
ICAgICAoSVBDOjpkZWNvZGVDb29yZGluYXRlZFN1cmZhY2UpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJn
dW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJD
b29yZGluYXRlZFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29yZGluYXRlZFN1
cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29vcmRpbmF0ZWRT
dXJmYWNlOjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmg6CisgICAgICAgICogU2hhcmVkL1dlYkJhdHRl
cnlTdGF0dXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmg6CisgICAgICAgICogU2hhcmVk
L2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHA6CisgICAgICAgIChJUEM6OmVuY29kZUltYWdlKToK
KyAgICAgICAgKElQQzo6ZGVjb2RlSW1hZ2UpOgorICAgICAgICAoSVBDOjplbmNvZGVEYXRhT2Jq
ZWN0KToKKyAgICAgICAgKElQQzo6ZGVjb2RlRGF0YU9iamVjdCk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8RHJhZ0RhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPERyYWdEYXRhPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6ZW5jb2RlR0tleUZpbGUpOgor
ICAgICAgICAoSVBDOjpkZWNvZGVHS2V5RmlsZSk6CisgICAgICAgIChJUEM6OmVuY29kZSk6Cisg
ICAgICAgIChJUEM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVy
c0d0ay5oOgorICAgICAgICAqIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAu
Y3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29k
ZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1
ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxD
ZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENl
cnRpZmljYXRlSW5mbz46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVz
b3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9y
bURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+OjplbmNvZGVQ
bGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+Ojpk
ZWNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3Rh
dGVDb2RpbmdOb25lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZW5jb2RlTGVnYWN5U2Vzc2lvblN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6ZGVjb2RlTGVnYWN5U2Vzc2lvblN0YXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oOgorCiAyMDE2LTA4LTIwICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVyIHIyMDQ2NjUgYW5kIHIyMDQ2NjguCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CmluZGV4IDZkYmViNTkxMjcwMTlhNWIzZWNmNGJhNjk4MzEyYWQ4MzYxYTljYzku
LjRiMTc3NzIzOTRiODYzMmQ4MzAyZGZiOTYyYmVjMDc2N2IxMzkyMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CkBAIC0yMjAsOCArMjIwLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFBsYXRm
b3JtL0lQQy9BdHRhY2htZW50LmNwcAogICAgIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAog
ICAgIFBsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNwcAotICAgIFBsYXRmb3JtL0lQQy9FbmNv
ZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcAorICAgIFBsYXRmb3JtL0lQQy9F
bmNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVjZWl2ZXJNYXAuY3BwCiAgICAg
UGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCiAgICAgUGxhdGZvcm0vSVBDL1N0cmluZ1Jl
ZmVyZW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9NZXNz
YWdlUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNv
cmRlci5jcHAKaW5kZXggMmQ4ZjNkZjMwMmI2ZmE3MzJmMDNlMDEyOTZkNGVkNzQ0YWRlYTM4Zi4u
OWJmNzQ2MmEzMjFiYThiNDZlOTIyMzg1ZWY0YjgyODI5NmQyYjM0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHAKQEAgLTI5LDggKzI5LDgg
QEAKICNpZiBIQVZFKERUUkFDRSkKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRl
ICJNZXNzYWdlRGVjb2Rlci5oIgotI2luY2x1ZGUgIk1lc3NhZ2VFbmNvZGVyLmgiCisjaW5jbHVk
ZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVj
b3JkZXJQcm9iZXMuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIApAQCAtNDEsNyAr
NDEsNyBAQCBib29sIE1lc3NhZ2VSZWNvcmRlcjo6aXNFbmFibGVkKCkKICAgICByZXR1cm4gV0VC
S0lUTUVTU0FHRVJFQ09SREVSX01FU1NBR0VfUkVDRUlWRURfRU5BQkxFRCgpIHx8IFdFQktJVE1F
U1NBR0VSRUNPUkRFUl9NRVNTQUdFX1NFTlRfRU5BQkxFRCgpOwogfQogCi1zdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rva2VuPiBNZXNzYWdlUmVjb3Jk
ZXI6OnJlY29yZE91dGdvaW5nTWVzc2FnZShDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBNZXNzYWdl
RW5jb2RlciYgZW5jb2RlcikKK3N0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUmVjb3JkZXI6Ok1lc3Nh
Z2VQcm9jZXNzaW5nVG9rZW4+IE1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkT3V0Z29pbmdNZXNzYWdl
KENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEVuY29kZXImIGVuY29kZXIpCiB7CiAgICAgaWYgKCFp
c0VuYWJsZWQoKSB8fCAhY29ubmVjdGlvbi5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVj
dGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlv
blVuaXguY3BwCmluZGV4IDhjM2I2MDk3OTdmYWVhYTM2NGM1ZTgyNzcxN2IyY2ZhOWQ1OTk2YWIu
LjJhOGE5NDBiMzFkMzNkOTIzMWFiNDBhOGE1ZWUxYzQyYWE5MzRlODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKQEAgLTI0
NSw3ICsyNDUsNyBAQCBib29sIENvbm5lY3Rpb246OnByb2Nlc3NNZXNzYWdlKCkKICAgICBpZiAo
bWVzc2FnZUluZm8uaXNNZXNzYWdlQm9keUlzT3V0T2ZMaW5lKCkpCiAgICAgICAgIG1lc3NhZ2VC
b2R5ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ob29sTWVzc2FnZUJvZHktPmRhdGEoKSk7
CiAKLSAgICBhdXRvIGRlY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE1lc3NhZ2VEZWNvZGVyPihE
YXRhUmVmZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlSW5mby5ib2R5U2l6ZSgpKSwgV1RGTW92
ZShhdHRhY2htZW50cykpOworICAgIGF1dG8gZGVjb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8RGVj
b2Rlcj4oRGF0YVJlZmVyZW5jZShtZXNzYWdlQm9keSwgbWVzc2FnZUluZm8uYm9keVNpemUoKSks
IFdURk1vdmUoYXR0YWNobWVudHMpKTsKIAogICAgIHByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoV1RG
TW92ZShkZWNvZGVyKSk7CiAKQEAgLTQwMiw3ICs0MDIsNyBAQCBib29sIENvbm5lY3Rpb246OnBs
YXRmb3JtQ2FuU2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdAogICAgIHJldHVybiBtX2lzQ29u
bmVjdGVkOwogfQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3NhZ2Uoc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQorYm9vbCBDb25uZWN0aW9uOjpzZW5k
T3V0Z29pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNvZGVyKQogewogICAg
IENPTVBJTEVfQVNTRVJUKHNpemVvZihNZXNzYWdlSW5mbykgKyBhdHRhY2htZW50TWF4QW1vdW50
ICogc2l6ZW9mKHNpemVfdCkgPD0gbWVzc2FnZU1heFNpemUsIEF0dGFjaG1lbnRzRml0VG9NZXNz
YWdlSW5saW5lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9T
aGFyZWRNZW1vcnlVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVk
TWVtb3J5VW5peC5jcHAKaW5kZXggYWE1ZWFhMDgzMTUyMDNkMjRlMjdhNjlhOTIxOWYxMzBkMzUz
YWFmNi4uMjdiMjViN2U1YjNjN2QxNzQ5ODYxNDQ2ZjBlMDk2OTgyMjM1Mzg0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCkBAIC0y
OSw4ICsyOSw4IEBACiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAjaW5jbHVkZSAiU2hh
cmVkTWVtb3J5LmgiCiAKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJB
cmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiRW5jb2Rl
ci5oIgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxz
dGRsaWIuaD4KQEAgLTY0LDEyICs2NCwxMiBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpp
c051bGwoKSBjb25zdAogICAgIHJldHVybiBtX2F0dGFjaG1lbnQuZmlsZURlc2NyaXB0b3IoKSA9
PSAtMTsKIH0KIAotdm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHJlbGVh
c2VBdHRhY2htZW50KCk7CiB9CiAKLWJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCitib29sIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhh
bmRsZSkKIHsKICAgICBBU1NFUlRfQVJHKGhhbmRsZSwgaGFuZGxlLmlzTnVsbCgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2Vp
dmVyLWV4cGVjdGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1l
c3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKaW5kZXggMjQwZmM3Mzc0Y2IzOWUxZThmYjFhYWNh
NmZkZjQ5YjI4N2EyYjA0ZS4uMmEwNTU2YTcxYWEyNTY4NGFkNmI1MDA4NjAxMTk5MDYwY2VjZTQy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2Fn
ZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtp
dC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAj
aWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5kaWYKLSNpbmNsdWRl
ICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJQbHVn
aW4uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpZiAoRU5BQkxFKFRP
VUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElPTiAmJiBTT01FX09USEVSX01F
U1NBR0VfQ09ORElUSU9OKSkgfHwgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChORVNURURfTUVT
U0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikpCkBAIC01OSw3
ICs1OSw3IEBAIG5hbWVzcGFjZSBNZXNzYWdlcyB7CiAKIG5hbWVzcGFjZSBXZWJQYWdlIHsKIAot
R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBh
c3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKK0dldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29u
bmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6IG1f
Y29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9lbmNvZGVyKFdURk1vdmUoZW5jb2Rlcikp
CiB7CkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseTo6c2VuZChjb25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsCiAgICAgcmV0dXJu
IF9yZXN1bHQ7CiB9CiAKLVRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVs
YXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKK1Rlc3RNdWx0aXBsZUF0dHJp
YnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0
aW9uPiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiBlbmNvZGVyKQog
ICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX2VuY29kZXIoV1RGTW92ZShl
bmNvZGVyKSkKIHsKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFRlc3RNdWx0aXBsZUF0dHJpYnV0
ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdl
YlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlV2ViUGFnZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRVUkw6Om5h
bWUoKSkgewogICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6Okxv
YWRVUkw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKQEAgLTE4OCw3ICsxODgs
NyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
fQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnVu
aXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKK3ZvaWQgV2ViUGFn
ZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
IHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3Nh
Z2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW46Om5hbWUoKSkgewogICAgICAgICBJUEM6OmhhbmRs
ZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdpbj4oZGVjb2RlciwgKnJlcGx5
RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oIGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaAppbmRl
eCA2Mzk3YzEwNDNmYWNhZjc2YWE4YjE0ZTYyZDM3ZGQ1MjY2MzI2ZjNiLi5kMGM3NjI1ZmZlODk5
ODJjOTYzYTMyNTA4YjViNjc0MWY3OGM4MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmgKQEAgLTI5LDcgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIK
LSNpbmNsdWRlICJNZXNzYWdlRW5jb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIKICNpbmNs
dWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTdHJpbmdSZWZlcmVuY2UuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KQEAgLTM2NSwxNCArMzY1LDE0IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCiAgICAgc3RydWN0IERlbGF5ZWRS
ZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxheWVkUmVwbHk+IHsKLSAgICAg
ICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6TWVzc2FnZUVuY29kZXI+KTsKKyAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQ
dHI8SVBDOjpDb25uZWN0aW9uPiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4pOwogICAg
ICAgICB+RGVsYXllZFJlcGx5KCk7CiAKICAgICAgICAgYm9vbCBzZW5kKGNvbnN0IElQQzo6Q29u
bmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gbV9lbmNvZGVyOwogICAgIH07CiAKICAgICB0eXBlZGVm
IElQQzo6QXJndW1lbnRzPElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJj4gUmVwbHk7CkBAIC0zOTks
MTQgKzM5OSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1
ZTsKIAogICAgIHN0cnVjdCBEZWxheWVkUmVwbHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8RGVsYXllZFJlcGx5PiB7Ci0gICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6
Q29ubmVjdGlvbj4sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CisgICAg
ICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+KTsKICAgICAgICAgfkRlbGF5ZWRSZXBseSgpOwogCiAgICAgICAg
IGJvb2wgc2VuZCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOwotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdl
RW5jb2Rlcj4gbV9lbmNvZGVyOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiBtX2VuY29kZXI7CiAgICAgfTsKIAogICAgIHR5cGVkZWYgSVBDOjpBcmd1bWVudHM8PiBSZXBs
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNl
aXZlci1leHBlY3RlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9NZXNzYWdl
UmVjZWl2ZXItZXhwZWN0ZWQuY3BwCmluZGV4IDhkNWUxM2RlYWExNmUwZWMzODBhNWZmYmRhMGI0
YWVjYmQ1YzI4MTcuLmI0YTE0OTY5MDA5NTI3YmU1NmVmODBmMGRkMDExYjgxZTM3MDg3MDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L01lc3NhZ2VSZWNlaXZlci1l
eHBlY3RlZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTWVzc2FnZVJl
Y2VpdmVyLWV4cGVjdGVkLmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2lmIFBMQVRGT1JNKE1BQykK
ICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2VuZGlmCi0jaW5jbHVkZSAiTWVzc2FnZURlY29kZXIu
aCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaWYgKEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIChO
RVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9NRVNTQUdFX0NPTkRJVElPTikp
IHx8IChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01FU1NBR0VfQ09ORElUSU9OIHx8
IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQpAQCAtNTksNyArNTksNyBAQCBuYW1lc3Bh
Y2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgV2ViUGFnZSB7CiAKLUdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+
IGVuY29kZXIpCitHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxh
eWVkUmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24sIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+IGVuY29kZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVj
dGlvbikKICAgICAsIG1fZW5jb2RlcihXVEZNb3ZlKGVuY29kZXIpKQogewpAQCAtNzksNyArNzks
NyBAQCBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk6OnNlbmQo
Y29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbAogICAgIHJldHVybiBfcmVzdWx0OwogfQogCi1U
ZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVm
UHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVz
c2FnZUVuY29kZXI+IGVuY29kZXIpCitUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVw
bHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlv
bihjb25uZWN0aW9uKQogICAgICwgbV9lbmNvZGVyKFdURk1vdmUoZW5jb2RlcikpCiB7CkBAIC0x
MDQsNyArMTA0LDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6
OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRVUkw6Om5hbWUoKSkgewog
ICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkxvYWRVUkw+KGRl
Y29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lk
IFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
SVBDOjpNZXNzYWdlRGVjb2RlcgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lk
IFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCiB7CiAgICAg
aWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6Q3JlYXRlUGx1
Z2luOjpuYW1lKCkpIHsKICAgICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpXZWJQ
YWdlOjpDcmVhdGVQbHVnaW4+KGRlY29kZXIsICpyZXBseUVuY29kZXIsIHRoaXMsICZXZWJQYWdl
OjpjcmVhdGVQbHVnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJr
aXQvTWVzc2FnZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L01l
c3NhZ2VzLWV4cGVjdGVkLmgKaW5kZXggNjM5N2MxMDQzZmFjYWY3NmFhOGIxNGU2MmQzN2RkNTI2
NjMyNmYzYi4uZDBjNzYyNWZmZTg5OTgyYzk2M2EzMjUwOGI1YjY3NDFmNzhjODAyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXMtZXhwZWN0ZWQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9NZXNzYWdlcy1leHBlY3RlZC5oCkBA
IC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCi0jaW5jbHVkZSAiTWVzc2FnZUVuY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVy
LmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVmZXJlbmNlLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CkBAIC0zNjUsMTQgKzM2NSwxNCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAogICAgIHN0cnVj
dCBEZWxheWVkUmVwbHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGVsYXllZFJlcGx5
PiB7Ci0gICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBs
eShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29k
ZXI+KTsKICAgICAgICAgfkRlbGF5ZWRSZXBseSgpOwogCiAgICAgICAgIGJvb2wgc2VuZChjb25z
dCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhhbmRsZSk7CiAKICAgICBwcml2
YXRlOgogICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2VuY29kZXI7CisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IG1fZW5jb2RlcjsKICAgICB9OwogCiAg
ICAgdHlwZWRlZiBJUEM6OkFyZ3VtZW50czxJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSY+IFJlcGx5
OwpAQCAtMzk5LDE0ICszOTksMTQgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBib29sIGlz
U3luYyA9IHRydWU7CiAKICAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5IDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBseT4gewotICAgICAgICBEZWxheWVkUmVwbHkoUGFzc1Jl
ZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rl
cj4pOworICAgICAgICBEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPik7CiAgICAgICAgIH5EZWxheWVkUmVwbHkoKTsK
IAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4gbV9lbmNvZGVyOwogICAgIH07CiAKICAgICB0eXBlZGVmIElQQzo6QXJndW1l
bnRzPD4gUmVwbHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0Fy
Z3VtZW50Q29kZXJzLmNwcAppbmRleCA0MDdiNGRhNzVmMDQ5NDEzNGYyYjcyOTNiMmExNTVmZWM4
YmJmNDRiLi45YTg3MzU4YjA4NTQzNTE4ZDgwNDY2MzFiNTE5MzAzZTBhMzFjNGE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIElQ
QyB7CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0
aW9ucyYgZmlsdGVycykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJh
dGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
ZmlsdGVycy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmlsdGVycy5zaXpl
KCk7ICsraSkgewpAQCAtOTksNyArOTksNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsCiAgICAg
fQogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMm
IGZpbHRlcnMpCitib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBmaWx0
ZXJzKQogewogICAgIHVpbnQzMl90IHNpemU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXpl
KSkKQEAgLTE2OCw3ICsxNjgsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVy
T3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYg
dHJhbnNmb3JtT3BlcmF0aW9ucykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRp
b25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMm
IHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50
MzJfdD4odHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYg
b3BlcmF0aW9uIDogdHJhbnNmb3JtT3BlcmF0aW9ucy5vcGVyYXRpb25zKCkpIHsKQEAgLTIzNCw3
ICsyMzQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAgfQogfQogCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCitib29sIEFy
Z3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB0cmFuc2Zvcm1PcGVyYXRpb25zKQogewogICAgIHVpbnQz
Ml90IG9wZXJhdGlvbnNTaXplOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUob3BlcmF0aW9uc1Np
emUpKQpAQCAtMzM1LDcgKzMzNSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVy
YXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVHJhbnNmCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZVRpbWluZ0Z1bmN0aW9uKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQor
c3RhdGljIHZvaWQgZW5jb2RlVGltaW5nRnVuY3Rpb24oRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
VGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQogewogICAgIGlmICghdGltaW5nRnVuY3Rp
b24pIHsKICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKFRpbWluZ0Z1bmN0aW9uOjpUaW1pbmdG
dW5jdGlvblR5cGUoLTEpKTsKQEAgLTM3Niw3ICszNzYsNyBAQCBzdGF0aWMgdm9pZCBlbmNvZGVU
aW1pbmdGdW5jdGlvbihBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKgogICAgIH0KIH0KIAotYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWluZ0Z1bmN0aW9uKQorYm9v
bCBkZWNvZGVUaW1pbmdGdW5jdGlvbihEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8VGltaW5nRnVu
Y3Rpb24+JiB0aW1pbmdGdW5jdGlvbikKIHsKICAgICBUaW1pbmdGdW5jdGlvbjo6VGltaW5nRnVu
Y3Rpb25UeXBlIHR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlwZSkpCkBAIC00
NDMsNyArNDQzLDcgQEAgYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFuaW1hdGlvbiYg
YW5pbWF0aW9uKQordm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFuaW1hdGlvbiYgYW5p
bWF0aW9uKQogewogICAgIGVuY29kZXIgPDwgYW5pbWF0aW9uLm5hbWUoKTsKICAgICBlbmNvZGVy
IDw8IGFuaW1hdGlvbi5ib3hTaXplKCk7CkBAIC00ODIsNyArNDgyLDcgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb24KICAgICB9CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVy
QW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGV4dHVyZU1hcHBl
ckFuaW1hdGlvbiYgYW5pbWF0aW9uKQorYm9vbCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJB
bmltYXRpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVGV4dHVyZU1hcHBlckFuaW1hdGlv
biYgYW5pbWF0aW9uKQogewogICAgIFN0cmluZyBuYW1lOwogICAgIEZsb2F0U2l6ZSBib3hTaXpl
OwpAQCAtNTc1LDE4ICs1NzUsMTggQEAgYm9vbCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJB
bmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUZXgKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb25z
Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFu
aW1hdGlvbnMmIGFuaW1hdGlvbnMpCit2b2lkIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFu
aW1hdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1hcHBlckFu
aW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBhbmltYXRpb25zLmFuaW1h
dGlvbnMoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb25z
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGV4dHVyZU1hcHBlckFuaW1hdGlv
bnMmIGFuaW1hdGlvbnMpCitib29sIEFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlv
bnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVGV4dHVyZU1hcHBlckFuaW1hdGlvbnMmIGFu
aW1hdGlvbnMpCiB7CiAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGFuaW1hdGlvbnMuYW5pbWF0
aW9ucygpKTsKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mIHRva2VuKQor
dm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJiB0
b2tlbikKIHsKICNpZiBPUyhEQVJXSU4pCiAgICAgZW5jb2RlciA8PCBBdHRhY2htZW50KHRva2Vu
LmZyb250QnVmZmVySGFuZGxlLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCk7CkBAIC01OTYsNyAr
NTk2LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2Vu
Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2QKICNlbmRpZgogfQogCi1ib29sIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYgdG9rZW4pCiti
b29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mIHRva2VuKQog
ewogI2lmIE9TKERBUldJTikKICAgICBBdHRhY2htZW50IGZyb250QXR0YWNobWVudCwgYmFja0F0
dGFjaG1lbnQ7CkBAIC02MTQsMTcgKzYxNCwxNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZAog
fQogI2VuZGlmCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiBzdXJm
YWNlVXBkYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYgc3VyZmFjZVVw
ZGF0ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46
OmVuY29kZShlbmNvZGVyLCBzdXJmYWNlVXBkYXRlSW5mbyk7CiB9CiAKLWJvb2wgQXJndW1lbnRD
b2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFN1cmZhY2VVcGRhdGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbykKK2Jvb2wgQXJndW1lbnRDb2Rl
cjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTdXJmYWNlVXBk
YXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8pCiB7CiAgICAgcmV0dXJuIFNpbXBsZUFyZ3VtZW50
Q29kZXI8U3VyZmFjZVVwZGF0ZUluZm8+OjpkZWNvZGUoZGVjb2Rlciwgc3VyZmFjZVVwZGF0ZUlu
Zm8pOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3Rh
dGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewogICAgIGVuY29kZXIgPDwgc3RhdGUu
Y2hhbmdlTWFzazsKIApAQCAtNzA1LDcgKzcwNSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
CiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY29tbWl0dGVkU2Nyb2xsT2Zmc2V0OwogfQogCi1i
b29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYg
c3RhdGUpCitib29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUm
IHN0YXRlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUuY2hhbmdlTWFzaykpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgwMiwyNyArODAyLDI3IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUaWxl
VXBkYXRlSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbGVV
cGRhdGVJbmZvJiB1cGRhdGVJbmZvKQordm9pZCBBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZv
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbGVVcGRhdGVJbmZvJiB1cGRhdGVJ
bmZvKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZVVwZGF0ZUluZm8+OjplbmNvZGUo
ZW5jb2RlciwgdXBkYXRlSW5mbyk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxUaWxlVXBkYXRl
SW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFRpbGVVcGRhdGVJbmZvJiB1
cGRhdGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIFRpbGVVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogewogICAgIHJldHVy
biBTaW1wbGVBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZGVjb2RlKGRlY29kZXIsIHVw
ZGF0ZUluZm8pOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbGVDcmVhdGlvbkluZm8mIHVw
ZGF0ZUluZm8pCit2b2lkIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaWxlQ3JlYXRpb25JbmZvJiB1cGRhdGVJbmZvKQogewog
ICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5mbz46OmVuY29kZShlbmNvZGVy
LCB1cGRhdGVJbmZvKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+
OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUaWxlQ3JlYXRpb25JbmZvJiB1cGRh
dGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlvbkluZm8+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgVGlsZUNyZWF0aW9uSW5mbyYgdXBkYXRlSW5mbykKIHsKICAgICByZXR1
cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZvPjo6ZGVjb2RlKGRlY29kZXIs
IHVwZGF0ZUluZm8pOwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVDb29yZGluYXRlZFN1cmZhY2Uo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNl
PiYgc3VyZmFjZSkKK3N0YXRpYyB2b2lkIGVuY29kZUNvb3JkaW5hdGVkU3VyZmFjZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNlPiYgc3VyZmFjZSkKIHsK
ICAgICBib29sIGlzVmFsaWRTdXJmYWNlID0gZmFsc2U7CiAgICAgaWYgKCFzdXJmYWNlKSB7CkBA
IC04NDEsNyArODQxLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmUHRyPENvb3IKICAgICAgICAgZW5jb2Rl
ciA8PCBoYW5kbGU7CiB9CiAKLXN0YXRpYyBib29sIGRlY29kZUNvb3JkaW5hdGVkU3VyZmFjZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBzdXJm
YWNlKQorc3RhdGljIGJvb2wgZGVjb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKERlY29kZXImIGRlY29k
ZXIsIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBzdXJmYWNlKQogewogICAgIGJvb2wgaXNW
YWxpZFN1cmZhY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc1ZhbGlkU3VyZmFjZSkpCkBA
IC04NTgsNyArODU4LDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlQ29vcmRpbmF0ZWRTdXJmYWNlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPENvb3JkaW5hdGUKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT46OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NT
dGF0ZSYgc3RhdGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRl
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0ZS5yb290Q29tcG9zaXRpbmdMYXllcjsK
ICAgICBlbmNvZGVyIDw8IHN0YXRlLnNjcm9sbFBvc2l0aW9uOwpAQCAtODg5LDcgKzg4OSw3IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjCiAgICAgZW5jb2RlciA8PCBzdGF0ZS51cGRhdGVBdGxh
c2VzVG9SZW1vdmU7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNz
U3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDb29yZGluYXRlZEdyYXBo
aWNzU3RhdGUmIHN0YXRlKQorYm9vbCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NT
dGF0ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUm
IHN0YXRlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUucm9vdENvbXBvc2l0aW5n
TGF5ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRD
b2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCmluZGV4IGVjZGQwMTRjNWIxNjQ1MWExNTNi
NWEyNmY0ZTRhZmQwYzFkOWY3NDMuLmY3MjRhYWFlZDAyMGVjOTE3ZmE4OWEyNGU4NjZmYmQ2Y2U0
M2EzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVu
dENvZGVycy5oCkBAIC01NCw1NSArNTQsNTUgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVRva2Vu
OwogbmFtZXNwYWNlIElQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6RmlsdGVyT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJik7Ci0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMm
KTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZpbHRl
ck9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OkZpbHRlck9wZXJhdGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb25zJik7
Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRyYW5z
Zm9ybU9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMmKTsKIH07CiAKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+
IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbnMmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbnMmKTsKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRleHR1cmVNYXBwZXJB
bmltYXRpb25zJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRleHR1cmVNYXBwZXJB
bmltYXRpb24mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYpOworICAgIHN0
YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlv
biYpOwogfTsKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQogdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc1N1
cmZhY2VUb2tlbiYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBX
ZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4mKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuJik7
CiB9OwogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
U3VyZmFjZVVwZGF0ZUluZm8+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6U3VyZmFjZVVwZGF0ZUluZm8mKTsKLSAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U3VyZmFjZVVwZGF0ZUluZm8mKTsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlN1cmZhY2VV
cGRhdGVJbmZvJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpT
dXJmYWNlVXBkYXRlSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOworICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvPiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZv
Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRp
bGVVcGRhdGVJbmZvJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpUaWxlVXBkYXRlSW5mbyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiwgV2ViQ29yZTo6VGlsZVVwZGF0ZUluZm8mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbz4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUaWxlQ3JlYXRpb25JbmZv
Jik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRp
bGVDcmVhdGlvbkluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVu
dERlY29kZXImLCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmKTsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhp
Y3NTdGF0ZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc1N0YXRlJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3Jk
aW5hdGVkU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwCmluZGV4IGUzMjg5MDc1Mzc1Njg4YWJiMTVm
N2I5NzVkNTdiMjk1ZTJmNDkwYjkuLjJjNWMxMmY2MDdmZjU1ZjQzYTI2ZTJiMTRhZmMwMjUwNjlm
MzkwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcApAQCAtNDAsNyAr
NDAsNyBAQCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6SGFuZGxlKCkKIHsKIH0KIAot
dm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRs
ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8
IG1fc2l6ZSA8PCBtX2ZsYWdzOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQpAQCAtNTEsNyAr
NTEsNyBAQCB2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFuZGxlOjplbmNvZGUoSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX2JpdG1hcEhh
bmRsZTsKIH0KIAotYm9vbCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKK2Jvb2wgV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEhh
bmRsZSYgaGFuZGxlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFuZGxlLm1fc2l6ZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgK
aW5kZXggNmQ3MDYyYjYwODM2YTRiZDgzMjZjYzJiZDU1ZjFjY2NmZDdlZTU1ZS4uNmFiN2M2NDBl
OGQ1YTg4MDJjYjJhMjVmZDcxYzAyMDgxYzhkZjc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0
ZWRTdXJmYWNlLmgKQEAgLTQzLDggKzQzLDggQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAg
ICAgSGFuZGxlKCk7CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXIm
KSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVy
JiwgSGFuZGxlJik7CisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0Owor
ICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgSGFuZGxlJik7CiAKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICAgICAgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNl
VG9rZW4gZ3JhcGhpY3NTdXJmYWNlVG9rZW4oKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzU3Vy
ZmFjZVRva2VuOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVy
eVN0YXR1cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAK
aW5kZXggZDAxMmQ3MDYzYjYwNWJkNDExMzgzZmRiM2Q1MmI4ZmE3MzZiOTc5ZS4uODE1N2I0NWE0
MDY5ZThmMzgwNzIzM2VjMzhjY2Y4ZWE5ZmZjZmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcApAQCAtNDUsNyArNDUsNyBAQCBXZWJCYXR0ZXJ5U3RhdHVz
Ojp+V2ViQmF0dGVyeVN0YXR1cygpCiB7CiB9CiAKLXZvaWQgV2ViQmF0dGVyeVN0YXR1czo6RGF0
YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJC
YXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewogICAgIGVuY29kZXIgPDwgaXNDaGFyZ2luZzsKICAgICBlbmNvZGVyIDw8IGNoYXJnaW5nVGlt
ZTsKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUo
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBsZXZl
bDsKIH0KIAotYm9vbCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIERhdGEmIHJlc3VsdCkKK2Jvb2wgV2ViQmF0dGVyeVN0YXR1czo6
RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgRGF0YSYgcmVzdWx0KQogewogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzQ2hhcmdpbmcpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1
cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaAppbmRleCAyMjdh
MzMyZDRkMjUyZDIzOTlhY2JiYmM1ZWQ4ZjQ4NWI4NDIyNTQwLi4zNDlhOGYwNDUyYTE5Yzc0ZDA5
YWY4YTQ2ODRhOGM1Njc2ODU0NmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQmF0dGVyeVN0YXR1cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5
U3RhdHVzLmgKQEAgLTI5LDE2ICsyOSwxNiBAQAogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgot
I2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgIkRlY29kZXIuaCIKKyNpbmNs
dWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJCYXR0ZXJ5
U3RhdHVzIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QmF0dGVy
eVN0YXR1cz4gewogcHVibGljOgogICAgIHN0cnVjdCBEYXRhIHsKLSAgICAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgRGF0YSYpOworICAgICAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKKyAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIERhdGEmKTsKIAogICAgICAgICBib29sIGlzQ2hhcmdpbmc7CiAgICAgICAgIGRvdWJs
ZSBjaGFyZ2luZ1RpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0Fy
Z3VtZW50Q29kZXJzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRD
b2RlcnNHdGsuY3BwCmluZGV4IDdhMmQ2YzRhYWVkZTIyZTY3ZGFiYzk3ZWFmOGFkY2Y2N2RlNjI5
YTYuLmZkOTQ1YTA2MWQ0NGQyZGM5NTJjYzhhYjZhMzZiZDAzNGQ3ZTQxMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwCkBAIC00MSw3ICs0
MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCi1zdGF0
aWMgdm9pZCBlbmNvZGVJbWFnZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEdka1Bp
eGJ1ZiogcGl4YnVmKQorc3RhdGljIHZvaWQgZW5jb2RlSW1hZ2UoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgR2RrUGl4YnVmKiBwaXhidWYpCiB7CiAgICAgSW50U2l6ZSBpbWFnZVNpemUoZ2RrX3Bp
eGJ1Zl9nZXRfd2lkdGgocGl4YnVmKSwgZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0KHBpeGJ1ZikpOwog
ICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3Jl
YXRlU2hhcmVhYmxlKGltYWdlU2l6ZSwgU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhKTsK
QEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlSW1hZ2UoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBHZGtQaXhidWYqIHBpeGJ1ZikKICAgICBlbmNvZGVyIDw8IGhhbmRs
ZTsKIH0KIAotc3RhdGljIGJvb2wgZGVjb2RlSW1hZ2UoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBHUmVmUHRyPEdka1BpeGJ1Zj4mIHBpeGJ1ZikKK3N0YXRpYyBib29sIGRlY29kZUltYWdlKERl
Y29kZXImIGRlY29kZXIsIEdSZWZQdHI8R2RrUGl4YnVmPiYgcGl4YnVmKQogewogICAgIFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRs
ZSkpCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBib29sIGRlY29kZUltYWdlKEFyZ3VtZW50RGVj
b2RlciYgZGVjb2RlciwgR1JlZlB0cjxHZGtQaXhidWY+JiBwaXhidWYpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZURhdGFPYmplY3QoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0KQorc3RhdGljIHZvaWQgZW5j
b2RlRGF0YU9iamVjdChFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRhT2JqZWN0R3RrKiBkYXRh
T2JqZWN0KQogewogICAgIGJvb2wgaGFzVGV4dCA9IGRhdGFPYmplY3QtPmhhc1RleHQoKTsKICAg
ICBlbmNvZGVyIDw8IGhhc1RleHQ7CkBAIC0xMTUsNyArMTE1LDcgQEAgc3RhdGljIHZvaWQgZW5j
b2RlRGF0YU9iamVjdChBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERhdGFPYmplY3RH
dGsqIGRhdGEKICAgICAgICAgZW5jb2RlciA8PCBkYXRhT2JqZWN0LT51bmtub3duVHlwZXMoKTsK
IH0KIAotc3RhdGljIGJvb2wgZGVjb2RlRGF0YU9iamVjdChBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiYgZGF0YU9iamVjdCkKK3N0YXRpYyBib29sIGRlY29k
ZURhdGFPYmplY3QoRGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPERhdGFPYmplY3RHdGs+JiBkYXRh
T2JqZWN0KQogewogICAgIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiBkYXRhID0gRGF0YU9iamVjdEd0
azo6Y3JlYXRlKCk7CiAKQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0aWMgYm9vbCBkZWNvZGVEYXRh
T2JqZWN0KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPERhdGFPYmplY3RHdGs+JiBk
YQogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLXZvaWQgQXJndW1lbnRDb2RlcjxEcmFn
RGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERyYWdEYXRhJiBk
cmFnRGF0YSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAgICAgZW5jb2RlciA8PCBkcmFn
RGF0YS5jbGllbnRQb3NpdGlvbigpOwogICAgIGVuY29kZXIgPDwgZHJhZ0RhdGEuZ2xvYmFsUG9z
aXRpb24oKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+
OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFnRGF0YSYgZAogICAg
ICAgICBlbmNvZGVEYXRhT2JqZWN0KGVuY29kZXIsIHBsYXRmb3JtRGF0YSk7CiB9CiAKLWJvb2wg
QXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IERyYWdEYXRhJiBkcmFnRGF0YSkKK2Jvb2wgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAgICAgSW50UG9pbnQg
Y2xpZW50UG9zaXRpb247CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjbGllbnRQb3NpdGlvbikp
CkBAIC0yMzYsMTQgKzIzNiwxNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0YSYgZHJhZ0RhdAogfQogI2VuZGlm
IC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXN0YXRpYyB2b2lkIGVuY29kZUdLZXlGaWxlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlciwgR0tleUZpbGUqIGtleUZpbGUpCitzdGF0aWMgdm9pZCBl
bmNvZGVHS2V5RmlsZShFbmNvZGVyJiBlbmNvZGVyLCBHS2V5RmlsZSoga2V5RmlsZSkKIHsKICAg
ICBnc2l6ZSBkYXRhU2l6ZTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IGRhdGEoZ19rZXlfZmlsZV90
b19kYXRhKGtleUZpbGUsICZkYXRhU2l6ZSwgMCkpOwogICAgIGVuY29kZXIgPDwgRGF0YVJlZmVy
ZW5jZShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhLmdldCgpKSwgZGF0YVNpemUpOwog
fQogCi1zdGF0aWMgYm9vbCBkZWNvZGVHS2V5RmlsZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IEdVbmlxdWVQdHI8R0tleUZpbGU+JiBrZXlGaWxlKQorc3RhdGljIGJvb2wgZGVjb2RlR0tleUZp
bGUoRGVjb2RlciYgZGVjb2RlciwgR1VuaXF1ZVB0cjxHS2V5RmlsZT4mIGtleUZpbGUpCiB7CiAg
ICAgRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
ZGF0YVJlZmVyZW5jZSkpCkBAIC0yNjEsMTQgKzI2MSwxNCBAQCBzdGF0aWMgYm9vbCBkZWNvZGVH
S2V5RmlsZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdVbmlxdWVQdHI8R0tleUZpbGU+JiBr
ZXlGaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIEd0a1ByaW50U2V0dGluZ3MqIHByaW50U2V0dGluZ3MpCit2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBHdGtQcmludFNldHRpbmdzKiBwcmludFNldHRpbmdzKQogewogICAg
IEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmlsZV9uZXcoKSk7CiAgICAgZ3Rr
X3ByaW50X3NldHRpbmdzX3RvX2tleV9maWxlKHByaW50U2V0dGluZ3MsIGtleUZpbGUuZ2V0KCks
ICJQcmludCBTZXR0aW5ncyIpOwogICAgIGVuY29kZUdLZXlGaWxlKGVuY29kZXIsIGtleUZpbGUu
Z2V0KCkpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdSZWZQ
dHI8R3RrUHJpbnRTZXR0aW5ncz4mIHByaW50U2V0dGluZ3MpCitib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBHUmVmUHRyPEd0a1ByaW50U2V0dGluZ3M+JiBwcmludFNldHRpbmdzKQogewog
ICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGU7CiAgICAgaWYgKCFkZWNvZGVHS2V5Rmls
ZShkZWNvZGVyLCBrZXlGaWxlKSkKQEAgLTI4NCwxNCArMjg0LDE0IEBAIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHdGtQcmludFNldHRpbmdzPiYgcHJpbnRT
ZXR0aW5ncykKICAgICByZXR1cm4gcHJpbnRTZXR0aW5nczsKIH0KIAotdm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHdGtQYWdlU2V0dXAqIHBhZ2VTZXR1cCkKK3ZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIEd0a1BhZ2VTZXR1cCogcGFnZVNldHVwKQogewogICAgIEdV
bmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmlsZV9uZXcoKSk7CiAgICAgZ3RrX3Bh
Z2Vfc2V0dXBfdG9fa2V5X2ZpbGUocGFnZVNldHVwLCBrZXlGaWxlLmdldCgpLCAiUGFnZSBTZXR1
cCIpOwogICAgIGVuY29kZUdLZXlGaWxlKGVuY29kZXIsIGtleUZpbGUuZ2V0KCkpOwogfQogCi1i
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8R3RrUGFnZVNldHVw
PiYgcGFnZVNldHVwKQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHdGtQ
YWdlU2V0dXA+JiBwYWdlU2V0dXApCiB7CiAgICAgR1VuaXF1ZVB0cjxHS2V5RmlsZT4ga2V5Rmls
ZTsKICAgICBpZiAoIWRlY29kZUdLZXlGaWxlKGRlY29kZXIsIGtleUZpbGUpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5oCmluZGV4IDgwYTVkYzFlZGVi
ZWEwZDNkNjUzNTI4MDM0OGI1NGQ4NTBmMWRmZjAuLjAxYWM0Y2YwZWYxODVlMTgwNWEyMTIwYmQ5
Zjc2OGRhMTEyNzRjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJn
dW1lbnRDb2RlcnNHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50
Q29kZXJzR3RrLmgKQEAgLTQxLDE2ICs0MSwxNiBAQCBuYW1lc3BhY2UgSVBDIHsKIAogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkRyYWdEYXRhPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OkRyYWdEYXRhJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYpOworICAgIHN0YXRpYyBib29sIGRl
Y29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKIH07CiAjZW5kaWYKIAotdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgR3RrUHJpbnRTZXR0aW5ncyopOwotYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgR1JlZlB0cjxHdGtQcmludFNldHRpbmdzPiYpOwordm9pZCBlbmNv
ZGUoRW5jb2RlciYsIEd0a1ByaW50U2V0dGluZ3MqKTsKK2Jvb2wgZGVjb2RlKERlY29kZXImLCBH
UmVmUHRyPEd0a1ByaW50U2V0dGluZ3M+Jik7CiAKLXZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciYsIEd0a1BhZ2VTZXR1cCopOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgR1JlZlB0
cjxHdGtQYWdlU2V0dXA+Jik7Cit2b2lkIGVuY29kZShFbmNvZGVyJiwgR3RrUGFnZVNldHVwKik7
Citib29sIGRlY29kZShEZWNvZGVyJiwgR1JlZlB0cjxHdGtQYWdlU2V0dXA+Jik7CiAKIH0gLy8g
bmFtZXNwYWNlIElQQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDdlZDY3NjIyMTI4MTZkMTQyYTVi
ZTZiZjAzY2VhMDRmNDNjM2I1ZGMuLjBmOTcyYzAwMzY0OTk3MTRkZTc0ZjNkNjEyMjVkZTM4Yzli
MGNlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1
bWVudENvZGVyc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNv
cmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCkBAIC0zOSw3ICszOSw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgSVBDIHsKIAotdm9pZCBBcmd1bWVudENvZGVyPFJlc291
cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQordm9pZCBBcmd1bWVudENv
ZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKIHsKICAgICBlbmNvZGVy
IDw8IHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKTsKICAgICBlbmNvZGVyIDw8IHJlc291
cmNlUmVxdWVzdC5odHRwTWV0aG9kKCk7CkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyCiAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlcXVlc3QuaW5pdGlhdGluZ1BhZ2VJ
RCgpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxh
dGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QpCitib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2Rl
UGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0KQogewogICAgIFN0cmluZyB1cmw7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh1cmwp
KQpAQCAtMTM0LDcgKzEzNCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+
OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCiB7
CiAgICAgaWYgKCFjZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGUoKSkgewogICAgICAgICBlbmNv
ZGVyIDw8IGZhbHNlOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0
aWZpY2F0ZUluZm8+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0
CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oY2VydGlmaWNhdGVJbmZvLnRs
c0Vycm9ycygpKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNh
dGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKIHsKICAgICBi
b29sIGhhc0NlcnRpZmljYXRlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzQ2VydGlmaWNh
dGUpKQpAQCAtMTg0LDcgKzE4NCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUlu
Zm8+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5jb2Rl
UGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVzb3VyY2VFcnJv
ciYgcmVzb3VyY2VFcnJvcikKK3ZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZW5j
b2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJl
c291cmNlRXJyb3IpCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHJlc291cmNlRXJyb3IudHlw
ZSgpKTsKICAgICBpZiAocmVzb3VyY2VFcnJvci5pc051bGwoKSkKQEAgLTE5OCw3ICsxOTgsNyBA
QCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YShB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsCiAgICAgZW5jb2RlciA8PCBDZXJ0aWZpY2F0ZUluZm8o
cmVzb3VyY2VFcnJvcik7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVzb3VyY2VFcnJv
ciYgcmVzb3VyY2VFcnJvcikKK2Jvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUVycm9yPjo6ZGVj
b2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFJlc291cmNlRXJyb3ImIHJlc291cmNl
RXJyb3IpCiB7CiAgICAgUmVzb3VyY2VFcnJvckJhc2U6OlR5cGUgZXJyb3JUeXBlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKGVycm9yVHlwZSkpCkBAIC0yMzYsMjMgKzIzNiwyMyBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0YShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1l
bnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnRFbmNv
ZGVyJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJikKK3ZvaWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0
aW9uU3BhY2U+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYsIGNvbnN0IFByb3RlY3Rpb25T
cGFjZSYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLWJvb2wgQXJndW1lbnRD
b2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVy
JiwgUHJvdGVjdGlvblNwYWNlJikKK2Jvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+
OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIFByb3RlY3Rpb25TcGFjZSYpCiB7CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEFyZ3Vt
ZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXIm
LCBjb25zdCBDcmVkZW50aWFsJikKK3ZvaWQgQXJndW1lbnRDb2RlcjxDcmVkZW50aWFsPjo6ZW5j
b2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBDcmVkZW50aWFsJikKIHsKICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENyZWRlbnRpYWw+Ojpk
ZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiwgQ3JlZGVudGlhbCYpCitib29sIEFy
Z3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgQ3Jl
ZGVudGlhbCYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0
ZUNvZGluZ05vbmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25T
dGF0ZUNvZGluZ05vbmUuY3BwCmluZGV4IDQ2MjdiYzk5MGY3NmZhNjA2YjJkZThlNDFiNjhmY2U0
ZTZkMmRmZWMuLjMwM2Y5MTU4NGFjODkyYjIwZGUxNjk1MzgzZTZkMzg3YTY1NmYyZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdO
b25lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRl
Q29kaW5nTm9uZS5jcHAKQEAgLTI3LDggKzI3LDkgQEAKICNpbmNsdWRlICJMZWdhY3lTZXNzaW9u
U3RhdGVDb2RpbmcuaCIKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIKLSNpbmNsdWRlICJBcmd1bWVu
dERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJEYXRh
UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIK
ICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKIApAQCAtMzYsNyArMzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUmVmUHRyPEFQ
STo6RGF0YT4gZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25TdGF0ZSYgc2Vz
c2lvblN0YXRlKQogewotICAgIElQQzo6QXJndW1lbnRFbmNvZGVyIGVuY29kZXI7CisgICAgLy8g
RklYTUU6IEknbSBub3Qgc3VyZSB3aGV0aGVyIHRoZXNlIGFyZSB0aGUgcHJvcGVyIGFyZ3VtZW50
cyBmb3IgdGhlIGVuY29kZXIuCisgICAgSVBDOjpFbmNvZGVyIGVuY29kZXIoIklQQyIsICJMZWdh
Y3lTZXNzaW9uU3RhdGUiLCAwKTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5iYWNrRm9y
d2FyZExpc3RTdGF0ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5yZW5kZXJUcmVlU2l6
ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTDsKQEAgLTQ1LDcg
KzQ3LDcgQEAgUmVmUHRyPEFQSTo6RGF0YT4gZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0
IFNlc3Npb25TdGF0ZSYgc2Vzc2lvblN0YXRlKQogCiBib29sIGRlY29kZUxlZ2FjeVNlc3Npb25T
dGF0ZShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIFNlc3Npb25TdGF0ZSYg
c2Vzc2lvblN0YXRlKQogewotICAgIElQQzo6QXJndW1lbnREZWNvZGVyIGRlY29kZXIoZGF0YSwg
ZGF0YVNpemUpOworICAgIElQQzo6RGVjb2RlciBkZWNvZGVyKElQQzo6RGF0YVJlZmVyZW5jZShk
YXRhLCBkYXRhU2l6ZSksIFZlY3RvcjxJUEM6OkF0dGFjaG1lbnQ+KCkpOwogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJkTGlzdFN0YXRlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Vzc2lvblN0YXRlLnJlbmRl
clRyZWVTaXplKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0
ZXJ5TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1h
bmFnZXJQcm94eS5oCmluZGV4IDY4NzMyODQ5ZjljODdlYWNkZWQwNWViZmVkNjFjYmVmZWFiYWU4
ZGIuLmM5N2E4OGVjN2VhNDE1NzcxNTA4MGRjYmM2NmFjMmI4YzYzMWQ1YzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaApAQCAtNjQs
NyArNjQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgp
IG92ZXJyaWRlOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CiAgICAgdm9p
ZCBzdG9wVXBkYXRpbmcoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286539</attachid>
            <date>2016-08-20 02:10:19 -0700</date>
            <delta_ts>2016-08-20 02:40:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161020-20160820110825.patch</filename>
            <type>text/plain</type>
            <size>47118</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjViMjA2ZjhmMjY5ZDQ3
NDI2ZDhiZjlmYzExNzFjMzIzZmI0OTY2Yy4uOTY5OWQxMGYwYmQxZDA3NDYxMTFlZWQ3YjZhNmFm
ZGZlZDYyODBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDE2LTA4LTE5ICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFVu
cmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBzaW5jZSByMjA0NjY1IGFuZCAyMDQ2NjgKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTAyMAorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRl
ci5jcHA6CisgICAgICAgIChJUEM6Ok1lc3NhZ2VSZWNvcmRlcjo6cmVjb3JkT3V0Z29pbmdNZXNz
YWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHA6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NNZXNzYWdlKToKKyAgICAgICAgKElQQzo6
Q29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZSk6CisgICAgICAgICogUGxhdGZvcm0vdW5p
eC9TaGFyZWRNZW1vcnlVbml4LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpI
YW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjpk
ZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHA6CisgICAgICAgIChNZXNz
YWdlczo6V2ViUGFnZTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6
RGVsYXllZFJlcGx5KToKKyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQYWdlOjpUZXN0TXVsdGlwbGVB
dHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmRpZFJlY2VpdmVTeW5jV2ViUGFnZU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVjdGVkLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXQvTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcDoKKyAgICAgICAgKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5OjpEZWxheWVkUmVw
bHkpOgorICAgICAgICAoTWVzc2FnZXM6OldlYlBhZ2U6OlRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6
OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRSZWNlaXZl
U3luY01lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVk
Lmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAg
KElQQzo6ZW5jb2RlVGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoSVBDOjpkZWNvZGVUaW1pbmdG
dW5jdGlvbik6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBlckFuaW1h
dGlvbj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVyZU1hcHBl
ckFuaW1hdGlvbj46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VGV4dHVy
ZU1hcHBlckFuaW1hdGlvbnM+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PFRleHR1cmVNYXBwZXJBbmltYXRpb25zPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbj46OmVuY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFN1cmZhY2VVcGRhdGVJbmZvPjo6ZW5j
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRl
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyU3RhdGU+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxUaWxlVXBkYXRlSW5mbz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8VGlsZVVwZGF0ZUluZm8+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PFRpbGVDcmVhdGlvbkluZm8+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PFRpbGVDcmVhdGlvbkluZm8+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjplbmNvZGVDb29yZGlu
YXRlZFN1cmZhY2UpOgorICAgICAgICAoSVBDOjpkZWNvZGVDb29yZGluYXRlZFN1cmZhY2UpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT46OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc1N0
YXRlPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3Rh
dHVzOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmg6
CisgICAgICAgICogU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5jcHA6CisgICAgICAgIChJ
UEM6OmVuY29kZUltYWdlKToKKyAgICAgICAgKElQQzo6ZGVjb2RlSW1hZ2UpOgorICAgICAgICAo
SVBDOjplbmNvZGVEYXRhT2JqZWN0KToKKyAgICAgICAgKElQQzo6ZGVjb2RlRGF0YU9iamVjdCk6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RHJhZ0RhdGE+OjplbmNvZGUpOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPERyYWdEYXRhPjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6
ZW5jb2RlR0tleUZpbGUpOgorICAgICAgICAoSVBDOjpkZWNvZGVHS2V5RmlsZSk6CisgICAgICAg
IChJUEM6OmVuY29kZSk6CisgICAgICAgIChJUEM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L2d0ay9Bcmd1bWVudENvZGVyc0d0ay5oOgorICAgICAgICAqIFNoYXJlZC9zb3VwL1dlYkNvcmVB
cmd1bWVudENvZGVyc1NvdXAuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlc291
cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPENlcnRpZmljYXRlSW5mbz46OmRlY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAg
ICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZVBsYXRmb3JtRGF0
YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZW5jb2Rl
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3Bh
Y2U+OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENy
ZWRlbnRpYWw+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPENyZWRlbnRpYWw+OjpkZWNvZGVQbGF0Zm9ybURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmdOb25lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZW5j
b2RlTGVnYWN5U2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6ZGVjb2RlTGVnYWN5U2Vz
c2lvblN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5o
OgorCiAyMDE2LTA4LTIwICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVyIHIyMDQ2NjUgYW5k
IHIyMDQ2NjguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDZkYmViNTkxMjcwMTlhNWIzZWNmNGJh
Njk4MzEyYWQ4MzYxYTljYzkuLjRiMTc3NzIzOTRiODYzMmQ4MzAyZGZiOTYyYmVjMDc2N2IxMzky
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0yMjAsOCArMjIwLDggQEAgc2V0KFdlYktpdDJf
U09VUkNFUwogICAgIFBsYXRmb3JtL0lQQy9BdHRhY2htZW50LmNwcAogICAgIFBsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmNwcAogICAgIFBsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmNwcAotICAg
IFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9EZWNvZGVyLmNwcAor
ICAgIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcAogICAgIFBsYXRmb3JtL0lQQy9NZXNzYWdlUmVj
ZWl2ZXJNYXAuY3BwCiAgICAgUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuY3BwCiAgICAgUGxh
dGZvcm0vSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9NZXNzYWdlUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL01lc3NhZ2VSZWNvcmRlci5jcHAKaW5kZXggMmQ4ZjNkZjMwMmI2ZmE3MzJmMDNlMDEy
OTZkNGVkNzQ0YWRlYTM4Zi4uOWJmNzQ2MmEzMjFiYThiNDZlOTIyMzg1ZWY0YjgyODI5NmQyYjM0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL01lc3NhZ2VSZWNvcmRlci5j
cHAKQEAgLTI5LDggKzI5LDggQEAKICNpZiBIQVZFKERUUkFDRSkKIAogI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKLSNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgotI2luY2x1ZGUgIk1lc3NhZ2VF
bmNvZGVyLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIkVuY29kZXIuaCIKICNp
bmNsdWRlICJNZXNzYWdlUmVjb3JkZXJQcm9iZXMuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KIApAQCAtNDEsNyArNDEsNyBAQCBib29sIE1lc3NhZ2VSZWNvcmRlcjo6aXNFbmFibGVk
KCkKICAgICByZXR1cm4gV0VCS0lUTUVTU0FHRVJFQ09SREVSX01FU1NBR0VfUkVDRUlWRURfRU5B
QkxFRCgpIHx8IFdFQktJVE1FU1NBR0VSRUNPUkRFUl9NRVNTQUdFX1NFTlRfRU5BQkxFRCgpOwog
fQogCi1zdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVJlY29yZGVyOjpNZXNzYWdlUHJvY2Vzc2luZ1Rv
a2VuPiBNZXNzYWdlUmVjb3JkZXI6OnJlY29yZE91dGdvaW5nTWVzc2FnZShDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBNZXNzYWdlRW5jb2RlciYgZW5jb2RlcikKK3N0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlUmVjb3JkZXI6Ok1lc3NhZ2VQcm9jZXNzaW5nVG9rZW4+IE1lc3NhZ2VSZWNvcmRlcjo6cmVj
b3JkT3V0Z29pbmdNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEVuY29kZXImIGVuY29k
ZXIpCiB7CiAgICAgaWYgKCFpc0VuYWJsZWQoKSB8fCAhY29ubmVjdGlvbi5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCmluZGV4IDhjM2I2MDk3OTdmYWVhYTM2NGM1ZTgy
NzcxN2IyY2ZhOWQ1OTk2YWIuLjJhOGE5NDBiMzFkMzNkOTIzMWFiNDBhOGE1ZWUxYzQyYWE5MzRl
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rp
b25Vbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0
aW9uVW5peC5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBib29sIENvbm5lY3Rpb246OnByb2Nlc3NN
ZXNzYWdlKCkKICAgICBpZiAobWVzc2FnZUluZm8uaXNNZXNzYWdlQm9keUlzT3V0T2ZMaW5lKCkp
CiAgICAgICAgIG1lc3NhZ2VCb2R5ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ob29sTWVz
c2FnZUJvZHktPmRhdGEoKSk7CiAKLSAgICBhdXRvIGRlY29kZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PE1lc3NhZ2VEZWNvZGVyPihEYXRhUmVmZXJlbmNlKG1lc3NhZ2VCb2R5LCBtZXNzYWdlSW5mby5i
b2R5U2l6ZSgpKSwgV1RGTW92ZShhdHRhY2htZW50cykpOworICAgIGF1dG8gZGVjb2RlciA9IHN0
ZDo6bWFrZV91bmlxdWU8RGVjb2Rlcj4oRGF0YVJlZmVyZW5jZShtZXNzYWdlQm9keSwgbWVzc2Fn
ZUluZm8uYm9keVNpemUoKSksIFdURk1vdmUoYXR0YWNobWVudHMpKTsKIAogICAgIHByb2Nlc3NJ
bmNvbWluZ01lc3NhZ2UoV1RGTW92ZShkZWNvZGVyKSk7CiAKQEAgLTQwMiw3ICs0MDIsNyBAQCBi
b29sIENvbm5lY3Rpb246OnBsYXRmb3JtQ2FuU2VuZE91dGdvaW5nTWVzc2FnZXMoKSBjb25zdAog
ICAgIHJldHVybiBtX2lzQ29ubmVjdGVkOwogfQogCi1ib29sIENvbm5lY3Rpb246OnNlbmRPdXRn
b2luZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyKQorYm9v
bCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVy
PiBlbmNvZGVyKQogewogICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihNZXNzYWdlSW5mbykgKyBh
dHRhY2htZW50TWF4QW1vdW50ICogc2l6ZW9mKHNpemVfdCkgPD0gbWVzc2FnZU1heFNpemUsIEF0
dGFjaG1lbnRzRml0VG9NZXNzYWdlSW5saW5lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKaW5kZXggYWE1ZWFhMDgzMTUyMDNkMjRl
MjdhNjlhOTIxOWYxMzBkMzUzYWFmNi4uMjdiMjViN2U1YjNjN2QxNzQ5ODYxNDQ2ZjBlMDk2OTgy
MjM1Mzg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRN
ZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1l
bW9yeVVuaXguY3BwCkBAIC0yOSw4ICsyOSw4IEBACiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tF
VFMpCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAKLSNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgi
CisjaW5jbHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNu
dGwuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTY0LDEyICs2NCwxMiBAQCBib29sIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAogICAgIHJldHVybiBtX2F0dGFjaG1lbnQu
ZmlsZURlc2NyaXB0b3IoKSA9PSAtMTsKIH0KIAotdm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBTaGFyZWRN
ZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAg
ICBlbmNvZGVyIDw8IHJlbGVhc2VBdHRhY2htZW50KCk7CiB9CiAKLWJvb2wgU2hhcmVkTWVtb3J5
OjpIYW5kbGU6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSGFuZGxlJiBo
YW5kbGUpCitib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBBU1NFUlRfQVJHKGhhbmRsZSwgaGFuZGxl
LmlzTnVsbCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQv
TGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKaW5kZXggMjQwZmM3
Mzc0Y2IzOWUxZThmYjFhYWNhNmZkZjQ5YjI4N2EyYjA0ZS4uMmEwNTU2YTcxYWEyNTY4NGFkNmI1
MDA4NjAxMTk5MDYwY2VjZTQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93
ZWJraXQvTGVnYWN5TWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCkBA
IC0zNyw3ICszNyw3IEBACiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0Lmgi
CiAjZW5kaWYKLSNpbmNsdWRlICJNZXNzYWdlRGVjb2Rlci5oIgorI2luY2x1ZGUgIkRlY29kZXIu
aCIKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpZiAoRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgKE5FU1RFRF9NRVNTQUdFX0NPTkRJVElP
TiAmJiBTT01FX09USEVSX01FU1NBR0VfQ09ORElUSU9OKSkgfHwgKEVOQUJMRShUT1VDSF9FVkVO
VFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gfHwgU09NRV9PVEhFUl9NRVNTQUdFX0NP
TkRJVElPTikpCkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBNZXNzYWdlcyB7CiAKIG5hbWVz
cGFjZSBXZWJQYWdlIHsKIAotR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikKK0dldFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4g
ZW5jb2RlcikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9lbmNvZGVy
KFdURk1vdmUoZW5jb2RlcikpCiB7CkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgR2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseTo6c2VuZChjb25zdCBJUEM6OkNvbm5lY3Rpb246
OkhhbmRsCiAgICAgcmV0dXJuIF9yZXN1bHQ7CiB9CiAKLVRlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6
OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBj
b25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlcikK
K1Rlc3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6RGVsYXllZFJlcGx5KFBhc3NS
ZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpF
bmNvZGVyPiBlbmNvZGVyKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBt
X2VuY29kZXIoV1RGTW92ZShlbmNvZGVyKSkKIHsKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIFRl
c3RNdWx0aXBsZUF0dHJpYnV0ZXM6OkRlbGF5ZWRSZXBseTo6c2VuZCgpCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQordm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlV2ViUGFnZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyKQogewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkw6Om5hbWUoKSkgewogICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVz
c2FnZXM6OldlYlBhZ2U6OkxvYWRVUkw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJM
KTsKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVXZWJQYWdlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jV2ViUGFn
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
JiBkZWNvZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mIHJlcGx5RW5j
b2RlcikKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVN5bmNXZWJQYWdlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp1bmlxdWVf
cHRyPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKIHsKICAgICBpZiAoZGVjb2Rlci5tZXNz
YWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW46Om5hbWUoKSkgewog
ICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6OldlYlBhZ2U6OkNyZWF0ZVBsdWdp
bj4oZGVjb2RlciwgKnJlcGx5RW5jb2RlciwgdGhpcywgJldlYlBhZ2U6OmNyZWF0ZVBsdWdpbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdl
cy1leHBlY3RlZC5oIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTGVnYWN5TWVzc2Fn
ZXMtZXhwZWN0ZWQuaAppbmRleCA2Mzk3YzEwNDNmYWNhZjc2YWE4YjE0ZTYyZDM3ZGQ1MjY2MzI2
ZjNiLi5kMGM3NjI1ZmZlODk5ODJjOTYzYTMyNTA4YjViNjc0MWY3OGM4MDJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9MZWdhY3lNZXNzYWdlcy1leHBlY3RlZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L0xlZ2FjeU1lc3NhZ2VzLWV4cGVj
dGVkLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJNZXNzYWdlRW5jb2Rlci5oIgorI2luY2x1ZGUg
IkVuY29kZXIuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTdHJpbmdSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KQEAgLTM2NSwxNCArMzY1
LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgYm9vbCBpc1N5bmMgPSB0cnVlOwogCiAg
ICAgc3RydWN0IERlbGF5ZWRSZXBseSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEZWxh
eWVkUmVwbHk+IHsKLSAgICAgICAgRGVsYXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0
aW9uPiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+KTsKKyAgICAgICAgRGVs
YXllZFJlcGx5KFBhc3NSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6RW5jb2Rlcj4pOwogICAgICAgICB+RGVsYXllZFJlcGx5KCk7CiAKICAgICAgICAgYm9vbCBz
ZW5kKGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6SGFuZGxlJiBjb25uZWN0aW9uSGFuZGxlKTsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2Rl
cjsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gbV9lbmNvZGVyOwogICAg
IH07CiAKICAgICB0eXBlZGVmIElQQzo6QXJndW1lbnRzPElQQzo6Q29ubmVjdGlvbjo6SGFuZGxl
Jj4gUmVwbHk7CkBAIC0zOTksMTQgKzM5OSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgaXNTeW5jID0gdHJ1ZTsKIAogICAgIHN0cnVjdCBEZWxheWVkUmVwbHkgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGVsYXllZFJlcGx5PiB7Ci0gICAgICAgIERlbGF5ZWRSZXBs
eShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3Nh
Z2VFbmNvZGVyPik7CisgICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+KTsKICAgICAgICAgfkRlbGF5ZWRS
ZXBseSgpOwogCiAgICAgICAgIGJvb2wgc2VuZCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gbV9lbmNvZGVyOworICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiBtX2VuY29kZXI7CiAgICAgfTsKIAogICAgIHR5cGVkZWYgSVBD
OjpBcmd1bWVudHM8PiBSZXBseTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TY3Jp
cHRzL3dlYmtpdC9NZXNzYWdlUmVjZWl2ZXItZXhwZWN0ZWQuY3BwCmluZGV4IDhkNWUxM2RlYWEx
NmUwZWMzODBhNWZmYmRhMGI0YWVjYmQ1YzI4MTcuLmI0YTE0OTY5MDA5NTI3YmU1NmVmODBmMGRk
MDExYjgxZTM3MDg3MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
L01lc3NhZ2VSZWNlaXZlci1leHBlY3RlZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQvTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcApAQCAtMzcsNyArMzcsNyBAQAog
I2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2VuZGlmCi0jaW5jbHVk
ZSAiTWVzc2FnZURlY29kZXIuaCIKKyNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiUGx1
Z2luLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaWYgKEVOQUJMRShU
T1VDSF9FVkVOVFMpICYmIChORVNURURfTUVTU0FHRV9DT05ESVRJT04gJiYgU09NRV9PVEhFUl9N
RVNTQUdFX0NPTkRJVElPTikpIHx8IChFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAoTkVTVEVEX01F
U1NBR0VfQ09ORElUSU9OIHx8IFNPTUVfT1RIRVJfTUVTU0FHRV9DT05ESVRJT04pKQpAQCAtNTks
NyArNTksNyBAQCBuYW1lc3BhY2UgTWVzc2FnZXMgewogCiBuYW1lc3BhY2UgV2ViUGFnZSB7CiAK
LUdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQ
YXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCitHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6
RGVsYXllZFJlcGx5OjpEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IGNv
bm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IGVuY29kZXIpCiAgICAgOiBt
X2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1fZW5jb2RlcihXVEZNb3ZlKGVuY29kZXIp
KQogewpAQCAtNzksNyArNzksNyBAQCBib29sIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHk6OnNlbmQoY29uc3QgSVBDOjpDb25uZWN0aW9uOjpIYW5kbAogICAgIHJldHVy
biBfcmVzdWx0OwogfQogCi1UZXN0TXVsdGlwbGVBdHRyaWJ1dGVzOjpEZWxheWVkUmVwbHk6OkRl
bGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIpCitUZXN0TXVsdGlwbGVBdHRy
aWJ1dGVzOjpEZWxheWVkUmVwbHk6OkRlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4gY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gZW5jb2RlcikK
ICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9lbmNvZGVyKFdURk1vdmUo
ZW5jb2RlcikpCiB7CkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBUZXN0TXVsdGlwbGVBdHRyaWJ1
dGVzOjpEZWxheWVkUmVwbHk6OnNlbmQoKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBX
ZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIElQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6Okxv
YWRVUkw6Om5hbWUoKSkgewogICAgICAgICBJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWRVUkw+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjpsb2FkVVJMKTsKQEAgLTE4
OSw3ICsxODksNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlcgogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIsIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKQordm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBs
eUVuY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6
V2ViUGFnZTo6Q3JlYXRlUGx1Z2luOjpuYW1lKCkpIHsKICAgICAgICAgSVBDOjpoYW5kbGVNZXNz
YWdlPE1lc3NhZ2VzOjpXZWJQYWdlOjpDcmVhdGVQbHVnaW4+KGRlY29kZXIsICpyZXBseUVuY29k
ZXIsIHRoaXMsICZXZWJQYWdlOjpjcmVhdGVQbHVnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQvTWVzc2FnZXMtZXhwZWN0ZWQuaCBiL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0L01lc3NhZ2VzLWV4cGVjdGVkLmgKaW5kZXggNjM5N2MxMDQzZmFjYWY3
NmFhOGIxNGU2MmQzN2RkNTI2NjMyNmYzYi4uZDBjNzYyNWZmZTg5OTgyYzk2M2EzMjUwOGI1YjY3
NDFmNzhjODAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvTWVz
c2FnZXMtZXhwZWN0ZWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9NZXNz
YWdlcy1leHBlY3RlZC5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMu
aCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiTWVzc2FnZUVuY29kZXIuaCIK
KyNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU3Ry
aW5nUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CkBAIC0z
NjUsMTQgKzM2NSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgaXNTeW5jID0g
dHJ1ZTsKIAogICAgIHN0cnVjdCBEZWxheWVkUmVwbHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8RGVsYXllZFJlcGx5PiB7Ci0gICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPik7Cisg
ICAgICAgIERlbGF5ZWRSZXBseShQYXNzUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4sIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+KTsKICAgICAgICAgfkRlbGF5ZWRSZXBseSgpOwogCiAgICAg
ICAgIGJvb2wgc2VuZChjb25zdCBJUEM6OkNvbm5lY3Rpb246OkhhbmRsZSYgY29ubmVjdGlvbkhh
bmRsZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiBtX2VuY29kZXI7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IG1fZW5j
b2RlcjsKICAgICB9OwogCiAgICAgdHlwZWRlZiBJUEM6OkFyZ3VtZW50czxJUEM6OkNvbm5lY3Rp
b246OkhhbmRsZSY+IFJlcGx5OwpAQCAtMzk5LDE0ICszOTksMTQgQEAgcHVibGljOgogICAgIHN0
YXRpYyBjb25zdCBib29sIGlzU3luYyA9IHRydWU7CiAKICAgICBzdHJ1Y3QgRGVsYXllZFJlcGx5
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERlbGF5ZWRSZXBseT4gewotICAgICAgICBE
ZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpNZXNzYWdlRW5jb2Rlcj4pOworICAgICAgICBEZWxheWVkUmVwbHkoUGFzc1JlZlB0cjxJ
UEM6OkNvbm5lY3Rpb24+LCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPik7CiAgICAgICAg
IH5EZWxheWVkUmVwbHkoKTsKIAogICAgICAgICBib29sIHNlbmQoKTsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IG1fZW5jb2RlcjsKKyAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4gbV9lbmNvZGVyOwogICAgIH07CiAKICAgICB0
eXBlZGVmIElQQzo6QXJndW1lbnRzPD4gUmVwbHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA0MDdiNGRhNzVmMDQ5NDEz
NGYyYjcyOTNiMmExNTVmZWM4YmJmNDRiLi45YTg3MzU4YjA4NTQzNTE4ZDgwNDY2MzFiNTE5MzAz
ZTBhMzFjNGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NB
cmd1bWVudENvZGVycy5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIAogbmFtZXNwYWNlIElQQyB7CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGaWx0
ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2Vi
Q29yZTo6RmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKK3ZvaWQgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdl
YkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0
aWNfY2FzdDx1aW50MzJfdD4oZmlsdGVycy5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgZmlsdGVycy5zaXplKCk7ICsraSkgewpAQCAtOTksNyArOTksNyBAQCB2b2lkIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsCiAgICAgfQogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6
OkZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCitib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpGaWx0
ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIHVpbnQzMl90IHNpemU7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzaXplKSkKQEAgLTE2OCw3ICsxNjgsNyBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUcmFuc2Zv
cm1PcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVHJh
bnNmb3JtT3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucykKK3ZvaWQgQXJndW1lbnRDb2Rl
cjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRy
YW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9wZXJhdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8
PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4odHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCkpOwogICAg
IGZvciAoY29uc3QgYXV0byYgb3BlcmF0aW9uIDogdHJhbnNmb3JtT3BlcmF0aW9ucy5vcGVyYXRp
b25zKCkpIHsKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3Jt
T3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0CiAgICAg
fQogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFRyYW5zZm9ybU9wZXJhdGlvbnMmIHRyYW5zZm9ybU9w
ZXJhdGlvbnMpCitib29sIEFyZ3VtZW50Q29kZXI8VHJhbnNmb3JtT3BlcmF0aW9ucz46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB0cmFuc2Zvcm1PcGVyYXRp
b25zKQogewogICAgIHVpbnQzMl90IG9wZXJhdGlvbnNTaXplOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUob3BlcmF0aW9uc1NpemUpKQpAQCAtMzM1LDcgKzMzNSw3IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxUcmFuc2Zvcm1PcGVyYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgVHJhbnNmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZVRpbWlu
Z0Z1bmN0aW9uKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGltaW5nRnVuY3Rpb24q
IHRpbWluZ0Z1bmN0aW9uKQorc3RhdGljIHZvaWQgZW5jb2RlVGltaW5nRnVuY3Rpb24oRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQogewogICAg
IGlmICghdGltaW5nRnVuY3Rpb24pIHsKICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKFRpbWlu
Z0Z1bmN0aW9uOjpUaW1pbmdGdW5jdGlvblR5cGUoLTEpKTsKQEAgLTM3Niw3ICszNzYsNyBAQCBz
dGF0aWMgdm9pZCBlbmNvZGVUaW1pbmdGdW5jdGlvbihBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFRpbWluZ0Z1bmN0aW9uKgogICAgIH0KIH0KIAotYm9vbCBkZWNvZGVUaW1pbmdGdW5j
dGlvbihBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRp
bWluZ0Z1bmN0aW9uKQorYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlvbihEZWNvZGVyJiBkZWNvZGVy
LCBSZWZQdHI8VGltaW5nRnVuY3Rpb24+JiB0aW1pbmdGdW5jdGlvbikKIHsKICAgICBUaW1pbmdG
dW5jdGlvbjo6VGltaW5nRnVuY3Rpb25UeXBlIHR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZUVudW0odHlwZSkpCkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBkZWNvZGVUaW1pbmdGdW5jdGlv
bihBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxUZXh0dXJlTWFwcGVy
QW5pbWF0aW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVy
ZU1hcHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQordm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVN
YXBwZXJBbmltYXRpb24+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVGV4dHVyZU1h
cHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIGVuY29kZXIgPDwgYW5pbWF0aW9uLm5h
bWUoKTsKICAgICBlbmNvZGVyIDw8IGFuaW1hdGlvbi5ib3hTaXplKCk7CkBAIC00ODIsNyArNDgy
LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb24KICAgICB9CiB9CiAKLWJvb2wgQXJndW1lbnRD
b2RlcjxUZXh0dXJlTWFwcGVyQW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgVGV4dHVyZU1hcHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQorYm9vbCBBcmd1bWVudENv
ZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVGV4
dHVyZU1hcHBlckFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewogICAgIFN0cmluZyBuYW1lOwogICAg
IEZsb2F0U2l6ZSBib3hTaXplOwpAQCAtNTc1LDE4ICs1NzUsMTggQEAgYm9vbCBBcmd1bWVudENv
ZGVyPFRleHR1cmVNYXBwZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBUZXgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFRleHR1
cmVNYXBwZXJBbmltYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgVGV4dHVyZU1hcHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCit2b2lkIEFyZ3VtZW50Q29k
ZXI8VGV4dHVyZU1hcHBlckFuaW1hdGlvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgVGV4dHVyZU1hcHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgZW5jb2RlciA8
PCBhbmltYXRpb25zLmFuaW1hdGlvbnMoKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPFRleHR1
cmVNYXBwZXJBbmltYXRpb25zPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGV4
dHVyZU1hcHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCitib29sIEFyZ3VtZW50Q29kZXI8VGV4
dHVyZU1hcHBlckFuaW1hdGlvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVGV4dHVyZU1h
cHBlckFuaW1hdGlvbnMmIGFuaW1hdGlvbnMpCiB7CiAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2Rl
KGFuaW1hdGlvbnMuYW5pbWF0aW9ucygpKTsKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNF
KQotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVRva2VuPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJm
YWNlVG9rZW4mIHRva2VuKQordm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYXBoaWNzU3Vy
ZmFjZVRva2VuPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzU3VyZmFjZVRva2VuJiB0b2tlbikKIHsKICNpZiBPUyhEQVJXSU4pCiAgICAgZW5jb2RlciA8
PCBBdHRhY2htZW50KHRva2VuLmZyb250QnVmZmVySGFuZGxlLCBNQUNIX01TR19UWVBFX01PVkVf
U0VORCk7CkBAIC01OTYsNyArNTk2LDcgQEAgdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okdy
YXBoaWNzU3VyZmFjZVRva2VuPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2QKICNlbmRp
ZgogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+
OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZh
Y2VUb2tlbiYgdG9rZW4pCitib29sIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJm
YWNlVG9rZW4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6R3JhcGhpY3NTdXJm
YWNlVG9rZW4mIHRva2VuKQogewogI2lmIE9TKERBUldJTikKICAgICBBdHRhY2htZW50IGZyb250
QXR0YWNobWVudCwgYmFja0F0dGFjaG1lbnQ7CkBAIC02MTQsMTcgKzYxNCwxNyBAQCBib29sIEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4+OjpkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiBkZWNvZAogfQogI2VuZGlmCiAKLXZvaWQgQXJndW1lbnRDb2RlcjxTdXJmYWNl
VXBkYXRlSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN1cmZh
Y2VVcGRhdGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxTdXJm
YWNlVXBkYXRlSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdXJmYWNlVXBk
YXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8pCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxT
dXJmYWNlVXBkYXRlSW5mbz46OmVuY29kZShlbmNvZGVyLCBzdXJmYWNlVXBkYXRlSW5mbyk7CiB9
CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFN1cmZhY2VVcGRhdGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbykK
K2Jvb2wgQXJndW1lbnRDb2RlcjxTdXJmYWNlVXBkYXRlSW5mbz46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBTdXJmYWNlVXBkYXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8pCiB7CiAgICAgcmV0
dXJuIFNpbXBsZUFyZ3VtZW50Q29kZXI8U3VyZmFjZVVwZGF0ZUluZm8+OjpkZWNvZGUoZGVjb2Rl
ciwgc3VyZmFjZVVwZGF0ZUluZm8pOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIEFyZ3VtZW50
Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewogICAg
IGVuY29kZXIgPDwgc3RhdGUuY2hhbmdlTWFzazsKIApAQCAtNzA1LDcgKzcwNSw3IEBAIHZvaWQg
QXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kCiAgICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY29tbWl0dGVkU2Ny
b2xsT2Zmc2V0OwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCitib29sIEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rh
dGUuY2hhbmdlTWFzaykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgwMiwyNyArODAyLDI3
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmRl
Y29kZShBcmd1bWVudERlY29kZXImIGRlY29kCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
QXJndW1lbnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFRpbGVVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQordm9pZCBBcmd1bWVudENv
ZGVyPFRpbGVVcGRhdGVJbmZvPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRpbGVV
cGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZVVw
ZGF0ZUluZm8+OjplbmNvZGUoZW5jb2RlciwgdXBkYXRlSW5mbyk7CiB9CiAKLWJvb2wgQXJndW1l
bnRDb2RlcjxUaWxlVXBkYXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIs
IFRpbGVVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPFRpbGVVcGRh
dGVJbmZvPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFRpbGVVcGRhdGVJbmZvJiB1cGRhdGVJ
bmZvKQogewogICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPFRpbGVVcGRhdGVJbmZvPjo6
ZGVjb2RlKGRlY29kZXIsIHVwZGF0ZUluZm8pOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8VGls
ZUNyZWF0aW9uSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRp
bGVDcmVhdGlvbkluZm8mIHVwZGF0ZUluZm8pCit2b2lkIEFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0
aW9uSW5mbz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUaWxlQ3JlYXRpb25JbmZv
JiB1cGRhdGVJbmZvKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8VGlsZUNyZWF0aW9uSW5m
bz46OmVuY29kZShlbmNvZGVyLCB1cGRhdGVJbmZvKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVy
PFRpbGVDcmVhdGlvbkluZm8+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUaWxl
Q3JlYXRpb25JbmZvJiB1cGRhdGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPFRpbGVDcmVhdGlv
bkluZm8+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgVGlsZUNyZWF0aW9uSW5mbyYgdXBkYXRl
SW5mbykKIHsKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxUaWxlQ3JlYXRpb25JbmZv
Pjo6ZGVjb2RlKGRlY29kZXIsIHVwZGF0ZUluZm8pOwogfQogCi1zdGF0aWMgdm9pZCBlbmNvZGVD
b29yZGluYXRlZFN1cmZhY2UoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWZQdHI8
Q29vcmRpbmF0ZWRTdXJmYWNlPiYgc3VyZmFjZSkKK3N0YXRpYyB2b2lkIGVuY29kZUNvb3JkaW5h
dGVkU3VyZmFjZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZWZQdHI8Q29vcmRpbmF0ZWRTdXJm
YWNlPiYgc3VyZmFjZSkKIHsKICAgICBib29sIGlzVmFsaWRTdXJmYWNlID0gZmFsc2U7CiAgICAg
aWYgKCFzdXJmYWNlKSB7CkBAIC04NDEsNyArODQxLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlQ29v
cmRpbmF0ZWRTdXJmYWNlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmUHRyPENv
b3IKICAgICAgICAgZW5jb2RlciA8PCBoYW5kbGU7CiB9CiAKLXN0YXRpYyBib29sIGRlY29kZUNv
b3JkaW5hdGVkU3VyZmFjZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxDb29yZGlu
YXRlZFN1cmZhY2U+JiBzdXJmYWNlKQorc3RhdGljIGJvb2wgZGVjb2RlQ29vcmRpbmF0ZWRTdXJm
YWNlKERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+JiBzdXJmYWNl
KQogewogICAgIGJvb2wgaXNWYWxpZFN1cmZhY2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
c1ZhbGlkU3VyZmFjZSkpCkBAIC04NTgsNyArODU4LDcgQEAgc3RhdGljIGJvb2wgZGVjb2RlQ29v
cmRpbmF0ZWRTdXJmYWNlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPENvb3JkaW5h
dGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENvb3JkaW5hdGVk
R3JhcGhpY3NTdGF0ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENv
b3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYgc3RhdGUpCit2b2lkIEFyZ3VtZW50Q29kZXI8Q29vcmRp
bmF0ZWRHcmFwaGljc1N0YXRlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvb3Jk
aW5hdGVkR3JhcGhpY3NTdGF0ZSYgc3RhdGUpCiB7CiAgICAgZW5jb2RlciA8PCBzdGF0ZS5yb290
Q29tcG9zaXRpbmdMYXllcjsKICAgICBlbmNvZGVyIDw8IHN0YXRlLnNjcm9sbFBvc2l0aW9uOwpA
QCAtODg5LDcgKzg4OSw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNz
U3RhdGU+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjCiAgICAgZW5jb2RlciA8
PCBzdGF0ZS51cGRhdGVBdGxhc2VzVG9SZW1vdmU7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxD
b29yZGluYXRlZEdyYXBoaWNzU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVy
LCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmIHN0YXRlKQorYm9vbCBBcmd1bWVudENvZGVyPENv
b3JkaW5hdGVkR3JhcGhpY3NTdGF0ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDb29yZGlu
YXRlZEdyYXBoaWNzU3RhdGUmIHN0YXRlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rh
dGUucm9vdENvbXBvc2l0aW5nTGF5ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCmluZGV4IGVj
ZGQwMTRjNWIxNjQ1MWExNTNiNWEyNmY0ZTRhZmQwYzFkOWY3NDMuLmY3MjRhYWFlZDAyMGVjOTE3
ZmE4OWEyNGU4NjZmYmQ2Y2U0M2EzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5oCkBAIC01NCw1NSArNTQsNTUgQEAgc3RydWN0IEdy
YXBoaWNzU3VyZmFjZVRva2VuOwogbmFtZXNwYWNlIElQQyB7CiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucz4gewotICAgIHN0YXRpYyB2
b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRp
b25zJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OkZpbHRlck9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VHJhbnNmb3JtT3BlcmF0aW9ucz4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUcmFu
c2Zvcm1PcGVyYXRpb25zJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYsIFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMmKTsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbnMm
KTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGV4dHVy
ZU1hcHBlckFuaW1hdGlvbnM+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbnMmKTsKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFu
aW1hdGlvbnMmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb25zJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9ucyYpOwogfTsKIAogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQW5pbWF0aW9u
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJBbmltYXRpb24mKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFuaW1hdGlvbiYpOworICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckFu
aW1hdGlvbiYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckFuaW1hdGlvbiYpOwogfTsKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VU
b2tlbj4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VUb2tlbiYpOworICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNl
VG9rZW4mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkdyYXBo
aWNzU3VyZmFjZVRva2VuJik7CiB9OwogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6U3VyZmFjZVVwZGF0ZUluZm8+IHsKLSAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U3VyZmFjZVVwZGF0ZUluZm8m
KTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U3Vy
ZmFjZVVwZGF0ZUluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpTdXJmYWNlVXBkYXRlSW5mbyYpOwogfTsKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZT4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwotICAgIHN0YXRpYyBib29sIGRl
Y29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJT
dGF0ZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiB9Owog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZv
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlRpbGVVcGRhdGVJbmZvJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OlRpbGVVcGRhdGVJbmZvJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUaWxlVXBkYXRlSW5mbyYpOworICAgIHN0YXRpYyBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6VGlsZVVwZGF0ZUluZm8mKTsKIH07CiAKIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VGlsZUNyZWF0aW9uSW5mbz4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpUaWxlQ3JlYXRpb25JbmZvJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVj
b2RlciYsIFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlRpbGVDcmVhdGlvbkluZm8mKTsKIH07
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc1N0YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYpOwotICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
U3RhdGUmKTsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNv
ZGVyJiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwCmluZGV4IGUz
Mjg5MDc1Mzc1Njg4YWJiMTVmN2I5NzVkNTdiMjk1ZTJmNDkwYjkuLjJjNWMxMmY2MDdmZjU1ZjQz
YTI2ZTJiMTRhZmMwMjUwNjlmMzkwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJm
YWNlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6
SGFuZGxlKCkKIHsKIH0KIAotdm9pZCBXZWJDb29yZGluYXRlZFN1cmZhY2U6OkhhbmRsZTo6ZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJDb29yZGlu
YXRlZFN1cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKICAgICBlbmNvZGVyIDw8IG1fc2l6ZSA8PCBtX2ZsYWdzOwogI2lmIFVTRShHUkFQSElDU19T
VVJGQUNFKQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFdlYkNvb3JkaW5hdGVkU3VyZmFjZTo6SGFu
ZGxlOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCBtX2JpdG1hcEhhbmRsZTsKIH0KIAotYm9vbCBXZWJDb29yZGluYXRlZFN1cmZhY2U6
OkhhbmRsZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIYW5kbGUmIGhh
bmRsZSkKK2Jvb2wgV2ViQ29vcmRpbmF0ZWRTdXJmYWNlOjpIYW5kbGU6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQogewogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFuZGxlLm1fc2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5hdGVkU3Vy
ZmFjZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlLmgKaW5kZXggNmQ3MDYyYjYwODM2YTRiZDgzMjZjYzJiZDU1ZjFjY2Nm
ZDdlZTU1ZS4uNmFiN2M2NDBlOGQ1YTg4MDJjYjJhMjVmZDcxYzAyMDgxYzhkZjc4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29vcmRp
bmF0ZWRTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmgKQEAgLTQzLDggKzQzLDggQEAgcHVibGljOgog
ICAgIHB1YmxpYzoKICAgICAgICAgSGFuZGxlKCk7CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiwgSGFuZGxlJik7CisgICAgICAgIHZvaWQgZW5jb2RlKElQQzo6
RW5jb2RlciYpIGNvbnN0OworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVy
JiwgSGFuZGxlJik7CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICAgICAgV2ViQ29y
ZTo6R3JhcGhpY3NTdXJmYWNlVG9rZW4gZ3JhcGhpY3NTdXJmYWNlVG9rZW4oKSBjb25zdCB7IHJl
dHVybiBtX2dyYXBoaWNzU3VyZmFjZVRva2VuOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
QmF0dGVyeVN0YXR1cy5jcHAKaW5kZXggZDAxMmQ3MDYzYjYwNWJkNDExMzgzZmRiM2Q1MmI4ZmE3
MzZiOTc5ZS4uODE1N2I0NWE0MDY5ZThmMzgwNzIzM2VjMzhjY2Y4ZWE5ZmZjZmY3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcApAQCAtNDUsNyArNDUsNyBA
QCBXZWJCYXR0ZXJ5U3RhdHVzOjp+V2ViQmF0dGVyeVN0YXR1cygpCiB7CiB9CiAKLXZvaWQgV2Vi
QmF0dGVyeVN0YXR1czo6RGF0YTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAordm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgaXNDaGFyZ2luZzsKICAgICBlbmNv
ZGVyIDw8IGNoYXJnaW5nVGltZTsKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBXZWJCYXR0ZXJ5U3Rh
dHVzOjpEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAg
ICAgZW5jb2RlciA8PCBsZXZlbDsKIH0KIAotYm9vbCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpk
ZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERhdGEmIHJlc3VsdCkKK2Jvb2wg
V2ViQmF0dGVyeVN0YXR1czo6RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgRGF0
YSYgcmVzdWx0KQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmlzQ2hhcmdpbmcp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQmF0dGVyeVN0YXR1cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlT
dGF0dXMuaAppbmRleCAyMjdhMzMyZDRkMjUyZDIzOTlhY2JiYmM1ZWQ4ZjQ4NWI4NDIyNTQwLi4z
NDlhOGYwNDUyYTE5Yzc0ZDA5YWY4YTQ2ODRhOGM1Njc2ODU0NmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKQEAgLTI5LDE2ICsyOSwxNiBAQAogI2lmIEVOQUJM
RShCQVRURVJZX1NUQVRVUykKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkFy
Z3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUg
IkRlY29kZXIuaCIKKyNpbmNsdWRlICJFbmNvZGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJCYXR0ZXJ5U3RhdHVzIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9i
amVjdDo6VHlwZTo6QmF0dGVyeVN0YXR1cz4gewogcHVibGljOgogICAgIHN0cnVjdCBEYXRhIHsK
LSAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKLSAgICAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgRGF0YSYpOworICAg
ICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIERhdGEmKTsKIAogICAgICAgICBib29sIGlzQ2hhcmdp
bmc7CiAgICAgICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuY3BwCmluZGV4IDdhMmQ2YzRhYWVkZTIyZTY3ZGFi
Yzk3ZWFmOGFkY2Y2N2RlNjI5YTYuLmZkOTQ1YTA2MWQ0NGQyZGM5NTJjYzhhYjZhMzZiZDAzNGQ3
ZTQxMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2Rl
cnNHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNH
dGsuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVz
cGFjZSBJUEMgewogCi1zdGF0aWMgdm9pZCBlbmNvZGVJbWFnZShBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEdka1BpeGJ1ZiogcGl4YnVmKQorc3RhdGljIHZvaWQgZW5jb2RlSW1hZ2Uo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgR2RrUGl4YnVmKiBwaXhidWYpCiB7CiAgICAgSW50U2l6
ZSBpbWFnZVNpemUoZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgocGl4YnVmKSwgZ2RrX3BpeGJ1Zl9nZXRf
aGVpZ2h0KHBpeGJ1ZikpOwogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNo
YXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKGltYWdlU2l6ZSwgU2hhcmVhYmxlQml0bWFw
OjpTdXBwb3J0c0FscGhhKTsKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlSW1h
Z2UoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBHZGtQaXhidWYqIHBpeGJ1ZikKICAg
ICBlbmNvZGVyIDw8IGhhbmRsZTsKIH0KIAotc3RhdGljIGJvb2wgZGVjb2RlSW1hZ2UoQXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEdka1BpeGJ1Zj4mIHBpeGJ1ZikKK3N0YXRpYyBi
b29sIGRlY29kZUltYWdlKERlY29kZXImIGRlY29kZXIsIEdSZWZQdHI8R2RrUGl4YnVmPiYgcGl4
YnVmKQogewogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGhhbmRsZSkpCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBib29sIGRlY29k
ZUltYWdlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHZGtQaXhidWY+JiBwaXhi
dWYpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGVuY29kZURhdGFPYmplY3Qo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0
KQorc3RhdGljIHZvaWQgZW5jb2RlRGF0YU9iamVjdChFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBE
YXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0KQogewogICAgIGJvb2wgaGFzVGV4dCA9IGRhdGFPYmpl
Y3QtPmhhc1RleHQoKTsKICAgICBlbmNvZGVyIDw8IGhhc1RleHQ7CkBAIC0xMTUsNyArMTE1LDcg
QEAgc3RhdGljIHZvaWQgZW5jb2RlRGF0YU9iamVjdChBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IERhdGFPYmplY3RHdGsqIGRhdGEKICAgICAgICAgZW5jb2RlciA8PCBkYXRhT2JqZWN0
LT51bmtub3duVHlwZXMoKTsKIH0KIAotc3RhdGljIGJvb2wgZGVjb2RlRGF0YU9iamVjdChBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiYgZGF0YU9iamVjdCkK
K3N0YXRpYyBib29sIGRlY29kZURhdGFPYmplY3QoRGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPERh
dGFPYmplY3RHdGs+JiBkYXRhT2JqZWN0KQogewogICAgIFJlZlB0cjxEYXRhT2JqZWN0R3RrPiBk
YXRhID0gRGF0YU9iamVjdEd0azo6Y3JlYXRlKCk7CiAKQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0
aWMgYm9vbCBkZWNvZGVEYXRhT2JqZWN0KEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVmUHRy
PERhdGFPYmplY3RHdGs+JiBkYQogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLXZvaWQg
QXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAg
ICAgZW5jb2RlciA8PCBkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpOwogICAgIGVuY29kZXIgPDwg
ZHJhZ0RhdGEuZ2xvYmFsUG9zaXRpb24oKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIEFyZ3Vt
ZW50Q29kZXI8RHJhZ0RhdGE+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBEcmFnRGF0YSYgZAogICAgICAgICBlbmNvZGVEYXRhT2JqZWN0KGVuY29kZXIsIHBsYXRmb3Jt
RGF0YSk7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxEcmFnRGF0YT46OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIERyYWdEYXRhJiBkcmFnRGF0YSkKK2Jvb2wgQXJndW1lbnRDb2Rl
cjxEcmFnRGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0YSYgZHJhZ0RhdGEp
CiB7CiAgICAgSW50UG9pbnQgY2xpZW50UG9zaXRpb247CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjbGllbnRQb3NpdGlvbikpCkBAIC0yMzYsMTQgKzIzNiwxNCBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8RHJhZ0RhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEcmFnRGF0YSYg
ZHJhZ0RhdAogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXN0YXRpYyB2b2lk
IGVuY29kZUdLZXlGaWxlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgR0tleUZpbGUqIGtleUZp
bGUpCitzdGF0aWMgdm9pZCBlbmNvZGVHS2V5RmlsZShFbmNvZGVyJiBlbmNvZGVyLCBHS2V5Rmls
ZSoga2V5RmlsZSkKIHsKICAgICBnc2l6ZSBkYXRhU2l6ZTsKICAgICBHVW5pcXVlUHRyPGNoYXI+
IGRhdGEoZ19rZXlfZmlsZV90b19kYXRhKGtleUZpbGUsICZkYXRhU2l6ZSwgMCkpOwogICAgIGVu
Y29kZXIgPDwgRGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhLmdl
dCgpKSwgZGF0YVNpemUpOwogfQogCi1zdGF0aWMgYm9vbCBkZWNvZGVHS2V5RmlsZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIEdVbmlxdWVQdHI8R0tleUZpbGU+JiBrZXlGaWxlKQorc3RhdGlj
IGJvb2wgZGVjb2RlR0tleUZpbGUoRGVjb2RlciYgZGVjb2RlciwgR1VuaXF1ZVB0cjxHS2V5Rmls
ZT4mIGtleUZpbGUpCiB7CiAgICAgRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCkBAIC0yNjEsMTQgKzI2MSwxNCBAQCBz
dGF0aWMgYm9vbCBkZWNvZGVHS2V5RmlsZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdVbmlx
dWVQdHI8R0tleUZpbGU+JiBrZXlGaQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIEd0a1ByaW50U2V0dGluZ3MqIHByaW50U2V0dGlu
Z3MpCit2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBHdGtQcmludFNldHRpbmdzKiBwcmlu
dFNldHRpbmdzKQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmls
ZV9uZXcoKSk7CiAgICAgZ3RrX3ByaW50X3NldHRpbmdzX3RvX2tleV9maWxlKHByaW50U2V0dGlu
Z3MsIGtleUZpbGUuZ2V0KCksICJQcmludCBTZXR0aW5ncyIpOwogICAgIGVuY29kZUdLZXlGaWxl
KGVuY29kZXIsIGtleUZpbGUuZ2V0KCkpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIEdSZWZQdHI8R3RrUHJpbnRTZXR0aW5ncz4mIHByaW50U2V0dGluZ3MpCiti
b29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBHUmVmUHRyPEd0a1ByaW50U2V0dGluZ3M+JiBw
cmludFNldHRpbmdzKQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGU7CiAgICAg
aWYgKCFkZWNvZGVHS2V5RmlsZShkZWNvZGVyLCBrZXlGaWxlKSkKQEAgLTI4NCwxNCArMjg0LDE0
IEBAIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR1JlZlB0cjxHdGtQcmlu
dFNldHRpbmdzPiYgcHJpbnRTZXR0aW5ncykKICAgICByZXR1cm4gcHJpbnRTZXR0aW5nczsKIH0K
IAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBHdGtQYWdlU2V0dXAqIHBh
Z2VTZXR1cCkKK3ZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIEd0a1BhZ2VTZXR1cCogcGFn
ZVNldHVwKQogewogICAgIEdVbmlxdWVQdHI8R0tleUZpbGU+IGtleUZpbGUoZ19rZXlfZmlsZV9u
ZXcoKSk7CiAgICAgZ3RrX3BhZ2Vfc2V0dXBfdG9fa2V5X2ZpbGUocGFnZVNldHVwLCBrZXlGaWxl
LmdldCgpLCAiUGFnZSBTZXR1cCIpOwogICAgIGVuY29kZUdLZXlGaWxlKGVuY29kZXIsIGtleUZp
bGUuZ2V0KCkpOwogfQogCi1ib29sIGRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdS
ZWZQdHI8R3RrUGFnZVNldHVwPiYgcGFnZVNldHVwKQorYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgR1JlZlB0cjxHdGtQYWdlU2V0dXA+JiBwYWdlU2V0dXApCiB7CiAgICAgR1VuaXF1ZVB0
cjxHS2V5RmlsZT4ga2V5RmlsZTsKICAgICBpZiAoIWRlY29kZUdLZXlGaWxlKGRlY29kZXIsIGtl
eUZpbGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENv
ZGVyc0d0ay5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Bcmd1bWVudENvZGVyc0d0ay5o
CmluZGV4IDgwYTVkYzFlZGViZWEwZDNkNjUzNTI4MDM0OGI1NGQ4NTBmMWRmZjAuLjAxYWM0Y2Yw
ZWYxODVlMTgwNWEyMTIwYmQ5Zjc2OGRhMTEyNzRjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9ndGsvQXJndW1lbnRDb2RlcnNHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmgKQEAgLTQxLDE2ICs0MSwxNiBAQCBuYW1lc3Bh
Y2UgSVBDIHsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkRyYWdEYXRhPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhJik7Ci0gICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkRyYWdEYXRhJik7CisgICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYpOwor
ICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RHJhZ0RhdGEmKTsKIH07
CiAjZW5kaWYKIAotdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgR3RrUHJpbnRTZXR0aW5n
cyopOwotYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgR1JlZlB0cjxHdGtQcmludFNldHRp
bmdzPiYpOwordm9pZCBlbmNvZGUoRW5jb2RlciYsIEd0a1ByaW50U2V0dGluZ3MqKTsKK2Jvb2wg
ZGVjb2RlKERlY29kZXImLCBHUmVmUHRyPEd0a1ByaW50U2V0dGluZ3M+Jik7CiAKLXZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIEd0a1BhZ2VTZXR1cCopOwotYm9vbCBkZWNvZGUoQXJndW1l
bnREZWNvZGVyJiwgR1JlZlB0cjxHdGtQYWdlU2V0dXA+Jik7Cit2b2lkIGVuY29kZShFbmNvZGVy
JiwgR3RrUGFnZVNldHVwKik7Citib29sIGRlY29kZShEZWNvZGVyJiwgR1JlZlB0cjxHdGtQYWdl
U2V0dXA+Jik7CiAKIH0gLy8gbmFtZXNwYWNlIElQQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCmluZGV4IDdl
ZDY3NjIyMTI4MTZkMTQyYTViZTZiZjAzY2VhMDRmNDNjM2I1ZGMuLjBmOTcyYzAwMzY0OTk3MTRk
ZTc0ZjNkNjEyMjVkZTM4YzliMGNlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgSVBDIHsKIAotdm9pZCBB
cmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0YShBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0
KQordm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZVBsYXRmb3JtRGF0
YShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCkKIHsKICAgICBlbmNvZGVyIDw8IHJlc291cmNlUmVxdWVzdC51cmwoKS5zdHJpbmcoKTsKICAg
ICBlbmNvZGVyIDw8IHJlc291cmNlUmVxdWVzdC5odHRwTWV0aG9kKCk7CkBAIC02NCw3ICs2NCw3
IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjplbmNvZGVQbGF0Zm9ybURh
dGEoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyCiAgICAgZW5jb2RlciA8PCByZXNvdXJjZVJlcXVl
c3QuaW5pdGlhdGluZ1BhZ2VJRCgpOwogfQogCi1ib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VS
ZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVz
b3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCitib29sIEFyZ3VtZW50Q29kZXI8UmVzb3Vy
Y2VSZXF1ZXN0Pjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogewogICAgIFN0cmluZyB1cmw7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh1cmwpKQpAQCAtMTM0LDcgKzEzNCw3IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZp
Y2F0ZUluZm8+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDZXJ0aWZp
Y2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKK3ZvaWQgQXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0
ZUluZm8+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8pCiB7CiAgICAgaWYgKCFjZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGUo
KSkgewogICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQg
QXJndW1lbnRDb2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBDZXJ0CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
Y2VydGlmaWNhdGVJbmZvLnRsc0Vycm9ycygpKTsKIH0KIAotYm9vbCBBcmd1bWVudENvZGVyPENl
cnRpZmljYXRlSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENlcnRpZmlj
YXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQorYm9vbCBBcmd1bWVudENvZGVyPENlcnRpZmljYXRl
SW5mbz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbykKIHsKICAgICBib29sIGhhc0NlcnRpZmljYXRlOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaGFzQ2VydGlmaWNhdGUpKQpAQCAtMTg0LDcgKzE4NCw3IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxDZXJ0aWZpY2F0ZUluZm8+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBD
ZXJ0aWZpY2F0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxSZXNv
dXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKK3ZvaWQgQXJndW1lbnRDb2RlcjxS
ZXNvdXJjZUVycm9yPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVt
KHJlc291cmNlRXJyb3IudHlwZSgpKTsKICAgICBpZiAocmVzb3VyY2VFcnJvci5pc051bGwoKSkK
QEAgLTE5OCw3ICsxOTgsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmVu
Y29kZVBsYXRmb3JtRGF0YShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsCiAgICAgZW5jb2RlciA8
PCBDZXJ0aWZpY2F0ZUluZm8ocmVzb3VyY2VFcnJvcik7CiB9CiAKLWJvb2wgQXJndW1lbnRDb2Rl
cjxSZXNvdXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvcikKK2Jvb2wgQXJndW1lbnRDb2RlcjxS
ZXNvdXJjZUVycm9yPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIsIFJlc291
cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgUmVzb3VyY2VFcnJvckJhc2U6OlR5cGUg
ZXJyb3JUeXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGVycm9yVHlwZSkpCkBAIC0y
MzYsMjMgKzIzNiwyMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29k
ZVBsYXRmb3JtRGF0YShBcmd1bWVudERlY29kZXImIGRlY29kZXIsCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGVQbGF0Zm9y
bURhdGEoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJikKK3ZvaWQgQXJn
dW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjplbmNvZGVQbGF0Zm9ybURhdGEoRW5jb2RlciYs
IGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKLWJvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9ybURh
dGEoQXJndW1lbnREZWNvZGVyJiwgUHJvdGVjdGlvblNwYWNlJikKK2Jvb2wgQXJndW1lbnRDb2Rl
cjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIFByb3RlY3Rp
b25TcGFjZSYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmVuY29kZVBsYXRmb3JtRGF0
YShBcmd1bWVudEVuY29kZXImLCBjb25zdCBDcmVkZW50aWFsJikKK3ZvaWQgQXJndW1lbnRDb2Rl
cjxDcmVkZW50aWFsPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBDcmVkZW50
aWFsJikKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotYm9vbCBBcmd1bWVudENv
ZGVyPENyZWRlbnRpYWw+OjpkZWNvZGVQbGF0Zm9ybURhdGEoQXJndW1lbnREZWNvZGVyJiwgQ3Jl
ZGVudGlhbCYpCitib29sIEFyZ3VtZW50Q29kZXI8Q3JlZGVudGlhbD46OmRlY29kZVBsYXRmb3Jt
RGF0YShEZWNvZGVyJiwgQ3JlZGVudGlhbCYpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3BwCmluZGV4IDQ2MjdiYzk5MGY3NmZh
NjA2YjJkZThlNDFiNjhmY2U0ZTZkMmRmZWMuLjMwM2Y5MTU4NGFjODkyYjIwZGUxNjk1MzgzZTZk
Mzg3YTY1NmYyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MZWdhY3lT
ZXNzaW9uU3RhdGVDb2RpbmdOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9uZS5jcHAKQEAgLTI3LDggKzI3LDkgQEAKICNpbmNs
dWRlICJMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIK
LSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIu
aCIKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2lu
Y2x1ZGUgIkVuY29kZXIuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIApAQCAtMzYsNyArMzcsOCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogUmVmUHRyPEFQSTo6RGF0YT4gZW5jb2RlTGVnYWN5U2Vzc2lvblN0YXRlKGNvbnN0
IFNlc3Npb25TdGF0ZSYgc2Vzc2lvblN0YXRlKQogewotICAgIElQQzo6QXJndW1lbnRFbmNvZGVy
IGVuY29kZXI7CisgICAgLy8gRklYTUU6IEknbSBub3Qgc3VyZSB3aGV0aGVyIHRoZXNlIGFyZSB0
aGUgcHJvcGVyIGFyZ3VtZW50cyBmb3IgdGhlIGVuY29kZXIuCisgICAgSVBDOjpFbmNvZGVyIGVu
Y29kZXIoIklQQyIsICJMZWdhY3lTZXNzaW9uU3RhdGUiLCAwKTsKICAgICBlbmNvZGVyIDw8IHNl
c3Npb25TdGF0ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25T
dGF0ZS5yZW5kZXJUcmVlU2l6ZTsKICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZS5wcm92aXNp
b25hbFVSTDsKQEAgLTQ1LDcgKzQ3LDcgQEAgUmVmUHRyPEFQSTo6RGF0YT4gZW5jb2RlTGVnYWN5
U2Vzc2lvblN0YXRlKGNvbnN0IFNlc3Npb25TdGF0ZSYgc2Vzc2lvblN0YXRlKQogCiBib29sIGRl
Y29kZUxlZ2FjeVNlc3Npb25TdGF0ZShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgZGF0YVNp
emUsIFNlc3Npb25TdGF0ZSYgc2Vzc2lvblN0YXRlKQogewotICAgIElQQzo6QXJndW1lbnREZWNv
ZGVyIGRlY29kZXIoZGF0YSwgZGF0YVNpemUpOworICAgIElQQzo6RGVjb2RlciBkZWNvZGVyKElQ
Qzo6RGF0YVJlZmVyZW5jZShkYXRhLCBkYXRhU2l6ZSksIFZlY3RvcjxJUEM6OkF0dGFjaG1lbnQ+
KCkpOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2Vzc2lvblN0YXRlLmJhY2tGb3J3YXJkTGlz
dFN0YXRlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
c2Vzc2lvblN0YXRlLnJlbmRlclRyZWVTaXplKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCmluZGV4IDY4NzMyODQ5ZjljODdlYWNkZWQw
NWViZmVkNjFjYmVmZWFiYWU4ZGIuLmM5N2E4OGVjN2VhNDE1NzcxNTA4MGRjYmM2NmFjMmI4YzYz
MWQ1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5h
Z2VyUHJveHkuaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVyZWZXZWJD
b250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdGFydFVw
ZGF0aW5nKCk7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>