<?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>143677</bug_id>
          
          <creation_ts>2015-04-13 12:49:54 -0700</creation_ts>
          <short_desc>Begin cleaning up the shared memory interface</short_desc>
          <delta_ts>2015-04-13 13:27:01 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1084918</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-13 12:49:54 -0700</bug_when>
    <thetext>Begin cleaning up the shared memory interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084925</commentid>
    <comment_count>1</comment_count>
      <attachid>250669</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-13 12:54:18 -0700</bug_when>
    <thetext>Created attachment 250669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084933</commentid>
    <comment_count>2</comment_count>
      <attachid>250670</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-13 13:08:28 -0700</bug_when>
    <thetext>Created attachment 250670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084936</commentid>
    <comment_count>3</comment_count>
      <attachid>250671</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-13 13:12:30 -0700</bug_when>
    <thetext>Created attachment 250671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084943</commentid>
    <comment_count>4</comment_count>
      <attachid>250671</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-04-13 13:24:06 -0700</bug_when>
    <thetext>Comment on attachment 250671
Patch

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084944</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-04-13 13:27:01 -0700</bug_when>
    <thetext>Committed r182753: &lt;http://trac.webkit.org/changeset/182753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250669</attachid>
            <date>2015-04-13 12:54:18 -0700</date>
            <delta_ts>2015-04-13 13:08:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143677-20150413125329.patch</filename>
            <type>text/plain</type>
            <size>31118</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWIxMTkyN2QzZDI0MzY1
