<?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>147863</bug_id>
          
          <creation_ts>2015-08-10 19:21:36 -0700</creation_ts>
          <short_desc>Ref-ify SharedBuffer</short_desc>
          <delta_ts>2017-03-14 13:07:07 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1116443</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-08-10 19:21:36 -0700</bug_when>
    <thetext>SharedBuffer&apos;s create() functions should return Refs.
Also, its internal DataBuffer should be stored in a Ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116446</commentid>
    <comment_count>1</comment_count>
      <attachid>258685</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-08-10 19:23:41 -0700</bug_when>
    <thetext>Created attachment 258685
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116448</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-10 19:26:29 -0700</bug_when>
    <thetext>Attachment 258685 did not pass style-queue:


ERROR: Source/WebCore/platform/SharedBuffer.h:62:  The parameter name &quot;vector&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/SharedBuffer.h:68:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116452</commentid>
    <comment_count>3</comment_count>
      <attachid>258688</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-08-10 19:37:26 -0700</bug_when>
    <thetext>Created attachment 258688
Patch for EWS 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287756</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-03-14 13:07:07 -0700</bug_when>
    <thetext>Someone else made these changes somewhere in the last year.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258685</attachid>
            <date>2015-08-10 19:23:41 -0700</date>
            <delta_ts>2015-08-10 19:37:26 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>ews-147863.diff</filename>
            <type>text/plain</type>
            <size>22986</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0YTk1NjE2Li4wNWMyZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMg
QEAKKzIwMTUtMDgtMTAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlZi1pZnkgU2hhcmVkQnVmZmVyLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTQ3ODYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEhhdmUgU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSByZXR1cm4gUmVmIG9yIFJlZlB0ciBhcyBhcHBy
b3ByaWF0ZS4KKyAgICAgICAgQWxzbyBtYWtlIFNoYXJlZEJ1ZmZlcjo6bV9idWZmZXIgYSBSZWYg
c2luY2UgdGhlcmUncyBhbHdheXMgYW4gaW50ZXJuYWwgYnVmZmVyLgorCisgICAgICAgICogZWRp
dGluZy9pb3MvRWRpdG9ySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpXZWJDb250
ZW50UmVhZGVyOjpyZWFkVVJMKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGlvbkluV2ViQXJjaGl2ZUZvcm1hdCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudCk6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6YWRkRGF0YSk6Cisg
ICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxvYWREZWZhdWx0SWNvblJlY29yZCk6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6YWRvcHRWZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGVBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpTaGFyZWRCdWZmZXI6OmR1cGxpY2F0ZURhdGFCdWZmZXJJZk5lY2Vzc2FyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNsZWFyRGF0YUJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjp1dGY4QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI6OlNoYXJlZEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBD
RkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhQXJyYXkp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnJl
cGxhY2VtZW50RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9s
c0NvbnRlbnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpQYXJlbnRhbENvbnRyb2xzQ29u
dGVudEZpbHRlcjo6cmVwbGFjZW1lbnREYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlRmlsZVdyYXBwZXJBc1JURkRB
dHRhY2htZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjp3cmFwTlNEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ0ZEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9z
b3VwL1NoYXJlZEJ1ZmZlclNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVy
Ojp3cmFwU291cEJ1ZmZlcik6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlcjo6cmVwbGFjZW1lbnREYXRh
KToKKwogMjAxNS0wOC0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFNpbXBsaWZ5IGNvZGUgZm9yIG1ha2luZyBQYWdlLWNhY2hlYWJpbGl0eSBkZWNpc2lvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IDIyNmVhZDUuLjMyOTQ2
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KQEAgLTQ4NywxMCAr
NDg3LDEwIEBAIGJvb2wgRWRpdG9yOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkVVJMKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmKQogICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IGZpbGVU
eXBlID0gYWRvcHROUygoTlNTdHJpbmcgKilVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVy
Rm9yVGFnKGtVVFRhZ0NsYXNzRmlsZW5hbWVFeHRlbnNpb24sIChDRlN0cmluZ1JlZilbbG9jYWxQ
YXRoIHBhdGhFeHRlbnNpb25dLCBOVUxMKSk7CiAgICAgICAgIE5TRGF0YSAqZGF0YSA9IFtOU0Rh
dGEgZGF0YVdpdGhDb250ZW50c09mRmlsZTpsb2NhbFBhdGhdOwogICAgICAgICBpZiAoVVRUeXBl
Q29uZm9ybXNUbygoQ0ZTdHJpbmdSZWYpZmlsZVR5cGUuZ2V0KCksIGtVVFR5cGVQTkcpKSB7Ci0g
ICAgICAgICAgICBhZGRGcmFnbWVudChmcmFtZS5lZGl0b3IoKS5jcmVhdGVGcmFnbWVudEZvcklt
YWdlUmVzb3VyY2VBbmRBZGRSZXNvdXJjZShBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShTaGFyZWRC
dWZmZXI6OndyYXBOU0RhdGEoW1tkYXRhIGNvcHldIGF1dG9yZWxlYXNlXSksIFVSTDo6ZmFrZVVS
TFdpdGhSZWxhdGl2ZVBhcnQoImltYWdlLnBuZyIpLCBAImltYWdlL3BuZyIsIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCkpKSk7CisgICAgICAgICAgICBhZGRGcmFnbWVudChmcmFtZS5lZGl0
b3IoKS5jcmVhdGVGcmFnbWVudEZvckltYWdlUmVzb3VyY2VBbmRBZGRSZXNvdXJjZShBcmNoaXZl
UmVzb3VyY2U6OmNyZWF0ZShTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoW1tkYXRhIGNvcHldIGF1
dG9yZWxlYXNlXSksIFVSTDo6ZmFrZVVSTFdpdGhSZWxhdGl2ZVBhcnQoImltYWdlLnBuZyIpLCBA
ImltYWdlL3BuZyIsIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkpLnB0cigpKSk7CiAgICAg
ICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAgICAgICAgIH0gZWxzZSBpZiAoVVRUeXBlQ29uZm9y
bXNUbygoQ0ZTdHJpbmdSZWYpZmlsZVR5cGUuZ2V0KCksIGtVVFR5cGVKUEVHKSkgewotICAgICAg
ICAgICAgYWRkRnJhZ21lbnQoZnJhbWUuZWRpdG9yKCkuY3JlYXRlRnJhZ21lbnRGb3JJbWFnZVJl
c291cmNlQW5kQWRkUmVzb3VyY2UoQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoU2hhcmVkQnVmZmVy
Ojp3cmFwTlNEYXRhKFtbZGF0YSBjb3B5XSBhdXRvcmVsZWFzZV0pLCBVUkw6OmZha2VVUkxXaXRo
UmVsYXRpdmVQYXJ0KCJpbWFnZS5qcGciKSwgQCJpbWFnZS9qcGciLCBlbXB0eVN0cmluZygpLCBl
bXB0eVN0cmluZygpKSkpOworICAgICAgICAgICAgYWRkRnJhZ21lbnQoZnJhbWUuZWRpdG9yKCku
Y3JlYXRlRnJhZ21lbnRGb3JJbWFnZVJlc291cmNlQW5kQWRkUmVzb3VyY2UoQXJjaGl2ZVJlc291
cmNlOjpjcmVhdGUoU2hhcmVkQnVmZmVyOjp3cmFwTlNEYXRhKFtbZGF0YSBjb3B5XSBhdXRvcmVs
ZWFzZV0pLCBVUkw6OmZha2VVUkxXaXRoUmVsYXRpdmVQYXJ0KCJpbWFnZS5qcGciKSwgQCJpbWFn
ZS9qcGciLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpKS5wdHIoKSkpOwogICAgICAgICAg
ICAgcmV0dXJuIGZyYWdtZW50OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCA1YzBiZGFhLi5jYzhjZDlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC0zMTMsNyArMzEzLDEwIEBAIFN0
cmluZyBFZGl0b3I6OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmRXaXRoSW1hZ2VBbHRUZXh0
KCkKIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBFZGl0b3I6OnNlbGVjdGlvbkluV2ViQXJjaGl2
ZUZvcm1hdCgpCiB7CiAgICAgUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IGFyY2hpdmUgPSBMZWdh
Y3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKCZtX2ZyYW1lKTsKLSAgICByZXR1cm4g
YXJjaGl2ZSA/IFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YShhcmNoaXZlLT5yYXdEYXRhUmVwcmVz
ZW50YXRpb24oKS5nZXQoKSkgOiAwOworICAgIGlmICghYXJjaGl2ZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YShhcmNoaXZlLT5y
YXdEYXRhUmVwcmVzZW50YXRpb24oKS5nZXQoKSk7CisgICAgCiB9CiAKIFBhc3NSZWZQdHI8UmFu
Z2U+IEVkaXRvcjo6YWRqdXN0ZWRTZWxlY3Rpb25SYW5nZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDI4YjMwZGQuLjk2ZmJlYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
CkBAIC0xNDEsNyArMTQxLDExIEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNv
dXJjZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlLCBTCiAKICAgICAqYmFz
ZTY0RW5jb2RlZCA9ICFoYXNUZXh0Q29udGVudChjYWNoZWRSZXNvdXJjZSk7CiAgICAgaWYgKCpi
YXNlNjRFbmNvZGVkKSB7Ci0gICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGhh
c1plcm9TaXplID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IGNhY2hlZFJlc291cmNlLT5yZXNv
dXJjZUJ1ZmZlcigpOworICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAg
ICAgIGlmIChoYXNaZXJvU2l6ZSkKKyAgICAgICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1ZmZlciA9IGNhY2hlZFJlc291
cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgKnJlc3VsdCA9IGJhc2U2NEVuY29kZShidWZmZXItPmRh
dGEoKSwgYnVmZmVyLT5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggM2VlZjVmZC4uYTcyMjliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0yNjEsMTIgKzI2MSwxOCBAQCB2b2lkIFJlc291cmNlTG9hZGVy
OjphZGREYXRhT3JCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoLCBTaGFy
ZWRCdQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZGF0YVBheWxvYWRUeXBlID09IERhdGFQ
YXlsb2FkV2hvbGVSZXNvdXJjZSkgewotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IGJ1ZmZlciA/
IGJ1ZmZlciA6IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGlm
IChidWZmZXIpCisgICAgICAgICAgICBtX3Jlc291cmNlRGF0YSA9IGJ1ZmZlcjsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShk
YXRhLCBsZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKICAgICBpZiAo
IW1fcmVzb3VyY2VEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IGJ1ZmZlciA/IGJ1ZmZl
ciA6IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0aCk7CisgICAgICAgIGlmIChidWZm
ZXIpCisgICAgICAgICAgICBtX3Jlc291cmNlRGF0YSA9IGJ1ZmZlcjsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBs
ZW5ndGgpOwogICAgIGVsc2UgewogICAgICAgICBpZiAoYnVmZmVyKQogICAgICAgICAgICAgbV9y
ZXNvdXJjZURhdGEtPmFwcGVuZChidWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggZGYzMzY3NS4uZjc1ZGE4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC00MDksNyArNDA5LDcgQEAgdm9p
ZCBDYWNoZWRJbWFnZTo6YWRkRGF0YUJ1ZmZlcihTaGFyZWRCdWZmZXImIGRhdGEpCiB2b2lkIENh
Y2hlZEltYWdlOjphZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKIHsK
ICAgICBBU1NFUlQoZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09IERvTm90QnVmZmVyRGF0YSk7Ci0g
ICAgYWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKCpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBs
ZW5ndGgpKTsKKyAgICBhZGRJbmNyZW1lbnRhbERhdGFCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVh
dGUoZGF0YSwgbGVuZ3RoKSk7CiAgICAgQ2FjaGVkUmVzb3VyY2U6OmFkZERhdGEoZGF0YSwgbGVu
Z3RoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAK
aW5kZXggNjRhNzU1NS4uYWY4ZmY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uRGF0YWJhc2UuY3BwCkBAIC0zOTEsOCArMzkxLDggQEAgc3RhdGljIGlubGluZSB2b2lkIGxv
YWREZWZhdWx0SWNvblJlY29yZChJY29uUmVjb3JkKiBkZWZhdWx0SWNvblJlY29yZCkKICAgICAg
ICAgMHgwMCwgMHgwMCwgMHgwMSwgMHg1MiwgMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMSwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwQSwg
CiAgICAgICAgIDB4RkMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MjcsIDB4MTAsIDB4MDAsIDB4MEEs
IDB4RkMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MjcsIDB4MTAgfTsKICAgICAgICAgCi0gICAgc3Rh
dGljIFNoYXJlZEJ1ZmZlciogZGVmYXVsdEljb25CdWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0
ZShkZWZhdWx0SWNvbkRhdGEsIHNpemVvZihkZWZhdWx0SWNvbkRhdGEpKS5sZWFrUmVmKCk7Ci0g
ICAgZGVmYXVsdEljb25SZWNvcmQtPnNldEltYWdlRGF0YShkZWZhdWx0SWNvbkJ1ZmZlcik7Cisg
ICAgc3RhdGljIFNoYXJlZEJ1ZmZlciYgZGVmYXVsdEljb25CdWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkZWZhdWx0SWNvbkRhdGEsIHNpemVvZihkZWZhdWx0SWNvbkRhdGEpKS5sZWFrUmVm
KCk7CisgICAgZGVmYXVsdEljb25SZWNvcmQtPnNldEltYWdlRGF0YSgmZGVmYXVsdEljb25CdWZm
ZXIpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
CmluZGV4IDUzMzk2MWYuLmM4Y2JlYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVk
QnVmZmVyLmNwcApAQCAtNjIsMzAgKzYyLDMwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlU2Vn
bWVudChjaGFyKiBwKQogI2VuZGlmCiAKIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKCkKLSAg
ICA6IG1fYnVmZmVyKGFkb3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkKKyAgICA6IG1fYnVmZmVyKGFk
b3B0UmVmKCpuZXcgRGF0YUJ1ZmZlcikpCiB7CiB9CiAKIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVm
ZmVyKHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3NpemUoc2l6ZSkKLSAgICAsIG1fYnVmZmVyKGFk
b3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkKKyAgICAsIG1fYnVmZmVyKGFkb3B0UmVmKCpuZXcgRGF0
YUJ1ZmZlcikpCiB7CiB9CiAKIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIq
IGRhdGEsIHVuc2lnbmVkIHNpemUpCi0gICAgOiBtX2J1ZmZlcihhZG9wdFJlZihuZXcgRGF0YUJ1
ZmZlcikpCisgICAgOiBtX2J1ZmZlcihhZG9wdFJlZigqbmV3IERhdGFCdWZmZXIpKQogewogICAg
IGFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAogU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoY29u
c3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKLSAgICA6IG1fYnVmZmVyKGFk
b3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkKKyAgICA6IG1fYnVmZmVyKGFkb3B0UmVmKCpuZXcgRGF0
YUJ1ZmZlcikpCiB7CiAgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRh
dGEpLCBzaXplKTsKIH0KIAogU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoTWFwcGVkRmlsZURh
dGEmJiBmaWxlRGF0YSkKLSAgICA6IG1fYnVmZmVyKGFkb3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkK
KyAgICA6IG1fYnVmZmVyKGFkb3B0UmVmKCpuZXcgRGF0YUJ1ZmZlcikpCiAgICAgLCBtX2ZpbGVE
YXRhKFdURjo6bW92ZShmaWxlRGF0YSkpCiB7CiB9CkBAIC0xMDMsMTUgKzEwMywxNSBAQCBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhDb250ZW50c09mRmlsZShj
b25zdCBTdHJpbmcmIGZpbGVQYQogICAgIGlmICghbWFwcGluZ1N1Y2Nlc3MpCiAgICAgICAgIHJl
dHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUZyb21SZWFkaW5nRmlsZShmaWxlUGF0aCk7CiAKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihXVEY6Om1vdmUobWFwcGVkRmlsZURh
dGEpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkQnVmZmVyKFdURjo6bW92ZSht
YXBwZWRGaWxlRGF0YSkpKTsKIH0KIAotUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1
ZmZlcjo6YWRvcHRWZWN0b3IoVmVjdG9yPGNoYXI+JiB2ZWN0b3IpCitSZWY8U2hhcmVkQnVmZmVy
PiBTaGFyZWRCdWZmZXI6OmFkb3B0VmVjdG9yKFZlY3RvcjxjaGFyPiYgdmVjdG9yKQogewotICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGNyZWF0ZSgpOworICAgIFJlZjxTaGFyZWRC
dWZmZXI+IGJ1ZmZlciA9IGNyZWF0ZSgpOwogICAgIGJ1ZmZlci0+bV9idWZmZXItPmRhdGEuc3dh
cCh2ZWN0b3IpOwogICAgIGJ1ZmZlci0+bV9zaXplID0gYnVmZmVyLT5tX2J1ZmZlci0+ZGF0YS5z
aXplKCk7Ci0gICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGJ1ZmZlcjsK
IH0KIAogdW5zaWduZWQgU2hhcmVkQnVmZmVyOjpzaXplKCkgY29uc3QKQEAgLTE0MSw3ICsxNDEs
NyBAQCBjb25zdCBjaGFyKiBTaGFyZWRCdWZmZXI6OmRhdGEoKSBjb25zdAogICAgIHJldHVybiB0
aGlzLT5idWZmZXIoKS5kYXRhKCk7CiB9CiAKLVBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlQXJyYXlCdWZmZXIoKSBjb25zdAorUmVmUHRyPEFycmF5QnVmZmVyPiBT
aGFyZWRCdWZmZXI6OmNyZWF0ZUFycmF5QnVmZmVyKCkgY29uc3QKIHsKICAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IGFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQo
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNpemUoKSksIHNpemVvZihjaGFyKSk7CiAKQEAgLTE1OCw3
ICsxNTgsNyBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUFy
cmF5QnVmZmVyKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJu
IGFycmF5QnVmZmVyLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXI7CiB9CiAKIHZv
aWQgU2hhcmVkQnVmZmVyOjphcHBlbmQoU2hhcmVkQnVmZmVyKiBkYXRhKQpAQCAtMjgyLDEwICsy
ODIsMTAgQEAgdm9pZCBTaGFyZWRCdWZmZXI6OmR1cGxpY2F0ZURhdGFCdWZmZXJJZk5lY2Vzc2Fy
eSgpIGNvbnN0CiAgICAgICAgIHJldHVybjsKIAogICAgIHNpemVfdCBuZXdDYXBhY2l0eSA9IHN0
ZDo6bWF4KHN0YXRpY19jYXN0PHNpemVfdD4obV9zaXplKSwgY3VycmVudENhcGFjaXR5ICogMik7
Ci0gICAgUmVmUHRyPERhdGFCdWZmZXI+IG5ld0J1ZmZlciA9IGFkb3B0UmVmKG5ldyBEYXRhQnVm
ZmVyKTsKKyAgICBSZWY8RGF0YUJ1ZmZlcj4gbmV3QnVmZmVyID0gYWRvcHRSZWYoKm5ldyBEYXRh
QnVmZmVyKTsKICAgICBuZXdCdWZmZXItPmRhdGEucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShuZXdD
YXBhY2l0eSk7CiAgICAgbmV3QnVmZmVyLT5kYXRhID0gbV9idWZmZXItPmRhdGE7Ci0gICAgbV9i
dWZmZXIgPSBuZXdCdWZmZXIucmVsZWFzZSgpOworICAgIG1fYnVmZmVyID0gV1RGOjptb3ZlKG5l
d0J1ZmZlcik7CiB9CiAKIHZvaWQgU2hhcmVkQnVmZmVyOjphcHBlbmRUb0RhdGFCdWZmZXIoY29u
c3QgY2hhciAqZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdApAQCAtMjk3LDcgKzI5Nyw3IEBA
IHZvaWQgU2hhcmVkQnVmZmVyOjphcHBlbmRUb0RhdGFCdWZmZXIoY29uc3QgY2hhciAqZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKSBjb25zdAogdm9pZCBTaGFyZWRCdWZmZXI6OmNsZWFyRGF0YUJ1ZmZl
cigpCiB7CiAgICAgaWYgKCFtX2J1ZmZlci0+aGFzT25lUmVmKCkpCi0gICAgICAgIG1fYnVmZmVy
ID0gYWRvcHRSZWYobmV3IERhdGFCdWZmZXIpOworICAgICAgICBtX2J1ZmZlciA9IGFkb3B0UmVm
KCpuZXcgRGF0YUJ1ZmZlcik7CiAgICAgZWxzZQogICAgICAgICBtX2J1ZmZlci0+ZGF0YS5jbGVh
cigpOwogfQpAQCAtNDE0LDcgKzQxNCw3IEBAIGlubGluZSBib29sIFNoYXJlZEJ1ZmZlcjo6bWF5
YmVBcHBlbmRQbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKikKIAogI2VuZGlmCiAKLVBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiB1dGY4QnVmZmVyKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gdXRmOEJ1ZmZlcihjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICAv
LyBBbGxvY2F0ZSBhIGJ1ZmZlciBiaWcgZW5vdWdoIHRvIGhvbGQgYWxsIHRoZSBjaGFyYWN0ZXJz
LgogICAgIGNvbnN0IGludCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5oCmluZGV4IDQwMzBiZGEuLmQyMzNkYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCkBAIC01MiwyNSArNTIsMjUgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIAogY2xhc3MgU2hhcmVkQnVmZmVyIDogcHVibGljIFJlZkNvdW50ZWQ8
U2hhcmVkQnVmZmVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKTsgfQotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIHNpemUpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoc2l6ZSkpOyB9Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogYywgdW5zaWduZWQgaSkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihjLCBpKSk7IH0KLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBjLCB1
bnNpZ25lZCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGMsIGkpKTsgfQor
ICAgIHN0YXRpYyBSZWY8U2hhcmVkQnVmZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFNoYXJlZEJ1ZmZlcik7IH0KKyAgICBzdGF0aWMgUmVmPFNoYXJlZEJ1ZmZlcj4gY3JlYXRl
KHVuc2lnbmVkIHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkQnVmZmVyKHNpemUp
KTsgfQorICAgIHN0YXRpYyBSZWY8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciogYywg
dW5zaWduZWQgaSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRCdWZmZXIoYywgaSkpOyB9
CisgICAgc3RhdGljIFJlZjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25zdCB1bnNpZ25lZCBjaGFy
KiBjLCB1bnNpZ25lZCBpKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZEJ1ZmZlcihjLCBp
KSk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBj
cmVhdGVXaXRoQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCk7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGFkb3B0VmVjdG9y
KFZlY3RvcjxjaGFyPiYgdmVjdG9yKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNo
YXJlZEJ1ZmZlcj4gYWRvcHRWZWN0b3IoVmVjdG9yPGNoYXI+JiB2ZWN0b3IpOwogICAgIAogICAg
IFdFQkNPUkVfRVhQT1JUIH5TaGFyZWRCdWZmZXIoKTsKICAgICAKICNpZiBVU0UoRk9VTkRBVElP
TikKICAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8TlNEYXRhPiBjcmVhdGVOU0RhdGEoKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHdyYXBO
U0RhdGEoTlNEYXRhICpkYXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNoYXJl
ZEJ1ZmZlcj4gd3JhcE5TRGF0YShOU0RhdGEgKmRhdGEpOwogI2VuZGlmCiAjaWYgVVNFKENGKQog
ICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDRkRhdGFSZWY+IGNyZWF0ZUNGRGF0YSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIENGRGF0YVJlZiBleGlzdGluZ0NGRGF0YSgpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gd3JhcENGRGF0YShDRkRh
dGFSZWYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U2hhcmVkQnVmZmVyPiB3cmFw
Q0ZEYXRhKENGRGF0YVJlZik7CiAjZW5kaWYKIAogI2lmIFVTRShTT1VQKQpAQCAtODMsNyArODMs
NyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgY2hhciogZGF0YSgpIGNvbnN0
OwogICAgIC8vIENyZWF0ZXMgYW4gQXJyYXlCdWZmZXIgYW5kIGNvcGllcyB0aGlzIFNoYXJlZEJ1
ZmZlcidzIGNvbnRlbnRzIHRvIHRoYXQKICAgICAvLyBBcnJheUJ1ZmZlciB3aXRob3V0IG1lcmdp
bmcgc2VnbWVudGVkIGJ1ZmZlcnMgaW50byBhIGZsYXQgYnVmZmVyLgotICAgIFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+IGNyZWF0ZUFycmF5QnVmZmVyKCkgY29uc3Q7CisgICAgUmVmUHRyPEFycmF5
QnVmZmVyPiBjcmVhdGVBcnJheUJ1ZmZlcigpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dW5zaWduZWQgc2l6ZSgpIGNvbnN0OwogCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICB1
bnNpZ25lZCBwbGF0Zm9ybURhdGFTaXplKCkgY29uc3Q7CiAKICNpZiBVU0UoTkVUV09SS19DRkRB
VEFfQVJSQVlfQ0FMTEJBQ0spCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB3
cmFwQ0ZEYXRhQXJyYXkoQ0ZBcnJheVJlZik7CisgICAgc3RhdGljIFJlZjxTaGFyZWRCdWZmZXI+
IHdyYXBDRkRhdGFBcnJheShDRkFycmF5UmVmKTsKICAgICB2b2lkIGFwcGVuZChDRkRhdGFSZWYp
OwogI2VuZGlmCiAKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJE
YXRhQnVmZmVyKCk7CiAKICAgICB1bnNpZ25lZCBtX3NpemUgeyAwIH07Ci0gICAgbXV0YWJsZSBS
ZWZQdHI8RGF0YUJ1ZmZlcj4gbV9idWZmZXI7CisgICAgbXV0YWJsZSBSZWY8RGF0YUJ1ZmZlcj4g
bV9idWZmZXI7CiAKICNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCiAgICAg
ZXhwbGljaXQgU2hhcmVkQnVmZmVyKENGQXJyYXlSZWYpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIHBy
aXZhdGU6CiAgICAgTWFwcGVkRmlsZURhdGEgbV9maWxlRGF0YTsKIH07CiAKLVBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiB1dGY4QnVmZmVyKGNvbnN0IFN0cmluZyYpOworUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gdXRmOEJ1ZmZlcihjb25zdCBTdHJpbmcmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJD
Ri5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAKaW5k
ZXggMmE3NWU1Ni4uMThhMjU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2YvU2hhcmVkQnVmZmVyQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1No
YXJlZEJ1ZmZlckNGLmNwcApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihDRkRhdGFSZWYgY2ZEYXRhKQotICAgIDogbV9i
dWZmZXIoYWRvcHRSZWYobmV3IERhdGFCdWZmZXIpKQorICAgIDogbV9idWZmZXIoYWRvcHRSZWYo
Km5ldyBEYXRhQnVmZmVyKSkKICAgICAsIG1fY2ZEYXRhKGNmRGF0YSkKICAgICAsIG1fdm5vZGVU
b2tlbihWTm9kZVRyYWNrZXI6OnNpbmdsZXRvbigpLnRva2VuKCkpCiB7CkBAIC01Myw5ICs1Myw5
IEBAIFJldGFpblB0cjxDRkRhdGFSZWY+IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ0ZEYXRhKCkKIH0K
ICNlbmRpZgogCi1QYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjp3cmFwQ0ZE
YXRhKENGRGF0YVJlZiBkYXRhKQorUmVmPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjp3cmFw
Q0ZEYXRhKENGRGF0YVJlZiBkYXRhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVk
QnVmZmVyKGRhdGEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRCdWZmZXIoZGF0
YSkpOwogfQogCiBib29sIFNoYXJlZEJ1ZmZlcjo6aGFzUGxhdGZvcm1EYXRhKCkgY29uc3QKQEAg
LTExMCwxMyArMTEwLDEzIEBAIGJvb2wgU2hhcmVkQnVmZmVyOjptYXliZUFwcGVuZFBsYXRmb3Jt
RGF0YShTaGFyZWRCdWZmZXIqIG5ld0NvbnRlbnRzKQogfQogCiAjaWYgVVNFKE5FVFdPUktfQ0ZE
QVRBX0FSUkFZX0NBTExCQUNLKQotUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZl
cjo6d3JhcENGRGF0YUFycmF5KENGQXJyYXlSZWYgY2ZEYXRhQXJyYXkpCitSZWY8U2hhcmVkQnVm
ZmVyPiBTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGFBcnJheShDRkFycmF5UmVmIGNmRGF0YUFycmF5
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKGNmRGF0YUFycmF5KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkQnVmZmVyKGNmRGF0YUFycmF5KSk7CiB9
CiAKIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKENGQXJyYXlSZWYgY2ZEYXRhQXJyYXkpCi0g
ICAgOiBtX2J1ZmZlcihhZG9wdFJlZihuZXcgRGF0YUJ1ZmZlcikpCisgICAgOiBtX2J1ZmZlcihh
ZG9wdFJlZigqbmV3IERhdGFCdWZmZXIpKQogICAgICwgbV9jZkRhdGEobnVsbHB0cikKIHsKICAg
ICBDRkluZGV4IGRhdGFBcnJheUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGNmRGF0YUFycmF5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29y
a0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0KaW5kZXggMmIwMzM2Yy4uNDdlZTUwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4
dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0KQEAgLTE5Miw3ICsxOTIsNyBAQCBib29sIE5ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyOjpkaWRCbG9ja0RhdGEoKSBjb25zdAogUmVmPFNoYXJlZEJ1
ZmZlcj4gTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnJlcGxhY2VtZW50RGF0YSgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGRpZEJsb2NrRGF0YSgpKTsKLSAgICByZXR1cm4gYWRvcHRSZWYo
KlNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShtX3JlcGxhY2VtZW50RGF0YS5nZXQoKSkubGVha1Jl
ZigpKTsKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjp3cmFwTlNEYXRhKG1fcmVwbGFjZW1lbnRE
YXRhLmdldCgpKTsKIH0KIAogQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIE5ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyOjp1bmJsb2NrSGFuZGxlcigpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRl
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250
ZW50RmlsdGVyLm1tCmluZGV4IGEzNmVhMWYuLjMzMWNkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLm1tCkBAIC0xMDksNyArMTA5LDcgQEAgYm9vbCBQYXJlbnRhbENvbnRyb2xzQ29udGVu
dEZpbHRlcjo6ZGlkQmxvY2tEYXRhKCkgY29uc3QKIFJlZjxTaGFyZWRCdWZmZXI+IFBhcmVudGFs
Q29udHJvbHNDb250ZW50RmlsdGVyOjpyZXBsYWNlbWVudERhdGEoKSBjb25zdAogewogICAgIEFT
U0VSVChkaWRCbG9ja0RhdGEoKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpTaGFyZWRCdWZmZXI6
OndyYXBOU0RhdGEobV9yZXBsYWNlbWVudERhdGEuZ2V0KCkpLmxlYWtSZWYoKSk7CisgICAgcmV0
dXJuIFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShtX3JlcGxhY2VtZW50RGF0YS5nZXQoKSk7CiB9
CiAKIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZp
bHRlcjo6dW5ibG9ja0hhbmRsZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCBhMGYxMTNkLi5iZWQ1NTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtMjUwLDcgKzI1MCw3IEBA
IHN0YXRpYyB2b2lkIHdyaXRlRmlsZVdyYXBwZXJBc1JURkRBdHRhY2htZW50KE5TRmlsZVdyYXBw
ZXIgKndyYXBwZXIsIGNvbnN0IFN0cmluCiAgICAgaWYgKCFSVEZERGF0YSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbmV3Q2hhbmdlQ291bnQgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVi
b2FyZFN0cmF0ZWd5KCktPnNldEJ1ZmZlckZvclR5cGUoU2hhcmVkQnVmZmVyOjp3cmFwTlNEYXRh
KFJURkREYXRhKS5nZXQoKSwgTlNSVEZEUGJvYXJkVHlwZSwgcGFzdGVib2FyZE5hbWUpOworICAg
IG5ld0NoYW5nZUNvdW50ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVn
eSgpLT5zZXRCdWZmZXJGb3JUeXBlKFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShSVEZERGF0YSku
cHRyKCksIE5TUlRGRFBib2FyZFR5cGUsIHBhc3RlYm9hcmROYW1lKTsKIH0KIAogdm9pZCBQYXN0
ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkSW1hZ2UmIHBhc3RlYm9hcmRJbWFnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TaGFyZWRCdWZmZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tCmluZGV4IDFh
ZDI4YWQuLmM1NTRkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
aGFyZWRCdWZmZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJl
ZEJ1ZmZlck1hYy5tbQpAQCAtOTAsOSArOTAsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVk
QnVmZmVyOjp3cmFwTlNEYXRhKE5TRGF0YSAqbnNEYXRhKQorUmVmPFNoYXJlZEJ1ZmZlcj4gU2hh
cmVkQnVmZmVyOjp3cmFwTlNEYXRhKE5TRGF0YSAqbnNEYXRhKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2hhcmVkQnVmZmVyKChDRkRhdGFSZWYpbnNEYXRhKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2hhcmVkQnVmZmVyKChDRkRhdGFSZWYpbnNEYXRhKSk7CiB9CiAKIFJldGFp
blB0cjxOU0RhdGE+IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlTlNEYXRhKCkKQEAgLTExOSw3ICsxMTks
NyBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUNGRGF0YSgpCiAg
ICAgICAgIHJldHVybiBjZkRhdGE7CiAKICAgICBkYXRhKCk7IC8vIEZvcmNlIGRhdGEgaW50byBt
X2J1ZmZlciBmcm9tIHNlZ21lbnRzIG9yIGRhdGEgYXJyYXkuCi0gICAgcmV0dXJuIGFkb3B0Q0Yo
KENGRGF0YVJlZilhZG9wdE5TKFtbV2ViQ29yZVNoYXJlZEJ1ZmZlckRhdGEgYWxsb2NdIGluaXRX
aXRoU2hhcmVkQnVmZmVyRGF0YUJ1ZmZlcjptX2J1ZmZlci5nZXQoKV0pLmxlYWtSZWYoKSk7Cisg
ICAgcmV0dXJuIGFkb3B0Q0YoKENGRGF0YVJlZilhZG9wdE5TKFtbV2ViQ29yZVNoYXJlZEJ1ZmZl
ckRhdGEgYWxsb2NdIGluaXRXaXRoU2hhcmVkQnVmZmVyRGF0YUJ1ZmZlcjptX2J1ZmZlci5wdHIo
KV0pLmxlYWtSZWYoKSk7CiB9CiAKIFJlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlRnJvbVJlYWRpbmdGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3VwL1NoYXJlZEJ1ZmZlclNvdXAuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAppbmRleCBjYmRi
MzM3Li5jOWMzMDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3VwL1No
YXJlZEJ1ZmZlclNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvU2hh
cmVkQnVmZmVyU291cC5jcHAKQEAgLTMzLDkgKzMzLDkgQEAgU2hhcmVkQnVmZmVyOjpTaGFyZWRC
dWZmZXIoU291cEJ1ZmZlciogc291cEJ1ZmZlcikKICAgICBBU1NFUlQoc291cEJ1ZmZlcik7CiB9
CiAKLVBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OndyYXBTb3VwQnVmZmVy
KFNvdXBCdWZmZXIqIHNvdXBCdWZmZXIpCitSZWY8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6
OndyYXBTb3VwQnVmZmVyKFNvdXBCdWZmZXIqIHNvdXBCdWZmZXIpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoc291cEJ1ZmZlcikpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNoYXJlZEJ1ZmZlcihzb3VwQnVmZmVyKSk7CiB9CiAKIHZvaWQgU2hhcmVkQnVmZmVy
OjpjbGVhclBsYXRmb3JtRGF0YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tDb250ZW50RmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRl
bnRGaWx0ZXIuY3BwCmluZGV4IDExZjkzMTcuLmRkNjdlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgYm9vbCBN
b2NrQ29udGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKCkgY29uc3QKIFJlZjxTaGFyZWRCdWZmZXI+
IE1vY2tDb250ZW50RmlsdGVyOjpyZXBsYWNlbWVudERhdGEoKSBjb25zdAogewogICAgIEFTU0VS
VChkaWRCbG9ja0RhdGEoKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShtX3JlcGxhY2VtZW50RGF0YS5kYXRhKCksIG1fcmVwbGFjZW1lbnREYXRhLnNpemUoKSku
bGVha1JlZigpKTsKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUobV9yZXBsYWNlbWVu
dERhdGEuZGF0YSgpLCBtX3JlcGxhY2VtZW50RGF0YS5zaXplKCkpOwogfQogCiBDb250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXIgTW9ja0NvbnRlbnRGaWx0ZXI6OnVuYmxvY2tIYW5kbGVyKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQppbmRleCAyYjZkYTQ2Li5k
N2IzYjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCkBAIC0yMTAs
NyArMjEwLDcgQEAgc3RhdGljIEJPT0wgaXNBcnJheU9mQ2xhc3MoaWQgb2JqZWN0LCBDbGFzcyBl
bGVtZW50Q2xhc3MpCiAjZW5kaWYKIAogICAgIF9wcml2YXRlID0gW1tXZWJBcmNoaXZlUHJpdmF0
ZSBhbGxvY10gaW5pdF07Ci0gICAgUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IGNvcmVBcmNoaXZl
ID0gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShkYXRh
KS5nZXQoKSk7CisgICAgUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IGNvcmVBcmNoaXZlID0gTGVn
YWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShkYXRhKS5wdHIo
KSk7CiAgICAgaWYgKCFjb3JlQXJjaGl2ZSkgewogICAgICAgICBbc2VsZiByZWxlYXNlXTsKICAg
ICAgICAgcmV0dXJuIG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1Vu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcAppbmRleCA4ZjBiY2ZmLi42ZGMy
MTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0
YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCkBAIC0xMDY1LDcgKzEwNjUsNyBAQCBib29sIFVu
aXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRJbmRleFJlY29yZChjb25zdCBJ
REJJZGVudGlmaWVyJiB0cgogICAgIGlmIChjdXJzb3JUeXBlID09IEluZGV4ZWREQjo6Q3Vyc29y
VHlwZTo6S2V5T25seSkKICAgICAgICAgcmVzdWx0ID0gSURCR2V0UmVzdWx0KGN1cnNvci0+Y3Vy
cmVudFByaW1hcnlLZXkoKSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIHJlc3VsdCA9IElEQkdldFJl
c3VsdChTaGFyZWRCdWZmZXI6OmNyZWF0ZShjdXJzb3ItPmN1cnJlbnRWYWx1ZUJ1ZmZlcigpLmRh
dGEoKSwgY3Vyc29yLT5jdXJyZW50VmFsdWVCdWZmZXIoKS5zaXplKCkpKTsKKyAgICAgICAgcmVz
dWx0ID0gSURCR2V0UmVzdWx0KFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGN1cnNvci0+Y3VycmVudFZh
bHVlQnVmZmVyKCkuZGF0YSgpLCBjdXJzb3ItPmN1cnJlbnRWYWx1ZUJ1ZmZlcigpLnNpemUoKSku
cHRyKCkpOwogICAgICAgICByZXN1bHQua2V5RGF0YSA9IGN1cnNvci0+Y3VycmVudFByaW1hcnlL
ZXkoKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258688</attachid>
            <date>2015-08-10 19:37:26 -0700</date>
            <delta_ts>2015-08-10 19:37:26 -0700</delta_ts>
            <desc>Patch for EWS 2</desc>
            <filename>ews-147863-2.diff</filename>
            <type>text/plain</type>
            <size>21907</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0YTk1NjE2Li4wNWMyZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMg
QEAKKzIwMTUtMDgtMTAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlZi1pZnkgU2hhcmVkQnVmZmVyLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MTQ3ODYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEhhdmUgU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSByZXR1cm4gUmVmIG9yIFJlZlB0ciBhcyBhcHBy
b3ByaWF0ZS4KKyAgICAgICAgQWxzbyBtYWtlIFNoYXJlZEJ1ZmZlcjo6bV9idWZmZXIgYSBSZWYg
c2luY2UgdGhlcmUncyBhbHdheXMgYW4gaW50ZXJuYWwgYnVmZmVyLgorCisgICAgICAgICogZWRp
dGluZy9pb3MvRWRpdG9ySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpXZWJDb250
ZW50UmVhZGVyOjpyZWFkVVJMKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGlvbkluV2ViQXJjaGl2ZUZvcm1hdCk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudCk6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6YWRkRGF0YSk6Cisg
ICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmxvYWREZWZhdWx0SWNvblJlY29yZCk6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6YWRvcHRWZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGVBcnJheUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpTaGFyZWRCdWZmZXI6OmR1cGxpY2F0ZURhdGFCdWZmZXJJZk5lY2Vzc2FyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNsZWFyRGF0YUJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjp1dGY4QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI6OlNoYXJlZEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OndyYXBD
RkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhQXJyYXkp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnJl
cGxhY2VtZW50RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9s
c0NvbnRlbnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpQYXJlbnRhbENvbnRyb2xzQ29u
dGVudEZpbHRlcjo6cmVwbGFjZW1lbnREYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlRmlsZVdyYXBwZXJBc1JURkRB
dHRhY2htZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjp3cmFwTlNEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ0ZEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9z
b3VwL1NoYXJlZEJ1ZmZlclNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVy
Ojp3cmFwU291cEJ1ZmZlcik6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlcjo6cmVwbGFjZW1lbnREYXRh
KToKKwogMjAxNS0wOC0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFNpbXBsaWZ5IGNvZGUgZm9yIG1ha2luZyBQYWdlLWNhY2hlYWJpbGl0eSBkZWNpc2lvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IDIyNmVhZDUuLmNlZDE3
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0KQEAgLTMwOSw3ICsz
MDksOSBAQCBTdHJpbmcgRWRpdG9yOjpzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkV2l0aElt
YWdlQWx0VGV4dCgpCiBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRWRpdG9yOjpzZWxlY3Rpb25J
bldlYkFyY2hpdmVGb3JtYXQoKQogewogICAgIFJlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBhcmNo
aXZlID0gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlvbigmbV9mcmFtZSk7Ci0g
ICAgcmV0dXJuIGFyY2hpdmUgPyBTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGEoYXJjaGl2ZS0+cmF3
RGF0YVJlcHJlc2VudGF0aW9uKCkuZ2V0KCkpIDogbnVsbHB0cjsKKyAgICBpZiAoIWFyY2hpdmUp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OndyYXBD
RkRhdGEoYXJjaGl2ZS0+cmF3RGF0YVJlcHJlc2VudGF0aW9uKCkuZ2V0KCkpOwogfQogCiB2b2lk
IEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVib2Fy
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCA1YzBiZGFhLi5j
YzhjZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC0zMTMs
NyArMzEzLDEwIEBAIFN0cmluZyBFZGl0b3I6OnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmRX
aXRoSW1hZ2VBbHRUZXh0KCkKIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBFZGl0b3I6OnNlbGVj
dGlvbkluV2ViQXJjaGl2ZUZvcm1hdCgpCiB7CiAgICAgUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+
IGFyY2hpdmUgPSBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKCZtX2ZyYW1l
KTsKLSAgICByZXR1cm4gYXJjaGl2ZSA/IFNoYXJlZEJ1ZmZlcjo6d3JhcENGRGF0YShhcmNoaXZl
LT5yYXdEYXRhUmVwcmVzZW50YXRpb24oKS5nZXQoKSkgOiAwOworICAgIGlmICghYXJjaGl2ZSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6d3JhcENG
RGF0YShhcmNoaXZlLT5yYXdEYXRhUmVwcmVzZW50YXRpb24oKS5nZXQoKSk7CisgICAgCiB9CiAK
IFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6YWRqdXN0ZWRTZWxlY3Rpb25SYW5nZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDI4
YjMwZGQuLjk2ZmJlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCkBAIC0xNDEsNyArMTQxLDExIEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFn
ZW50OjpjYWNoZWRSZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNl
LCBTCiAKICAgICAqYmFzZTY0RW5jb2RlZCA9ICFoYXNUZXh0Q29udGVudChjYWNoZWRSZXNvdXJj
ZSk7CiAgICAgaWYgKCpiYXNlNjRFbmNvZGVkKSB7Ci0gICAgICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGJ1ZmZlciA9IGhhc1plcm9TaXplID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IGNhY2hl
ZFJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOworICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBidWZmZXI7CisgICAgICAgIGlmIChoYXNaZXJvU2l6ZSkKKyAgICAgICAgICAgIGJ1ZmZlciA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJ1ZmZl
ciA9IGNhY2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgICAgICBpZiAoIWJ1ZmZl
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgKnJlc3VsdCA9IGJhc2U2NEVu
Y29kZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggM2VlZjVmZC4uYTcyMjliNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNjEsMTIgKzI2MSwxOCBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjphZGREYXRhT3JCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoLCBTaGFyZWRCdQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZGF0YVBheWxv
YWRUeXBlID09IERhdGFQYXlsb2FkV2hvbGVSZXNvdXJjZSkgewotICAgICAgICBtX3Jlc291cmNl
RGF0YSA9IGJ1ZmZlciA/IGJ1ZmZlciA6IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0
aCk7CisgICAgICAgIGlmIChidWZmZXIpCisgICAgICAgICAgICBtX3Jlc291cmNlRGF0YSA9IGJ1
ZmZlcjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShkYXRhLCBsZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
ICAgICAKICAgICBpZiAoIW1fcmVzb3VyY2VEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9
IGJ1ZmZlciA/IGJ1ZmZlciA6IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0aCk7Cisg
ICAgICAgIGlmIChidWZmZXIpCisgICAgICAgICAgICBtX3Jlc291cmNlRGF0YSA9IGJ1ZmZlcjsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkYXRhLCBsZW5ndGgpOwogICAgIGVsc2UgewogICAgICAgICBpZiAoYnVmZmVyKQog
ICAgICAgICAgICAgbV9yZXNvdXJjZURhdGEtPmFwcGVuZChidWZmZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggZGYzMzY3NS4uZjc1ZGE4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC00MDks
NyArNDA5LDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6YWRkRGF0YUJ1ZmZlcihTaGFyZWRCdWZmZXIm
IGRhdGEpCiB2b2lkIENhY2hlZEltYWdlOjphZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2ln
bmVkIGxlbmd0aCkKIHsKICAgICBBU1NFUlQoZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09IERvTm90
QnVmZmVyRGF0YSk7Ci0gICAgYWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKCpTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkYXRhLCBsZW5ndGgpKTsKKyAgICBhZGRJbmNyZW1lbnRhbERhdGFCdWZmZXIoU2hh
cmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgbGVuZ3RoKSk7CiAgICAgQ2FjaGVkUmVzb3VyY2U6OmFk
ZERhdGEoZGF0YSwgbGVuZ3RoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5jcHAKaW5kZXggNjRhNzU1NS4uYWY4ZmY2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC0zOTEsOCArMzkxLDggQEAgc3RhdGlj
IGlubGluZSB2b2lkIGxvYWREZWZhdWx0SWNvblJlY29yZChJY29uUmVjb3JkKiBkZWZhdWx0SWNv
blJlY29yZCkKICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMSwgMHg1MiwgMHgwMCwgMHgwMywgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgw
OCwgMHgwMCwgMHgwQSwgCiAgICAgICAgIDB4RkMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MjcsIDB4
MTAsIDB4MDAsIDB4MEEsIDB4RkMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MjcsIDB4MTAgfTsKICAg
ICAgICAgCi0gICAgc3RhdGljIFNoYXJlZEJ1ZmZlciogZGVmYXVsdEljb25CdWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShkZWZhdWx0SWNvbkRhdGEsIHNpemVvZihkZWZhdWx0SWNvbkRhdGEp
KS5sZWFrUmVmKCk7Ci0gICAgZGVmYXVsdEljb25SZWNvcmQtPnNldEltYWdlRGF0YShkZWZhdWx0
SWNvbkJ1ZmZlcik7CisgICAgc3RhdGljIFNoYXJlZEJ1ZmZlciYgZGVmYXVsdEljb25CdWZmZXIg
PSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkZWZhdWx0SWNvbkRhdGEsIHNpemVvZihkZWZhdWx0SWNv
bkRhdGEpKS5sZWFrUmVmKCk7CisgICAgZGVmYXVsdEljb25SZWNvcmQtPnNldEltYWdlRGF0YSgm
ZGVmYXVsdEljb25CdWZmZXIpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwCmluZGV4IDUzMzk2MWYuLmM4Y2JlYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcApAQCAtNjIsMzAgKzYyLDMwIEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBmcmVlU2VnbWVudChjaGFyKiBwKQogI2VuZGlmCiAKIFNoYXJlZEJ1ZmZlcjo6U2hh
cmVkQnVmZmVyKCkKLSAgICA6IG1fYnVmZmVyKGFkb3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkKKyAg
ICA6IG1fYnVmZmVyKGFkb3B0UmVmKCpuZXcgRGF0YUJ1ZmZlcikpCiB7CiB9CiAKIFNoYXJlZEJ1
ZmZlcjo6U2hhcmVkQnVmZmVyKHVuc2lnbmVkIHNpemUpCiAgICAgOiBtX3NpemUoc2l6ZSkKLSAg
ICAsIG1fYnVmZmVyKGFkb3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkKKyAgICAsIG1fYnVmZmVyKGFk
b3B0UmVmKCpuZXcgRGF0YUJ1ZmZlcikpCiB7CiB9CiAKIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVm
ZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCi0gICAgOiBtX2J1ZmZlcihhZG9w
dFJlZihuZXcgRGF0YUJ1ZmZlcikpCisgICAgOiBtX2J1ZmZlcihhZG9wdFJlZigqbmV3IERhdGFC
dWZmZXIpKQogewogICAgIGFwcGVuZChkYXRhLCBzaXplKTsKIH0KIAogU2hhcmVkQnVmZmVyOjpT
aGFyZWRCdWZmZXIoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKLSAg
ICA6IG1fYnVmZmVyKGFkb3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkKKyAgICA6IG1fYnVmZmVyKGFk
b3B0UmVmKCpuZXcgRGF0YUJ1ZmZlcikpCiB7CiAgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplKTsKIH0KIAogU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZm
ZXIoTWFwcGVkRmlsZURhdGEmJiBmaWxlRGF0YSkKLSAgICA6IG1fYnVmZmVyKGFkb3B0UmVmKG5l
dyBEYXRhQnVmZmVyKSkKKyAgICA6IG1fYnVmZmVyKGFkb3B0UmVmKCpuZXcgRGF0YUJ1ZmZlcikp
CiAgICAgLCBtX2ZpbGVEYXRhKFdURjo6bW92ZShmaWxlRGF0YSkpCiB7CiB9CkBAIC0xMDMsMTUg
KzEwMywxNSBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZVdpdGhD
b250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYQogICAgIGlmICghbWFwcGluZ1N1Y2Nl
c3MpCiAgICAgICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUZyb21SZWFkaW5nRmlsZShm
aWxlUGF0aCk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihXVEY6Om1v
dmUobWFwcGVkRmlsZURhdGEpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkQnVm
ZmVyKFdURjo6bW92ZShtYXBwZWRGaWxlRGF0YSkpKTsKIH0KIAotUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IFNoYXJlZEJ1ZmZlcjo6YWRvcHRWZWN0b3IoVmVjdG9yPGNoYXI+JiB2ZWN0b3IpCitS
ZWY8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmFkb3B0VmVjdG9yKFZlY3RvcjxjaGFyPiYg
dmVjdG9yKQogewotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGNyZWF0ZSgpOwor
ICAgIFJlZjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGNyZWF0ZSgpOwogICAgIGJ1ZmZlci0+bV9i
dWZmZXItPmRhdGEuc3dhcCh2ZWN0b3IpOwogICAgIGJ1ZmZlci0+bV9zaXplID0gYnVmZmVyLT5t
X2J1ZmZlci0+ZGF0YS5zaXplKCk7Ci0gICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNlKCk7CisgICAg
cmV0dXJuIGJ1ZmZlcjsKIH0KIAogdW5zaWduZWQgU2hhcmVkQnVmZmVyOjpzaXplKCkgY29uc3QK
QEAgLTE0MSw3ICsxNDEsNyBAQCBjb25zdCBjaGFyKiBTaGFyZWRCdWZmZXI6OmRhdGEoKSBjb25z
dAogICAgIHJldHVybiB0aGlzLT5idWZmZXIoKS5kYXRhKCk7CiB9CiAKLVBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQXJyYXlCdWZmZXIoKSBjb25zdAorUmVmUHRy
PEFycmF5QnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUFycmF5QnVmZmVyKCkgY29uc3QKIHsK
ICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXI6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNpemUoKSksIHNpemVvZihjaGFy
KSk7CiAKQEAgLTE1OCw3ICsxNTgsNyBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBTaGFyZWRC
dWZmZXI6OmNyZWF0ZUFycmF5QnVmZmVyKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgcmV0dXJuIGFycmF5QnVmZmVyLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gYXJyYXlC
dWZmZXI7CiB9CiAKIHZvaWQgU2hhcmVkQnVmZmVyOjphcHBlbmQoU2hhcmVkQnVmZmVyKiBkYXRh
KQpAQCAtMjgyLDEwICsyODIsMTAgQEAgdm9pZCBTaGFyZWRCdWZmZXI6OmR1cGxpY2F0ZURhdGFC
dWZmZXJJZk5lY2Vzc2FyeSgpIGNvbnN0CiAgICAgICAgIHJldHVybjsKIAogICAgIHNpemVfdCBu
ZXdDYXBhY2l0eSA9IHN0ZDo6bWF4KHN0YXRpY19jYXN0PHNpemVfdD4obV9zaXplKSwgY3VycmVu
dENhcGFjaXR5ICogMik7Ci0gICAgUmVmUHRyPERhdGFCdWZmZXI+IG5ld0J1ZmZlciA9IGFkb3B0
UmVmKG5ldyBEYXRhQnVmZmVyKTsKKyAgICBSZWY8RGF0YUJ1ZmZlcj4gbmV3QnVmZmVyID0gYWRv
cHRSZWYoKm5ldyBEYXRhQnVmZmVyKTsKICAgICBuZXdCdWZmZXItPmRhdGEucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShuZXdDYXBhY2l0eSk7CiAgICAgbmV3QnVmZmVyLT5kYXRhID0gbV9idWZmZXIt
PmRhdGE7Ci0gICAgbV9idWZmZXIgPSBuZXdCdWZmZXIucmVsZWFzZSgpOworICAgIG1fYnVmZmVy
ID0gV1RGOjptb3ZlKG5ld0J1ZmZlcik7CiB9CiAKIHZvaWQgU2hhcmVkQnVmZmVyOjphcHBlbmRU
b0RhdGFCdWZmZXIoY29uc3QgY2hhciAqZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdApAQCAt
Mjk3LDcgKzI5Nyw3IEBAIHZvaWQgU2hhcmVkQnVmZmVyOjphcHBlbmRUb0RhdGFCdWZmZXIoY29u
c3QgY2hhciAqZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogdm9pZCBTaGFyZWRCdWZmZXI6
OmNsZWFyRGF0YUJ1ZmZlcigpCiB7CiAgICAgaWYgKCFtX2J1ZmZlci0+aGFzT25lUmVmKCkpCi0g
ICAgICAgIG1fYnVmZmVyID0gYWRvcHRSZWYobmV3IERhdGFCdWZmZXIpOworICAgICAgICBtX2J1
ZmZlciA9IGFkb3B0UmVmKCpuZXcgRGF0YUJ1ZmZlcik7CiAgICAgZWxzZQogICAgICAgICBtX2J1
ZmZlci0+ZGF0YS5jbGVhcigpOwogfQpAQCAtNDE0LDcgKzQxNCw3IEBAIGlubGluZSBib29sIFNo
YXJlZEJ1ZmZlcjo6bWF5YmVBcHBlbmRQbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyKikKIAogI2Vu
ZGlmCiAKLVBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB1dGY4QnVmZmVyKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdXRmOEJ1ZmZlcihjb25zdCBTdHJpbmcmIHN0
cmluZykKIHsKICAgICAvLyBBbGxvY2F0ZSBhIGJ1ZmZlciBiaWcgZW5vdWdoIHRvIGhvbGQgYWxs
IHRoZSBjaGFyYWN0ZXJzLgogICAgIGNvbnN0IGludCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCmluZGV4IDQwMzBiZGEuLjk1YzM2
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCkBAIC01MiwyNSArNTIs
MjUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgU2hhcmVkQnVmZmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8U2hhcmVkQnVmZmVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVk
QnVmZmVyKTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY3JlYXRlKHVu
c2lnbmVkIHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIoc2l6ZSkpOyB9
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjcmVhdGUoY29uc3QgY2hhciog
YywgdW5zaWduZWQgaSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihjLCBpKSk7
IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25zdCB1bnNp
Z25lZCBjaGFyKiBjLCB1bnNpZ25lZCBpKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkQnVm
ZmVyKGMsIGkpKTsgfQorICAgIHN0YXRpYyBSZWY8U2hhcmVkQnVmZmVyPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZEJ1ZmZlcik7IH0KKyAgICBzdGF0aWMgUmVmPFNoYXJl
ZEJ1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hh
cmVkQnVmZmVyKHNpemUpKTsgfQorICAgIHN0YXRpYyBSZWY8U2hhcmVkQnVmZmVyPiBjcmVhdGUo
Y29uc3QgY2hhciogYywgdW5zaWduZWQgaSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRC
dWZmZXIoYywgaSkpOyB9CisgICAgc3RhdGljIFJlZjxTaGFyZWRCdWZmZXI+IGNyZWF0ZShjb25z
dCB1bnNpZ25lZCBjaGFyKiBjLCB1bnNpZ25lZCBpKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNo
YXJlZEJ1ZmZlcihjLCBpKSk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBmaWxl
UGF0aCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGFkb3B0VmVjdG9yKFZlY3RvcjxjaGFyPiYgdmVjdG9yKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFNoYXJlZEJ1ZmZlcj4gYWRvcHRWZWN0b3IoVmVjdG9yPGNoYXI+Jik7CiAg
ICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgflNoYXJlZEJ1ZmZlcigpOwogICAgIAogI2lmIFVTRShG
T1VOREFUSU9OKQogICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxOU0RhdGE+IGNyZWF0ZU5T
RGF0YSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gd3JhcE5TRGF0YShOU0RhdGEgKmRhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWY8U2hhcmVkQnVmZmVyPiB3cmFwTlNEYXRhKE5TRGF0YSAqKTsKICNlbmRpZgogI2lmIFVTRShD
RikKICAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBjcmVhdGVDRkRhdGEo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBDRkRhdGFSZWYgZXhpc3RpbmdDRkRhdGEoKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHdyYXBDRkRhdGEo
Q0ZEYXRhUmVmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNoYXJlZEJ1ZmZlcj4g
d3JhcENGRGF0YShDRkRhdGFSZWYpOwogI2VuZGlmCiAKICNpZiBVU0UoU09VUCkKQEAgLTgzLDcg
KzgzLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IGNoYXIqIGRhdGEoKSBj
b25zdDsKICAgICAvLyBDcmVhdGVzIGFuIEFycmF5QnVmZmVyIGFuZCBjb3BpZXMgdGhpcyBTaGFy
ZWRCdWZmZXIncyBjb250ZW50cyB0byB0aGF0CiAgICAgLy8gQXJyYXlCdWZmZXIgd2l0aG91dCBt
ZXJnaW5nIHNlZ21lbnRlZCBidWZmZXJzIGludG8gYSBmbGF0IGJ1ZmZlci4KLSAgICBQYXNzUmVm
UHRyPEFycmF5QnVmZmVyPiBjcmVhdGVBcnJheUJ1ZmZlcigpIGNvbnN0OworICAgIFJlZlB0cjxB
cnJheUJ1ZmZlcj4gY3JlYXRlQXJyYXlCdWZmZXIoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKIApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgcGxhdGZvcm1EYXRhU2l6ZSgpIGNvbnN0OwogCiAjaWYgVVNFKE5FVFdPUktf
Q0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gd3JhcENGRGF0YUFycmF5KENGQXJyYXlSZWYpOworICAgIHN0YXRpYyBSZWY8U2hhcmVkQnVm
ZmVyPiB3cmFwQ0ZEYXRhQXJyYXkoQ0ZBcnJheVJlZik7CiAgICAgdm9pZCBhcHBlbmQoQ0ZEYXRh
UmVmKTsKICNlbmRpZgogCkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNs
ZWFyRGF0YUJ1ZmZlcigpOwogCiAgICAgdW5zaWduZWQgbV9zaXplIHsgMCB9OwotICAgIG11dGFi
bGUgUmVmUHRyPERhdGFCdWZmZXI+IG1fYnVmZmVyOworICAgIG11dGFibGUgUmVmPERhdGFCdWZm
ZXI+IG1fYnVmZmVyOwogCiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQog
ICAgIGV4cGxpY2l0IFNoYXJlZEJ1ZmZlcihDRkFycmF5UmVmKTsKQEAgLTE3OSw3ICsxNzksNyBA
QCBwcml2YXRlOgogICAgIE1hcHBlZEZpbGVEYXRhIG1fZmlsZURhdGE7CiB9OwogCi1QYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gdXRmOEJ1ZmZlcihjb25zdCBTdHJpbmcmKTsKK1JlZlB0cjxTaGFy
ZWRCdWZmZXI+IHV0ZjhCdWZmZXIoY29uc3QgU3RyaW5nJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVm
ZmVyQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3Bw
CmluZGV4IDJhNzVlNTYuLjE4YTI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
Zi9TaGFyZWRCdWZmZXJDRi5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogU2hhcmVkQnVmZmVyOjpTaGFyZWRCdWZmZXIoQ0ZEYXRhUmVmIGNmRGF0YSkKLSAgICA6
IG1fYnVmZmVyKGFkb3B0UmVmKG5ldyBEYXRhQnVmZmVyKSkKKyAgICA6IG1fYnVmZmVyKGFkb3B0
UmVmKCpuZXcgRGF0YUJ1ZmZlcikpCiAgICAgLCBtX2NmRGF0YShjZkRhdGEpCiAgICAgLCBtX3Zu
b2RlVG9rZW4oVk5vZGVUcmFja2VyOjpzaW5nbGV0b24oKS50b2tlbigpKQogewpAQCAtNTMsOSAr
NTMsOSBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZUNGRGF0YSgp
CiB9CiAjZW5kaWYKIAotUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6d3Jh
cENGRGF0YShDRkRhdGFSZWYgZGF0YSkKK1JlZjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6
d3JhcENGRGF0YShDRkRhdGFSZWYgZGF0YSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNo
YXJlZEJ1ZmZlcihkYXRhKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkQnVmZmVy
KGRhdGEpKTsKIH0KIAogYm9vbCBTaGFyZWRCdWZmZXI6Omhhc1BsYXRmb3JtRGF0YSgpIGNvbnN0
CkBAIC0xMTAsMTMgKzExMCwxMyBAQCBib29sIFNoYXJlZEJ1ZmZlcjo6bWF5YmVBcHBlbmRQbGF0
Zm9ybURhdGEoU2hhcmVkQnVmZmVyKiBuZXdDb250ZW50cykKIH0KIAogI2lmIFVTRShORVRXT1JL
X0NGREFUQV9BUlJBWV9DQUxMQkFDSykKLVBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRC
dWZmZXI6OndyYXBDRkRhdGFBcnJheShDRkFycmF5UmVmIGNmRGF0YUFycmF5KQorUmVmPFNoYXJl
ZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhQXJyYXkoQ0ZBcnJheVJlZiBjZkRhdGFB
cnJheSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcihjZkRhdGFBcnJh
eSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZEJ1ZmZlcihjZkRhdGFBcnJheSkp
OwogfQogCiBTaGFyZWRCdWZmZXI6OlNoYXJlZEJ1ZmZlcihDRkFycmF5UmVmIGNmRGF0YUFycmF5
KQotICAgIDogbV9idWZmZXIoYWRvcHRSZWYobmV3IERhdGFCdWZmZXIpKQorICAgIDogbV9idWZm
ZXIoYWRvcHRSZWYoKm5ldyBEYXRhQnVmZmVyKSkKICAgICAsIG1fY2ZEYXRhKG51bGxwdHIpCiB7
CiAgICAgQ0ZJbmRleCBkYXRhQXJyYXlDb3VudCA9IENGQXJyYXlHZXRDb3VudChjZkRhdGFBcnJh
eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IDJiMDMzNmMuLjQ3ZWU1MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25D
b250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC0xOTIsNyArMTkyLDcgQEAgYm9vbCBOZXR3
b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKCkgY29uc3QKIFJlZjxTaGFy
ZWRCdWZmZXI+IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpyZXBsYWNlbWVudERhdGEo
KSBjb25zdAogewogICAgIEFTU0VSVChkaWRCbG9ja0RhdGEoKSk7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEobV9yZXBsYWNlbWVudERhdGEuZ2V0KCkpLmxl
YWtSZWYoKSk7CisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShtX3JlcGxhY2Vt
ZW50RGF0YS5nZXQoKSk7CiB9CiAKIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciBOZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6dW5ibG9ja0hhbmRsZXIoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRG
aWx0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xz
Q29udGVudEZpbHRlci5tbQppbmRleCBhMzZlYTFmLi4zMzFjZDA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29u
dGVudEZpbHRlci5tbQpAQCAtMTA5LDcgKzEwOSw3IEBAIGJvb2wgUGFyZW50YWxDb250cm9sc0Nv
bnRlbnRGaWx0ZXI6OmRpZEJsb2NrRGF0YSgpIGNvbnN0CiBSZWY8U2hhcmVkQnVmZmVyPiBQYXJl
bnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6cmVwbGFjZW1lbnREYXRhKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoZGlkQmxvY2tEYXRhKCkpOwotICAgIHJldHVybiBhZG9wdFJlZigqU2hhcmVkQnVm
ZmVyOjp3cmFwTlNEYXRhKG1fcmVwbGFjZW1lbnREYXRhLmdldCgpKS5sZWFrUmVmKCkpOworICAg
IHJldHVybiBTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEobV9yZXBsYWNlbWVudERhdGEuZ2V0KCkp
OwogfQogCiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgUGFyZW50YWxDb250cm9sc0NvbnRl
bnRGaWx0ZXI6OnVuYmxvY2tIYW5kbGVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTBmMTEzZC4uYmVkNTU0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTI1MCw3ICsyNTAs
NyBAQCBzdGF0aWMgdm9pZCB3cml0ZUZpbGVXcmFwcGVyQXNSVEZEQXR0YWNobWVudChOU0ZpbGVX
cmFwcGVyICp3cmFwcGVyLCBjb25zdCBTdHJpbgogICAgIGlmICghUlRGRERhdGEpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG5ld0NoYW5nZUNvdW50ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBh
c3RlYm9hcmRTdHJhdGVneSgpLT5zZXRCdWZmZXJGb3JUeXBlKFNoYXJlZEJ1ZmZlcjo6d3JhcE5T
RGF0YShSVEZERGF0YSkuZ2V0KCksIE5TUlRGRFBib2FyZFR5cGUsIHBhc3RlYm9hcmROYW1lKTsK
KyAgICBuZXdDaGFuZ2VDb3VudCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3Ry
YXRlZ3koKS0+c2V0QnVmZmVyRm9yVHlwZShTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoUlRGRERh
dGEpLnB0cigpLCBOU1JURkRQYm9hcmRUeXBlLCBwYXN0ZWJvYXJkTmFtZSk7CiB9CiAKIHZvaWQg
UGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJiBwYXN0ZWJvYXJkSW1hZ2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2hhcmVkQnVmZmVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NoYXJlZEJ1ZmZlck1hYy5tbQppbmRl
eCAxYWQyOGFkLi5jNTU0ZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2hhcmVkQnVmZmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
aGFyZWRCdWZmZXJNYWMubW0KQEAgLTkwLDkgKzkwLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNo
YXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShOU0RhdGEgKm5zRGF0YSkKK1JlZjxTaGFyZWRCdWZmZXI+
IFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShOU0RhdGEgKm5zRGF0YSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNoYXJlZEJ1ZmZlcigoQ0ZEYXRhUmVmKW5zRGF0YSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNoYXJlZEJ1ZmZlcigoQ0ZEYXRhUmVmKW5zRGF0YSkpOwogfQogCiBS
ZXRhaW5QdHI8TlNEYXRhPiBTaGFyZWRCdWZmZXI6OmNyZWF0ZU5TRGF0YSgpCkBAIC0xMTksNyAr
MTE5LDcgQEAgUmV0YWluUHRyPENGRGF0YVJlZj4gU2hhcmVkQnVmZmVyOjpjcmVhdGVDRkRhdGEo
KQogICAgICAgICByZXR1cm4gY2ZEYXRhOwogCiAgICAgZGF0YSgpOyAvLyBGb3JjZSBkYXRhIGlu
dG8gbV9idWZmZXIgZnJvbSBzZWdtZW50cyBvciBkYXRhIGFycmF5LgotICAgIHJldHVybiBhZG9w
dENGKChDRkRhdGFSZWYpYWRvcHROUyhbW1dlYkNvcmVTaGFyZWRCdWZmZXJEYXRhIGFsbG9jXSBp
bml0V2l0aFNoYXJlZEJ1ZmZlckRhdGFCdWZmZXI6bV9idWZmZXIuZ2V0KCldKS5sZWFrUmVmKCkp
OworICAgIHJldHVybiBhZG9wdENGKChDRkRhdGFSZWYpYWRvcHROUyhbW1dlYkNvcmVTaGFyZWRC
dWZmZXJEYXRhIGFsbG9jXSBpbml0V2l0aFNoYXJlZEJ1ZmZlckRhdGFCdWZmZXI6bV9idWZmZXIu
cHRyKCldKS5sZWFrUmVmKCkpOwogfQogCiBSZWZQdHI8U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZUZyb21SZWFkaW5nRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291cC5jcHAKaW5kZXgg
Y2JkYjMzNy4uYzljMzAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291
cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3Vw
L1NoYXJlZEJ1ZmZlclNvdXAuY3BwCkBAIC0zMyw5ICszMyw5IEBAIFNoYXJlZEJ1ZmZlcjo6U2hh
cmVkQnVmZmVyKFNvdXBCdWZmZXIqIHNvdXBCdWZmZXIpCiAgICAgQVNTRVJUKHNvdXBCdWZmZXIp
OwogfQogCi1QYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjp3cmFwU291cEJ1
ZmZlcihTb3VwQnVmZmVyKiBzb3VwQnVmZmVyKQorUmVmPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVm
ZmVyOjp3cmFwU291cEJ1ZmZlcihTb3VwQnVmZmVyKiBzb3VwQnVmZmVyKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2hhcmVkQnVmZmVyKHNvdXBCdWZmZXIpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTaGFyZWRCdWZmZXIoc291cEJ1ZmZlcikpOwogfQogCiB2b2lkIFNoYXJlZEJ1
ZmZlcjo6Y2xlYXJQbGF0Zm9ybURhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrQ29udGVudEZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tD
b250ZW50RmlsdGVyLmNwcAppbmRleCAxMWY5MzE3Li5kZDY3ZTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIGJv
b2wgTW9ja0NvbnRlbnRGaWx0ZXI6OmRpZEJsb2NrRGF0YSgpIGNvbnN0CiBSZWY8U2hhcmVkQnVm
ZmVyPiBNb2NrQ29udGVudEZpbHRlcjo6cmVwbGFjZW1lbnREYXRhKCkgY29uc3QKIHsKICAgICBB
U1NFUlQoZGlkQmxvY2tEYXRhKCkpOwotICAgIHJldHVybiBhZG9wdFJlZigqU2hhcmVkQnVmZmVy
OjpjcmVhdGUobV9yZXBsYWNlbWVudERhdGEuZGF0YSgpLCBtX3JlcGxhY2VtZW50RGF0YS5zaXpl
KCkpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1fcmVwbGFj
ZW1lbnREYXRhLmRhdGEoKSwgbV9yZXBsYWNlbWVudERhdGEuc2l6ZSgpKTsKIH0KIAogQ29udGVu
dEZpbHRlclVuYmxvY2tIYW5kbGVyIE1vY2tDb250ZW50RmlsdGVyOjp1bmJsb2NrSGFuZGxlcigp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KaW5kZXggMmI2ZGE0
Ni4uZDdiM2IxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNo
aXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQpAQCAt
MjEwLDcgKzIxMCw3IEBAIHN0YXRpYyBCT09MIGlzQXJyYXlPZkNsYXNzKGlkIG9iamVjdCwgQ2xh
c3MgZWxlbWVudENsYXNzKQogI2VuZGlmCiAKICAgICBfcHJpdmF0ZSA9IFtbV2ViQXJjaGl2ZVBy
aXZhdGUgYWxsb2NdIGluaXRdOwotICAgIFJlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBjb3JlQXJj
aGl2ZSA9IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEo
ZGF0YSkuZ2V0KCkpOworICAgIFJlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBjb3JlQXJjaGl2ZSA9
IExlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSku
cHRyKCkpOwogICAgIGlmICghY29yZUFyY2hpdmUpIHsKICAgICAgICAgW3NlbGYgcmVsZWFzZV07
CiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKaW5kZXggOGYwYmNmZi4u
NmRjMjE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcApAQCAtMTA2NSw3ICsxMDY1LDcgQEAgYm9v
bCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0SW5kZXhSZWNvcmQoY29u
c3QgSURCSWRlbnRpZmllciYgdHIKICAgICBpZiAoY3Vyc29yVHlwZSA9PSBJbmRleGVkREI6OkN1
cnNvclR5cGU6OktleU9ubHkpCiAgICAgICAgIHJlc3VsdCA9IElEQkdldFJlc3VsdChjdXJzb3It
PmN1cnJlbnRQcmltYXJ5S2V5KCkpOwogICAgIGVsc2UgewotICAgICAgICByZXN1bHQgPSBJREJH
ZXRSZXN1bHQoU2hhcmVkQnVmZmVyOjpjcmVhdGUoY3Vyc29yLT5jdXJyZW50VmFsdWVCdWZmZXIo
KS5kYXRhKCksIGN1cnNvci0+Y3VycmVudFZhbHVlQnVmZmVyKCkuc2l6ZSgpKSk7CisgICAgICAg
IHJlc3VsdCA9IElEQkdldFJlc3VsdChTaGFyZWRCdWZmZXI6OmNyZWF0ZShjdXJzb3ItPmN1cnJl
bnRWYWx1ZUJ1ZmZlcigpLmRhdGEoKSwgY3Vyc29yLT5jdXJyZW50VmFsdWVCdWZmZXIoKS5zaXpl
KCkpLnB0cigpKTsKICAgICAgICAgcmVzdWx0LmtleURhdGEgPSBjdXJzb3ItPmN1cnJlbnRQcmlt
YXJ5S2V5KCk7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>