<?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>154741</bug_id>
          
          <creation_ts>2016-02-26 11:43:48 -0800</creation_ts>
          <short_desc>Modern IDB: New database versions are never committed to SQLite</short_desc>
          <delta_ts>2016-02-26 20:44:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1168606</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-26 11:43:48 -0800</bug_when>
    <thetext>Modern IDB: New database versions are never committed to SQLite

&lt;rdar://problem/24860952&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168717</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-26 15:26:13 -0800</bug_when>
    <thetext>Also noticed https://bugs.webkit.org/show_bug.cgi?id=154756 while working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168722</commentid>
    <comment_count>2</comment_count>
      <attachid>272376</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-26 15:32:55 -0800</bug_when>
    <thetext>Created attachment 272376
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168761</commentid>
    <comment_count>3</comment_count>
      <attachid>272376</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-26 17:20:47 -0800</bug_when>
    <thetext>Comment on attachment 272376
Patch v1

Rejecting attachment 272376 from commit-queue.

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

/Volumes/Data/EWS/WebKit/Source/WebKit2/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-queues.webkit.org/results/888131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168791</commentid>
    <comment_count>4</comment_count>
      <attachid>272394</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-26 19:49:31 -0800</bug_when>
    <thetext>Created attachment 272394
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168799</commentid>
    <comment_count>5</comment_count>
      <attachid>272394</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-26 20:39:02 -0800</bug_when>
    <thetext>Comment on attachment 272394
Patch for landing

Clearing flags on attachment: 272394

Committed r197231: &lt;http://trac.webkit.org/changeset/197231&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272376</attachid>
            <date>2016-02-26 15:32:55 -0800</date>
            <delta_ts>2016-02-26 17:20:47 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>25653</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmZDdkM2E0Li5iZjBlN2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIg
QEAKIDIwMTYtMDItMjYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIE1vZGVybiBJREI6IE5ldyBkYXRhYmFzZSB2ZXJzaW9ucyBhcmUgbmV2ZXIgY29tbWl0dGVk
IHRvIFNRTGl0ZS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0ODYwOTUyPiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDc0MQorICAgICAgICAKKyAgICAg
ICAgTW9kZXJuIElEQjogSWYgYSBkYXRhYmFzZSBoYW5kbGUgaXMgbm90IG9wZW4sIGZpbGVzIGFy
ZSBub3QgYWN0dWFsbHkgZGVsZXRlZCBmcm9tIGRpc2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDc1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBieSBBUEkgdGVzdCAiSW5kZXhlZERCUGVy
c2lzdGVuY2UiCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpkZWxldGVEYXRh
YmFzZSk6IElmIHRoZXJlJ3Mgbm90IGFuIG9wZW4gaGFuZGxlIHRvIHRoZSBkYXRhYmFzZSwgY3Jl
YXRlIG9uZS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJC
YWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24pOiBJZiBhIHZlcnNpb24gY2hhbmdlIHRyYW5z
YWN0aW9uLCBhY3R1YWxseQorICAgICAgICAgIHNldCB0aGUgbmV3IHZlcnNpb24gb24gZGlzay4K
KyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1DdXJyZW50RGVsZXRlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUJhY2tpbmdTdG9yZSk6IElmIHRoZXJl
IGlzIG5vIG9wZW4gYmFja2luZyBzdG9yZSwgY3JlYXRlIG9uZS4KKyAgICAgICAgICBUaGlzIGlz
IG5lY2Vzc2FyeSB0byBib3RoIHJlYWQgdGhlIGN1cnJlbnQgZGF0YWJhc2UgdmVyc2lvbiwgYW5k
IHRvIGFjdHVhbGx5IGRlbGV0ZSB0aGUgZmlsZSBvbiBkaXNrLgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRlQmFja2luZ1N0b3JlKTogSWYg
bmVjZXNzYXJ5LCBtYW51ZmFjdHVyZSBhICJtb3N0IHJlY2VudGx5CisgICAgICAgICAgZGVsZXRl
ZCBkYXRhYmFzZSBpbmZvIiBmcm9tIHRoZSB2ZXJzaW9uIHJldHVybmVkIGJ5IGRlbGV0ZUJhY2tp
bmdTdG9yZS4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuaDoKKworMjAxNi0wMi0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKICAgICAgICAgTW9kZXJuIElEQjogVXNpbmcgZXhpc3RpbmcgZGF0YWJhc2UgaW5mbyBmcm9t
IFNRTGl0ZSBiYWNraW5nIHN0b3JlIGlzIGJ1c3RlZC4KICAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI0ODQ4MTQzPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NDczNQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwCmluZGV4IGI5ZjRlMjAuLjY4YTczZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC0x
NTEsMTAgKzE1MSw4IEBAIHZvaWQgSURCU2VydmVyOjpkZWxldGVEYXRhYmFzZShjb25zdCBJREJS
ZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCiAgICAgfQogCiAgICAgYXV0byogZGF0YWJhc2UgPSBt
X3VuaXF1ZUlEQkRhdGFiYXNlTWFwLmdldChyZXF1ZXN0RGF0YS5kYXRhYmFzZUlkZW50aWZpZXIo
KSk7Ci0gICAgaWYgKCFkYXRhYmFzZSkgewotICAgICAgICBjb25uZWN0aW9uLT5kaWREZWxldGVE
YXRhYmFzZShJREJSZXN1bHREYXRhOjpkZWxldGVEYXRhYmFzZVN1Y2Nlc3MocmVxdWVzdERhdGEu
cmVxdWVzdElkZW50aWZpZXIoKSwgSURCRGF0YWJhc2VJbmZvKHJlcXVlc3REYXRhLmRhdGFiYXNl
SWRlbnRpZmllcigpLmRhdGFiYXNlTmFtZSgpLCAwKSkpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQorICAgIGlmICghZGF0YWJhc2UpCisgICAgICAgIGRhdGFiYXNlID0gJmdldE9yQ3JlYXRlVW5p
cXVlSURCRGF0YWJhc2UocmVxdWVzdERhdGEuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogCiAgICAg
ZGF0YWJhc2UtPmhhbmRsZURlbGV0ZSgqY29ubmVjdGlvbiwgcmVxdWVzdERhdGEpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAppbmRleCBjMWU4MTYzLi44N2NlNmM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApAQCAtNjIzLDkgKzYyMywxNiBAQCBJREJF
cnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJh
bnNhY3Rpb25JbmZvJiBpbmZvKQogICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNRTGl0ZUlEQlRyYW5zYWN0aW9uPigqdGhpcywgaW5mbyk7CiAKICAgICBh
dXRvIGVycm9yID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+YmVnaW4oKm1fc3FsaXRlREIp
OwotICAgIGlmIChlcnJvci5pc051bGwoKSAmJiBpbmZvLm1vZGUoKSA9PSBJbmRleGVkREI6OlRy
YW5zYWN0aW9uTW9kZTo6VmVyc2lvbkNoYW5nZSkKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkgJiYg
aW5mby5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2Up
IHsKICAgICAgICAgbV9vcmlnaW5hbERhdGFiYXNlSW5mb0JlZm9yZVZlcnNpb25DaGFuZ2UgPSBz
dGQ6Om1ha2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4oKm1fZGF0YWJhc2VJbmZvKTsKIAorICAg
ICAgICBTUUxpdGVTdGF0ZW1lbnQgc3FsKCptX3NxbGl0ZURCLCBBU0NJSUxpdGVyYWwoIlVQREFU
RSBJREJEYXRhYmFzZUluZm8gU0VUIHZhbHVlID0gPyB3aGVyZSBrZXkgPSAnRGF0YWJhc2VWZXJz
aW9uJzsiKSk7CisgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSworICAgICAg
ICAgICAgfHwgc3FsLmJpbmRUZXh0KDEsIFN0cmluZzo6bnVtYmVyKGluZm8ubmV3VmVyc2lvbigp
KSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuc3RlcCgpICE9IFNRTElURV9ET05F
KQorICAgICAgICAgICAgZXJyb3IgPSB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJy
b3IsIEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIHN0b3JlIG5ldyBkYXRhYmFzZSB2ZXJzaW9uIGlu
IGRhdGFiYXNlIikgfTsKKyAgICB9CisKICAgICByZXR1cm4gZXJyb3I7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCmluZGV4IDU3NTg4M2UuLjA0YjkzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcApAQCAtMTkzLDMwICsxOTMsMzggQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybUN1cnJlbnREZWxldGVPcGVyYXRpb24oKQogICAgIC8vIEluIHRoYXQgc2NlbmFyaW8g
b25seSB0aGUgZmlyc3QgcmVxdWVzdCB3aWxsIGFjdHVhbGx5IGhhdmUgdG8gZGVsZXRlIHRoZSBk
YXRhYmFzZS4KICAgICAvLyBTdWJzZXF1ZW50IHJlcXVlc3RzIGNhbiBpbW1lZGlhdGVseSBub3Rp
ZnkgdGhlaXIgY29tcGxldGlvbi4KIAotICAgIGlmIChtX2RhdGFiYXNlSW5mbykgewotICAgICAg
ICBtX2RlbGV0ZUJhY2tpbmdTdG9yZUluUHJvZ3Jlc3MgPSB0cnVlOwotICAgICAgICBtX3NlcnZl
ci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlE
QkRhdGFiYXNlOjpkZWxldGVCYWNraW5nU3RvcmUpKTsKLSAgICB9IGVsc2UgewotICAgICAgICBB
U1NFUlQobV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNlSW5mbyk7Ci0gICAgICAgIGRpZERlbGV0
ZUJhY2tpbmdTdG9yZSgpOworICAgIGlmICghbV9kZWxldGVCYWNraW5nU3RvcmVJblByb2dyZXNz
KSB7CisgICAgICAgIGlmICghbV9kYXRhYmFzZUluZm8gJiYgbV9tb3N0UmVjZW50RGVsZXRlZERh
dGFiYXNlSW5mbykKKyAgICAgICAgICAgIGRpZERlbGV0ZUJhY2tpbmdTdG9yZSgwKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBtX2RlbGV0ZUJhY2tpbmdTdG9yZUluUHJvZ3Jlc3MgPSB0
cnVlOworICAgICAgICAgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1Ro
cmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlQmFja2luZ1N0b3JlLCBt
X2lkZW50aWZpZXIpKTsKKyAgICAgICAgfQogICAgIH0KIH0KIAotdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6ZGVsZXRlQmFja2luZ1N0b3JlKCkKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0
ZUJhY2tpbmdTdG9yZShjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7
CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihkYikg
VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUJhY2tpbmdTdG9yZSIpOwogCisgICAgdWludDY0X3Qg
ZGVsZXRlZFZlcnNpb24gPSAwOworCiAgICAgaWYgKG1fYmFja2luZ1N0b3JlKSB7CiAgICAgICAg
IG1fYmFja2luZ1N0b3JlLT5kZWxldGVCYWNraW5nU3RvcmUoKTsKICAgICAgICAgbV9iYWNraW5n
U3RvcmUgPSBudWxscHRyOwogICAgICAgICBtX2JhY2tpbmdTdG9yZVN1cHBvcnRzU2ltdWx0YW5l
b3VzVHJhbnNhY3Rpb25zID0gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBiYWNr
aW5nU3RvcmUgPSBtX3NlcnZlci5jcmVhdGVCYWNraW5nU3RvcmUoaWRlbnRpZmllcik7CisgICAg
ICAgIGF1dG8gZGF0YWJhc2VJbmZvID0gYmFja2luZ1N0b3JlLT5nZXRPckVzdGFibGlzaERhdGFi
YXNlSW5mbygpOworICAgICAgICBkZWxldGVkVmVyc2lvbiA9IGRhdGFiYXNlSW5mby52ZXJzaW9u
KCk7CisgICAgICAgIGJhY2tpbmdTdG9yZS0+ZGVsZXRlQmFja2luZ1N0b3JlKCk7CiAgICAgfQog
Ci0gICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFz
aygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVCYWNraW5nU3RvcmUpKTsKKyAg
ICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0
aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSwgZGVsZXRlZFZl
cnNpb24pKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRlQmFja2luZ1N0
b3JlKCkKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSh1aW50
NjRfdCBkZWxldGVkVmVyc2lvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRpZERlbGV0ZUJhY2tp
bmdTdG9yZSIpOwpAQCAtMjMxLDcgKzIzOSwxMiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpk
aWREZWxldGVCYWNraW5nU3RvcmUoKQogICAgIGlmIChtX2RhdGFiYXNlSW5mbykKICAgICAgICAg
bV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNlSW5mbyA9IFdURk1vdmUobV9kYXRhYmFzZUluZm8p
OwogCi0gICAgQVNTRVJUKG1fbW9zdFJlY2VudERlbGV0ZWREYXRhYmFzZUluZm8pOworICAgIC8v
IElmIHRoaXMgVW5pcXVlSURCRGF0YWJhc2Ugd2FzIGJyb3VnaHQgaW50byBleGlzdGVuY2UgZm9y
IHRoZSBwdXJwb3NlIG9mIGRlbGV0aW5nIHRoZSBmaWxlIG9uIGRpc2ssCisgICAgLy8gd2Ugd29u
J3QgaGF2ZSBhIG1fbW9zdFJlY2VudERlbGV0ZWREYXRhYmFzZUluZm8uIEluIHRoYXQgY2FzZSwg
d2UnbGwgbWFudWZhY3R1cmUgb25lIHVzaW5nIHRoZQorICAgIC8vIHBhc3NlZCBpbiBkZWxldGVk
VmVyc2lvbiBhcmd1bWVudC4KKyAgICBpZiAoIW1fbW9zdFJlY2VudERlbGV0ZWREYXRhYmFzZUlu
Zm8pCisgICAgICAgIG1fbW9zdFJlY2VudERlbGV0ZWREYXRhYmFzZUluZm8gPSBzdGQ6Om1ha2Vf
dW5pcXVlPElEQkRhdGFiYXNlSW5mbz4obV9pZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpLCBkZWxl
dGVkVmVyc2lvbik7CisKICAgICBtX2N1cnJlbnRPcGVuREJSZXF1ZXN0LT5ub3RpZnlEaWREZWxl
dGVEYXRhYmFzZSgqbV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNlSW5mbyk7CiAgICAgbV9jdXJy
ZW50T3BlbkRCUmVxdWVzdCA9IG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXgg
MWNhYWNkNi4uYmRiYjM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTEyNSw3ICsxMjUs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5Qcm9ncmVzc1RyYW5zYWN0aW9uQ29tcGxldGVkKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOwogCiAgICAgLy8gRGF0YWJhc2UgdGhyZWFkIG9w
ZXJhdGlvbnMKLSAgICB2b2lkIGRlbGV0ZUJhY2tpbmdTdG9yZSgpOworICAgIHZvaWQgZGVsZXRl
QmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogICAgIHZvaWQgb3Bl
bkJhY2tpbmdTdG9yZShjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImKTsKICAgICB2b2lkIHBl
cmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICB2b2lk
IHBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwpAQCAtMTQ1
LDcgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtQWN0aXZhdGVUcmFuc2FjdGlv
bkluQmFja2luZ1N0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCVHJh
bnNhY3Rpb25JbmZvJik7CiAKICAgICAvLyBNYWluIHRocmVhZCBjYWxsYmFja3MKLSAgICB2b2lk
IGRpZERlbGV0ZUJhY2tpbmdTdG9yZSgpOworICAgIHZvaWQgZGlkRGVsZXRlQmFja2luZ1N0b3Jl
KHVpbnQ2NF90IGRlbGV0ZWRWZXJzaW9uKTsKICAgICB2b2lkIGRpZE9wZW5CYWNraW5nU3RvcmUo
Y29uc3QgSURCRGF0YWJhc2VJbmZvJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtQ3JlYXRlT2JqZWN0
U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYsIGNvbnN0
IElEQk9iamVjdFN0b3JlSW5mbyYpOwogICAgIHZvaWQgZGlkUGVyZm9ybURlbGV0ZU9iamVjdFN0
b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGRjMTg4NDEuLjBhZGVmOWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYtMDItMjYgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREI6IE5ldyBkYXRhYmFzZSB2
ZXJzaW9ucyBhcmUgbmV2ZXIgY29tbWl0dGVkIHRvIFNRTGl0ZS4KKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI0ODYwOTUyPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NDc0MQorICAgICAgICAKKyAgICAgICAgTW9kZXJuIElEQjogSWYgYSBkYXRhYmFzZSBo
YW5kbGUgaXMgbm90IG9wZW4sIGZpbGVzIGFyZSBub3QgYWN0dWFsbHkgZGVsZXRlZCBmcm9tIGRp
c2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDc1
NgorCisgICAgICAgIEFkZCBXSzIgU1BJIHRvIGZvcmNlIHRlcm1pbmF0aW9uIG9mIHRoZSBkYXRh
YmFzZSBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF90ZXJtaW5hdGVEYXRhYmFzZVByb2Nl
c3NdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZURhdGFiYXNlUHJvY2Vzcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMTYtMDItMjUgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWNoZTo6dHJhdmVyc2Ugc2hv
dWxkIHBhc3MgdGhlIHJlY29yZCBpbmZvIHRvIGl0cyB0cmF2ZXJzYWwgaGFuZGxlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmlu
ZGV4IDhkNTkzNjUuLjhjNWM5YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0yODUsNiArMjg1LDExIEBAIC0gKHZv
aWQpX3NldEF1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRp
b25TZXNzaW9uCiAgICAgX3Byb2Nlc3NQb29sLT5zZXRBdXRvbWF0aW9uU2Vzc2lvbihhdXRvbWF0
aW9uU2Vzc2lvbiA/IGF1dG9tYXRpb25TZXNzaW9uLT5fc2Vzc2lvbi5nZXQoKSA6IG51bGxwdHIp
OwogfQogCistICh2b2lkKV90ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MKK3sKKyAgICBfcHJvY2Vz
c1Bvb2wtPnRlcm1pbmF0ZURhdGFiYXNlUHJvY2VzcygpOworfQorCiBAZW5kCiAKICNlbmRpZiAv
LyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDM2MzczNjcuLmE3NzM2MTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTYxLDYgKzYxLDkgQEAKIC0gKHZvaWQpX2F1dG9tYXRp
b25DYXBhYmlsaXRpZXNEaWRDaGFuZ2UgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwogLSAodm9pZClfc2V0QXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9u
ICopYXV0b21hdGlvblNlc3Npb24gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwogCisvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29u
dGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCistICh2b2lkKV90ZXJtaW5hdGVEYXRhYmFzZVBy
b2Nlc3M7CisKIEBlbmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCA2NzE1ODQyLi41NjcxMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTEwODUsNiArMTA4NSwxNiBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpjbGVhckNhY2hlZENyZWRlbnRpYWxzKCkKICAgICAgICAgbV9uZXR3
b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyQ2FjaGVkQ3Jl
ZGVudGlhbHMoKSwgMCk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZURhdGFi
YXNlUHJvY2VzcygpCit7CisgICAgQVNTRVJUKG1fcHJvY2Vzc2VzLmlzRW1wdHkoKSk7CisgICAg
aWYgKCFtX2RhdGFiYXNlUHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kYXRhYmFz
ZVByb2Nlc3MtPnRlcm1pbmF0ZSgpOworICAgIG1fZGF0YWJhc2VQcm9jZXNzID0gbnVsbHB0cjsK
K30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyogY2VydGlmaWNhdGUsIGNvbnN0IFN0cmlu
ZyYgaG9zdCkKIHsKICAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYzk2Mzc2MS4uNjBhODNmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTI0NCw2ICsyNDQsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc1VzaW5nVGVzdGluZ05ldHdvcmtTZXNzaW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb247IH0KIAogICAgIHZvaWQgY2xl
YXJDYWNoZWRDcmVkZW50aWFscygpOworICAgIHZvaWQgdGVybWluYXRlRGF0YWJhc2VQcm9jZXNz
KCk7CiAKICAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25z
dCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBjb25zdCBTdHJpbmcmIGhvc3QpOwogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzZlYzNhOC4uZWZjNjdl
MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDE2LTAyLTI2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKworICAgICAgICBNb2Rlcm4gSURCOiBOZXcgZGF0YWJhc2UgdmVyc2lvbnMgYXJlIG5ldmVy
IGNvbW1pdHRlZCB0byBTUUxpdGUuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDg2MDk1Mj4g
YW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ3NDEKKyAgICAg
ICAgCisgICAgICAgIE1vZGVybiBJREI6IElmIGEgZGF0YWJhc2UgaGFuZGxlIGlzIG5vdCBvcGVu
LCBmaWxlcyBhcmUgbm90IGFjdHVhbGx5IGRlbGV0ZWQgZnJvbSBkaXNrCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ3NTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFsc28gaGFwcGVucyB0byB0
ZXN0IHRoZSBwcmV2aW91c2x5IHVudGVzdGVkIGZpeCBmb3IgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTk3MTkwCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNpc3Rl
bmNlLTIuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvSW5kZXhlZERCUGVyc2lzdGVuY2UubW06IEFkZGVkLgorICAgICAgICAoLVtJbmRleGVk
REJOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAg
ICAgICAoLVtJbmRleGVkREJNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlk
UmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgIChURVNUKToKKwogMjAxNi0wMi0yNSAg
R2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVm
Q291bnRlciB2YWx1ZSBjaGFuZ2VkIGNhbGxiYWNrIHNob3VsZCBiZSBjYWxsZWQgb24gYWxsIGNo
YW5nZXMgKG5vdCBqdXN0IHplcm8gZWRnZSkuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRh
MTFlYzQuLjg3MDQ1NzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Miw2ICs2Miw5IEBA
CiAJCTUxMzkzRTIyMTUyMzk1MkQwMDVGMzlDNSAvKiBET01XaW5kb3dFeHRlbnNpb25CYXNpY19C
dW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEzOTNFMUQxNTIzOTQ0QTAwNUYzOUM1IC8qIERPTVdpbmRvd0V4dGVuc2lvbkJhc2ljX0J1bmRs
ZS5jcHAgKi87IH07CiAJCTUxNDJCMjczMTUxN0M4QzgwMEMzMkIxOSAvKiBDb250ZXh0TWVudUNh
bkNvcHlVUkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTQyQjI3MjE1MTdDODkxMDBDMzJCMTkgLyogQ29udGV4dE1lbnVDYW5Db3B5
VVJMLmh0bWwgKi87IH07CiAJCTUxN0U3RTA0MTUxMTE5QzEwMEQwQjAwOCAvKiBNZW1vcnlDYWNo
ZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdFN0UwMzE1MTExODc1MDBEMEIw
MDggLyogTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgKi87
IH07CisJCTUxQjFFRThFMUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjFFRThE
MUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbSAqLzsgfTsKKwkJNTFC
MUVFOTYxQzgwRkFFRjAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIxRUU5
NDFDODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMS5odG1sICovOyB9Owor
CQk1MUIxRUU5NzFDODBGQUVGMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
QjFFRTk1MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0yLmh0bWwgKi87
IH07CiAJCTUxQjQ1NEVDMUI0RTIzNkIwMDg1RUFBNiAvKiBXZWJWaWV3Q2xvc2VJbnNpZGVEaWRG
aW5pc2hMb2FkRm9yRnJhbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUI0NTRFQjFCNEUyMzZCMDA4NUVBQTYgLyogV2ViVmlld0Nsb3NlSW5zaWRl
RGlkRmluaXNoTG9hZEZvckZyYW1lLm1tICovOyB9OwogCQk1MUNCNEFEODFCM0EwNzlDMDBDMUIx
QzYgLyogTW9kYWxBbGVydHNTUEkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFDQjRBRDcxQjNBMDc5QzAwQzFCMUM2IC8qIE1vZGFsQWxlcnRzU1BJ
LmNwcCAqLzsgfTsKIAkJNTFDRDFDNkMxQjM4Q0U0MzAwMTQyQ0E1IC8qIE1vZGFsQWxlcnRzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDRDFDNkEx
QjM4Q0UzNjAwMTQyQ0E1IC8qIE1vZGFsQWxlcnRzLm1tICovOyB9OwpAQCAtMzkwLDYgKzM5Myw4
IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xk
ZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTUxQjFFRTk2MUM4MEZBRUYwMDY0RkI5OCAv
KiBJbmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJ
NTFCMUVFOTcxQzgwRkFFRjAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyogSXNO
YXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUEx
NkY2NkJBMUM0MEVCNEYwMEJENEQyNCAvKiBDb250ZW50RmlsdGVyaW5nLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJQ0RDOEU0OTQxQkM2RjEwODAwNTk0RkVDIC8qIHZpZGVvLXdpdGgt
YXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTU4Nyw2ICs1OTIsOSBAQAogCQk1
MTQyQjI3MjE1MTdDODkxMDBDMzJCMTkgLyogQ29udGV4dE1lbnVDYW5Db3B5VVJMLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBDb250ZXh0TWVudUNhbkNvcHlVUkwuaHRtbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3RTdERkIxNTExMEVBNjAwRDBCMDA4IC8qIE1l
bW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJj
ZUxvYWREZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3RTdFMDMx
NTExMTg3NTAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxl
Z2F0ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gTWVtb3J5Q2FjaGVQcnVuZVdp
dGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxQjFFRThEMUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQlBlcnNpc3Rl
bmNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUIxRUU5NDFDODBGQUREMDA2
NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gIkluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxQjFFRTk1MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0
ZW5jZS0yLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERCUGVyc2lz
dGVuY2UtMi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCNDU0RUIxQjRF
MjM2QjAwODVFQUE2IC8qIFdlYlZpZXdDbG9zZUluc2lkZURpZEZpbmlzaExvYWRGb3JGcmFtZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdDbG9zZUlu
c2lkZURpZEZpbmlzaExvYWRGb3JGcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTFDQjRBRDcxQjNBMDc5QzAwQzFCMUM2IC8qIE1vZGFsQWxlcnRzU1BJLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGFsQWxlcnRzU1BJLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDRDFDNkExQjM4Q0UzNjAwMTQyQ0E1IC8qIE1vZGFs
QWxlcnRzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTW9kYWxB
bGVydHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NjksNiArOTc3LDcgQEAK
IAkJCQlBMUE0RkU1RDE4REQzREI3MDBCNUVBOEEgLyogRG93bmxvYWQubW0gKi8sCiAJCQkJMkQ4
MTA0Q0IxQkVDMTNFNzAwMjBEQTQ2IC8qIEZpbmRJblBhZ2UubW0gKi8sCiAJCQkJMkQxRkUwQUYx
QUQ0NjVDMTAwNkNEOUU2IC8qIEZpeGVkTGF5b3V0U2l6ZS5tbSAqLywKKwkJCQk1MUIxRUU4RDFD
ODBGNTg4MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gKi8sCiAJCQkJMzdEMzZF
RDYxQUY0MkVDRDAwQkFGNUQ5IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nLm1tICovLAogCQkJ
CTUxQ0QxQzZBMUIzOENFMzYwMDE0MkNBNSAvKiBNb2RhbEFsZXJ0cy5tbSAqLywKIAkJCQkxQUJD
M0RFRDE4OTlCRTZEMDA0RjA2MjYgLyogTmF2aWdhdGlvbi5tbSAqLywKQEAgLTEwNjEsNiArMTA3
MCw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNkY2NkI5
MUM0MEVBMjAwMEJENEQyNCAvKiBDb250ZW50RmlsdGVyaW5nLmh0bWwgKi8sCisJCQkJNTFCMUVF
OTQxQzgwRkFERDAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCAqLywKKwkJ
CQk1MUIxRUU5NTFDODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1s
ICovLAogCQkJKTsKIAkJCW5hbWUgPSBSZXNvdXJjZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMTg4Miw2ICsxODkzLDcgQEAKIAkJCQk0MTk3M0I1QjFBRjIyODZBMDA2QzdCMzYg
LyogRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDg5RDAzQTFDNEVEQjJBMDAw
NDBBMDQgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExQzRG
QjZFMUJBQ0NFNTAwMDM3NDJEMCAvKiBRdWlja0xvb2subW0gaW4gU291cmNlcyAqLywKKwkJCQk1
MUIxRUU4RTFDODBGNTg4MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QTU2MjMxMTFBRDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91
c2VFdmVudHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRDE5RjcxQzdDRTIwMzAwODMxRTQ3
IC8qIENvZGluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMDc4NkEzMUM1ODgzMEYwMEQxNTlF
MyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9J
bmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9JbmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNjJhMWJhZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbApA
QCAtMCwwICsxLDM1IEBACis8c2NyaXB0PgorCit2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoIkluZGV4ZWREQlBlcnNpc3RlbmNlIik7CityZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpCit7CisgICAgY29udGludWVUZXN0KCk7Cit9CityZXF1ZXN0Lm9u
ZXJyb3IgPSBmdW5jdGlvbihlKQoreworICAgIC8vIFVuZXhwZWN0ZWQgZXJyb3IKKyAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnRXJyb3In
KTsKK30KKworZnVuY3Rpb24gY29udGludWVUZXN0KCkKK3sKKyAgICB2YXIgcmVxdWVzdCA9IHdp
bmRvdy5pbmRleGVkREIub3BlbigiSW5kZXhlZERCUGVyc2lzdGVuY2UiLCAyKTsKKworICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ1N1Y2Nlc3MnKTsKKwor
ICAgIH0KKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICAv
LyBVbmV4cGVjdGVkIGVycm9yCisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdFcnJvcicpOworICAgIH0KKyAgICByZXF1ZXN0Lm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ1VwZ3JhZGVOZWVk
ZWQnKTsKKworICAgICAgICBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJU
ZXN0T2JqZWN0U3RvcmUiKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLTIu
aHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBl
cnNpc3RlbmNlLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOGFi
MTI1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxzY3Jp
cHQ+CisKK3ZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJJbmRleGVkREJQZXJz
aXN0ZW5jZSIpOworCityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2
ZW50LnRhcmdldC5yZXN1bHQudmVyc2lvbiArICIgIiArIGV2ZW50LnRhcmdldC5yZXN1bHQub2Jq
ZWN0U3RvcmVOYW1lc1swXSk7Cit9CisKK3JlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKCkKK3sK
KyAgICAvLyBVbmV4cGVjdGVkIGVycm9yCisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ1VuZXhwZWN0ZWQgRXJyb3InKTsKK30KKworcmVx
dWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpCit7CisgICAgLy8gVW5leHBlY3RlZCBl
cnJvcgorICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCdVbmV4cGVjdGVkIFVwZ3JhZGVOZWVkZWQnKTsKK30KKworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJQ
ZXJzaXN0ZW5jZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0lu
ZGV4ZWREQlBlcnNpc3RlbmNlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmYyMGY0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9JbmRleGVkREJQZXJzaXN0ZW5jZS5tbQpAQCAtMCwwICsxLDEwOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVc2Vy
Q29udGVudENvbnRyb2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLVXNlclN0eWxlU2hlZXQuaD4K
KyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK3N0YXRp
YyBib29sIGlzRG9uZVdpdGhOYXZpZ2F0aW9uOworCitAaW50ZXJmYWNlIEluZGV4ZWREQk5hdmln
YXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIEluZGV4ZWREQk5hdmlnYXRpb25EZWxlZ2F0ZQorCistICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjooV0tOYXZpZ2F0
aW9uICopbmF2aWdhdGlvbgoreworICAgIGlzRG9uZVdpdGhOYXZpZ2F0aW9uID0gdHJ1ZTsKK30K
KworQGVuZAorCitzdGF0aWMgYm9vbCByZWNlaXZlZFNjcmlwdE1lc3NhZ2U7CitzdGF0aWMgUmV0
YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4gbGFzdFNjcmlwdE1lc3NhZ2U7CisKK0BpbnRlcmZhY2Ug
SW5kZXhlZERCTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxl
cj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEluZGV4ZWREQk1lc3NhZ2VIYW5kbGVyCisKKy0g
KHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVz
ZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNz
YWdlICopbWVzc2FnZQoreworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAg
bGFzdFNjcmlwdE1lc3NhZ2UgPSBtZXNzYWdlOworfQorCitAZW5kCisKK1RFU1QoSW5kZXhlZERC
LCBJbmRleGVkREJQZXJzaXN0ZW5jZSkKK3sKKyAgICBSZXRhaW5QdHI8SW5kZXhlZERCTWVzc2Fn
ZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbSW5kZXhlZERCTWVzc2FnZUhhbmRsZXIgYWxs
b2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKworICAgIFJl
dGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAiSW5kZXhlZERCUGVyc2lzdGVuY2UtMSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAg
IFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nMSA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVz
c2FnZSBib2R5XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBSZXRh
aW5QdHI8TlNTdHJpbmc+IHN0cmluZzIgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2Ug
Ym9keV07CisKKyAgICAvLyBEaXRjaCB0aGlzIHdlYiB2aWV3IChkaXRjaGluZyBpdHMgd2ViIHBy
b2Nlc3MpCisgICAgd2ViVmlldyA9IG5pbDsKKworICAgIC8vIFRlcm1pbmF0ZSB0aGUgZGF0YWJh
c2UgcHJvY2VzcworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sIF90ZXJtaW5h
dGVEYXRhYmFzZVByb2Nlc3NdOworCisgICAgLy8gTWFrZSBhIG5ldyB3ZWIgdmlldyB0byBmaW5p
c2ggdGhlIHRlc3QKKyAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCldKTsKKworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREJQ
ZXJzaXN0ZW5jZS0yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7
CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiBzdHJpbmczID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOworCisg
ICAgRVhQRUNUX1dLX1NUUkVRKEAiVXBncmFkZU5lZWRlZCIsIHN0cmluZzEuZ2V0KCkpOworICAg
IEVYUEVDVF9XS19TVFJFUShAIlN1Y2Nlc3MiLCBzdHJpbmcyLmdldCgpKTsKKyAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCIyIFRlc3RPYmplY3RTdG9yZSIsIHN0cmluZzMuZ2V0KCkpOworfQorCisjZW5k
aWYK
</data>
<flag name="review"
          id="297150"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="297151"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272394</attachid>
            <date>2016-02-26 19:49:31 -0800</date>
            <delta_ts>2016-02-26 20:39:02 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>ppp.txt</filename>
            <type>text/plain</type>
            <size>25698</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmZDdkM2E0Li5iZjBlN2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzIg
QEAKIDIwMTYtMDItMjYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIE1vZGVybiBJREI6IE5ldyBkYXRhYmFzZSB2ZXJzaW9ucyBhcmUgbmV2ZXIgY29tbWl0dGVk
IHRvIFNRTGl0ZS4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0ODYwOTUyPiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDc0MQorICAgICAgICAKKyAgICAg
ICAgTW9kZXJuIElEQjogSWYgYSBkYXRhYmFzZSBoYW5kbGUgaXMgbm90IG9wZW4sIGZpbGVzIGFy
ZSBub3QgYWN0dWFsbHkgZGVsZXRlZCBmcm9tIGRpc2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDc1NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVGVzdGVkIGJ5IEFQSSB0ZXN0ICJJbmRleGVkREJQ
ZXJzaXN0ZW5jZSIKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRlbGV0ZURh
dGFiYXNlKTogSWYgdGhlcmUncyBub3QgYW4gb3BlbiBoYW5kbGUgdG8gdGhlIGRhdGFiYXNlLCBj
cmVhdGUgb25lLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbik6IElmIGEgdmVyc2lvbiBjaGFuZ2UgdHJh
bnNhY3Rpb24sIGFjdHVhbGx5CisgICAgICAgICAgc2V0IHRoZSBuZXcgdmVyc2lvbiBvbiBkaXNr
LgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZTo6cGVyZm9ybUN1cnJlbnREZWxldGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlQmFja2luZ1N0b3JlKTogSWYgdGhl
cmUgaXMgbm8gb3BlbiBiYWNraW5nIHN0b3JlLCBjcmVhdGUgb25lLgorICAgICAgICAgIFRoaXMg
aXMgbmVjZXNzYXJ5IHRvIGJvdGggcmVhZCB0aGUgY3VycmVudCBkYXRhYmFzZSB2ZXJzaW9uLCBh
bmQgdG8gYWN0dWFsbHkgZGVsZXRlIHRoZSBmaWxlIG9uIGRpc2suCisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVCYWNraW5nU3RvcmUpOiBJ
ZiBuZWNlc3NhcnksIG1hbnVmYWN0dXJlIGEgIm1vc3QgcmVjZW50bHkKKyAgICAgICAgICBkZWxl
dGVkIGRhdGFiYXNlIGluZm8iIGZyb20gdGhlIHZlcnNpb24gcmV0dXJuZWQgYnkgZGVsZXRlQmFj
a2luZ1N0b3JlLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5oOgorCisyMDE2LTAyLTI2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KKwogICAgICAgICBNb2Rlcm4gSURCOiBVc2luZyBleGlzdGluZyBkYXRhYmFzZSBpbmZvIGZy
b20gU1FMaXRlIGJhY2tpbmcgc3RvcmUgaXMgYnVzdGVkLgogICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjQ4NDgxNDM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU0NzM1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKaW5kZXggYjlmNGUyMC4uNjhhNzNlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAg
LTE1MSwxMCArMTUxLDggQEAgdm9pZCBJREJTZXJ2ZXI6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKICAgICB9CiAKICAgICBhdXRvKiBkYXRhYmFzZSA9
IG1fdW5pcXVlSURCRGF0YWJhc2VNYXAuZ2V0KHJlcXVlc3REYXRhLmRhdGFiYXNlSWRlbnRpZmll
cigpKTsKLSAgICBpZiAoIWRhdGFiYXNlKSB7Ci0gICAgICAgIGNvbm5lY3Rpb24tPmRpZERlbGV0
ZURhdGFiYXNlKElEQlJlc3VsdERhdGE6OmRlbGV0ZURhdGFiYXNlU3VjY2VzcyhyZXF1ZXN0RGF0
YS5yZXF1ZXN0SWRlbnRpZmllcigpLCBJREJEYXRhYmFzZUluZm8ocmVxdWVzdERhdGEuZGF0YWJh
c2VJZGVudGlmaWVyKCkuZGF0YWJhc2VOYW1lKCksIDApKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgaWYgKCFkYXRhYmFzZSkKKyAgICAgICAgZGF0YWJhc2UgPSAmZ2V0T3JDcmVhdGVV
bmlxdWVJREJEYXRhYmFzZShyZXF1ZXN0RGF0YS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAKICAg
ICBkYXRhYmFzZS0+aGFuZGxlRGVsZXRlKCpjb25uZWN0aW9uLCByZXF1ZXN0RGF0YSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRl
SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGMxZTgxNjMuLjg3Y2U2YzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC02MjMsOSArNjIzLDE2IEBAIElE
QkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJU
cmFuc2FjdGlvbkluZm8mIGluZm8pCiAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0
ZDo6bWFrZV91bmlxdWU8U1FMaXRlSURCVHJhbnNhY3Rpb24+KCp0aGlzLCBpbmZvKTsKIAogICAg
IGF1dG8gZXJyb3IgPSBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5iZWdpbigqbV9zcWxpdGVE
Qik7Ci0gICAgaWYgKGVycm9yLmlzTnVsbCgpICYmIGluZm8ubW9kZSgpID09IEluZGV4ZWREQjo6
VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKQorICAgIGlmIChlcnJvci5pc051bGwoKSAm
JiBpbmZvLm1vZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6VmVyc2lvbkNoYW5n
ZSkgewogICAgICAgICBtX29yaWdpbmFsRGF0YWJhc2VJbmZvQmVmb3JlVmVyc2lvbkNoYW5nZSA9
IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPigqbV9kYXRhYmFzZUluZm8pOwogCisg
ICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgiVVBE
QVRFIElEQkRhdGFiYXNlSW5mbyBTRVQgdmFsdWUgPSA/IHdoZXJlIGtleSA9ICdEYXRhYmFzZVZl
cnNpb24nOyIpKTsKKyAgICAgICAgaWYgKHNxbC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAg
ICAgICAgICB8fCBzcWwuYmluZFRleHQoMSwgU3RyaW5nOjpudW1iZXIoaW5mby5uZXdWZXJzaW9u
KCkpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMSVRFX0RP
TkUpCisgICAgICAgICAgICBlcnJvciA9IHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25F
cnJvciwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gc3RvcmUgbmV3IGRhdGFiYXNlIHZlcnNpb24g
aW4gZGF0YWJhc2UiKSB9OworICAgIH0KKwogICAgIHJldHVybiBlcnJvcjsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAKaW5kZXggNTc1ODgzZS4uMDRiOTM5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2UuY3BwCkBAIC0xOTMsMzAgKzE5MywzOCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpwZXJmb3JtQ3VycmVudERlbGV0ZU9wZXJhdGlvbigpCiAgICAgLy8gSW4gdGhhdCBzY2VuYXJp
byBvbmx5IHRoZSBmaXJzdCByZXF1ZXN0IHdpbGwgYWN0dWFsbHkgaGF2ZSB0byBkZWxldGUgdGhl
IGRhdGFiYXNlLgogICAgIC8vIFN1YnNlcXVlbnQgcmVxdWVzdHMgY2FuIGltbWVkaWF0ZWx5IG5v
dGlmeSB0aGVpciBjb21wbGV0aW9uLgogCi0gICAgaWYgKG1fZGF0YWJhc2VJbmZvKSB7Ci0gICAg
ICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlSW5Qcm9ncmVzcyA9IHRydWU7Ci0gICAgICAgIG1fc2Vy
dmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVl
SURCRGF0YWJhc2U6OmRlbGV0ZUJhY2tpbmdTdG9yZSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IEFTU0VSVChtX21vc3RSZWNlbnREZWxldGVkRGF0YWJhc2VJbmZvKTsKLSAgICAgICAgZGlkRGVs
ZXRlQmFja2luZ1N0b3JlKCk7CisgICAgaWYgKCFtX2RlbGV0ZUJhY2tpbmdTdG9yZUluUHJvZ3Jl
c3MpIHsKKyAgICAgICAgaWYgKCFtX2RhdGFiYXNlSW5mbyAmJiBtX21vc3RSZWNlbnREZWxldGVk
RGF0YWJhc2VJbmZvKQorICAgICAgICAgICAgZGlkRGVsZXRlQmFja2luZ1N0b3JlKDApOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlSW5Qcm9ncmVzcyA9
IHRydWU7CisgICAgICAgICAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3Nz
VGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVCYWNraW5nU3RvcmUs
IG1faWRlbnRpZmllcikpOworICAgICAgICB9CiAgICAgfQogfQogCi12b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpkZWxldGVCYWNraW5nU3RvcmUoKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVs
ZXRlQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllcikK
IHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKGRi
KSBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlQmFja2luZ1N0b3JlIik7CiAKKyAgICB1aW50NjRf
dCBkZWxldGVkVmVyc2lvbiA9IDA7CisKICAgICBpZiAobV9iYWNraW5nU3RvcmUpIHsKICAgICAg
ICAgbV9iYWNraW5nU3RvcmUtPmRlbGV0ZUJhY2tpbmdTdG9yZSgpOwogICAgICAgICBtX2JhY2tp
bmdTdG9yZSA9IG51bGxwdHI7CiAgICAgICAgIG1fYmFja2luZ1N0b3JlU3VwcG9ydHNTaW11bHRh
bmVvdXNUcmFuc2FjdGlvbnMgPSBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGJh
Y2tpbmdTdG9yZSA9IG1fc2VydmVyLmNyZWF0ZUJhY2tpbmdTdG9yZShpZGVudGlmaWVyKTsKKyAg
ICAgICAgYXV0byBkYXRhYmFzZUluZm8gPSBiYWNraW5nU3RvcmUtPmdldE9yRXN0YWJsaXNoRGF0
YWJhc2VJbmZvKCk7CisgICAgICAgIGRlbGV0ZWRWZXJzaW9uID0gZGF0YWJhc2VJbmZvLnZlcnNp
b24oKTsKKyAgICAgICAgYmFja2luZ1N0b3JlLT5kZWxldGVCYWNraW5nU3RvcmUoKTsKICAgICB9
CiAKLSAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSkpOwor
ICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2so
KnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRlQmFja2luZ1N0b3JlLCBkZWxldGVk
VmVyc2lvbikpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVCYWNraW5n
U3RvcmUoKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRlQmFja2luZ1N0b3JlKHVp
bnQ2NF90IGRlbGV0ZWRWZXJzaW9uKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRlQmFj
a2luZ1N0b3JlIik7CkBAIC0yMzEsNyArMjM5LDEyIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSgpCiAgICAgaWYgKG1fZGF0YWJhc2VJbmZvKQogICAgICAg
ICBtX21vc3RSZWNlbnREZWxldGVkRGF0YWJhc2VJbmZvID0gV1RGTW92ZShtX2RhdGFiYXNlSW5m
byk7CiAKLSAgICBBU1NFUlQobV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNlSW5mbyk7CisgICAg
Ly8gSWYgdGhpcyBVbmlxdWVJREJEYXRhYmFzZSB3YXMgYnJvdWdodCBpbnRvIGV4aXN0ZW5jZSBm
b3IgdGhlIHB1cnBvc2Ugb2YgZGVsZXRpbmcgdGhlIGZpbGUgb24gZGlzaywKKyAgICAvLyB3ZSB3
b24ndCBoYXZlIGEgbV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNlSW5mby4gSW4gdGhhdCBjYXNl
LCB3ZSdsbCBtYW51ZmFjdHVyZSBvbmUgdXNpbmcgdGhlCisgICAgLy8gcGFzc2VkIGluIGRlbGV0
ZWRWZXJzaW9uIGFyZ3VtZW50LgorICAgIGlmICghbV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNl
SW5mbykKKyAgICAgICAgbV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNlSW5mbyA9IHN0ZDo6bWFr
ZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPihtX2lkZW50aWZpZXIuZGF0YWJhc2VOYW1lKCksIGRl
bGV0ZWRWZXJzaW9uKTsKKwogICAgIG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPm5vdGlmeURpZERl
bGV0ZURhdGFiYXNlKCptX21vc3RSZWNlbnREZWxldGVkRGF0YWJhc2VJbmZvKTsKICAgICBtX2N1
cnJlbnRPcGVuREJSZXF1ZXN0ID0gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRl
eCAxY2FhY2Q2Li5iZGJiMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMTI1LDcgKzEy
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7CiAKICAgICAvLyBEYXRhYmFzZSB0aHJlYWQg
b3BlcmF0aW9ucwotICAgIHZvaWQgZGVsZXRlQmFja2luZ1N0b3JlKCk7CisgICAgdm9pZCBkZWxl
dGVCYWNraW5nU3RvcmUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAgICAgdm9pZCBv
cGVuQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogICAgIHZvaWQg
cGVyZm9ybUNvbW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAgIHZv
aWQgcGVyZm9ybUFib3J0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CkBAIC0x
NDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1BY3RpdmF0ZVRyYW5zYWN0
aW9uSW5CYWNraW5nU3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJU
cmFuc2FjdGlvbkluZm8mKTsKIAogICAgIC8vIE1haW4gdGhyZWFkIGNhbGxiYWNrcwotICAgIHZv
aWQgZGlkRGVsZXRlQmFja2luZ1N0b3JlKCk7CisgICAgdm9pZCBkaWREZWxldGVCYWNraW5nU3Rv
cmUodWludDY0X3QgZGVsZXRlZFZlcnNpb24pOwogICAgIHZvaWQgZGlkT3BlbkJhY2tpbmdTdG9y
ZShjb25zdCBJREJEYXRhYmFzZUluZm8mKTsKICAgICB2b2lkIGRpZFBlcmZvcm1DcmVhdGVPYmpl
Y3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29u
c3QgSURCT2JqZWN0U3RvcmVJbmZvJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtRGVsZXRlT2JqZWN0
U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGMxODg0MS4uMGFkZWY5
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0wMi0yNiAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQjogTmV3IGRhdGFiYXNl
IHZlcnNpb25zIGFyZSBuZXZlciBjb21taXR0ZWQgdG8gU1FMaXRlLgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjQ4NjA5NTI+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU0NzQxCisgICAgICAgIAorICAgICAgICBNb2Rlcm4gSURCOiBJZiBhIGRhdGFiYXNl
IGhhbmRsZSBpcyBub3Qgb3BlbiwgZmlsZXMgYXJlIG5vdCBhY3R1YWxseSBkZWxldGVkIGZyb20g
ZGlzaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0
NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBB
ZGQgV0syIFNQSSB0byBmb3JjZSB0ZXJtaW5hdGlvbiBvZiB0aGUgZGF0YWJhc2UgcHJvY2Vzcy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAg
ICAgKC1bV0tQcm9jZXNzUG9vbCBfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjp0ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oOgorCiAyMDE2LTAyLTI1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FjaGU6OnRyYXZlcnNlIHNob3VsZCBwYXNzIHRoZSBy
ZWNvcmQgaW5mbyB0byBpdHMgdHJhdmVyc2FsIGhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCA4ZDU5MzY1Li44
YzVjOWE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5tbQpAQCAtMjg1LDYgKzI4NSwxMSBAQCAtICh2b2lkKV9zZXRBdXRvbWF0
aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbgogICAg
IF9wcm9jZXNzUG9vbC0+c2V0QXV0b21hdGlvblNlc3Npb24oYXV0b21hdGlvblNlc3Npb24gPyBh
dXRvbWF0aW9uU2Vzc2lvbi0+X3Nlc3Npb24uZ2V0KCkgOiBudWxscHRyKTsKIH0KIAorLSAodm9p
ZClfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzCit7CisgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5h
dGVEYXRhYmFzZVByb2Nlc3MoKTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCAzNjM3MzY3Li5hNzczNjE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJp
dmF0ZS5oCkBAIC02MSw2ICs2MSw5IEBACiAtICh2b2lkKV9hdXRvbWF0aW9uQ2FwYWJpbGl0aWVz
RGlkQ2hhbmdlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIC0gKHZvaWQp
X3NldEF1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25T
ZXNzaW9uIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKIAorLy8gVGVzdCBv
bmx5LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2Vz
IGFyZSBydW5uaW5nLgorLSAodm9pZClfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzOworCiBAZW5k
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggNjcxNTg0Mi4uNTY3MTAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMDg1LDYgKzEwODUsMTYgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhckNhY2hlZENyZWRlbnRpYWxzKCksIDAp
OwogfQogCit2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MoKQor
eworICAgIEFTU0VSVChtX3Byb2Nlc3Nlcy5pc0VtcHR5KCkpOworICAgIGlmICghbV9kYXRhYmFz
ZVByb2Nlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGF0YWJhc2VQcm9jZXNzLT50ZXJt
aW5hdGUoKTsKKyAgICBtX2RhdGFiYXNlUHJvY2VzcyA9IG51bGxwdHI7Cit9CisKIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBX
ZWJDZXJ0aWZpY2F0ZUluZm8qIGNlcnRpZmljYXRlLCBjb25zdCBTdHJpbmcmIGhvc3QpCiB7CiAg
ICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCmluZGV4IGM5NjM3NjEuLjYwYTgzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yNDQsNiArMjQ0LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNVc2luZ1Rlc3RpbmdOZXR3b3JrU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxk
VXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uOyB9CiAKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVu
dGlhbHMoKTsKKyAgICB2b2lkIHRlcm1pbmF0ZURhdGFiYXNlUHJvY2VzcygpOwogCiAgICAgdm9p
ZCBhbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ2VydGlmaWNh
dGVJbmZvKiwgY29uc3QgU3RyaW5nJiBob3N0KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM2ZWMzYTguLmVmYzY3ZTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxNi0wMi0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
TW9kZXJuIElEQjogTmV3IGRhdGFiYXNlIHZlcnNpb25zIGFyZSBuZXZlciBjb21taXR0ZWQgdG8g
U1FMaXRlLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ4NjA5NTI+IGFuZCBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NzQxCisgICAgICAgIAorICAgICAgICBN
b2Rlcm4gSURCOiBJZiBhIGRhdGFiYXNlIGhhbmRsZSBpcyBub3Qgb3BlbiwgZmlsZXMgYXJlIG5v
dCBhY3R1YWxseSBkZWxldGVkIGZyb20gZGlzaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBD
aHJpc3RlbnNlbi4KKworICAgICAgICBUaGlzIGFsc28gaGFwcGVucyB0byB0ZXN0IHRoZSBwcmV2
aW91c2x5IHVudGVzdGVkIGZpeCBmb3IgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MTk3MTkwCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9JbmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhl
ZERCUGVyc2lzdGVuY2UubW06IEFkZGVkLgorICAgICAgICAoLVtJbmRleGVkREJOYXZpZ2F0aW9u
RGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAgICAgICAoLVtJbmRl
eGVkREJNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlw
dE1lc3NhZ2U6XSk6CisgICAgICAgIChURVNUKToKKwogMjAxNi0wMi0yNSAgR2F2aW4gQmFycmFj
bG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmQ291bnRlciB2YWx1
ZSBjaGFuZ2VkIGNhbGxiYWNrIHNob3VsZCBiZSBjYWxsZWQgb24gYWxsIGNoYW5nZXMgKG5vdCBq
dXN0IHplcm8gZWRnZSkuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRhMTFlYzQuLjg3MDQ1
NzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Miw2ICs2Miw5IEBACiAJCTUxMzkzRTIy
MTUyMzk1MkQwMDVGMzlDNSAvKiBET01XaW5kb3dFeHRlbnNpb25CYXNpY19CdW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzOTNFMUQxNTIz
OTQ0QTAwNUYzOUM1IC8qIERPTVdpbmRvd0V4dGVuc2lvbkJhc2ljX0J1bmRsZS5jcHAgKi87IH07
CiAJCTUxNDJCMjczMTUxN0M4QzgwMEMzMkIxOSAvKiBDb250ZXh0TWVudUNhbkNvcHlVUkwuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTQyQjI3MjE1MTdDODkxMDBDMzJCMTkgLyogQ29udGV4dE1lbnVDYW5Db3B5VVJMLmh0bWwgKi87
IH07CiAJCTUxN0U3RTA0MTUxMTE5QzEwMEQwQjAwOCAvKiBNZW1vcnlDYWNoZVBydW5lV2l0aGlu
UmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdFN0UwMzE1MTExODc1MDBEMEIwMDggLyogTWVtb3J5
Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgKi87IH07CisJCTUxQjFF
RThFMUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjFFRThEMUM4MEY1ODgwMDY0
RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbSAqLzsgfTsKKwkJNTFCMUVFOTYxQzgwRkFF
RjAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIxRUU5NDFDODBGQUREMDA2
NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMS5odG1sICovOyB9OworCQk1MUIxRUU5NzFD
ODBGQUVGMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjFFRTk1MUM4MEZB
REQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0yLmh0bWwgKi87IH07CiAJCTUxQjQ1
NEVDMUI0RTIzNkIwMDg1RUFBNiAvKiBXZWJWaWV3Q2xvc2VJbnNpZGVEaWRGaW5pc2hMb2FkRm9y
RnJhbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUI0NTRFQjFCNEUyMzZCMDA4NUVBQTYgLyogV2ViVmlld0Nsb3NlSW5zaWRlRGlkRmluaXNoTG9h
ZEZvckZyYW1lLm1tICovOyB9OwogCQk1MUNCNEFEODFCM0EwNzlDMDBDMUIxQzYgLyogTW9kYWxB
bGVydHNTUEkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFDQjRBRDcxQjNBMDc5QzAwQzFCMUM2IC8qIE1vZGFsQWxlcnRzU1BJLmNwcCAqLzsgfTsK
IAkJNTFDRDFDNkMxQjM4Q0U0MzAwMTQyQ0E1IC8qIE1vZGFsQWxlcnRzLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDRDFDNkExQjM4Q0UzNjAwMTQy
Q0E1IC8qIE1vZGFsQWxlcnRzLm1tICovOyB9OwpAQCAtMzkwLDYgKzM5Myw4IEBACiAJCQlkc3RQ
YXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsK
IAkJCWZpbGVzID0gKAorCQkJCTUxQjFFRTk2MUM4MEZBRUYwMDY0RkI5OCAvKiBJbmRleGVkREJQ
ZXJzaXN0ZW5jZS0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTFCMUVFOTcxQzgw
RkFFRjAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk1N0Y1NkE1QzFDN0Y4Q0MxMDBGMzFEN0UgLyogSXNOYXZpZ2F0aW9uQWN0
aW9uVHJ1c3RlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUExNkY2NkJBMUM0MEVC
NEYwMEJENEQyNCAvKiBDb250ZW50RmlsdGVyaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJQ0RDOEU0OTQxQkM2RjEwODAwNTk0RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8uaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKQEAgLTU4Nyw2ICs1OTIsOSBAQAogCQk1MTQyQjI3MjE1MTdD
ODkxMDBDMzJCMTkgLyogQ29udGV4dE1lbnVDYW5Db3B5VVJMLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBDb250ZXh0TWVudUNhbkNvcHlVUkwuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTE3RTdERkIxNTExMEVBNjAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1
bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3RTdFMDMxNTExMTg3NTAwRDBC
MDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNl
TG9hZERlbGVnYXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxQjFFRThE
MUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUIxRUU5NDFDODBGQUREMDA2NEZCOTggLyogSW5k
ZXhlZERCUGVyc2lzdGVuY2UtMS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIklu
ZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxQjFFRTk1MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0yLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCNDU0RUIxQjRFMjM2QjAwODVFQUE2
IC8qIFdlYlZpZXdDbG9zZUluc2lkZURpZEZpbmlzaExvYWRGb3JGcmFtZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdDbG9zZUluc2lkZURpZEZpbmlz
aExvYWRGb3JGcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFDQjRBRDcx
QjNBMDc5QzAwQzFCMUM2IC8qIE1vZGFsQWxlcnRzU1BJLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGFsQWxlcnRzU1BJLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFDRDFDNkExQjM4Q0UzNjAwMTQyQ0E1IC8qIE1vZGFsQWxlcnRzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTW9kYWxBbGVydHMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NjksNiArOTc3LDcgQEAKIAkJCQlBMUE0RkU1
RDE4REQzREI3MDBCNUVBOEEgLyogRG93bmxvYWQubW0gKi8sCiAJCQkJMkQ4MTA0Q0IxQkVDMTNF
NzAwMjBEQTQ2IC8qIEZpbmRJblBhZ2UubW0gKi8sCiAJCQkJMkQxRkUwQUYxQUQ0NjVDMTAwNkNE
OUU2IC8qIEZpeGVkTGF5b3V0U2l6ZS5tbSAqLywKKwkJCQk1MUIxRUU4RDFDODBGNTg4MDA2NEZC
OTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gKi8sCiAJCQkJMzdEMzZFRDYxQUY0MkVDRDAw
QkFGNUQ5IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nLm1tICovLAogCQkJCTUxQ0QxQzZBMUIz
OENFMzYwMDE0MkNBNSAvKiBNb2RhbEFsZXJ0cy5tbSAqLywKIAkJCQkxQUJDM0RFRDE4OTlCRTZE
MDA0RjA2MjYgLyogTmF2aWdhdGlvbi5tbSAqLywKQEAgLTEwNjEsNiArMTA3MCw4IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNkY2NkI5MUM0MEVBMjAwMEJE
NEQyNCAvKiBDb250ZW50RmlsdGVyaW5nLmh0bWwgKi8sCisJCQkJNTFCMUVFOTQxQzgwRkFERDAw
NjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCAqLywKKwkJCQk1MUIxRUU5NTFD
ODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sICovLAogCQkJKTsK
IAkJCW5hbWUgPSBSZXNvdXJjZXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTg4
Miw2ICsxODkzLDcgQEAKIAkJCQk0MTk3M0I1QjFBRjIyODZBMDA2QzdCMzYgLyogRmlsZVN5c3Rl
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDg5RDAzQTFDNEVEQjJBMDAwNDBBMDQgLyogV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExQzRGQjZFMUJBQ0NFNTAw
MDM3NDJEMCAvKiBRdWlja0xvb2subW0gaW4gU291cmNlcyAqLywKKwkJCQk1MUIxRUU4RTFDODBG
NTg4MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QTU2MjMxMTFBRDVBRjNFMDA5NkI5MjAgLyogTWVudVR5cGVzRm9yTW91c2VFdmVudHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRDE5RjcxQzdDRTIwMzAwODMxRTQ3IC8qIENvZGluZy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTlCMDc4NkEzMUM1ODgzMEYwMEQxNTlFMyAvKiBJbmplY3Rl
ZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJQZXJz
aXN0ZW5jZS0xLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9J
bmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNjJhMWJhZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbApAQCAtMCwwICsxLDM1
IEBACis8c2NyaXB0PgorCit2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoIkluZGV4ZWREQlBlcnNpc3RlbmNlIik7CityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpCit7CisgICAgY29udGludWVUZXN0KCk7Cit9CityZXF1ZXN0Lm9uZXJyb3IgPSBmdW5j
dGlvbihlKQoreworICAgIC8vIFVuZXhwZWN0ZWQgZXJyb3IKKyAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnRXJyb3InKTsKK30KKworZnVu
Y3Rpb24gY29udGludWVUZXN0KCkKK3sKKyAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVk
REIub3BlbigiSW5kZXhlZERCUGVyc2lzdGVuY2UiLCAyKTsKKworICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ1N1Y2Nlc3MnKTsKKworICAgIH0KKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICAvLyBVbmV4cGVjdGVk
IGVycm9yCisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCdFcnJvcicpOworICAgIH0KKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ1VwZ3JhZGVOZWVkZWQnKTsKKworICAg
ICAgICBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3Rv
cmUiKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLTIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOGFiMTI1Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhl
ZERCUGVyc2lzdGVuY2UtMi5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxzY3JpcHQ+CisKK3ZhciBy
ZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJJbmRleGVkREJQZXJzaXN0ZW5jZSIpOwor
CityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LnRhcmdldC5y
ZXN1bHQudmVyc2lvbiArICIgIiArIGV2ZW50LnRhcmdldC5yZXN1bHQub2JqZWN0U3RvcmVOYW1l
c1swXSk7Cit9CisKK3JlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKCkKK3sKKyAgICAvLyBVbmV4
cGVjdGVkIGVycm9yCisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoJ1VuZXhwZWN0ZWQgRXJyb3InKTsKK30KKworcmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbigpCit7CisgICAgLy8gVW5leHBlY3RlZCBlcnJvcgorICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdVbmV4
cGVjdGVkIFVwZ3JhZGVOZWVkZWQnKTsKK30KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJQZXJzaXN0ZW5jZS5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNp
c3RlbmNlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyMGY0ZmQKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9J
bmRleGVkREJQZXJzaXN0ZW5jZS5tbQpAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9y
dCAiVGVzdC5oIgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRy
b2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLVXNlclN0eWxlU2hlZXQuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK3N0YXRpYyBib29sIGlzRG9u
ZVdpdGhOYXZpZ2F0aW9uOworCitAaW50ZXJmYWNlIEluZGV4ZWREQk5hdmlnYXRpb25EZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIEluZGV4ZWREQk5hdmlnYXRpb25EZWxlZ2F0ZQorCistICh2b2lkKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdh
dGlvbgoreworICAgIGlzRG9uZVdpdGhOYXZpZ2F0aW9uID0gdHJ1ZTsKK30KKworQGVuZAorCitz
dGF0aWMgYm9vbCByZWNlaXZlZFNjcmlwdE1lc3NhZ2U7CitzdGF0aWMgUmV0YWluUHRyPFdLU2Ny
aXB0TWVzc2FnZT4gbGFzdFNjcmlwdE1lc3NhZ2U7CisKK0BpbnRlcmZhY2UgSW5kZXhlZERCTWVz
c2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIEluZGV4ZWREQk1lc3NhZ2VIYW5kbGVyCisKKy0gKHZvaWQpdXNlckNv
bnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29u
dHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2Fn
ZQoreworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgbGFzdFNjcmlwdE1l
c3NhZ2UgPSBtZXNzYWdlOworfQorCitAZW5kCisKK1RFU1QoSW5kZXhlZERCLCBJbmRleGVkREJQ
ZXJzaXN0ZW5jZSkKK3sKKyAgICBSZXRhaW5QdHI8SW5kZXhlZERCTWVzc2FnZUhhbmRsZXI+IGhh
bmRsZXIgPSBhZG9wdE5TKFtbSW5kZXhlZERCTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsK
KyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6
aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKworICAgIFJldGFpblB0cjxXS1dl
YlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5kZXhl
ZERCUGVyc2lzdGVuY2UtMSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFJldGFpblB0cjxO
U1N0cmluZz4gc3RyaW5nMSA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsK
KworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
KyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBSZXRhaW5QdHI8TlNTdHJp
bmc+IHN0cmluZzIgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CisKKyAg
ICAvLyBEaXRjaCB0aGlzIHdlYiB2aWV3IChkaXRjaGluZyBpdHMgd2ViIHByb2Nlc3MpCisgICAg
d2ViVmlldyA9IG5pbDsKKworICAgIC8vIFRlcm1pbmF0ZSB0aGUgZGF0YWJhc2UgcHJvY2Vzcwor
ICAgIFtjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sIF90ZXJtaW5hdGVEYXRhYmFzZVBy
b2Nlc3NdOworCisgICAgLy8gTWFrZSBhIG5ldyB3ZWIgdmlldyB0byBmaW5pc2ggdGhlIHRlc3QK
KyAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREJQZXJzaXN0ZW5jZS0y
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmcz
ID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOworCisgICAgRVhQRUNUX1dL
X1NUUkVRKEAiVXBncmFkZU5lZWRlZCIsIHN0cmluZzEuZ2V0KCkpOworICAgIEVYUEVDVF9XS19T
VFJFUShAIlN1Y2Nlc3MiLCBzdHJpbmcyLmdldCgpKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCIy
IFRlc3RPYmplY3RTdG9yZSIsIHN0cmluZzMuZ2V0KCkpOworfQorCisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>