ZmZlNDMzN2NjYTljNzEwOWI1NThiOGRmZC4uNzA0YjBkM2I2NDQ4NzkyNTU4MGQ1ODU1ODM5ZGVk
OWZkMzk0YzEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA0LTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQmVnaW4gY2xlYW5p
bmcgdXAgdGhlIHNoYXJlZCBtZW1vcnkgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM2NzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgY3JlYXRlRnJvbVZNQnVmZmVyIHRvIGNy
ZWF0ZSBhbmQgYWRkIGEgcHJvdGVjdGlvbiBwYXJhbWV0ZXIgKHdoaWNoIGlzIGN1cnJlbnRseSB1
bnVzZWQpLgorICAgICAgICBBbHNvLCB0dXJuIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiBpbnRv
IGEgcHJvcGVyIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpz
dG9yZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkVudHJ5Ojppbml0aWFsaXplQnVm
ZmVyRnJvbVN0b3JhZ2VSZWNvcmQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnRyeUdldFNoYXJlYWJs
ZUhhbmRsZUZyb21DRkRhdGEpOgorICAgICAgICAqIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oOgor
ICAgICAgICAqIFBsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Om1hY2hQcm90ZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZlcik6IERlbGV0ZWQu
CisgICAgICAgICogU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TaGFy
ZWFibGVCaXRtYXAuaDoKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OmNyZWF0ZUhhbmRsZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJl
c3VsdDo6RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdDo6
RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpjcmVhdGVFeHRlbnNpb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFzdGVib2FyZFByb3h5OjpnZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhc3RlYm9hcmRQcm94eTo6c2V0UGFzdGVib2FyZEJ1ZmZl
ckZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRCdWZm
ZXJGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpdGVkTGlua1Byb3ZpZGVyOjpzZW5kVGFibGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAgIChw
YWdlRGlkRHJhd1RvSW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRhdGFTZWxlY3Rpb25Gb3JQ
YXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcm9taXNlZERh
dGFGb3JJbWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6d3JpdGVJdGVtc1RvUGFzdGVib2FyZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmJ1ZmZlckZv
clR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldEJ1ZmZl
ckZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRC
dWZmZXJGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVu
dDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNp
dGVkTGlua1RhYmxlQ29udHJvbGxlcjo6c2V0VmlzaXRlZExpbmtUYWJsZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp0YWtlU25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UmVjdFRvSW1h
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQpOgor
CiAyMDE1LTA0LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIExvY2FsaXphYmxlIHN0cmluZ3MgYXJlIGluY29uc2lzdGVudCBhbmQgbmVlZCB0byBi
ZSByZWdlbmVyYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggNDllMTJjYjE0OTNiMzIwNWM1NjFkY2YzY2NjZmVk
YjI1ZjM5ZjllYy4uZGE1MGQ5MWZjOTU2ODhhY2RkMzZjZjc0NmQ4ZjE2NTAxMzg1NzFmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBDYWNoZTo6c3RvcmUoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIGNvbnN0IFdlYkNvcmUKICAgICAg
ICAgTWFwcGVkQm9keSBtYXBwZWRCb2R5OwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0Up
CiAgICAgICAgIGlmIChib2R5RGF0YS5pc01hcCgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZl
cihjb25zdF9jYXN0PHVpbnQ4X3QqPihib2R5RGF0YS5kYXRhKCkpLCBib2R5RGF0YS5zaXplKCkp
OworICAgICAgICAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoY29uc3RfY2FzdDx1aW50OF90Kj4oYm9keURhdGEuZGF0YSgpKSwgYm9k
eURhdGEuc2l6ZSgpLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAg
ICAgICAgIG1hcHBlZEJvZHkuc2hhcmVhYmxlUmVzb3VyY2UgPSBzaGFyZWRNZW1vcnkgPyBTaGFy
ZWFibGVSZXNvdXJjZTo6Y3JlYXRlKFdURjo6bW92ZShzaGFyZWRNZW1vcnkpLCAwLCBib2R5RGF0
YS5zaXplKCkpIDogbnVsbHB0cjsKICAgICAgICAgICAgIGlmIChtYXBwZWRCb2R5LnNoYXJlYWJs
ZVJlc291cmNlKQogICAgICAgICAgICAgICAgIG1hcHBlZEJvZHkuc2hhcmVhYmxlUmVzb3VyY2Ut
PmNyZWF0ZUhhbmRsZShtYXBwZWRCb2R5LnNoYXJlYWJsZVJlc291cmNlSGFuZGxlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVu
dHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUVudHJ5LmNwcAppbmRleCA4NjlkYjhmMTE3N2U4MDY0YmNjMGM5NDA5YjZlNmU2MmQxNjRjOGVi
Li5hYzM5MTgwM2RhYmVjZTNkM2QxOWIwNGE2M2Q3NTU2YTRkMmQ5Y2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50
cnkuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBFbnRyeTo6aW5pdGlhbGl6ZUJ1ZmZlckZy
b21TdG9yYWdlUmVjb3JkKCkgY29uc3QKICAgICBhdXRvKiBkYXRhID0gbV9zb3VyY2VTdG9yYWdl
UmVjb3JkLmJvZHkuZGF0YSgpOwogICAgIHNpemVfdCBzaXplID0gbV9zb3VyY2VTdG9yYWdlUmVj
b3JkLmJvZHkuc2l6ZSgpOwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCi0gICAgUmVm
UHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gbV9zb3VyY2VTdG9yYWdlUmVjb3JkLmJv
ZHkuaXNNYXAoKSA/IFNoYXJlZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVmZmVyKGNvbnN0X2Nhc3Q8
dWludDhfdCo+KGRhdGEpLCBzaXplKSA6IG51bGxwdHI7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9y
eT4gc2hhcmVkTWVtb3J5ID0gbV9zb3VyY2VTdG9yYWdlUmVjb3JkLmJvZHkuaXNNYXAoKSA/IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEpLCBzaXplLCBTaGFy
ZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KSA6IG51bGxwdHI7CiAgICAgUmVmUHRyPFNo
YXJlYWJsZVJlc291cmNlPiBzaGFyZWFibGVSZXNvdXJjZSA9IHNoYXJlZE1lbW9yeSA/IFNoYXJl
YWJsZVJlc291cmNlOjpjcmVhdGUoc2hhcmVkTWVtb3J5LnJlbGVhc2UoKSwgMCwgbV9zb3VyY2VT
dG9yYWdlUmVjb3JkLmJvZHkuc2l6ZSgpKSA6IG51bGxwdHI7CiAKICAgICBpZiAoc2hhcmVhYmxl
UmVzb3VyY2UgJiYgc2hhcmVhYmxlUmVzb3VyY2UtPmNyZWF0ZUhhbmRsZShtX3NoYXJlYWJsZVJl
c291cmNlSGFuZGxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCmluZGV4IDZiMGIzNTgxN2I4
MTM3NGYyOGI1ZTViNGZmZjNhMzAxZjJhNTRlMzguLjU3NjA1MWI3MjdkYzExOWZjODEzNDk2NGRj
MzkxMjAwNzJiYzIzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtNDAsNyArNDAs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIHZvaWQgdHJ5R2V0U2hhcmVhYmxlSGFu
ZGxlRnJvbUNGRGF0YShTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUsIENGRGF0YVJl
ZiBkYXRhKQogewotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNoYXJl
ZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVmZmVyKCh2b2lkKilDRkRhdGFHZXRCeXRlUHRyKGRhdGEp
LCBDRkRhdGFHZXRMZW5ndGgoZGF0YSkpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJl
ZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKCh2b2lkKilDRkRhdGFHZXRCeXRlUHRyKGRh
dGEpLCBDRkRhdGFHZXRMZW5ndGgoZGF0YSksIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOwogICAgIGlmICghc2hhcmVkTWVtb3J5KSB7CiAgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSBWTSBzaGFyZWQgbWVtb3J5IGZvciBjYWNoZWQgcmVzb3VyY2UuIik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJl
ZE1lbW9yeS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKaW5kZXgg
OWUyNWQwODQ5NDU0MjJkNTliN2EwYThhYzM5YWI4MjI1MjMxNDc0Ny4uMzAwZGQyZTUzM2YxMDRh
MDdmNDQyNmQ3OGMyZGJiYmQ2MzU1YjhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vU2hhcmVkTWVtb3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVk
TWVtb3J5LmgKQEAgLTI3LDggKzI3LDggQEAKICNkZWZpbmUgU2hhcmVkTWVtb3J5X2gKIAogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKICNp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKICNpbmNsdWRlICJBdHRhY2htZW50Lmgi
CkBAIC0zNiwxNSArMzYsMTUgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsKLSAgICBjbGFz
cyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgU2hhcmVkTWVtb3J5IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkTWVt
b3J5PiB7CiBwdWJsaWM6Ci0gICAgZW51bSBQcm90ZWN0aW9uIHsKKyAgICBlbnVtIGNsYXNzIFBy
b3RlY3Rpb24gewogICAgICAgICBSZWFkT25seSwKICAgICAgICAgUmVhZFdyaXRlCiAgICAgfTsK
QEAgLTc2LDE1ICs3Niw5IEBAIHB1YmxpYzoKICAgICAgICAgc2l6ZV90IG1fc2l6ZTsKICAgICB9
OwogICAgIAotICAgIC8vIENyZWF0ZSBhIHNoYXJlZCBtZW1vcnkgb2JqZWN0IHdpdGggdGhlIGdp
dmVuIHNpemUuIFdpbGwgcmV0dXJuIDAgb24gZmFpbHVyZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZShzaXplX3QpOwotCi0gICAgLy8gQ3JlYXRlIGEgc2hhcmVk
IG1lbW9yeSBvYmplY3QgZnJvbSB0aGUgZ2l2ZW4gaGFuZGxlIGFuZCB0aGUgcmVxdWVzdGVkIHBy
b3RlY3Rpb24uIFdpbGwgcmV0dXJuIDAgb24gZmFpbHVyZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZShjb25zdCBIYW5kbGUmLCBQcm90ZWN0aW9uKTsKLQotICAg
IC8vIENyZWF0ZSBhIHNoYXJlZCBtZW1vcnkgb2JqZWN0IHdpdGggdGhlIGdpdmVuIHNpemUgYnkg
dm1fY29weSdpbmcgdGhlIGdpdmVuIGJ1ZmZlci4KLSAgICAvLyBXaWxsIHJldHVybiAwIG9uIGZh
aWx1cmUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBjcmVhdGVGcm9tVk1C
dWZmZXIodm9pZCosIHNpemVfdCk7CisgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1vcnk+IGNy
ZWF0ZShzaXplX3QpOworICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiBjcmVhdGUoY29u
c3QgSGFuZGxlJiwgUHJvdGVjdGlvbik7CisgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IGNyZWF0ZSh2b2lkKiwgc2l6ZV90LCBQcm90ZWN0aW9uKTsKIAogICAgIH5TaGFyZWRNZW1vcnko
KTsKIApAQCAtOTMsOSArODcsNiBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7
IHJldHVybiBtX3NpemU7IH0KICAgICB2b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRh
OyB9CiAKLSAgICAvLyBDcmVhdGVzIGEgY29weS1vbi13cml0ZSBjb3B5IG9mIHRoZSBmaXJzdCB8
c2l6ZXwgYnl0ZXMuCi0gICAgUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZUNvcHlPbldy
aXRlQ29weShzaXplX3QpIGNvbnN0OwotCiAgICAgLy8gUmV0dXJuIHRoZSBzeXN0ZW0gcGFnZSBz
aXplIGluIGJ5dGVzLgogICAgIHN0YXRpYyB1bnNpZ25lZCBzeXN0ZW1QYWdlU2l6ZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCmluZGV4
IGM0Y2UzMjEyMjg3Y2RlNTZiYTY2ZDYwMGMyMDFhZDE5YWEyY2MzNjQuLjBjYzkzMmExMWI5YjFi
NWQzMWJiZjdkZGZiNjhkOGMzNGY0NjFkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHN0YXRpYyBpbmxp
bmUgbWFjaF92bV9hZGRyZXNzX3QgdG9WTUFkZHJlc3Modm9pZCogcG9pbnRlcikKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8bWFjaF92bV9hZGRyZXNzX3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihwb2ludGVyKSk7CiB9CiAgICAgCi1QYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCitSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRN
ZW1vcnk6OmNyZWF0ZShzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlQoc2l6ZSk7CiAKQEAgLTEw
OSw3ICsxMDksNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVh
dGUoc2l6ZV90IHNpemUpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IGNyZWF0ZUZyb21WTUJ1ZmZlcih0b1BvaW50ZXIo
YWRkcmVzcyksIHNpemUpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9
IGNyZWF0ZSh0b1BvaW50ZXIoYWRkcmVzcyksIHNpemUsIFByb3RlY3Rpb246OlJlYWRXcml0ZSk7
CiAgICAgaWYgKCFzaGFyZWRNZW1vcnkpIHsKICAgICAgICAgbWFjaF92bV9kZWFsbG9jYXRlKG1h
Y2hfdGFza19zZWxmKCksIGFkZHJlc3MsIHJvdW5kX3BhZ2Uoc2l6ZSkpOwogICAgICAgICByZXR1
cm4gMDsKQEAgLTExOSw3ICsxMTksNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCiAgICAgcmV0dXJuIHNoYXJlZE1lbW9yeS5yZWxl
YXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0
ZUZyb21WTUJ1ZmZlcih2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSkgIAorUmVmUHRyPFNoYXJlZE1l
bW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUodm9pZCogZGF0YSwgc2l6ZV90IHNpemUsIFByb3Rl
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKHNpemUpOwogICAgIApAQCAtMTUyLDkgKzE1Miw5IEBAIFBh
c3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZlcih2
b2lkKiBkYXRhLCBzaXplX3Qgc2l6CiBzdGF0aWMgaW5saW5lIHZtX3Byb3RfdCBtYWNoUHJvdGVj
dGlvbihTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKIHsKICAgICBzd2l0Y2gg
KHByb3RlY3Rpb24pIHsKLSAgICBjYXNlIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHk6CisgICAgY2Fz
ZSBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5OgogICAgICAgICByZXR1cm4gVk1f
UFJPVF9SRUFEOwotICAgIGNhc2UgU2hhcmVkTWVtb3J5OjpSZWFkV3JpdGU6CisgICAgY2FzZSBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZToKICAgICAgICAgcmV0dXJuIFZNX1BS
T1RfUkVBRCB8IFZNX1BST1RfV1JJVEU7CiAgICAgfQogCkBAIC0xNjIsNyArMTYyLDcgQEAgc3Rh
dGljIGlubGluZSB2bV9wcm90X3QgbWFjaFByb3RlY3Rpb24oU2hhcmVkTWVtb3J5OjpQcm90ZWN0
aW9uIHByb3RlY3Rpb24pCiAgICAgcmV0dXJuIFZNX1BST1RfTk9ORTsgICAgCiB9CiAKLVBhc3NS
ZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShjb25zdCBIYW5kbGUmIGhh
bmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQorUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUsIFByb3RlY3Rpb24gcHJvdGVjdGlv
bikKIHsKICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTIw
OCw3ICsyMDgsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFu
ZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCiAKICAgICBtYWNoX3BvcnRfdCBwb3J0OwogCi0g
ICAgaWYgKHByb3RlY3Rpb24gPT0gUmVhZFdyaXRlICYmIG1fcG9ydCkgeworICAgIGlmIChwcm90
ZWN0aW9uID09IFByb3RlY3Rpb246OlJlYWRXcml0ZSAmJiBtX3BvcnQpIHsKICAgICAgICAgLy8g
SnVzdCByZS11c2UgdGhlIHBvcnQgd2UgaGF2ZS4KICAgICAgICAgcG9ydCA9IG1fcG9ydDsKICAg
ICAgICAgaWYgKG1hY2hfcG9ydF9tb2RfcmVmcyhtYWNoX3Rhc2tfc2VsZigpLCBwb3J0LCBNQUNI
X1BPUlRfUklHSFRfU0VORCwgMSkgIT0gS0VSTl9TVUNDRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCmluZGV4IDIyZjg2OWI5NzRiMjg2
MjUyMjZjZDc3NTQ5MGMwMmYxM2JhY2JkMGEuLjUzZmNkMjMxODU5OTUzNzJlNWY0ZmI3YjYyNDFj
ODNkZjAxZWQwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db250ZXh0TWVu
dUNvbnRleHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29udGV4dE1lbnVD
b250ZXh0RGF0YS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRleHRE
YXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxl
OwogICAgIGlmIChtX2NvbnRyb2xsZWRJbWFnZSkKLSAgICAgICAgbV9jb250cm9sbGVkSW1hZ2Ut
PmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBt
X2NvbnRyb2xsZWRJbWFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgZW5jb2RlciA8PCBoYW5kbGU7CiAjZW5kaWYKIH0KQEAg
LTg5LDcgKzg5LDcgQEAgYm9vbCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIENvbnRleHRNZW51Q28KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpCi0gICAgICAgIGNvbnRleHRNZW51Q29u
dGV4dERhdGEubV9jb250cm9sbGVkSW1hZ2UgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5k
bGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBjb250ZXh0TWVudUNvbnRleHRE
YXRhLm1fY29udHJvbGxlZEltYWdlID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICNlbmRpZgogCiAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFw
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKaW5kZXggYTRhNDMw
NTRiOTU0OTEwZWMyMzMyZTk0MmVkMjU2NGYwNzE3MjVhNC4uNzgzMzg5ZWM1MGY4MzE5ZDE3OGEw
NDM0MTI2NTdlNDc0NTJmM2VmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1No
YXJlYWJsZUJpdG1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRt
YXAuaApAQCAtODUsMTAgKzg1LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
aGFyZWFibGVCaXRtYXA+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxhZ3MsIFBh
c3NSZWZQdHI8U2hhcmVkTWVtb3J5Pik7CiAKICAgICAvLyBDcmVhdGUgYSBzaGFyZWFibGUgYml0
bWFwIGZyb20gYSBoYW5kbGUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFw
PiBjcmVhdGUoY29uc3QgSGFuZGxlJiwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uID0gU2hhcmVk
TWVtb3J5OjpSZWFkV3JpdGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gY3JlYXRlKGNvbnN0IEhhbmRsZSYsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiA9IFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlKTsKIAogICAgIC8vIENyZWF0ZSBhIGhhbmRs
ZS4KLSAgICBib29sIGNyZWF0ZUhhbmRsZShIYW5kbGUmLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b24gPSBTaGFyZWRNZW1vcnk6OlJlYWRXcml0ZSk7CisgICAgYm9vbCBjcmVhdGVIYW5kbGUoSGFu
ZGxlJiwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uID0gU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkV3JpdGUpOwogCiAgICAgflNoYXJlYWJsZUJpdG1hcCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAppbmRleCBjZjk2MWQyZTg2NTRkNTJiOWIw
NDVkMzdlNjFiNTkxYTRiYTAxNDMxLi5kZWZkNzEyNjcwMWY4Yjg5ODUwYWQyYWNhOTg3ZDk2OTc3
MTJhOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBQYXNzUmVmUHRyPFNoYXJlYWJsZVJlc291cmNlPiBTaGFyZWFi
bGVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PgogCiBQYXNzUmVmUHRy
PFNoYXJlYWJsZVJlc291cmNlPiBTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlKGNvbnN0IEhhbmRs
ZSYgaGFuZGxlKQogewotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZS5tX2hhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25s
eSk7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5
OjpjcmVhdGUoaGFuZGxlLm1faGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKICAgICBpZiAoIXNoYXJlZE1lbW9yeSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEy
OCw3ICsxMjgsNyBAQCBTaGFyZWFibGVSZXNvdXJjZTo6flNoYXJlYWJsZVJlc291cmNlKCkKIAog
Ym9vbCBTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlKQogewot
ICAgIGlmICghbV9zaGFyZWRNZW1vcnktPmNyZWF0ZUhhbmRsZShoYW5kbGUubV9oYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UmVhZE9ubHkpKQorICAgIGlmICghbV9zaGFyZWRNZW1vcnktPmNyZWF0ZUhh
bmRsZShoYW5kbGUubV9oYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBoYW5kbGUubV9vZmZzZXQgPSBtX29mZnNl
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRF
eHRlbnNpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRFeHRlbnNpb25EYXRhLmNwcAppbmRleCBkY2M1OGVjZTY1YWM5ZTQ4ZDIzNTExZjU1MjlhOTk5
NDQ2MmFmODFiLi4yMDU5YmQ2YmE3ZmIyYzJlYTUyNDAxMWNlOGMwOGU1NjA0YWNmZjMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9u
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGEuY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdm9p
ZCBXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
OwotICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkp
OworICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOwogICAgIGVuY29kZXIgPDwgaGFuZGxlOwogCiAgICAgZW5jb2RlciA8PCBh
Y3Rpb25zT2Zmc2V0OwpAQCAtNDksNyArNDksNyBAQCBib29sIFdlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViQwog
ICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb21waWxlZENvbnRlbnRFeHRl
bnNpb25EYXRhLmRhdGEgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UmVhZE9ubHkpOworICAgIGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuZGF0YSA9IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFk
T25seSk7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbXBpbGVkQ29udGVudEV4dGVuc2lv
bkRhdGEuYWN0aW9uc09mZnNldCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcAppbmRleCBhMmRjNjljM2VkM2QwNmVkOTI3
M2FjNWUzODYyNDA4ODFmMTJlYTBmLi4xMWE2OTg4NzRhODc5ODQyMWVkZDIyNDAxN2YwYmIyYjg2
NDA2MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3Vs
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCkBA
IC0xMjAsNyArMTIwLDcgQEAgdm9pZCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBTaGFyZWRNZW1vcnk6Okhh
bmRsZSBpbWFnZUhhbmRsZTsKICAgICBpZiAoaW1hZ2VTaGFyZWRNZW1vcnkgJiYgaW1hZ2VTaGFy
ZWRNZW1vcnktPmRhdGEoKSkKLSAgICAgICAgaW1hZ2VTaGFyZWRNZW1vcnktPmNyZWF0ZUhhbmRs
ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgIGltYWdlU2hh
cmVkTWVtb3J5LT5jcmVhdGVIYW5kbGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOwogICAgIGVuY29kZXIgPDwgaW1hZ2VIYW5kbGU7CiAgICAgZW5jb2Rl
ciA8PCBpbWFnZVNpemU7CiAgICAgZW5jb2RlciA8PCBpbWFnZUV4dGVuc2lvbjsKQEAgLTE1OSw3
ICsxNTksNyBAQCBib29sIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgV2ViSGl0VGVzdFJlcwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoIWltYWdlSGFuZGxlLmlzTnVsbCgpKQotICAgICAgICBoaXRUZXN0UmVzdWx0
RGF0YS5pbWFnZVNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGltYWdlSGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICAgICAgaGl0VGVzdFJlc3VsdERhdGEuaW1h
Z2VTaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhpdFRlc3RSZXN1bHREYXRhLmltYWdlU2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCmluZGV4IDZjYWM0MTljMWExNDQ3ZjFmZTk2ZWM4Y2YwODg1
ZTRiZDBhYjNiYTQuLjVlYTg2MzAxMjA5NDYzZGYwZjZiMzIyYjkzNTk4YWE5NjEzMTlhNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLmNwcApAQCAtMjMzLDcgKzIzMyw3IEBAIHN0YXRpYyBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZWRUb0ZpbGUoY29uc3QgU3RyaW5nJiBqc29uLCBjb25zdCBTdHJp
bmcmIGZpbmFsRmlsCiAKIHN0YXRpYyBSZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4g
Y3JlYXRlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgQ29udGVudEV4
dGVuc2lvbk1ldGFEYXRhJiBtZXRhRGF0YSwgY29uc3QgRGF0YSYgZmlsZURhdGEpCiB7Ci0gICAg
YXV0byBzaGFyZWRNZW1vcnkgPSBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVm
ZmVyKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZpbGVEYXRhLmRhdGEoKSksIGZpbGVEYXRhLnNpemUo
KSk7CisgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRl
KGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZpbGVEYXRhLmRhdGEoKSksIGZpbGVEYXRhLnNpemUoKSwg
V2ViS2l0OjpTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICBhdXRvIGNv
bXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEgPSBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGEoCiAgICAgICAgIHNoYXJlZE1lbW9yeSwKICAgICAgICAgbWV0YURhdGEuYWN0
aW9uc09mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQppbmRleCA1M2FiNzgzNDA4NjUxNGIwY2YyNGIz
YTIzZjg2ZTFhOGJiMzY0NjRkLi5hOWEwZjhhNjQ1NjIzYzE2NmQ5YTVjYjJiMTBmMmQ3MTVhZmIw
MmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVi
b2FyZFByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlBhc3RlYm9hcmRQcm94eUNvY29hLm1tCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgV2ViUGFzdGVi
b2FyZFByb3h5OjpnZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lCiAgICAgaWYgKCFzaGFyZWRNZW1vcnlCdWZmZXIpCiAgICAgICAgIHJldHVybjsK
ICAgICBtZW1jcHkoc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+ZGF0YSgpLCBz
aXplKTsKLSAgICBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UmVhZE9ubHkpOworICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxl
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiB9CiAKIHZvaWQg
V2ViUGFzdGVib2FyZFByb3h5OjpwYXN0ZWJvYXJkQ29weShjb25zdCBTdHJpbmcmIGZyb21QYXN0
ZWJvYXJkLCBjb25zdCBTdHJpbmcmIHRvUGFzdGVib2FyZCwgdWludDY0X3QmIG5ld0NoYW5nZUNv
dW50KQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgV2ViUGFzdGVib2FyZFByb3h5OjpzZXRQYXN0
ZWJvYXJkQnVmZmVyRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lCiAgICAgICAg
IG5ld0NoYW5nZUNvdW50ID0gUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5zZXRC
dWZmZXJGb3JUeXBlKDAsIHBhc3RlYm9hcmRUeXBlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1v
cnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGhh
bmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5z
aWduZWQgY2hhciAqPihzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSksIHNpemUpOwogICAgIG5l
d0NoYW5nZUNvdW50ID0gUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5zZXRCdWZm
ZXJGb3JUeXBlKGJ1ZmZlciwgcGFzdGVib2FyZFR5cGUpOwogfQpAQCAtMTU1LDcgKzE1NSw3IEBA
IHZvaWQgV2ViUGFzdGVib2FyZFByb3h5OjpyZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQodWludDY0
X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoIXNoYXJlZE1lbW9yeUJ1ZmZlcikKICAg
ICAgICAgcmV0dXJuOwogICAgIG1lbWNweShzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSwgYnVm
ZmVyLT5kYXRhKCksIHNpemUpOwotICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxl
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgc2hhcmVkTWVtb3J5QnVmZmVy
LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5
KTsKIH0KIAogdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9hcmRJdGVtc0NvdW50
KHVpbnQ2NF90JiBpdGVtc0NvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zp
c2l0ZWRMaW5rUHJvdmlkZXIuY3BwCmluZGV4IGY4Y2U5YzNmNzlkMWJkMjEwODlkY2Q2ZDYwZDlk
MjJjNDk3YmJmZjMuLjRkZjE3YzE4NTQ2Y2ZmMjIzZTcxZmU3NTU5MDBiY2QxNDkxYzYxNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAK
QEAgLTI0OCw3ICsyNDgsNyBAQCB2b2lkIFZpc2l0ZWRMaW5rUHJvdmlkZXI6OnNlbmRUYWJsZShX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiAgICAgQVNTRVJUKHByb2Nlc3MucHJvY2Vzc1Bvb2wo
KS5wcm9jZXNzZXMoKS5jb250YWlucygmcHJvY2VzcykpOwogCiAgICAgU2hhcmVkTWVtb3J5OjpI
YW5kbGUgaGFuZGxlOwotICAgIGlmICghbV90YWJsZS5zaGFyZWRNZW1vcnkoKS0+Y3JlYXRlSGFu
ZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSkpCisgICAgaWYgKCFtX3RhYmxlLnNo
YXJlZE1lbW9yeSgpLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRPbmx5KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcHJvY2Vzcy5jb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OlZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyOjpTZXRWaXNpdGVk
TGlua1RhYmxlKGhhbmRsZSksIG1faWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCBhZDk3N2FhYzcyZGFkMGY5YWNlNjYw
YTRmNGJhMDRiNjkyMjc1ODY3Li4xYTZhN2ZiYWQyNDNmYzU1NTZjODIyOGFhZDU4MzdmYzA4YTA4
MjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcu
bW0KQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCBwYWdlRGlkRHJhd1RvSW1hZ2UoY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlSGFuZGxlLCBJUENDYQogICAgICAgICBB
U1NFUlQoW3ZpZXcgX2lzUHJpbnRpbmdQcmV2aWV3XSk7CiAKICAgICAgICAgaWYgKCFpbWFnZUhh
bmRsZS5pc051bGwoKSkgewotICAgICAgICAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gaW1h
Z2UgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpS
ZWFkT25seSk7CisgICAgICAgICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBpbWFnZSA9IFNo
YXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlSGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b246OlJlYWRPbmx5KTsKIAogICAgICAgICAgICAgaWYgKGltYWdlKQogICAgICAgICAgICAgICAg
IHZpZXctPl9wYWdlUHJldmlld3MuYWRkKGl0ZXItPnZhbHVlLCBpbWFnZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IGUzOGI5ZmY3
MDBhNjU4ZTVmY2U2NjkwM2MxMDVlMmUwNDQ1OWU4YzAuLmI4MzU4ODZlYjA2ZWQzNDVlODk3Mjhk
ODVjMWE5OTc5YzVhMTZjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViUGFnZVByb3h5TWFjLm1tCkBAIC0zNzcsNyArMzc3LDcgQEAgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+IFdlYlBhZ2VQcm94eTo6ZGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQo
Y29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1l
c3NhZ2VzOjpXZWJQYWdlOjpHZXREYXRhU2VsZWN0aW9uRm9yUGFzdGVib2FyZDo6UmVwbHkoaGFu
ZGxlLCBzaXplKSwgbV9wYWdlSUQsIG1lc3NhZ2VUaW1lb3V0KTsKICAgICBpZiAoaGFuZGxlLmlz
TnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFy
ZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UmVhZE9ubHkpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUJ1ZmZl
ciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkT25seSk7CiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0
PHVuc2lnbmVkIGNoYXIgKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBzaXplKTsKIH0K
IApAQCAtNDEzLDEyICs0MTMsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFByb21pc2VkRGF0
YUZvckltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFMKIHsKICAgICBN
RVNTQUdFX0NIRUNLX1VSTCh1cmwpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHZpc2libGVVUkwp
OwotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUltYWdlID0gU2hhcmVkTWVt
b3J5OjpjcmVhdGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgIFJl
ZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUltYWdlID0gU2hhcmVkTWVtb3J5OjpjcmVh
dGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IGltYWdlQnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUo
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KHNoYXJlZE1lbW9yeUltYWdlLT5kYXRhKCkpLCBp
bWFnZVNpemUpOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXI7CiAgICAg
CiAgICAgaWYgKCFhcmNoaXZlSGFuZGxlLmlzTnVsbCgpKSB7Ci0gICAgICAgIFJlZlB0cjxTaGFy
ZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUFyY2hpdmUgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShhcmNo
aXZlSGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTs7CisgICAgICAgIFJlZlB0cjxTaGFy
ZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUFyY2hpdmUgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShhcmNo
aXZlSGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAgICAg
YXJjaGl2ZUJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVk
IGNoYXIqPihzaGFyZWRNZW1vcnlBcmNoaXZlLT5kYXRhKCkpLCBhcmNoaXZlU2l6ZSk7CiAgICAg
fQogICAgIG1fcGFnZUNsaWVudC5zZXRQcm9taXNlZERhdGFGb3JJbWFnZShwYXN0ZWJvYXJkTmFt
ZSwgaW1hZ2VCdWZmZXIsIGZpbGVuYW1lLCBleHRlbnNpb24sIHRpdGxlLCB1cmwsIHZpc2libGVV
UkwsIGFyY2hpdmVCdWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA4YzFlMzRjZGVjMThhMzQ0Y2Q4ODFkOWJmNjk2
MTZhZDczNGIwZDQzLi5lNDkyZjQ0NTI1ZDZkYzUyMjRhYzJhY2MzZGNkN2NmZGQ0MjBlOWMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQpAQCAtMTY4OCw3ICsxNjg4LDcgQEAgdm9pZCBQREZQbHVnaW46OndyaXRlSXRlbXNUb1Bh
c3RlYm9hcmQoTlNTdHJpbmcgKnBhc3RlYm9hcmROYW1lLCBOU0FycmF5ICppdGVtcywKICAgICAg
ICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgICAgIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGJ1ZmZlci0+
c2l6ZSgpKTsKICAgICAgICAgICAgIG1lbWNweShzaGFyZWRNZW1vcnktPmRhdGEoKSwgYnVmZmVy
LT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKLSAgICAgICAgICAgIHNoYXJlZE1lbW9yeS0+Y3Jl
YXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgICAgICBz
aGFyZWRNZW1vcnktPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOwogICAgICAgICAgICAgd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpTZXRQYXN0ZWJv
YXJkQnVmZmVyRm9yVHlwZShwYXN0ZWJvYXJkTmFtZSwgdHlwZSwgaGFuZGxlLCBidWZmZXItPnNp
emUoKSksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlNldFBhc3RlYm9hcmRCdWZmZXJG
b3JUeXBlOjpSZXBseShuZXdDaGFuZ2VDb3VudCksIDApOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDIzNjg4MGFhYTA3YzliZTIyODM2
YWQ2MjJkODM2NjMyMGM4ZDgzMzcuLjhiMjBlYTk3Yzg2YzRkYTQzOWNmNTEwMjYzNzQ5Y2NkNTFi
NDE4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTQxMCw3ICs0
MTAsNyBAQCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpidWZmZXJGb3JUeXBlKGNvbnN0IFN0cgogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0
ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKHBhc3RlYm9hcmROYW1lLCBw
YXN0ZWJvYXJkVHlwZSksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9h
cmRCdWZmZXJGb3JUeXBlOjpSZXBseShoYW5kbGUsIHNpemUpLCAwKTsKICAgICBpZiAoaGFuZGxl
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBz
aGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1l
bW9yeTo6UmVhZE9ubHkpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUJ1
ZmZlciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0
aW9uOjpSZWFkT25seSk7CiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19j
YXN0PHVuc2lnbmVkIGNoYXIgKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBzaXplKTsK
IH0KIApAQCAtNDg0LDcgKzQ4NCw3IEBAIGxvbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZXRC
dWZmZXJGb3JUeXBlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIsIGNvCiAgICAgICAg
IC8vIGJlY2F1c2Ugd2UndmUgYWxyZWFkeSBzZXQgdGhlIHR5cGVzLgogICAgICAgICBpZiAoc2hh
cmVkTWVtb3J5QnVmZmVyKSB7CiAgICAgICAgICAgICBtZW1jcHkoc2hhcmVkTWVtb3J5QnVmZmVy
LT5kYXRhKCksIGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7Ci0gICAgICAgICAgICBz
aGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVh
ZE9ubHkpOworICAgICAgICAgICAgc2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoaGFu
ZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAgICAgfQogICAg
IH0KICAgICB1aW50NjRfdCBuZXdDaGFuZ2VDb3VudDsKQEAgLTUzNiw3ICs1MzYsNyBAQCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFk
QnVmZmVyRnJvbVBhc3RlYm9hcgogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6
OlJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZChpbmRleCwgcGFzdGVib2FyZFR5cGUpLCBNZXNzYWdl
czo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KGhh
bmRsZSwgc2l6ZSksIDApOwogICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
biAwOwotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJl
ZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgUmVm
UHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVh
dGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICByZXR1
cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhciAqPihzaGFy
ZWRNZW1vcnlCdWZmZXItPmRhdGEoKSksIHNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0Ns
aWVudE1hYy5tbQppbmRleCBlM2E3MDQ3M2RhZGExYjRmZjdmNjgzYzU3MTU1NTg5OTBhNDhjZGNi
Li4xYWIyZWM5ZDRkOWYxZjdhYTc1M2NlOGM5YTIxMWI1ZmIxMjYyNmM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkRyYWdDbGllbnRNYWMubW0KQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIFdlYkRyYWdDbGll
bnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBFbGVtZQogICAgIGlmICghc2hhcmVkTWVtb3J5QnVmZmVyKQogICAgICAgICByZXR1cm47CiAg
ICAgbWVtY3B5KHNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpLCBpbWFnZUJ1ZmZlci0+ZGF0YSgp
LCBpbWFnZVNpemUpOwotICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGltYWdl
SGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICBzaGFyZWRNZW1vcnlCdWZmZXIt
PmNyZWF0ZUhhbmRsZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFk
T25seSk7CiAgICAgCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YSA9IGFyY2hpdmUgPyBh
cmNoaXZlLT5yYXdEYXRhUmVwcmVzZW50YXRpb24oKSA6IDA7CiAgICAgU2hhcmVkTWVtb3J5OjpI
YW5kbGUgYXJjaGl2ZUhhbmRsZTsKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIFdlYkRyYWdDbGll
bnQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBFbGVtZQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBhcmNoaXZlU2l6ZSA9IGFyY2hp
dmVCdWZmZXItPnNpemUoKTsKICAgICAgICAgbWVtY3B5KGFyY2hpdmVTaGFyZWRNZW1vcnlCdWZm
ZXItPmRhdGEoKSwgYXJjaGl2ZUJ1ZmZlci0+ZGF0YSgpLCBhcmNoaXZlU2l6ZSk7Ci0gICAgICAg
IGFyY2hpdmVTaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShhcmNoaXZlSGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICAgICAgYXJjaGl2ZVNoYXJlZE1lbW9yeUJ1ZmZl
ci0+Y3JlYXRlSGFuZGxlKGFyY2hpdmVIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6
UmVhZE9ubHkpOwogICAgIH0KICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6U2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UocGFzdGVib2FyZE5hbWUsIGltYWdlSGFuZGxlLCBp
bWFnZVNpemUsIFN0cmluZyhbcmVzcG9uc2Ugc3VnZ2VzdGVkRmlsZW5hbWVdKSwgZXh0ZW5zaW9u
LCB0aXRsZSwgU3RyaW5nKFtbcmVzcG9uc2UgVVJMXSBhYnNvbHV0ZVN0cmluZ10pLCB1c2VyVmlz
aWJsZVN0cmluZygoTlNVUkwgKil1cmwpLCBhcmNoaXZlSGFuZGxlLCBhcmNoaXZlU2l6ZSkpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRM
aW5rVGFibGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKaW5kZXggZDM1OWIxOWUwODIxYjQ1MzE2
NDAxNzJkOGZhYTk1NWJjYjRlYzg5OS4uNTc0NTg1NTAyODlhZWZhM2NhNDljMmZjNmU1NDNhMjE5
ZWQ1N2VjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zp
c2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCkBAIC05MCw3ICs5MCw3
IEBAIHZvaWQgVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXI6OmFkZFZpc2l0ZWRMaW5rKFBhZ2Um
IHBhZ2UsIExpbmtIYXNoIGxpbmtIYXNoKQogCiB2b2lkIFZpc2l0ZWRMaW5rVGFibGVDb250cm9s
bGVyOjpzZXRWaXNpdGVkTGlua1RhYmxlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBoYW5k
bGUpCiB7Ci0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVt
b3J5OjpjcmVhdGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICBSZWZQdHI8
U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUs
IFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogICAgIGlmICghc2hhcmVkTWVt
b3J5KQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCAxMzY4N2UwYTIwMzNmNTI0NzhlOTdkNTc5YjkwODU3OWEx
NzQ0YmVhLi4xY2ZlNzEwNDcyZWQ1N2E4Mjk0MzNiY2MyZDIzM2Q0ZWY0MGNjNGNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNjI1LDcg
KzE2MjUsNyBAQCB2b2lkIFdlYlBhZ2U6OnRha2VTbmFwc2hvdChJbnRSZWN0IHNuYXBzaG90UmVj
dCwgSW50U2l6ZSBiaXRtYXBTaXplLCB1aW50MzJfdCBvcAogCiAgICAgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUgaGFuZGxlOwogICAgIGlmIChpbWFnZSkKLSAgICAgICAgaW1hZ2UtPmJpdG1hcCgp
LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICAgICAg
aW1hZ2UtPmJpdG1hcCgpLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3Rl
Y3Rpb246OlJlYWRPbmx5KTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SW1h
Z2VDYWxsYmFjayhoYW5kbGUsIGNhbGxiYWNrSUQpKTsKIH0KQEAgLTM4MzUsNyArMzgzNSw3IEBA
IHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYgcHJpbnRJbmZvLCBjb25zCiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFu
ZGxlOwogCiAgICAgaWYgKGltYWdlKQotICAgICAgICBpbWFnZS0+Yml0bWFwKCktPmNyZWF0ZUhh
bmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBpbWFnZS0+Yml0
bWFwKCktPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbWFnZUNhbGxiYWNr
KGhhbmRsZSwgY2FsbGJhY2tJRCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDI2YTQ3NDFhNTVjODJkYzQ3ZmMz
MjQzNTI2OTYxYjcxMjM1NjM0YjguLjE0OTBkZGNiYmNmODEyZWNlNDlmMWE1YTI5OGY1NTlkMWE2
YTA1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0KQEAgLTcxMiw3ICs3MTIsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldERhdGFT
ZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU2hhcmVk
TQogICAgIHNpemUgPSBidWZmZXItPnNpemUoKTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBz
aGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShzaXplKTsKICAgICBtZW1j
cHkoc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+ZGF0YSgpLCBzaXplKTsKLSAg
ICBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6
UmVhZE9ubHkpOworICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwg
U2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiB9CiAKIFdLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QqIFdlYlBhZ2U6OmFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250670</attachid>
            <date>2015-04-13 13:08:28 -0700</date>
            <delta_ts>2015-04-13 13:12:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143677-20150413130739.patch</filename>
            <type>text/plain</type>
            <size>32127</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWIxMTkyN2QzZDI0MzY1
ZmZlNDMzN2NjYTljNzEwOWI1NThiOGRmZC4uNzA0YjBkM2I2NDQ4NzkyNTU4MGQ1ODU1ODM5ZGVk
OWZkMzk0YzEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA0LTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQmVnaW4gY2xlYW5p
bmcgdXAgdGhlIHNoYXJlZCBtZW1vcnkgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM2NzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgY3JlYXRlRnJvbVZNQnVmZmVyIHRvIGNy
ZWF0ZSBhbmQgYWRkIGEgcHJvdGVjdGlvbiBwYXJhbWV0ZXIgKHdoaWNoIGlzIGN1cnJlbnRseSB1
bnVzZWQpLgorICAgICAgICBBbHNvLCB0dXJuIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiBpbnRv
IGEgcHJvcGVyIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpz
dG9yZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkVudHJ5Ojppbml0aWFsaXplQnVm
ZmVyRnJvbVN0b3JhZ2VSZWNvcmQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnRyeUdldFNoYXJlYWJs
ZUhhbmRsZUZyb21DRkRhdGEpOgorICAgICAgICAqIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oOgor
ICAgICAgICAqIFBsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Om1hY2hQcm90ZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZlcik6IERlbGV0ZWQu
CisgICAgICAgICogU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TaGFy
ZWFibGVCaXRtYXAuaDoKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OmNyZWF0ZUhhbmRsZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJl
c3VsdDo6RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdDo6
RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpjcmVhdGVFeHRlbnNpb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFzdGVib2FyZFByb3h5OjpnZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhc3RlYm9hcmRQcm94eTo6c2V0UGFzdGVib2FyZEJ1ZmZl
ckZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRCdWZm
ZXJGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpdGVkTGlua1Byb3ZpZGVyOjpzZW5kVGFibGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAgIChw
YWdlRGlkRHJhd1RvSW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRhdGFTZWxlY3Rpb25Gb3JQ
YXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcm9taXNlZERh
dGFGb3JJbWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6d3JpdGVJdGVtc1RvUGFzdGVib2FyZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmJ1ZmZlckZv
clR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldEJ1ZmZl
ckZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRC
dWZmZXJGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVu
dDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNp
dGVkTGlua1RhYmxlQ29udHJvbGxlcjo6c2V0VmlzaXRlZExpbmtUYWJsZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp0YWtlU25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UmVjdFRvSW1h
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQpOgor
CiAyMDE1LTA0LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIExvY2FsaXphYmxlIHN0cmluZ3MgYXJlIGluY29uc2lzdGVudCBhbmQgbmVlZCB0byBi
ZSByZWdlbmVyYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggNDllMTJjYjE0OTNiMzIwNWM1NjFkY2YzY2NjZmVk
YjI1ZjM5ZjllYy4uZGE1MGQ5MWZjOTU2ODhhY2RkMzZjZjc0NmQ4ZjE2NTAxMzg1NzFmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBDYWNoZTo6c3RvcmUoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIGNvbnN0IFdlYkNvcmUKICAgICAg
ICAgTWFwcGVkQm9keSBtYXBwZWRCb2R5OwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0Up
CiAgICAgICAgIGlmIChib2R5RGF0YS5pc01hcCgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZl
cihjb25zdF9jYXN0PHVpbnQ4X3QqPihib2R5RGF0YS5kYXRhKCkpLCBib2R5RGF0YS5zaXplKCkp
OworICAgICAgICAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoY29uc3RfY2FzdDx1aW50OF90Kj4oYm9keURhdGEuZGF0YSgpKSwgYm9k
eURhdGEuc2l6ZSgpLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAg
ICAgICAgIG1hcHBlZEJvZHkuc2hhcmVhYmxlUmVzb3VyY2UgPSBzaGFyZWRNZW1vcnkgPyBTaGFy
ZWFibGVSZXNvdXJjZTo6Y3JlYXRlKFdURjo6bW92ZShzaGFyZWRNZW1vcnkpLCAwLCBib2R5RGF0
YS5zaXplKCkpIDogbnVsbHB0cjsKICAgICAgICAgICAgIGlmIChtYXBwZWRCb2R5LnNoYXJlYWJs
ZVJlc291cmNlKQogICAgICAgICAgICAgICAgIG1hcHBlZEJvZHkuc2hhcmVhYmxlUmVzb3VyY2Ut
PmNyZWF0ZUhhbmRsZShtYXBwZWRCb2R5LnNoYXJlYWJsZVJlc291cmNlSGFuZGxlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVu
dHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUVudHJ5LmNwcAppbmRleCA4NjlkYjhmMTE3N2U4MDY0YmNjMGM5NDA5YjZlNmU2MmQxNjRjOGVi
Li5hYzM5MTgwM2RhYmVjZTNkM2QxOWIwNGE2M2Q3NTU2YTRkMmQ5Y2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50
cnkuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBFbnRyeTo6aW5pdGlhbGl6ZUJ1ZmZlckZy
b21TdG9yYWdlUmVjb3JkKCkgY29uc3QKICAgICBhdXRvKiBkYXRhID0gbV9zb3VyY2VTdG9yYWdl
UmVjb3JkLmJvZHkuZGF0YSgpOwogICAgIHNpemVfdCBzaXplID0gbV9zb3VyY2VTdG9yYWdlUmVj
b3JkLmJvZHkuc2l6ZSgpOwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCi0gICAgUmVm
UHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gbV9zb3VyY2VTdG9yYWdlUmVjb3JkLmJv
ZHkuaXNNYXAoKSA/IFNoYXJlZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVmZmVyKGNvbnN0X2Nhc3Q8
dWludDhfdCo+KGRhdGEpLCBzaXplKSA6IG51bGxwdHI7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9y
eT4gc2hhcmVkTWVtb3J5ID0gbV9zb3VyY2VTdG9yYWdlUmVjb3JkLmJvZHkuaXNNYXAoKSA/IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEpLCBzaXplLCBTaGFy
ZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KSA6IG51bGxwdHI7CiAgICAgUmVmUHRyPFNo
YXJlYWJsZVJlc291cmNlPiBzaGFyZWFibGVSZXNvdXJjZSA9IHNoYXJlZE1lbW9yeSA/IFNoYXJl
YWJsZVJlc291cmNlOjpjcmVhdGUoc2hhcmVkTWVtb3J5LnJlbGVhc2UoKSwgMCwgbV9zb3VyY2VT
dG9yYWdlUmVjb3JkLmJvZHkuc2l6ZSgpKSA6IG51bGxwdHI7CiAKICAgICBpZiAoc2hhcmVhYmxl
UmVzb3VyY2UgJiYgc2hhcmVhYmxlUmVzb3VyY2UtPmNyZWF0ZUhhbmRsZShtX3NoYXJlYWJsZVJl
c291cmNlSGFuZGxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCmluZGV4IDZiMGIzNTgxN2I4
MTM3NGYyOGI1ZTViNGZmZjNhMzAxZjJhNTRlMzguLjU3NjA1MWI3MjdkYzExOWZjODEzNDk2NGRj
MzkxMjAwNzJiYzIzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtNDAsNyArNDAs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIHZvaWQgdHJ5R2V0U2hhcmVhYmxlSGFu
ZGxlRnJvbUNGRGF0YShTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUsIENGRGF0YVJl
ZiBkYXRhKQogewotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNoYXJl
ZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVmZmVyKCh2b2lkKilDRkRhdGFHZXRCeXRlUHRyKGRhdGEp
LCBDRkRhdGFHZXRMZW5ndGgoZGF0YSkpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJl
ZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKCh2b2lkKilDRkRhdGFHZXRCeXRlUHRyKGRh
dGEpLCBDRkRhdGFHZXRMZW5ndGgoZGF0YSksIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOwogICAgIGlmICghc2hhcmVkTWVtb3J5KSB7CiAgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSBWTSBzaGFyZWQgbWVtb3J5IGZvciBjYWNoZWQgcmVzb3VyY2UuIik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJl
ZE1lbW9yeS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKaW5kZXgg
OWUyNWQwODQ5NDU0MjJkNTliN2EwYThhYzM5YWI4MjI1MjMxNDc0Ny4uMzAwZGQyZTUzM2YxMDRh
MDdmNDQyNmQ3OGMyZGJiYmQ2MzU1YjhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vU2hhcmVkTWVtb3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVk
TWVtb3J5LmgKQEAgLTI3LDggKzI3LDggQEAKICNkZWZpbmUgU2hhcmVkTWVtb3J5X2gKIAogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKICNp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKICNpbmNsdWRlICJBdHRhY2htZW50Lmgi
CkBAIC0zNiwxNSArMzYsMTUgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsKLSAgICBjbGFz
cyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgU2hhcmVkTWVtb3J5IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkTWVt
b3J5PiB7CiBwdWJsaWM6Ci0gICAgZW51bSBQcm90ZWN0aW9uIHsKKyAgICBlbnVtIGNsYXNzIFBy
b3RlY3Rpb24gewogICAgICAgICBSZWFkT25seSwKICAgICAgICAgUmVhZFdyaXRlCiAgICAgfTsK
QEAgLTc2LDE1ICs3Niw5IEBAIHB1YmxpYzoKICAgICAgICAgc2l6ZV90IG1fc2l6ZTsKICAgICB9
OwogICAgIAotICAgIC8vIENyZWF0ZSBhIHNoYXJlZCBtZW1vcnkgb2JqZWN0IHdpdGggdGhlIGdp
dmVuIHNpemUuIFdpbGwgcmV0dXJuIDAgb24gZmFpbHVyZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZShzaXplX3QpOwotCi0gICAgLy8gQ3JlYXRlIGEgc2hhcmVk
IG1lbW9yeSBvYmplY3QgZnJvbSB0aGUgZ2l2ZW4gaGFuZGxlIGFuZCB0aGUgcmVxdWVzdGVkIHBy
b3RlY3Rpb24uIFdpbGwgcmV0dXJuIDAgb24gZmFpbHVyZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZShjb25zdCBIYW5kbGUmLCBQcm90ZWN0aW9uKTsKLQotICAg
IC8vIENyZWF0ZSBhIHNoYXJlZCBtZW1vcnkgb2JqZWN0IHdpdGggdGhlIGdpdmVuIHNpemUgYnkg
dm1fY29weSdpbmcgdGhlIGdpdmVuIGJ1ZmZlci4KLSAgICAvLyBXaWxsIHJldHVybiAwIG9uIGZh
aWx1cmUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBjcmVhdGVGcm9tVk1C
dWZmZXIodm9pZCosIHNpemVfdCk7CisgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1vcnk+IGNy
ZWF0ZShzaXplX3QpOworICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiBjcmVhdGUoY29u
c3QgSGFuZGxlJiwgUHJvdGVjdGlvbik7CisgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IGNyZWF0ZSh2b2lkKiwgc2l6ZV90LCBQcm90ZWN0aW9uKTsKIAogICAgIH5TaGFyZWRNZW1vcnko
KTsKIApAQCAtOTMsOSArODcsNiBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7
IHJldHVybiBtX3NpemU7IH0KICAgICB2b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRh
OyB9CiAKLSAgICAvLyBDcmVhdGVzIGEgY29weS1vbi13cml0ZSBjb3B5IG9mIHRoZSBmaXJzdCB8
c2l6ZXwgYnl0ZXMuCi0gICAgUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZUNvcHlPbldy
aXRlQ29weShzaXplX3QpIGNvbnN0OwotCiAgICAgLy8gUmV0dXJuIHRoZSBzeXN0ZW0gcGFnZSBz
aXplIGluIGJ5dGVzLgogICAgIHN0YXRpYyB1bnNpZ25lZCBzeXN0ZW1QYWdlU2l6ZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCmluZGV4
IGM0Y2UzMjEyMjg3Y2RlNTZiYTY2ZDYwMGMyMDFhZDE5YWEyY2MzNjQuLjBjYzkzMmExMWI5YjFi
NWQzMWJiZjdkZGZiNjhkOGMzNGY0NjFkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHN0YXRpYyBpbmxp
bmUgbWFjaF92bV9hZGRyZXNzX3QgdG9WTUFkZHJlc3Modm9pZCogcG9pbnRlcikKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8bWFjaF92bV9hZGRyZXNzX3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihwb2ludGVyKSk7CiB9CiAgICAgCi1QYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCitSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRN
ZW1vcnk6OmNyZWF0ZShzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlQoc2l6ZSk7CiAKQEAgLTEw
OSw3ICsxMDksNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVh
dGUoc2l6ZV90IHNpemUpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IGNyZWF0ZUZyb21WTUJ1ZmZlcih0b1BvaW50ZXIo
YWRkcmVzcyksIHNpemUpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9
IGNyZWF0ZSh0b1BvaW50ZXIoYWRkcmVzcyksIHNpemUsIFByb3RlY3Rpb246OlJlYWRXcml0ZSk7
CiAgICAgaWYgKCFzaGFyZWRNZW1vcnkpIHsKICAgICAgICAgbWFjaF92bV9kZWFsbG9jYXRlKG1h
Y2hfdGFza19zZWxmKCksIGFkZHJlc3MsIHJvdW5kX3BhZ2Uoc2l6ZSkpOwogICAgICAgICByZXR1
cm4gMDsKQEAgLTExOSw3ICsxMTksNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCiAgICAgcmV0dXJuIHNoYXJlZE1lbW9yeS5yZWxl
YXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0
ZUZyb21WTUJ1ZmZlcih2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSkgIAorUmVmUHRyPFNoYXJlZE1l
bW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUodm9pZCogZGF0YSwgc2l6ZV90IHNpemUsIFByb3Rl
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKHNpemUpOwogICAgIApAQCAtMTUyLDkgKzE1Miw5IEBAIFBh
c3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZlcih2
b2lkKiBkYXRhLCBzaXplX3Qgc2l6CiBzdGF0aWMgaW5saW5lIHZtX3Byb3RfdCBtYWNoUHJvdGVj
dGlvbihTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKIHsKICAgICBzd2l0Y2gg
KHByb3RlY3Rpb24pIHsKLSAgICBjYXNlIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHk6CisgICAgY2Fz
ZSBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5OgogICAgICAgICByZXR1cm4gVk1f
UFJPVF9SRUFEOwotICAgIGNhc2UgU2hhcmVkTWVtb3J5OjpSZWFkV3JpdGU6CisgICAgY2FzZSBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZToKICAgICAgICAgcmV0dXJuIFZNX1BS
T1RfUkVBRCB8IFZNX1BST1RfV1JJVEU7CiAgICAgfQogCkBAIC0xNjIsNyArMTYyLDcgQEAgc3Rh
dGljIGlubGluZSB2bV9wcm90X3QgbWFjaFByb3RlY3Rpb24oU2hhcmVkTWVtb3J5OjpQcm90ZWN0
aW9uIHByb3RlY3Rpb24pCiAgICAgcmV0dXJuIFZNX1BST1RfTk9ORTsgICAgCiB9CiAKLVBhc3NS
ZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShjb25zdCBIYW5kbGUmIGhh
bmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQorUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUsIFByb3RlY3Rpb24gcHJvdGVjdGlv
bikKIHsKICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTIw
OCw3ICsyMDgsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFu
ZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCiAKICAgICBtYWNoX3BvcnRfdCBwb3J0OwogCi0g
ICAgaWYgKHByb3RlY3Rpb24gPT0gUmVhZFdyaXRlICYmIG1fcG9ydCkgeworICAgIGlmIChwcm90
ZWN0aW9uID09IFByb3RlY3Rpb246OlJlYWRXcml0ZSAmJiBtX3BvcnQpIHsKICAgICAgICAgLy8g
SnVzdCByZS11c2UgdGhlIHBvcnQgd2UgaGF2ZS4KICAgICAgICAgcG9ydCA9IG1fcG9ydDsKICAg
ICAgICAgaWYgKG1hY2hfcG9ydF9tb2RfcmVmcyhtYWNoX3Rhc2tfc2VsZigpLCBwb3J0LCBNQUNI
X1BPUlRfUklHSFRfU0VORCwgMSkgIT0gS0VSTl9TVUNDRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCmluZGV4IDIyZjg2OWI5NzRiMjg2
MjUyMjZjZDc3NTQ5MGMwMmYxM2JhY2JkMGEuLjUzZmNkMjMxODU5OTUzNzJlNWY0ZmI3YjYyNDFj
ODNkZjAxZWQwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db250ZXh0TWVu
dUNvbnRleHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29udGV4dE1lbnVD
b250ZXh0RGF0YS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRleHRE
YXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxl
OwogICAgIGlmIChtX2NvbnRyb2xsZWRJbWFnZSkKLSAgICAgICAgbV9jb250cm9sbGVkSW1hZ2Ut
PmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBt
X2NvbnRyb2xsZWRJbWFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgZW5jb2RlciA8PCBoYW5kbGU7CiAjZW5kaWYKIH0KQEAg
LTg5LDcgKzg5LDcgQEAgYm9vbCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIENvbnRleHRNZW51Q28KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpCi0gICAgICAgIGNvbnRleHRNZW51Q29u
dGV4dERhdGEubV9jb250cm9sbGVkSW1hZ2UgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5k
bGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBjb250ZXh0TWVudUNvbnRleHRE
YXRhLm1fY29udHJvbGxlZEltYWdlID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICNlbmRpZgogCiAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFw
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKaW5kZXggYTRhNDMw
NTRiOTU0OTEwZWMyMzMyZTk0MmVkMjU2NGYwNzE3MjVhNC4uNzgzMzg5ZWM1MGY4MzE5ZDE3OGEw
NDM0MTI2NTdlNDc0NTJmM2VmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1No
YXJlYWJsZUJpdG1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRt
YXAuaApAQCAtODUsMTAgKzg1LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
aGFyZWFibGVCaXRtYXA+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxhZ3MsIFBh
c3NSZWZQdHI8U2hhcmVkTWVtb3J5Pik7CiAKICAgICAvLyBDcmVhdGUgYSBzaGFyZWFibGUgYml0
bWFwIGZyb20gYSBoYW5kbGUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFw
PiBjcmVhdGUoY29uc3QgSGFuZGxlJiwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uID0gU2hhcmVk
TWVtb3J5OjpSZWFkV3JpdGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gY3JlYXRlKGNvbnN0IEhhbmRsZSYsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiA9IFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlKTsKIAogICAgIC8vIENyZWF0ZSBhIGhhbmRs
ZS4KLSAgICBib29sIGNyZWF0ZUhhbmRsZShIYW5kbGUmLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b24gPSBTaGFyZWRNZW1vcnk6OlJlYWRXcml0ZSk7CisgICAgYm9vbCBjcmVhdGVIYW5kbGUoSGFu
ZGxlJiwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uID0gU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkV3JpdGUpOwogCiAgICAgflNoYXJlYWJsZUJpdG1hcCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAppbmRleCBjZjk2MWQyZTg2NTRkNTJiOWIw
NDVkMzdlNjFiNTkxYTRiYTAxNDMxLi5kZWZkNzEyNjcwMWY4Yjg5ODUwYWQyYWNhOTg3ZDk2OTc3
MTJhOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBQYXNzUmVmUHRyPFNoYXJlYWJsZVJlc291cmNlPiBTaGFyZWFi
bGVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PgogCiBQYXNzUmVmUHRy
PFNoYXJlYWJsZVJlc291cmNlPiBTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlKGNvbnN0IEhhbmRs
ZSYgaGFuZGxlKQogewotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZS5tX2hhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25s
eSk7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5
OjpjcmVhdGUoaGFuZGxlLm1faGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKICAgICBpZiAoIXNoYXJlZE1lbW9yeSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEy
OCw3ICsxMjgsNyBAQCBTaGFyZWFibGVSZXNvdXJjZTo6flNoYXJlYWJsZVJlc291cmNlKCkKIAog
Ym9vbCBTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlKQogewot
ICAgIGlmICghbV9zaGFyZWRNZW1vcnktPmNyZWF0ZUhhbmRsZShoYW5kbGUubV9oYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UmVhZE9ubHkpKQorICAgIGlmICghbV9zaGFyZWRNZW1vcnktPmNyZWF0ZUhh
bmRsZShoYW5kbGUubV9oYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBoYW5kbGUubV9vZmZzZXQgPSBtX29mZnNl
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRF
eHRlbnNpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRFeHRlbnNpb25EYXRhLmNwcAppbmRleCBkY2M1OGVjZTY1YWM5ZTQ4ZDIzNTExZjU1MjlhOTk5
NDQ2MmFmODFiLi4yMDU5YmQ2YmE3ZmIyYzJlYTUyNDAxMWNlOGMwOGU1NjA0YWNmZjMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9u
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGEuY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdm9p
ZCBXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
OwotICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkp
OworICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOwogICAgIGVuY29kZXIgPDwgaGFuZGxlOwogCiAgICAgZW5jb2RlciA8PCBh
Y3Rpb25zT2Zmc2V0OwpAQCAtNDksNyArNDksNyBAQCBib29sIFdlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViQwog
ICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb21waWxlZENvbnRlbnRFeHRl
bnNpb25EYXRhLmRhdGEgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UmVhZE9ubHkpOworICAgIGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuZGF0YSA9IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFk
T25seSk7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbXBpbGVkQ29udGVudEV4dGVuc2lv
bkRhdGEuYWN0aW9uc09mZnNldCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcAppbmRleCBhMmRjNjljM2VkM2QwNmVkOTI3
M2FjNWUzODYyNDA4ODFmMTJlYTBmLi4xMWE2OTg4NzRhODc5ODQyMWVkZDIyNDAxN2YwYmIyYjg2
NDA2MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3Vs
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCkBA
IC0xMjAsNyArMTIwLDcgQEAgdm9pZCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBTaGFyZWRNZW1vcnk6Okhh
bmRsZSBpbWFnZUhhbmRsZTsKICAgICBpZiAoaW1hZ2VTaGFyZWRNZW1vcnkgJiYgaW1hZ2VTaGFy
ZWRNZW1vcnktPmRhdGEoKSkKLSAgICAgICAgaW1hZ2VTaGFyZWRNZW1vcnktPmNyZWF0ZUhhbmRs
ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgIGltYWdlU2hh
cmVkTWVtb3J5LT5jcmVhdGVIYW5kbGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOwogICAgIGVuY29kZXIgPDwgaW1hZ2VIYW5kbGU7CiAgICAgZW5jb2Rl
ciA8PCBpbWFnZVNpemU7CiAgICAgZW5jb2RlciA8PCBpbWFnZUV4dGVuc2lvbjsKQEAgLTE1OSw3
ICsxNTksNyBAQCBib29sIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgV2ViSGl0VGVzdFJlcwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoIWltYWdlSGFuZGxlLmlzTnVsbCgpKQotICAgICAgICBoaXRUZXN0UmVzdWx0
RGF0YS5pbWFnZVNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGltYWdlSGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICAgICAgaGl0VGVzdFJlc3VsdERhdGEuaW1h
Z2VTaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhpdFRlc3RSZXN1bHREYXRhLmltYWdlU2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCmluZGV4IDZjYWM0MTljMWExNDQ3ZjFmZTk2ZWM4Y2YwODg1
ZTRiZDBhYjNiYTQuLjVlYTg2MzAxMjA5NDYzZGYwZjZiMzIyYjkzNTk4YWE5NjEzMTlhNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLmNwcApAQCAtMjMzLDcgKzIzMyw3IEBAIHN0YXRpYyBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZWRUb0ZpbGUoY29uc3QgU3RyaW5nJiBqc29uLCBjb25zdCBTdHJp
bmcmIGZpbmFsRmlsCiAKIHN0YXRpYyBSZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4g
Y3JlYXRlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgQ29udGVudEV4
dGVuc2lvbk1ldGFEYXRhJiBtZXRhRGF0YSwgY29uc3QgRGF0YSYgZmlsZURhdGEpCiB7Ci0gICAg
YXV0byBzaGFyZWRNZW1vcnkgPSBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVm
ZmVyKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZpbGVEYXRhLmRhdGEoKSksIGZpbGVEYXRhLnNpemUo
KSk7CisgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRl
KGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZpbGVEYXRhLmRhdGEoKSksIGZpbGVEYXRhLnNpemUoKSwg
V2ViS2l0OjpTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICBhdXRvIGNv
bXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEgPSBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGEoCiAgICAgICAgIHNoYXJlZE1lbW9yeSwKICAgICAgICAgbWV0YURhdGEuYWN0
aW9uc09mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVGh1bWJuYWlsVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVGh1bWJuYWlsVmlldy5tbQppbmRleCBkZjkzMjNmMTJhMjA2ZDlhZWY2MTUzYWRlNGM3
MTdkMjFiMjcwZTY0Li41OTQ4NzhlZDkzNjY2NWI1NjM5NDY4MTc1OGIxYWM0M2I4NmUxYWU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFp
bFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVt
Ym5haWxWaWV3Lm1tCkBAIC0xMjAsNyArMTIwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
ICAgICBiaXRtYXBTaXplLnNjYWxlKF9zY2FsZSAqIF93ZWJQYWdlUHJveHktPmRldmljZVNjYWxl
RmFjdG9yKCkpOwogICAgIF9sYXN0U25hcHNob3RTY2FsZSA9IF9zY2FsZTsKICAgICBfd2ViUGFn
ZVByb3h5LT50YWtlU25hcHNob3Qoc25hcHNob3RSZWN0LCBiaXRtYXBTaXplLCBvcHRpb25zLCBb
dGh1bWJuYWlsVmlld10oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlSGFuZGxl
LCBDYWxsYmFja0Jhc2U6OkVycm9yKSB7Ci0gICAgICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+
IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlSGFuZGxlLCBTaGFyZWRNZW1v
cnk6OlJlYWRPbmx5KTsKKyAgICAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0g
U2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOwogICAgICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY2dJbWFnZSA9
IGJpdG1hcCA/IGJpdG1hcC0+bWFrZUNHSW1hZ2UoKSA6IG51bGxwdHI7CiAgICAgICAgIFt0aHVt
Ym5haWxWaWV3IF9kaWRUYWtlU25hcHNob3Q6Y2dJbWFnZS5nZXQoKV07CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFBy
b3h5Q29jb2EubW0KaW5kZXggNTNhYjc4MzQwODY1MTRiMGNmMjRiM2EyM2Y4NmUxYThiYjM2NDY0
ZC4uYTlhMGY4YTY0NTYyM2MxNjZkOWE1Y2IyYjEwZjJkNzE1YWZiMDJiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlD
b2NvYS5tbQpAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6Z2V0UGFz
dGVib2FyZEJ1ZmZlckZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZQogICAgIGlm
ICghc2hhcmVkTWVtb3J5QnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgbWVtY3B5KHNoYXJl
ZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPmRhdGEoKSwgc2l6ZSk7Ci0gICAgc2hhcmVk
TWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5
KTsKKyAgICBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1l
bW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogfQogCiB2b2lkIFdlYlBhc3RlYm9hcmRQcm94
eTo6cGFzdGVib2FyZENvcHkoY29uc3QgU3RyaW5nJiBmcm9tUGFzdGVib2FyZCwgY29uc3QgU3Ry
aW5nJiB0b1Bhc3RlYm9hcmQsIHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCkKQEAgLTExNCw3ICsx
MTQsNyBAQCB2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6c2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5
cGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZQogICAgICAgICBuZXdDaGFuZ2VDb3VudCA9
IFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkuc2V0QnVmZmVyRm9yVHlwZSgwLCBw
YXN0ZWJvYXJkVHlwZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgUmVmUHRyPFNoYXJl
ZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoaGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFy
ZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIgKj4oc2hh
cmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBzaXplKTsKICAgICBuZXdDaGFuZ2VDb3VudCA9IFBs
YXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkuc2V0QnVmZmVyRm9yVHlwZShidWZmZXIs
IHBhc3RlYm9hcmRUeXBlKTsKIH0KQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIFdlYlBhc3RlYm9h
cmRQcm94eTo6cmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBT
dHJpbmcmCiAgICAgaWYgKCFzaGFyZWRNZW1vcnlCdWZmZXIpCiAgICAgICAgIHJldHVybjsKICAg
ICBtZW1jcHkoc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+ZGF0YSgpLCBzaXpl
KTsKLSAgICBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1l
bW9yeTo6UmVhZE9ubHkpOworICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGhh
bmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiB9CiAKIHZvaWQgV2Vi
UGFzdGVib2FyZFByb3h5OjpnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudCh1aW50NjRfdCYgaXRlbXND
b3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1By
b3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVy
LmNwcAppbmRleCBmOGNlOWMzZjc5ZDFiZDIxMDg5ZGNkNmQ2MGQ5ZDIyYzQ5N2JiZmYzLi40ZGYx
N2MxODU0NmNmZjIyM2U3MWZlNzU1OTAwYmNkMTQ5MWM2MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwCkBAIC0yNDgsNyArMjQ4LDcg
QEAgdm9pZCBWaXNpdGVkTGlua1Byb3ZpZGVyOjpzZW5kVGFibGUoV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzKQogICAgIEFTU0VSVChwcm9jZXNzLnByb2Nlc3NQb29sKCkucHJvY2Vzc2VzKCkuY29u
dGFpbnMoJnByb2Nlc3MpKTsKIAogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKLSAg
ICBpZiAoIW1fdGFibGUuc2hhcmVkTWVtb3J5KCktPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UmVhZE9ubHkpKQorICAgIGlmICghbV90YWJsZS5zaGFyZWRNZW1vcnkoKS0+Y3Jl
YXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIHByb2Nlc3MuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6U2V0VmlzaXRlZExpbmtUYWJsZShoYW5kbGUp
LCBtX2lkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tQcmlu
dGluZ1ZpZXcubW0KaW5kZXggYWQ5NzdhYWM3MmRhZDBmOWFjZTY2MGE0ZjRiYTA0YjY5MjI3NTg2
Ny4uMWE2YTdmYmFkMjQzZmM1NTU2YzgyMjhhYWQ1ODM3ZmMwOGEwODIzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC0yMjIsNyArMjIy
LDcgQEAgc3RhdGljIHZvaWQgcGFnZURpZERyYXdUb0ltYWdlKGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBpbWFnZUhhbmRsZSwgSVBDQ2EKICAgICAgICAgQVNTRVJUKFt2aWV3IF9pc1By
aW50aW5nUHJldmlld10pOwogCiAgICAgICAgIGlmICghaW1hZ2VIYW5kbGUuaXNOdWxsKCkpIHsK
LSAgICAgICAgICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGltYWdlID0gU2hhcmVhYmxlQml0
bWFwOjpjcmVhdGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAg
ICAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gaW1hZ2UgPSBTaGFyZWFibGVCaXRtYXA6OmNy
ZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAK
ICAgICAgICAgICAgIGlmIChpbWFnZSkKICAgICAgICAgICAgICAgICB2aWV3LT5fcGFnZVByZXZp
ZXdzLmFkZChpdGVyLT52YWx1ZSwgaW1hZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCBlMzhiOWZmNzAwYTY1OGU1ZmNlNjY5MDNj
MTA1ZTJlMDQ0NTllOGMwLi5iODM1ODg2ZWIwNmVkMzQ1ZTg5NzI4ZDg1YzFhOTk3OWM1YTE2YzNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5t
bQpAQCAtMzc3LDcgKzM3Nyw3IEBAIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBX
ZWJQYWdlUHJveHk6OmRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKGNvbnN0CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlczo6V2ViUGFnZTo6
R2V0RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQ6OlJlcGx5KGhhbmRsZSwgc2l6ZSksIG1fcGFn
ZUlELCBtZXNzYWdlVGltZW91dCk7CiAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkKICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVyID0g
U2hhcmVkTWVtb3J5OjpjcmVhdGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6
OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogICAg
IHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyICo+
KHNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpKSwgc2l6ZSk7CiB9CiAKQEAgLTQxMywxMiArNDEz
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTCiB7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwo
dXJsKTsKICAgICBNRVNTQUdFX0NIRUNLX1VSTCh2aXNpYmxlVVJMKTsKLSAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlJbWFnZSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGltYWdl
SGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5
PiBzaGFyZWRNZW1vcnlJbWFnZSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGltYWdlSGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICBSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBpbWFnZUJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2ln
bmVkIGNoYXIqPihzaGFyZWRNZW1vcnlJbWFnZS0+ZGF0YSgpKSwgaW1hZ2VTaXplKTsKICAgICBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBhcmNoaXZlQnVmZmVyOwogICAgIAogICAgIGlmICghYXJjaGl2
ZUhhbmRsZS5pc051bGwoKSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRN
ZW1vcnlBcmNoaXZlID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoYXJjaGl2ZUhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpSZWFkT25seSk7OworICAgICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRN
ZW1vcnlBcmNoaXZlID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoYXJjaGl2ZUhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgICAgIGFyY2hpdmVCdWZmZXIgPSBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oc2hhcmVkTWVt
b3J5QXJjaGl2ZS0+ZGF0YSgpKSwgYXJjaGl2ZVNpemUpOwogICAgIH0KICAgICBtX3BhZ2VDbGll
bnQuc2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UocGFzdGVib2FyZE5hbWUsIGltYWdlQnVmZmVyLCBm
aWxlbmFtZSwgZXh0ZW5zaW9uLCB0aXRsZSwgdXJsLCB2aXNpYmxlVVJMLCBhcmNoaXZlQnVmZmVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KaW5kZXggOGMxZTM0Y2RlYzE4YTM0NGNkODgxZDliZjY5NjE2YWQ3MzRiMGQ0My4uZTQ5
MmY0NDUyNWQ2ZGM1MjI0YWMyYWNjM2RjZDdjZmRkNDIwZTljMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE2ODgsNyAr
MTY4OCw3IEBAIHZvaWQgUERGUGx1Z2luOjp3cml0ZUl0ZW1zVG9QYXN0ZWJvYXJkKE5TU3RyaW5n
ICpwYXN0ZWJvYXJkTmFtZSwgTlNBcnJheSAqaXRlbXMsCiAgICAgICAgICAgICBTaGFyZWRNZW1v
cnk6OkhhbmRsZSBoYW5kbGU7CiAgICAgICAgICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFy
ZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShidWZmZXItPnNpemUoKSk7CiAgICAgICAg
ICAgICBtZW1jcHkoc2hhcmVkTWVtb3J5LT5kYXRhKCksIGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXIt
PnNpemUoKSk7Ci0gICAgICAgICAgICBzaGFyZWRNZW1vcnktPmNyZWF0ZUhhbmRsZShoYW5kbGUs
IFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICAgICAgc2hhcmVkTWVtb3J5LT5jcmVh
dGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAg
ICAgICAgICAgIHdlYlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6U2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5cGUo
cGFzdGVib2FyZE5hbWUsIHR5cGUsIGhhbmRsZSwgYnVmZmVyLT5zaXplKCkpLCBNZXNzYWdlczo6
V2ViUGFzdGVib2FyZFByb3h5OjpTZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZTo6UmVwbHkobmV3
Q2hhbmdlQ291bnQpLCAwKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAppbmRleCAyMzY4ODBhYWEwN2M5YmUyMjgzNmFkNjIyZDgzNjYzMjBjOGQ4
MzM3Li44YjIwZWE5N2M4NmM0ZGE0MzljZjUxMDI2Mzc0OWNjZDUxYjQxOGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC00MTAsNyArNDEwLDcgQEAgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6YnVmZmVyRm9y
VHlwZShjb25zdCBTdHIKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpHZXRQ
YXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShwYXN0ZWJvYXJkTmFtZSwgcGFzdGVib2FyZFR5cGUpLCBN
ZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpHZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZTo6
UmVwbHkoaGFuZGxlLCBzaXplKSwgMCk7CiAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkKICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVy
ID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsK
KyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1v
cnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwog
ICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFy
ICo+KHNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpKSwgc2l6ZSk7CiB9CiAKQEAgLTQ4NCw3ICs0
ODQsNyBAQCBsb25nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2V0QnVmZmVyRm9yVHlwZShQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjbwogICAgICAgICAvLyBiZWNhdXNlIHdlJ3Zl
IGFscmVhZHkgc2V0IHRoZSB0eXBlcy4KICAgICAgICAgaWYgKHNoYXJlZE1lbW9yeUJ1ZmZlcikg
ewogICAgICAgICAgICAgbWVtY3B5KHNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpLCBidWZmZXIt
PmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwotICAgICAgICAgICAgc2hhcmVkTWVtb3J5QnVmZmVy
LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICAgICAg
ICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5
OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgdWludDY0X3Qg
bmV3Q2hhbmdlQ291bnQ7CkBAIC01MzYsNyArNTM2LDcgQEAgUGFzc1JlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEJ1ZmZlckZyb21QYXN0ZWJv
YXIKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkQnVmZmVyRnJvbVBh
c3RlYm9hcmQoaW5kZXgsIHBhc3RlYm9hcmRUeXBlKSwgTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQ
cm94eTo6UmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkOjpSZXBseShoYW5kbGUsIHNpemUpLCAwKTsK
ICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICBSZWZQdHI8
U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZSho
YW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIgKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5k
YXRhKCkpLCBzaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXgg
ZTNhNzA0NzNkYWRhMWI0ZmY3ZjY4M2M1NzE1NTU4OTkwYTQ4Y2RjYi4uMWFiMmVjOWQ0ZDlmMWY3
YWE3NTNjZThjOWEyMTFiNWZiMTI2MjZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFj
Lm1tCkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3Jp
dGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWUKICAgICBpZiAo
IXNoYXJlZE1lbW9yeUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1lbWNweShzaGFyZWRN
ZW1vcnlCdWZmZXItPmRhdGEoKSwgaW1hZ2VCdWZmZXItPmRhdGEoKSwgaW1hZ2VTaXplKTsKLSAg
ICBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVt
b3J5OjpSZWFkT25seSk7CisgICAgc2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoaW1h
Z2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogICAgIAogICAg
IFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGEgPSBhcmNoaXZlID8gYXJjaGl2ZS0+cmF3RGF0YVJl
cHJlc2VudGF0aW9uKCkgOiAwOwogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGFyY2hpdmVIYW5k
bGU7CkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBXZWJEcmFnQ2xpZW50OjpkZWNsYXJlQW5kV3Jp
dGVEcmFnSW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgRWxlbWUKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgYXJjaGl2ZVNpemUgPSBhcmNoaXZlQnVmZmVyLT5zaXplKCk7
CiAgICAgICAgIG1lbWNweShhcmNoaXZlU2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCksIGFyY2hp
dmVCdWZmZXItPmRhdGEoKSwgYXJjaGl2ZVNpemUpOwotICAgICAgICBhcmNoaXZlU2hhcmVkTWVt
b3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoYXJjaGl2ZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFk
T25seSk7CisgICAgICAgIGFyY2hpdmVTaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShh
cmNoaXZlSGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICB9
CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFByb21pc2VkRGF0
YUZvckltYWdlKHBhc3RlYm9hcmROYW1lLCBpbWFnZUhhbmRsZSwgaW1hZ2VTaXplLCBTdHJpbmco
W3Jlc3BvbnNlIHN1Z2dlc3RlZEZpbGVuYW1lXSksIGV4dGVuc2lvbiwgdGl0bGUsIFN0cmluZyhb
W3Jlc3BvbnNlIFVSTF0gYWJzb2x1dGVTdHJpbmddKSwgdXNlclZpc2libGVTdHJpbmcoKE5TVVJM
ICopdXJsKSwgYXJjaGl2ZUhhbmRsZSwgYXJjaGl2ZVNpemUpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJs
ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGQzNTliMTllMDgyMWI0NTMxNjQwMTcyZDhmYWE5NTViY2I0
ZWM4OTkuLjU3NDU4NTUwMjg5YWVmYTNjYTQ5YzJmYzZlNTQzYTIxOWVkNTdlYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFZpc2l0ZWRM
aW5rVGFibGVDb250cm9sbGVyOjphZGRWaXNpdGVkTGluayhQYWdlJiBwYWdlLCBMaW5rSGFzaCBs
aW5rSGFzaCkKIAogdm9pZCBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6c2V0VmlzaXRlZExp
bmtUYWJsZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYgaGFuZGxlKQogewotICAgIFJlZlB0
cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hh
cmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICBpZiAoIXNoYXJlZE1lbW9yeSkKICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMTM2ODdlMGEyMDMzZjUyNDc4ZTk3ZDU3OWI5MDg1NzlhMTc0NGJlYS4uMWNmZTcxMDQ3
MmVkNTdhODI5NDMzYmNjMmQyMzNkNGVmNDBjYzRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTYyNSw3ICsxNjI1LDcgQEAgdm9pZCBX
ZWJQYWdlOjp0YWtlU25hcHNob3QoSW50UmVjdCBzbmFwc2hvdFJlY3QsIEludFNpemUgYml0bWFw
U2l6ZSwgdWludDMyX3Qgb3AKIAogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsK
ICAgICBpZiAoaW1hZ2UpCi0gICAgICAgIGltYWdlLT5iaXRtYXAoKS0+Y3JlYXRlSGFuZGxlKGhh
bmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgIGltYWdlLT5iaXRtYXAoKS0+
Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7
CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkltYWdlQ2FsbGJhY2soaGFuZGxl
LCBjYWxsYmFja0lEKSk7CiB9CkBAIC0zODM1LDcgKzM4MzUsNyBAQCB2b2lkIFdlYlBhZ2U6OmRy
YXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgY29ucwogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKIAogICAgIGlmIChp
bWFnZSkKLSAgICAgICAgaW1hZ2UtPmJpdG1hcCgpLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFy
ZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICAgICAgaW1hZ2UtPmJpdG1hcCgpLT5jcmVhdGVIYW5k
bGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKIAogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SW1hZ2VDYWxsYmFjayhoYW5kbGUsIGNhbGxiYWNr
SUQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V2ViUGFnZU1hYy5tbQppbmRleCAyNmE0NzQxYTU1YzgyZGM0N2ZjMzI0MzUyNjk2MWI3MTIzNTYz
NGI4Li4xNDkwZGRjYmJjZjgxMmVjZTQ5ZjFhNWEyOThmNTU5ZDFhNmEwNWIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBA
IC03MTIsNyArNzEyLDcgQEAgdm9pZCBXZWJQYWdlOjpnZXREYXRhU2VsZWN0aW9uRm9yUGFzdGVi
b2FyZChjb25zdCBTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFNoYXJlZE0KICAgICBzaXplID0gYnVm
ZmVyLT5zaXplKCk7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVy
ID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6ZSk7CiAgICAgbWVtY3B5KHNoYXJlZE1lbW9yeUJ1
ZmZlci0+ZGF0YSgpLCBidWZmZXItPmRhdGEoKSwgc2l6ZSk7Ci0gICAgc2hhcmVkTWVtb3J5QnVm
ZmVyLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICBz
aGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJv
dGVjdGlvbjo6UmVhZE9ubHkpOwogfQogCiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0KiBX
ZWJQYWdlOjphY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250671</attachid>
            <date>2015-04-13 13:12:30 -0700</date>
            <delta_ts>2015-04-13 13:24:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143677-20150413131141.patch</filename>
            <type>text/plain</type>
            <size>37005</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWIxMTkyN2QzZDI0MzY1
ZmZlNDMzN2NjYTljNzEwOWI1NThiOGRmZC4uNzA0YjBkM2I2NDQ4NzkyNTU4MGQ1ODU1ODM5ZGVk
OWZkMzk0YzEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE1LTA0LTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQmVnaW4gY2xlYW5p
bmcgdXAgdGhlIHNoYXJlZCBtZW1vcnkgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM2NzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgY3JlYXRlRnJvbVZNQnVmZmVyIHRvIGNy
ZWF0ZSBhbmQgYWRkIGEgcHJvdGVjdGlvbiBwYXJhbWV0ZXIgKHdoaWNoIGlzIGN1cnJlbnRseSB1
bnVzZWQpLgorICAgICAgICBBbHNvLCB0dXJuIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiBpbnRv
IGEgcHJvcGVyIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpz
dG9yZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50cnku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkVudHJ5Ojppbml0aWFsaXplQnVm
ZmVyRnJvbVN0b3JhZ2VSZWNvcmQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnRyeUdldFNoYXJlYWJs
ZUhhbmRsZUZyb21DRkRhdGEpOgorICAgICAgICAqIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oOgor
ICAgICAgICAqIFBsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Om1hY2hQcm90ZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZlcik6IERlbGV0ZWQu
CisgICAgICAgICogU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpDb250ZXh0TWVudUNvbnRleHREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TaGFy
ZWFibGVCaXRtYXAuaDoKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OmNyZWF0ZUhhbmRsZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJl
c3VsdDo6RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdDo6
RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpjcmVhdGVFeHRlbnNpb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFzdGVib2FyZFByb3h5OjpnZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhc3RlYm9hcmRQcm94eTo6c2V0UGFzdGVib2FyZEJ1ZmZl
ckZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRCdWZm
ZXJGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNpdGVkTGlua1Byb3ZpZGVyOjpzZW5kVGFibGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW06CisgICAgICAgIChw
YWdlRGlkRHJhd1RvSW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRhdGFTZWxlY3Rpb25Gb3JQ
YXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcm9taXNlZERh
dGFGb3JJbWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6d3JpdGVJdGVtc1RvUGFzdGVib2FyZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmJ1ZmZlckZv
clR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNldEJ1ZmZl
ckZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRC
dWZmZXJGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVu
dDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaXNp
dGVkTGlua1RhYmxlQ29udHJvbGxlcjo6c2V0VmlzaXRlZExpbmtUYWJsZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp0YWtlU25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UmVjdFRvSW1h
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0RGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQpOgor
CiAyMDE1LTA0LTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIExvY2FsaXphYmxlIHN0cmluZ3MgYXJlIGluY29uc2lzdGVudCBhbmQgbmVlZCB0byBi
ZSByZWdlbmVyYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggNDllMTJjYjE0OTNiMzIwNWM1NjFkY2YzY2NjZmVk
YjI1ZjM5ZjllYy4uZGE1MGQ5MWZjOTU2ODhhY2RkMzZjZjc0NmQ4ZjE2NTAxMzg1NzFmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwCkBAIC0zNzQsNyArMzc0LDcgQEAgdm9pZCBDYWNoZTo6c3RvcmUoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIGNvbnN0IFdlYkNvcmUKICAgICAg
ICAgTWFwcGVkQm9keSBtYXBwZWRCb2R5OwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0Up
CiAgICAgICAgIGlmIChib2R5RGF0YS5pc01hcCgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZl
cihjb25zdF9jYXN0PHVpbnQ4X3QqPihib2R5RGF0YS5kYXRhKCkpLCBib2R5RGF0YS5zaXplKCkp
OworICAgICAgICAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoY29uc3RfY2FzdDx1aW50OF90Kj4oYm9keURhdGEuZGF0YSgpKSwgYm9k
eURhdGEuc2l6ZSgpLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAg
ICAgICAgIG1hcHBlZEJvZHkuc2hhcmVhYmxlUmVzb3VyY2UgPSBzaGFyZWRNZW1vcnkgPyBTaGFy
ZWFibGVSZXNvdXJjZTo6Y3JlYXRlKFdURjo6bW92ZShzaGFyZWRNZW1vcnkpLCAwLCBib2R5RGF0
YS5zaXplKCkpIDogbnVsbHB0cjsKICAgICAgICAgICAgIGlmIChtYXBwZWRCb2R5LnNoYXJlYWJs
ZVJlc291cmNlKQogICAgICAgICAgICAgICAgIG1hcHBlZEJvZHkuc2hhcmVhYmxlUmVzb3VyY2Ut
PmNyZWF0ZUhhbmRsZShtYXBwZWRCb2R5LnNoYXJlYWJsZVJlc291cmNlSGFuZGxlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUVu
dHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUVudHJ5LmNwcAppbmRleCA4NjlkYjhmMTE3N2U4MDY0YmNjMGM5NDA5YjZlNmU2MmQxNjRjOGVi
Li5hYzM5MTgwM2RhYmVjZTNkM2QxOWIwNGE2M2Q3NTU2YTRkMmQ5Y2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVFbnRyeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRW50
cnkuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBFbnRyeTo6aW5pdGlhbGl6ZUJ1ZmZlckZy
b21TdG9yYWdlUmVjb3JkKCkgY29uc3QKICAgICBhdXRvKiBkYXRhID0gbV9zb3VyY2VTdG9yYWdl
UmVjb3JkLmJvZHkuZGF0YSgpOwogICAgIHNpemVfdCBzaXplID0gbV9zb3VyY2VTdG9yYWdlUmVj
b3JkLmJvZHkuc2l6ZSgpOwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCi0gICAgUmVm
UHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gbV9zb3VyY2VTdG9yYWdlUmVjb3JkLmJv
ZHkuaXNNYXAoKSA/IFNoYXJlZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVmZmVyKGNvbnN0X2Nhc3Q8
dWludDhfdCo+KGRhdGEpLCBzaXplKSA6IG51bGxwdHI7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9y
eT4gc2hhcmVkTWVtb3J5ID0gbV9zb3VyY2VTdG9yYWdlUmVjb3JkLmJvZHkuaXNNYXAoKSA/IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEpLCBzaXplLCBTaGFy
ZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KSA6IG51bGxwdHI7CiAgICAgUmVmUHRyPFNo
YXJlYWJsZVJlc291cmNlPiBzaGFyZWFibGVSZXNvdXJjZSA9IHNoYXJlZE1lbW9yeSA/IFNoYXJl
YWJsZVJlc291cmNlOjpjcmVhdGUoc2hhcmVkTWVtb3J5LnJlbGVhc2UoKSwgMCwgbV9zb3VyY2VT
dG9yYWdlUmVjb3JkLmJvZHkuc2l6ZSgpKSA6IG51bGxwdHI7CiAKICAgICBpZiAoc2hhcmVhYmxl
UmVzb3VyY2UgJiYgc2hhcmVhYmxlUmVzb3VyY2UtPmNyZWF0ZUhhbmRsZShtX3NoYXJlYWJsZVJl
c291cmNlSGFuZGxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCmluZGV4IDZiMGIzNTgxN2I4
MTM3NGYyOGI1ZTViNGZmZjNhMzAxZjJhNTRlMzguLjU3NjA1MWI3MjdkYzExOWZjODEzNDk2NGRj
MzkxMjAwNzJiYzIzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtNDAsNyArNDAs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIHZvaWQgdHJ5R2V0U2hhcmVhYmxlSGFu
ZGxlRnJvbUNGRGF0YShTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUsIENGRGF0YVJl
ZiBkYXRhKQogewotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNoYXJl
ZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVmZmVyKCh2b2lkKilDRkRhdGFHZXRCeXRlUHRyKGRhdGEp
LCBDRkRhdGFHZXRMZW5ndGgoZGF0YSkpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJl
ZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKCh2b2lkKilDRkRhdGFHZXRCeXRlUHRyKGRh
dGEpLCBDRkRhdGFHZXRMZW5ndGgoZGF0YSksIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOwogICAgIGlmICghc2hhcmVkTWVtb3J5KSB7CiAgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIGNyZWF0ZSBWTSBzaGFyZWQgbWVtb3J5IGZvciBjYWNoZWQgcmVzb3VyY2UuIik7CiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJl
ZE1lbW9yeS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKaW5kZXgg
OWUyNWQwODQ5NDU0MjJkNTliN2EwYThhYzM5YWI4MjI1MjMxNDc0Ny4uMzAwZGQyZTUzM2YxMDRh
MDdmNDQyNmQ3OGMyZGJiYmQ2MzU1YjhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vU2hhcmVkTWVtb3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVk
TWVtb3J5LmgKQEAgLTI3LDggKzI3LDggQEAKICNkZWZpbmUgU2hhcmVkTWVtb3J5X2gKIAogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKICNp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKICNpbmNsdWRlICJBdHRhY2htZW50Lmgi
CkBAIC0zNiwxNSArMzYsMTUgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsKLSAgICBjbGFz
cyBBcmd1bWVudERlY29kZXI7Ci0gICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOworY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgU2hhcmVkTWVtb3J5IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkTWVt
b3J5PiB7CiBwdWJsaWM6Ci0gICAgZW51bSBQcm90ZWN0aW9uIHsKKyAgICBlbnVtIGNsYXNzIFBy
b3RlY3Rpb24gewogICAgICAgICBSZWFkT25seSwKICAgICAgICAgUmVhZFdyaXRlCiAgICAgfTsK
QEAgLTc2LDE1ICs3Niw5IEBAIHB1YmxpYzoKICAgICAgICAgc2l6ZV90IG1fc2l6ZTsKICAgICB9
OwogICAgIAotICAgIC8vIENyZWF0ZSBhIHNoYXJlZCBtZW1vcnkgb2JqZWN0IHdpdGggdGhlIGdp
dmVuIHNpemUuIFdpbGwgcmV0dXJuIDAgb24gZmFpbHVyZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZShzaXplX3QpOwotCi0gICAgLy8gQ3JlYXRlIGEgc2hhcmVk
IG1lbW9yeSBvYmplY3QgZnJvbSB0aGUgZ2l2ZW4gaGFuZGxlIGFuZCB0aGUgcmVxdWVzdGVkIHBy
b3RlY3Rpb24uIFdpbGwgcmV0dXJuIDAgb24gZmFpbHVyZS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZShjb25zdCBIYW5kbGUmLCBQcm90ZWN0aW9uKTsKLQotICAg
IC8vIENyZWF0ZSBhIHNoYXJlZCBtZW1vcnkgb2JqZWN0IHdpdGggdGhlIGdpdmVuIHNpemUgYnkg
dm1fY29weSdpbmcgdGhlIGdpdmVuIGJ1ZmZlci4KLSAgICAvLyBXaWxsIHJldHVybiAwIG9uIGZh
aWx1cmUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBjcmVhdGVGcm9tVk1C
dWZmZXIodm9pZCosIHNpemVfdCk7CisgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1vcnk+IGNy
ZWF0ZShzaXplX3QpOworICAgIHN0YXRpYyBSZWZQdHI8U2hhcmVkTWVtb3J5PiBjcmVhdGUoY29u
c3QgSGFuZGxlJiwgUHJvdGVjdGlvbik7CisgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IGNyZWF0ZSh2b2lkKiwgc2l6ZV90LCBQcm90ZWN0aW9uKTsKIAogICAgIH5TaGFyZWRNZW1vcnko
KTsKIApAQCAtOTMsOSArODcsNiBAQCBwdWJsaWM6CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7
IHJldHVybiBtX3NpemU7IH0KICAgICB2b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRh
OyB9CiAKLSAgICAvLyBDcmVhdGVzIGEgY29weS1vbi13cml0ZSBjb3B5IG9mIHRoZSBmaXJzdCB8
c2l6ZXwgYnl0ZXMuCi0gICAgUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IGNyZWF0ZUNvcHlPbldy
aXRlQ29weShzaXplX3QpIGNvbnN0OwotCiAgICAgLy8gUmV0dXJuIHRoZSBzeXN0ZW0gcGFnZSBz
aXplIGluIGJ5dGVzLgogICAgIHN0YXRpYyB1bnNpZ25lZCBzeXN0ZW1QYWdlU2l6ZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCmluZGV4
IGM0Y2UzMjEyMjg3Y2RlNTZiYTY2ZDYwMGMyMDFhZDE5YWEyY2MzNjQuLjBjYzkzMmExMWI5YjFi
NWQzMWJiZjdkZGZiNjhkOGMzNGY0NjFkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHN0YXRpYyBpbmxp
bmUgbWFjaF92bV9hZGRyZXNzX3QgdG9WTUFkZHJlc3Modm9pZCogcG9pbnRlcikKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8bWFjaF92bV9hZGRyZXNzX3Q+KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihwb2ludGVyKSk7CiB9CiAgICAgCi1QYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCitSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRN
ZW1vcnk6OmNyZWF0ZShzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlQoc2l6ZSk7CiAKQEAgLTEw
OSw3ICsxMDksNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVh
dGUoc2l6ZV90IHNpemUpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IGNyZWF0ZUZyb21WTUJ1ZmZlcih0b1BvaW50ZXIo
YWRkcmVzcyksIHNpemUpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9
IGNyZWF0ZSh0b1BvaW50ZXIoYWRkcmVzcyksIHNpemUsIFByb3RlY3Rpb246OlJlYWRXcml0ZSk7
CiAgICAgaWYgKCFzaGFyZWRNZW1vcnkpIHsKICAgICAgICAgbWFjaF92bV9kZWFsbG9jYXRlKG1h
Y2hfdGFza19zZWxmKCksIGFkZHJlc3MsIHJvdW5kX3BhZ2Uoc2l6ZSkpOwogICAgICAgICByZXR1
cm4gMDsKQEAgLTExOSw3ICsxMTksNyBAQCBQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCiAgICAgcmV0dXJuIHNoYXJlZE1lbW9yeS5yZWxl
YXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0
ZUZyb21WTUJ1ZmZlcih2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSkgIAorUmVmUHRyPFNoYXJlZE1l
bW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUodm9pZCogZGF0YSwgc2l6ZV90IHNpemUsIFByb3Rl
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKHNpemUpOwogICAgIApAQCAtMTUyLDkgKzE1Miw5IEBAIFBh
c3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZUZyb21WTUJ1ZmZlcih2
b2lkKiBkYXRhLCBzaXplX3Qgc2l6CiBzdGF0aWMgaW5saW5lIHZtX3Byb3RfdCBtYWNoUHJvdGVj
dGlvbihTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb24gcHJvdGVjdGlvbikKIHsKICAgICBzd2l0Y2gg
KHByb3RlY3Rpb24pIHsKLSAgICBjYXNlIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHk6CisgICAgY2Fz
ZSBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5OgogICAgICAgICByZXR1cm4gVk1f
UFJPVF9SRUFEOwotICAgIGNhc2UgU2hhcmVkTWVtb3J5OjpSZWFkV3JpdGU6CisgICAgY2FzZSBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRXcml0ZToKICAgICAgICAgcmV0dXJuIFZNX1BS
T1RfUkVBRCB8IFZNX1BST1RfV1JJVEU7CiAgICAgfQogCkBAIC0xNjIsNyArMTYyLDcgQEAgc3Rh
dGljIGlubGluZSB2bV9wcm90X3QgbWFjaFByb3RlY3Rpb24oU2hhcmVkTWVtb3J5OjpQcm90ZWN0
aW9uIHByb3RlY3Rpb24pCiAgICAgcmV0dXJuIFZNX1BST1RfTk9ORTsgICAgCiB9CiAKLVBhc3NS
ZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShjb25zdCBIYW5kbGUmIGhh
bmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQorUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVk
TWVtb3J5OjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUsIFByb3RlY3Rpb24gcHJvdGVjdGlv
bikKIHsKICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTIw
OCw3ICsyMDgsNyBAQCBib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFu
ZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCiAKICAgICBtYWNoX3BvcnRfdCBwb3J0OwogCi0g
ICAgaWYgKHByb3RlY3Rpb24gPT0gUmVhZFdyaXRlICYmIG1fcG9ydCkgeworICAgIGlmIChwcm90
ZWN0aW9uID09IFByb3RlY3Rpb246OlJlYWRXcml0ZSAmJiBtX3BvcnQpIHsKICAgICAgICAgLy8g
SnVzdCByZS11c2UgdGhlIHBvcnQgd2UgaGF2ZS4KICAgICAgICAgcG9ydCA9IG1fcG9ydDsKICAg
ICAgICAgaWYgKG1hY2hfcG9ydF9tb2RfcmVmcyhtYWNoX3Rhc2tfc2VsZigpLCBwb3J0LCBNQUNI
X1BPUlRfUklHSFRfU0VORCwgMSkgIT0gS0VSTl9TVUNDRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NvbnRleHRNZW51Q29udGV4dERhdGEuY3BwCmluZGV4IDIyZjg2OWI5NzRiMjg2
MjUyMjZjZDc3NTQ5MGMwMmYxM2JhY2JkMGEuLjUzZmNkMjMxODU5OTUzNzJlNWY0ZmI3YjYyNDFj
ODNkZjAxZWQwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db250ZXh0TWVu
dUNvbnRleHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29udGV4dE1lbnVD
b250ZXh0RGF0YS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRleHRE
YXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxl
OwogICAgIGlmIChtX2NvbnRyb2xsZWRJbWFnZSkKLSAgICAgICAgbV9jb250cm9sbGVkSW1hZ2Ut
PmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBt
X2NvbnRyb2xsZWRJbWFnZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90
ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgZW5jb2RlciA8PCBoYW5kbGU7CiAjZW5kaWYKIH0KQEAg
LTg5LDcgKzg5LDcgQEAgYm9vbCBDb250ZXh0TWVudUNvbnRleHREYXRhOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIENvbnRleHRNZW51Q28KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKCFoYW5kbGUuaXNOdWxsKCkpCi0gICAgICAgIGNvbnRleHRNZW51Q29u
dGV4dERhdGEubV9jb250cm9sbGVkSW1hZ2UgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5k
bGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBjb250ZXh0TWVudUNvbnRleHRE
YXRhLm1fY29udHJvbGxlZEltYWdlID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaGFuZGxlLCBT
aGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICNlbmRpZgogCiAgICAgcmV0dXJu
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uLmNwcAppbmRleCAzMDEwOTFmNzkzYzM4NzcyMzczMTJiYmZl
NjAyNjkwMTBkMmY3ZWRjLi44MjUyMjBiMzdlMTE2NjgxZmI1ZGMwMjU4NzQzNDM0Nzg1ZTZiNTNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdm9pZCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb24KIAogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAo
aW1hZ2UpCi0gICAgICAgIGltYWdlLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6
OlJlYWRPbmx5KTsKKyAgICAgICAgaW1hZ2UtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1l
bW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogICAgIGVuY29kZXIgPDwgaGFuZGxlOwogfQog
CkBAIC04NCw3ICs4NCw3IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246
OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSW50CiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmICghaGFuZGxlLmlzTnVsbCgpKQotICAgICAgICByZXN1bHQuaW1h
Z2UgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9u
bHkpOworICAgICAgICByZXN1bHQuaW1hZ2UgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShoYW5k
bGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogCiAgICAgcmV0dXJuIHRy
dWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFw
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKaW5kZXggYTRhNDMw
NTRiOTU0OTEwZWMyMzMyZTk0MmVkMjU2NGYwNzE3MjVhNC4uNzgzMzg5ZWM1MGY4MzE5ZDE3OGEw
NDM0MTI2NTdlNDc0NTJmM2VmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1No
YXJlYWJsZUJpdG1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRt
YXAuaApAQCAtODUsMTAgKzg1LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
aGFyZWFibGVCaXRtYXA+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgRmxhZ3MsIFBh
c3NSZWZQdHI8U2hhcmVkTWVtb3J5Pik7CiAKICAgICAvLyBDcmVhdGUgYSBzaGFyZWFibGUgYml0
bWFwIGZyb20gYSBoYW5kbGUuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFw
PiBjcmVhdGUoY29uc3QgSGFuZGxlJiwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uID0gU2hhcmVk
TWVtb3J5OjpSZWFkV3JpdGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gY3JlYXRlKGNvbnN0IEhhbmRsZSYsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbiA9IFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZFdyaXRlKTsKIAogICAgIC8vIENyZWF0ZSBhIGhhbmRs
ZS4KLSAgICBib29sIGNyZWF0ZUhhbmRsZShIYW5kbGUmLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rp
b24gPSBTaGFyZWRNZW1vcnk6OlJlYWRXcml0ZSk7CisgICAgYm9vbCBjcmVhdGVIYW5kbGUoSGFu
ZGxlJiwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uID0gU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkV3JpdGUpOwogCiAgICAgflNoYXJlYWJsZUJpdG1hcCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAppbmRleCBjZjk2MWQyZTg2NTRkNTJiOWIw
NDVkMzdlNjFiNTkxYTRiYTAxNDMxLi5kZWZkNzEyNjcwMWY4Yjg5ODUwYWQyYWNhOTg3ZDk2OTc3
MTJhOWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBQYXNzUmVmUHRyPFNoYXJlYWJsZVJlc291cmNlPiBTaGFyZWFi
bGVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PgogCiBQYXNzUmVmUHRy
PFNoYXJlYWJsZVJlc291cmNlPiBTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlKGNvbnN0IEhhbmRs
ZSYgaGFuZGxlKQogewotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZS5tX2hhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25s
eSk7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5
OjpjcmVhdGUoaGFuZGxlLm1faGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKICAgICBpZiAoIXNoYXJlZE1lbW9yeSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEy
OCw3ICsxMjgsNyBAQCBTaGFyZWFibGVSZXNvdXJjZTo6flNoYXJlYWJsZVJlc291cmNlKCkKIAog
Ym9vbCBTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlKQogewot
ICAgIGlmICghbV9zaGFyZWRNZW1vcnktPmNyZWF0ZUhhbmRsZShoYW5kbGUubV9oYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UmVhZE9ubHkpKQorICAgIGlmICghbV9zaGFyZWRNZW1vcnktPmNyZWF0ZUhh
bmRsZShoYW5kbGUubV9oYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBoYW5kbGUubV9vZmZzZXQgPSBtX29mZnNl
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRF
eHRlbnNpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRFeHRlbnNpb25EYXRhLmNwcAppbmRleCBkY2M1OGVjZTY1YWM5ZTQ4ZDIzNTExZjU1MjlhOTk5
NDQ2MmFmODFiLi4yMDU5YmQ2YmE3ZmIyYzJlYTUyNDAxMWNlOGMwOGU1NjA0YWNmZjMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9u
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGEuY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdm9p
ZCBXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
OwotICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkp
OworICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOwogICAgIGVuY29kZXIgPDwgaGFuZGxlOwogCiAgICAgZW5jb2RlciA8PCBh
Y3Rpb25zT2Zmc2V0OwpAQCAtNDksNyArNDksNyBAQCBib29sIFdlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViQwog
ICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb21waWxlZENvbnRlbnRFeHRl
bnNpb25EYXRhLmRhdGEgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UmVhZE9ubHkpOworICAgIGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEuZGF0YSA9IFNo
YXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFk
T25seSk7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbXBpbGVkQ29udGVudEV4dGVuc2lv
bkRhdGEuYWN0aW9uc09mZnNldCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggN2RmNGFlYTIz
NDAxMmMyNWQ4NDBmNDQ1MTBiMWI2Y2M0ZTU1OTdiOC4uZWZmZmI4NzA2NjM4YzJlNmRkZjE2NjYw
N2VlMTRiOGNhNmJkYTcxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTExNzAsNyArMTE3MCw3IEBAIHN0YXRpYyB2b2lkIGVuY29k
ZVNoYXJlZEJ1ZmZlcihBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIFNoYXJlZEJ1ZmZlciogYnVm
ZmVyKQogICAgIGlmIChidWZmZXIpIHsKICAgICAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hh
cmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoYnVmZmVyLT5zaXplKCkpOwog
ICAgICAgICBtZW1jcHkoc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+ZGF0YSgp
LCBidWZmZXItPnNpemUoKSk7Ci0gICAgICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFu
ZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgIHNoYXJlZE1lbW9y
eUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CiAgICAgICAgIGVuY29kZXIgPDwgaGFuZGxlOwogICAgIH0KIH0KQEAgLTExODYs
NyArMTE4Niw3IEBAIHN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1ZmZlcihBcmd1bWVudERlY29k
ZXImIGRlY29kZXIsIFJlZlB0cjxTaGFyZWRCdWZmZXI+JiBiCiAgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaGFuZGxlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBS
ZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNy
ZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5k
bGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogICAgICAgICBidWZmZXIg
PSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oc2hhcmVk
TWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBidWZmZXJTaXplKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcAppbmRleCBhMmRjNjljM2VkM2QwNmVkOTI3
M2FjNWUzODYyNDA4ODFmMTJlYTBmLi4xMWE2OTg4NzRhODc5ODQyMWVkZDIyNDAxN2YwYmIyYjg2
NDA2MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3Vs
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCkBA
IC0xMjAsNyArMTIwLDcgQEAgdm9pZCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBTaGFyZWRNZW1vcnk6Okhh
bmRsZSBpbWFnZUhhbmRsZTsKICAgICBpZiAoaW1hZ2VTaGFyZWRNZW1vcnkgJiYgaW1hZ2VTaGFy
ZWRNZW1vcnktPmRhdGEoKSkKLSAgICAgICAgaW1hZ2VTaGFyZWRNZW1vcnktPmNyZWF0ZUhhbmRs
ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgIGltYWdlU2hh
cmVkTWVtb3J5LT5jcmVhdGVIYW5kbGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOwogICAgIGVuY29kZXIgPDwgaW1hZ2VIYW5kbGU7CiAgICAgZW5jb2Rl
ciA8PCBpbWFnZVNpemU7CiAgICAgZW5jb2RlciA8PCBpbWFnZUV4dGVuc2lvbjsKQEAgLTE1OSw3
ICsxNTksNyBAQCBib29sIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgV2ViSGl0VGVzdFJlcwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBpZiAoIWltYWdlSGFuZGxlLmlzTnVsbCgpKQotICAgICAgICBoaXRUZXN0UmVzdWx0
RGF0YS5pbWFnZVNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGltYWdlSGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICAgICAgaGl0VGVzdFJlc3VsdERhdGEuaW1h
Z2VTaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhpdFRlc3RSZXN1bHREYXRhLmltYWdlU2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCmluZGV4IDZjYWM0MTljMWExNDQ3ZjFmZTk2ZWM4Y2YwODg1
ZTRiZDBhYjNiYTQuLjVlYTg2MzAxMjA5NDYzZGYwZjZiMzIyYjkzNTk4YWE5NjEzMTlhNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLmNwcApAQCAtMjMzLDcgKzIzMyw3IEBAIHN0YXRpYyBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZWRUb0ZpbGUoY29uc3QgU3RyaW5nJiBqc29uLCBjb25zdCBTdHJp
bmcmIGZpbmFsRmlsCiAKIHN0YXRpYyBSZWZQdHI8QVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbj4g
Y3JlYXRlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgQ29udGVudEV4
dGVuc2lvbk1ldGFEYXRhJiBtZXRhRGF0YSwgY29uc3QgRGF0YSYgZmlsZURhdGEpCiB7Ci0gICAg
YXV0byBzaGFyZWRNZW1vcnkgPSBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRlRnJvbVZNQnVm
ZmVyKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZpbGVEYXRhLmRhdGEoKSksIGZpbGVEYXRhLnNpemUo
KSk7CisgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRl
KGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZpbGVEYXRhLmRhdGEoKSksIGZpbGVEYXRhLnNpemUoKSwg
V2ViS2l0OjpTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICBhdXRvIGNv
bXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEgPSBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbkRhdGEoCiAgICAgICAgIHNoYXJlZE1lbW9yeSwKICAgICAgICAgbWV0YURhdGEuYWN0
aW9uc09mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggNzkwMjk1YTM2MTRlNDI5ODE5YjgyMjlkM2RjNjUwNDI1ZTg0OGUyYi4u
YjU5MTcwZjlhODMwYjE0MDM4NTVjNWZjMzkwYmU3NjEyMmNjODkyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI2MTAsNyArMjYx
MCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKF9X
S0ZpbmRPcHRpb25zIHdrRmluZE9wdGlvbnMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBSZWZQdHI8V2ViS2l0OjpTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFdl
YktpdDo6U2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2VIYW5kbGUsIFdlYktpdDo6U2hhcmVk
TWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgIFJlZlB0cjxXZWJLaXQ6OlNoYXJlYWJsZUJpdG1h
cD4gYml0bWFwID0gV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZUhhbmRsZSwg
V2ViS2l0OjpTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKIAogICAgICAgICBp
ZiAoIWJpdG1hcCkgewogICAgICAgICAgICAgY29waWVkQ29tcGxldGlvbkhhbmRsZXIobnVsbHB0
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Ro
dW1ibmFpbFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Ro
dW1ibmFpbFZpZXcubW0KaW5kZXggZGY5MzIzZjEyYTIwNmQ5YWVmNjE1M2FkZTRjNzE3ZDIxYjI3
MGU2NC4uNTk0ODc4ZWQ5MzY2NjViNTYzOTQ2ODE3NThiMWFjNDNiODZlMWFlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmll
dy5tbQpAQCAtMTIwLDcgKzEyMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgYml0
bWFwU2l6ZS5zY2FsZShfc2NhbGUgKiBfd2ViUGFnZVByb3h5LT5kZXZpY2VTY2FsZUZhY3Rvcigp
KTsKICAgICBfbGFzdFNuYXBzaG90U2NhbGUgPSBfc2NhbGU7CiAgICAgX3dlYlBhZ2VQcm94eS0+
dGFrZVNuYXBzaG90KHNuYXBzaG90UmVjdCwgYml0bWFwU2l6ZSwgb3B0aW9ucywgW3RodW1ibmFp
bFZpZXddKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZUhhbmRsZSwgQ2FsbGJh
Y2tCYXNlOjpFcnJvcikgewotICAgICAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAg
PSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFk
T25seSk7CisgICAgICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJs
ZUJpdG1hcDo6Y3JlYXRlKGltYWdlSGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJl
YWRPbmx5KTsKICAgICAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1hZ2UgPSBiaXRtYXAg
PyBiaXRtYXAtPm1ha2VDR0ltYWdlKCkgOiBudWxscHRyOwogICAgICAgICBbdGh1bWJuYWlsVmll
dyBfZGlkVGFrZVNuYXBzaG90OmNnSW1hZ2UuZ2V0KCldOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29h
Lm1tCmluZGV4IDUzYWI3ODM0MDg2NTE0YjBjZjI0YjNhMjNmODZlMWE4YmIzNjQ2NGQuLmE5YTBm
OGE2NDU2MjNjMTY2ZDlhNWNiMmIxMGYyZDcxNWFmYjAyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0K
QEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9hcmRC
dWZmZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUKICAgICBpZiAoIXNoYXJl
ZE1lbW9yeUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIG1lbWNweShzaGFyZWRNZW1vcnlC
dWZmZXItPmRhdGEoKSwgYnVmZmVyLT5kYXRhKCksIHNpemUpOwotICAgIHNoYXJlZE1lbW9yeUJ1
ZmZlci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAg
c2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlBy
b3RlY3Rpb246OlJlYWRPbmx5KTsKIH0KIAogdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnBhc3Rl
Ym9hcmRDb3B5KGNvbnN0IFN0cmluZyYgZnJvbVBhc3RlYm9hcmQsIGNvbnN0IFN0cmluZyYgdG9Q
YXN0ZWJvYXJkLCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpCkBAIC0xMTQsNyArMTE0LDcgQEAg
dm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnNldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUKICAgICAgICAgbmV3Q2hhbmdlQ291bnQgPSBQbGF0Zm9y
bVBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpLnNldEJ1ZmZlckZvclR5cGUoMCwgcGFzdGVib2Fy
ZFR5cGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpSZWFkT25seSk7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5
QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3Rl
Y3Rpb246OlJlYWRPbmx5KTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyICo+KHNoYXJlZE1lbW9y
eUJ1ZmZlci0+ZGF0YSgpKSwgc2l6ZSk7CiAgICAgbmV3Q2hhbmdlQ291bnQgPSBQbGF0Zm9ybVBh
c3RlYm9hcmQocGFzdGVib2FyZE5hbWUpLnNldEJ1ZmZlckZvclR5cGUoYnVmZmVyLCBwYXN0ZWJv
YXJkVHlwZSk7CiB9CkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6
OnJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJgog
ICAgIGlmICghc2hhcmVkTWVtb3J5QnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgbWVtY3B5
KHNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPmRhdGEoKSwgc2l6ZSk7Ci0gICAg
c2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJl
YWRPbmx5KTsKKyAgICBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogfQogCiB2b2lkIFdlYlBhc3RlYm9h
cmRQcm94eTo6Z2V0UGFzdGVib2FyZEl0ZW1zQ291bnQodWludDY0X3QmIGl0ZW1zQ291bnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAKaW5k
ZXggZjhjZTljM2Y3OWQxYmQyMTA4OWRjZDZkNjBkOWQyMmM0OTdiYmZmMy4uNGRmMTdjMTg1NDZj
ZmYyMjNlNzFmZTc1NTkwMGJjZDE0OTFjNjE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcApAQCAtMjQ4LDcgKzI0OCw3IEBAIHZvaWQg
VmlzaXRlZExpbmtQcm92aWRlcjo6c2VuZFRhYmxlKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykK
ICAgICBBU1NFUlQocHJvY2Vzcy5wcm9jZXNzUG9vbCgpLnByb2Nlc3NlcygpLmNvbnRhaW5zKCZw
cm9jZXNzKSk7CiAKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7Ci0gICAgaWYgKCFt
X3RhYmxlLnNoYXJlZE1lbW9yeSgpLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6
OlJlYWRPbmx5KSkKKyAgICBpZiAoIW1fdGFibGUuc2hhcmVkTWVtb3J5KCktPmNyZWF0ZUhhbmRs
ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBwcm9jZXNzLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXI6OlNldFZpc2l0ZWRMaW5rVGFibGUoaGFuZGxlKSwgbV9pZGVu
dGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KaW5kZXggYmUwMTIxMzc0NTY4ZTM4MTY1MGJlMzE2NThhZmY2MGFkNTVhYTVjNC4uYWJm
NWI1NTE0ZmYxNjlhNjZmZWEzNDI4Mjk4MmIxMjA1MmMwOWE3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTU2MSw3ICs1NjEsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cGVyZm9ybUFjdGlvbk9uRWxlbWVudCh1aW50MzJfdCBhY3Rp
b24pCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzYXZlSW1hZ2VUb0xpYnJhcnkoY29uc3QgU2hhcmVk
TWVtb3J5OjpIYW5kbGUmIGltYWdlSGFuZGxlLCB1aW50NjRfdCBpbWFnZVNpemUpCiB7Ci0gICAg
UmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5Ojpj
cmVhdGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGlt
YWdlSGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBjaGFyKj4oc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCkpLCBpbWFnZVNpemUp
OwogICAgIG1fcGFnZUNsaWVudC5zYXZlSW1hZ2VUb0xpYnJhcnkoYnVmZmVyKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCmluZGV4IGFkOTc3
YWFjNzJkYWQwZjlhY2U2NjBhNGY0YmEwNGI2OTIyNzU4NjcuLjFhNmE3ZmJhZDI0M2ZjNTU1NmM4
MjI4YWFkNTgzN2ZjMDhhMDgyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XS1ByaW50aW5nVmlldy5tbQpAQCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyB2b2lkIHBhZ2VE
aWREcmF3VG9JbWFnZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VIYW5kbGUs
IElQQ0NhCiAgICAgICAgIEFTU0VSVChbdmlldyBfaXNQcmludGluZ1ByZXZpZXddKTsKIAogICAg
ICAgICBpZiAoIWltYWdlSGFuZGxlLmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8U2hh
cmVhYmxlQml0bWFwPiBpbWFnZSA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlSGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICAgICAgICAgIFJlZlB0cjxTaGFyZWFibGVC
aXRtYXA+IGltYWdlID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2VIYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogCiAgICAgICAgICAgICBpZiAoaW1hZ2Up
CiAgICAgICAgICAgICAgICAgdmlldy0+X3BhZ2VQcmV2aWV3cy5hZGQoaXRlci0+dmFsdWUsIGlt
YWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVBy
b3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0KaW5kZXggZTM4YjlmZjcwMGE2NThlNWZjZTY2OTAzYzEwNWUyZTA0NDU5ZThjMC4uYjgzNTg4
NmViMDZlZDM0NWU4OTcyOGQ4NWMxYTk5NzljNWExNmMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTM3Nyw3ICszNzcsNyBAQCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGFnZVByb3h5OjpkYXRhU2VsZWN0
aW9uRm9yUGFzdGVib2FyZChjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2U6OkdldERhdGFTZWxlY3Rpb25Gb3JQYXN0
ZWJvYXJkOjpSZXBseShoYW5kbGUsIHNpemUpLCBtX3BhZ2VJRCwgbWVzc2FnZVRpbWVvdXQpOwog
ICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIFJlZlB0cjxT
aGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGhh
bmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4g
c2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoaGFuZGxlLCBTaGFyZWRN
ZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpj
cmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhciAqPihzaGFyZWRNZW1vcnlCdWZmZXItPmRh
dGEoKSksIHNpemUpOwogfQogCkBAIC00MTMsMTIgKzQxMywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgUwogewogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHVybCk7CiAgICAgTUVTU0FHRV9DSEVD
S19VUkwodmlzaWJsZVVSTCk7Ci0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5
SW1hZ2UgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpS
ZWFkT25seSk7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5SW1hZ2UgPSBT
aGFyZWRNZW1vcnk6OmNyZWF0ZShpbWFnZUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkT25seSk7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oc2hhcmVkTWVtb3J5
SW1hZ2UtPmRhdGEoKSksIGltYWdlU2l6ZSk7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYXJj
aGl2ZUJ1ZmZlcjsKICAgICAKICAgICBpZiAoIWFyY2hpdmVIYW5kbGUuaXNOdWxsKCkpIHsKLSAg
ICAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QXJjaGl2ZSA9IFNoYXJlZE1l
bW9yeTo6Y3JlYXRlKGFyY2hpdmVIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOzsKKyAg
ICAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QXJjaGl2ZSA9IFNoYXJlZE1l
bW9yeTo6Y3JlYXRlKGFyY2hpdmVIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOwogICAgICAgICBhcmNoaXZlQnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KHNoYXJlZE1lbW9yeUFyY2hpdmUtPmRhdGEoKSksIGFy
Y2hpdmVTaXplKTsKICAgICB9CiAgICAgbV9wYWdlQ2xpZW50LnNldFByb21pc2VkRGF0YUZvcklt
YWdlKHBhc3RlYm9hcmROYW1lLCBpbWFnZUJ1ZmZlciwgZmlsZW5hbWUsIGV4dGVuc2lvbiwgdGl0
bGUsIHVybCwgdmlzaWJsZVVSTCwgYXJjaGl2ZUJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDhjMWUzNGNkZWMx
OGEzNDRjZDg4MWQ5YmY2OTYxNmFkNzM0YjBkNDMuLmU0OTJmNDQ1MjVkNmRjNTIyNGFjMmFjYzNk
Y2Q3Y2ZkZDQyMGU5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNjg4LDcgKzE2ODgsNyBAQCB2b2lkIFBERlBsdWdp
bjo6d3JpdGVJdGVtc1RvUGFzdGVib2FyZChOU1N0cmluZyAqcGFzdGVib2FyZE5hbWUsIE5TQXJy
YXkgKml0ZW1zLAogICAgICAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwogICAg
ICAgICAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5ID0gU2hhcmVkTWVtb3J5
OjpjcmVhdGUoYnVmZmVyLT5zaXplKCkpOwogICAgICAgICAgICAgbWVtY3B5KHNoYXJlZE1lbW9y
eS0+ZGF0YSgpLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwotICAgICAgICAgICAg
c2hhcmVkTWVtb3J5LT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5
KTsKKyAgICAgICAgICAgIHNoYXJlZE1lbW9yeS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgICAgICAgICB3ZWJQcm9jZXNzLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJk
UHJveHk6OlNldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKHBhc3RlYm9hcmROYW1lLCB0eXBlLCBo
YW5kbGUsIGJ1ZmZlci0+c2l6ZSgpKSwgTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6U2V0
UGFzdGVib2FyZEJ1ZmZlckZvclR5cGU6OlJlcGx5KG5ld0NoYW5nZUNvdW50KSwgMCk7CiAgICAg
ICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMjM2
ODgwYWFhMDdjOWJlMjI4MzZhZDYyMmQ4MzY2MzIwYzhkODMzNy4uOGIyMGVhOTdjODZjNGRhNDM5
Y2Y1MTAyNjM3NDljY2Q1MWI0MThmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcApAQCAtNDEwLDcgKzQxMCw3IEBAIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmJ1ZmZlckZvclR5cGUoY29uc3QgU3RyCiAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6R2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5cGUo
cGFzdGVib2FyZE5hbWUsIHBhc3RlYm9hcmRUeXBlKSwgTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQ
cm94eTo6R2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5cGU6OlJlcGx5KGhhbmRsZSwgc2l6ZSksIDAp
OwogICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIFJlZlB0
cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRl
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgUmVmUHRyPFNoYXJlZE1lbW9y
eT4gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoaGFuZGxlLCBTaGFy
ZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICByZXR1cm4gU2hhcmVkQnVmZmVy
OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhciAqPihzaGFyZWRNZW1vcnlCdWZmZXIt
PmRhdGEoKSksIHNpemUpOwogfQogCkBAIC00ODQsNyArNDg0LDcgQEAgbG9uZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnNldEJ1ZmZlckZvclR5cGUoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1
ZmZlciwgY28KICAgICAgICAgLy8gYmVjYXVzZSB3ZSd2ZSBhbHJlYWR5IHNldCB0aGUgdHlwZXMu
CiAgICAgICAgIGlmIChzaGFyZWRNZW1vcnlCdWZmZXIpIHsKICAgICAgICAgICAgIG1lbWNweShz
aGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSwgYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgp
KTsKLSAgICAgICAgICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwg
U2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgICAgICBzaGFyZWRNZW1vcnlCdWZmZXIt
PmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkp
OwogICAgICAgICB9CiAgICAgfQogICAgIHVpbnQ2NF90IG5ld0NoYW5nZUNvdW50OwpAQCAtNTM2
LDcgKzUzNiw3IEBAIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnJlYWRCdWZmZXJGcm9tUGFzdGVib2FyCiAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhc3RlYm9hcmRQcm94eTo6UmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKGluZGV4LCBwYXN0ZWJv
YXJkVHlwZSksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRCdWZmZXJGcm9tUGFz
dGVib2FyZDo6UmVwbHkoaGFuZGxlLCBzaXplKSwgMCk7CiAgICAgaWYgKGhhbmRsZS5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVt
b3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJl
YWRPbmx5KTsKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnlCdWZmZXIgPSBT
aGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVh
ZE9ubHkpOwogICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNp
Z25lZCBjaGFyICo+KHNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpKSwgc2l6ZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkRyYWdDbGllbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCmluZGV4IGUzYTcwNDczZGFkYTFiNGZmN2Y2ODNj
NTcxNTU1ODk5MGE0OGNkY2IuLjFhYjJlYzlkNGQ5ZjFmN2FhNzUzY2U4YzlhMjExYjVmYjEyNjI2
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkRyYWdDbGllbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtMTM5LDcgKzEzOSw3IEBA
IHZvaWQgV2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIEVsZW1lCiAgICAgaWYgKCFzaGFyZWRNZW1vcnlCdWZmZXIpCiAg
ICAgICAgIHJldHVybjsKICAgICBtZW1jcHkoc2hhcmVkTWVtb3J5QnVmZmVyLT5kYXRhKCksIGlt
YWdlQnVmZmVyLT5kYXRhKCksIGltYWdlU2l6ZSk7Ci0gICAgc2hhcmVkTWVtb3J5QnVmZmVyLT5j
cmVhdGVIYW5kbGUoaW1hZ2VIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgIHNo
YXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGltYWdlSGFuZGxlLCBTaGFyZWRNZW1vcnk6
OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKICAgICAKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBk
YXRhID0gYXJjaGl2ZSA/IGFyY2hpdmUtPnJhd0RhdGFSZXByZXNlbnRhdGlvbigpIDogMDsKICAg
ICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBhcmNoaXZlSGFuZGxlOwpAQCAtMTUxLDcgKzE1MSw3IEBA
IHZvaWQgV2ViRHJhZ0NsaWVudDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIEVsZW1lCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGFy
Y2hpdmVTaXplID0gYXJjaGl2ZUJ1ZmZlci0+c2l6ZSgpOwogICAgICAgICBtZW1jcHkoYXJjaGl2
ZVNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpLCBhcmNoaXZlQnVmZmVyLT5kYXRhKCksIGFyY2hp
dmVTaXplKTsKLSAgICAgICAgYXJjaGl2ZVNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxl
KGFyY2hpdmVIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgICAgICBhcmNoaXZl
U2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoYXJjaGl2ZUhhbmRsZSwgU2hhcmVkTWVt
b3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAgICAgfQogICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTZXRQcm9taXNlZERhdGFGb3JJbWFnZShwYXN0ZWJvYXJkTmFt
ZSwgaW1hZ2VIYW5kbGUsIGltYWdlU2l6ZSwgU3RyaW5nKFtyZXNwb25zZSBzdWdnZXN0ZWRGaWxl
bmFtZV0pLCBleHRlbnNpb24sIHRpdGxlLCBTdHJpbmcoW1tyZXNwb25zZSBVUkxdIGFic29sdXRl
U3RyaW5nXSksIHVzZXJWaXNpYmxlU3RyaW5nKChOU1VSTCAqKXVybCksIGFyY2hpdmVIYW5kbGUs
IGFyY2hpdmVTaXplKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcAppbmRleCBk
MzU5YjE5ZTA4MjFiNDUzMTY0MDE3MmQ4ZmFhOTU1YmNiNGVjODk5Li41NzQ1ODU1MDI4OWFlZmEz
Y2E0OWMyZmM2ZTU0M2EyMTllZDU3ZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5j
cHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlcjo6YWRk
VmlzaXRlZExpbmsoUGFnZSYgcGFnZSwgTGlua0hhc2ggbGlua0hhc2gpCiAKIHZvaWQgVmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXI6OnNldFZpc2l0ZWRMaW5rVGFibGUoY29uc3QgU2hhcmVkTWVt
b3J5OjpIYW5kbGUmIGhhbmRsZSkKIHsKLSAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRN
ZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmNyZWF0ZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9u
bHkpOworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9y
eTo6Y3JlYXRlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAg
ICAgaWYgKCFzaGFyZWRNZW1vcnkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDEzNjg3ZTBhMjAzM2Y1MjQ3
OGU5N2Q1NzliOTA4NTc5YTE3NDRiZWEuLjFjZmU3MTA0NzJlZDU3YTgyOTQzM2JjYzJkMjMzZDRl
ZjQwY2M0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTE2MjUsNyArMTYyNSw3IEBAIHZvaWQgV2ViUGFnZTo6dGFrZVNuYXBzaG90KElu
dFJlY3Qgc25hcHNob3RSZWN0LCBJbnRTaXplIGJpdG1hcFNpemUsIHVpbnQzMl90IG9wCiAKICAg
ICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAgICAgaWYgKGltYWdlKQotICAgICAg
ICBpbWFnZS0+Yml0bWFwKCktPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVh
ZE9ubHkpOworICAgICAgICBpbWFnZS0+Yml0bWFwKCktPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpJbWFnZUNhbGxiYWNrKGhhbmRsZSwgY2FsbGJhY2tJRCkpOwogfQpAQCAt
MzgzNSw3ICszODM1LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnMKICAgICBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAKICAgICBpZiAoaW1hZ2UpCi0gICAgICAgIGltYWdlLT5i
aXRtYXAoKS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7Cisg
ICAgICAgIGltYWdlLT5iaXRtYXAoKS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5
OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkltYWdlQ2FsbGJhY2soaGFuZGxlLCBjYWxsYmFja0lEKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYjdi
YTEzN2ZlZTRmNWNiMTM2OTQyYTAwZTM2ODVlYWQ1ZTA1NWM3ZC4uZTJkNmFiMGJlNTVkZDBmMjU0
ZTc0NDc0ODQwYjIxM2ZlYzUwNjVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjE4MCw3ICsyMTgwLDcgQEAgdm9p
ZCBXZWJQYWdlOjpwZXJmb3JtQWN0aW9uT25FbGVtZW50KHVpbnQzMl90IGFjdGlvbikKICAgICAg
ICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5
OjpjcmVhdGUoYnVmZmVyU2l6ZSk7CiAgICAgICAgIG1lbWNweShzaGFyZWRNZW1vcnlCdWZmZXIt
PmRhdGEoKSwgYnVmZmVyLT5kYXRhKCksIGJ1ZmZlclNpemUpOwogICAgICAgICBTaGFyZWRNZW1v
cnk6OkhhbmRsZSBoYW5kbGU7Ci0gICAgICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFu
ZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAgIHNoYXJlZE1lbW9y
eUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2F2ZUltYWdl
VG9MaWJyYXJ5KGhhbmRsZSwgYnVmZmVyU2l6ZSkpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCAyNmE0
NzQxYTU1YzgyZGM0N2ZjMzI0MzUyNjk2MWI3MTIzNTYzNGI4Li4xNDkwZGRjYmJjZjgxMmVjZTQ5
ZjFhNWEyOThmNTU5ZDFhNmEwNWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC03MTIsNyArNzEyLDcgQEAgdm9pZCBX
ZWJQYWdlOjpnZXREYXRhU2VsZWN0aW9uRm9yUGFzdGVib2FyZChjb25zdCBTdHJpbmcgcGFzdGVi
b2FyZFR5cGUsIFNoYXJlZE0KICAgICBzaXplID0gYnVmZmVyLT5zaXplKCk7CiAgICAgUmVmUHRy
PFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUo
c2l6ZSk7CiAgICAgbWVtY3B5KHNoYXJlZE1lbW9yeUJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPmRh
dGEoKSwgc2l6ZSk7Ci0gICAgc2hhcmVkTWVtb3J5QnVmZmVyLT5jcmVhdGVIYW5kbGUoaGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKyAgICBzaGFyZWRNZW1vcnlCdWZmZXItPmNyZWF0
ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogfQog
CiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0KiBXZWJQYWdlOjphY2Nlc3NpYmlsaXR5UmVt
b3RlT2JqZWN0KCkK
</data>
<flag name="review"
          id="275458"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>