<?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>176973</bug_id>
          
          <creation_ts>2017-09-14 19:06:49 -0700</creation_ts>
          <short_desc>WSL Evaluator should only allocate EBuffers when dealing with intrinsics</short_desc>
          <delta_ts>2018-10-13 16:43:11 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=176967</see_also>
          <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>176199</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1349158</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-14 19:06:49 -0700</bug_when>
    <thetext>Snapshots should use pre-allocated EBuffers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349529</commentid>
    <comment_count>1</comment_count>
      <attachid>320963</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-15 14:22:31 -0700</bug_when>
    <thetext>Created attachment 320963
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349531</commentid>
    <comment_count>2</comment_count>
      <attachid>320964</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-15 14:23:29 -0700</bug_when>
    <thetext>Created attachment 320964
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1349568</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-15 16:48:35 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/222118/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353432</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:30:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693398&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468935</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 16:43:11 -0700</bug_when>
    <thetext>Migrated to https://github.com/gpuweb/WHLSL/issues/136</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320963</attachid>
            <date>2017-09-15 14:22:31 -0700</date>
            <delta_ts>2017-09-15 14:23:29 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20474</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjExMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDk0IEBACisyMDE3LTA5LTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgV1NMIEV2YWx1YXRvciBzaG91bGQgb25seSBhbGxvY2F0ZSBFQnVmZmVycyB3aGVu
IGRlYWxpbmcgd2l0aCBpbnRyaW5zaWNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzY5NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZXRoZXIgb3Igbm90IHR3byB0ZW1wb3JhcnkgdmFs
dWVzIHNoYXJlIHRoZSBzYW1lIEVCdWZmZXIgaXMgdWx0aW1hdGVseSBvYnNlcnZhYmxlIGluIFdT
TCwKKyAgICAgICAgYmVjYXVzZSB5b3UgY2FuIGRvIHRoaXM6CisgICAgICAgIAorICAgICAgICAg
ICAgdGhyZWFkIGludF4gb3BlcmF0b3ImW10odGhyZWFkIGludF4gcHRyLCB1aW50IGluZGV4KQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGdfcHRyID0gcHRyOworICAgICAgICAgICAg
ICAgIHJldHVybiBwdHI7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBbmQgdGhl
biB0aGlzIGlzIGEgdGhpbmc6CisgICAgICAgIAorICAgICAgICAgICAgNDJbMF07CisgICAgICAg
ICAgICAvLyBnX3B0ciBub3cgcG9pbnRzIHRvIDQyJ3MgbG9jYXRpb24KKyAgICAgICAgCisgICAg
ICAgIE5vcm1hbGx5IHRoaXMgd291bGQgaGF2ZSBhIGxvdCBvZiBiYWQgaW1wbGljYXRpb25zLiBC
dXQgaW4gV1NMLCBpZiB5b3UgZGlkIGNob29zZSB0byBkbyB0aGlzLAorICAgICAgICB5b3UnZCBn
ZXQgYSBwb2ludGVyIHRvIHNvbWV0aGluZyB3ZWxsLWRlZmluZWQ6IHRoZSBFQnVmZmVyIG9mIDQy
J3MgR2VuZXJpY0xpdGVyYWwuIEVhY2ggc3RhdGljCisgICAgICAgIG9jY3VycmVuY2Ugb2YgYSBs
aXRlcmFsIGdldHMgaXRzIG93biBsb2NhdGlvbiwgYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIGxh
bmd1YWdlIGNhbGwgZm9yCisgICAgICAgIDQyIHRvIGJlIHN0b3JlZCBpbnRvIHRoaXMgbG9jYXRp
b24gd2hlbiBgNDJgICJleGVjdXRlcyIuIFNvLCB3aGlsZSB0aGUgcHJvZ3JhbW1lciBjb3VsZCBk
byBhbGwKKyAgICAgICAga2luZHMgb2Ygc3RyYW5nZSB0aGluZ3MsIGF0IGxlYXN0IHRoZSBzdHJh
bmdlbmVzcyB0aGV5IHdvdWxkIHNlZSBpcyBzb21ldGhpbmcgd2UgY2FuIHNwZWMuCisgICAgICAg
IAorICAgICAgICBCdXQgdG8gZG8gdGhpcywgdGhlIGludGVycHJldGVyIG5lZWRzIHRvIGFsbG9j
YXRlIEVCdWZmZXJzIGluIHRoZSBzYW1lIHdheSBhIGNvbXBpbGVyIHdvdWxkLgorICAgICAgICBJ
dCBjYW5ub3QgYWxsb2NhdGUgdGhlbSBkdXJpbmcgZXhlY3V0aW9uLCBleGNlcHQgd2hlbiBpbnRl
cmFjdGluZyB3aXRoIGludHJpbnNpY3MsIHdoaWNoIHdvbid0CisgICAgICAgIGtub3cgdGhlIGRp
ZmZlcmVuY2UuCisKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBl
ci5qczoKKyAgICAgICAgKEF1dG9XcmFwcGVyLnByb3RvdHlwZS52aXNpdEdlbmVyaWNMaXRlcmFs
VHlwZSk6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXROdWxsVHlwZSk6Cisg
ICAgICAgIChBdXRvV3JhcHBlcik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
Q2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUucmVz
b2x2ZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpz
OgorICAgICAgICAoY2FsbEZ1bmN0aW9uKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9DaGVja2VyLmpzOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlLnByb3RvdHlwZS5jb21taXRVbmlmaWNhdGlvbik6CisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRUJ1ZmZlci5qczoKKyAgICAgICAgKEVCdWZmZXIpOgorICAgICAgICAo
RUJ1ZmZlci5zZXRDYW5BbGxvY2F0ZUVCdWZmZXJzKToKKyAgICAgICAgKEVCdWZmZXIuZGlzYWxs
b3dBbGxvY2F0aW9uKToKKyAgICAgICAgKEVCdWZmZXIuYWxsb3dBbGxvY2F0aW9uKToKKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQnVmZmVyQnVpbGRlci5qczoKKyAgICAgICAg
KEVCdWZmZXJCdWlsZGVyLnByb3RvdHlwZS52aXNpdFZhcmlhYmxlRGVjbCk6CisgICAgICAgIChF
QnVmZmVyQnVpbGRlci5wcm90b3R5cGUudmlzaXRGdW5jRGVmKToKKyAgICAgICAgKEVCdWZmZXJC
dWlsZGVyLnByb3RvdHlwZS52aXNpdEZ1bmN0aW9uTGlrZUJsb2NrKToKKyAgICAgICAgKEVCdWZm
ZXJCdWlsZGVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKEVCdWZm
ZXJCdWlsZGVyLnByb3RvdHlwZS52aXNpdE1ha2VQdHJFeHByZXNzaW9uKToKKyAgICAgICAgKEVC
dWZmZXJCdWlsZGVyLnByb3RvdHlwZS52aXNpdEdlbmVyaWNMaXRlcmFsKToKKyAgICAgICAgKEVC
dWZmZXJCdWlsZGVyLnByb3RvdHlwZS52aXNpdE51bGxMaXRlcmFsKToKKyAgICAgICAgKEVCdWZm
ZXJCdWlsZGVyLnByb3RvdHlwZS52aXNpdEJvb2xMaXRlcmFsKToKKyAgICAgICAgKEVCdWZmZXJC
dWlsZGVyLnByb3RvdHlwZS52aXNpdExvZ2ljYWxOb3QpOgorICAgICAgICAoRUJ1ZmZlckJ1aWxk
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VQdHIuanM6CisgICAgICAg
IChFUHRyLmJveCk6CisgICAgICAgIChFUHRyLnByb3RvdHlwZS5ib3gpOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5qczoKKyAgICAgICAgKEV2YWx1YXRvci5w
cm90b3R5cGUuX3NuYXBzaG90KToKKyAgICAgICAgKEV2YWx1YXRvci5wcm90b3R5cGUucnVuRnVu
Yyk6CisgICAgICAgIChFdmFsdWF0b3IucHJvdG90eXBlLl9ydW5Cb2R5KToKKyAgICAgICAgKEV2
YWx1YXRvci5wcm90b3R5cGUudmlzaXRGdW5jdGlvbkxpa2VCbG9jayk6CisgICAgICAgIChFdmFs
dWF0b3IucHJvdG90eXBlLnZpc2l0TWFrZVB0ckV4cHJlc3Npb24pOgorICAgICAgICAoRXZhbHVh
dG9yLnByb3RvdHlwZS52aXNpdEdlbmVyaWNMaXRlcmFsKToKKyAgICAgICAgKEV2YWx1YXRvci5w
cm90b3R5cGUudmlzaXROdWxsTGl0ZXJhbCk6CisgICAgICAgIChFdmFsdWF0b3IucHJvdG90eXBl
LnZpc2l0Qm9vbExpdGVyYWwpOgorICAgICAgICAoRXZhbHVhdG9yLnByb3RvdHlwZS52aXNpdExv
Z2ljYWxOb3QpOgorICAgICAgICAoRXZhbHVhdG9yLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNz
aW9uKToKKyAgICAgICAgKEV2YWx1YXRvcik6CisgICAgICAgIChFdmFsdWF0b3IucHJvdG90eXBl
LnJ1bkJvZHkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
bGluZXIuanM6CisgICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9u
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0
ZXMuanM6CisgICAgICAgIChJbnN0YW50aWF0ZUltbWVkaWF0ZXMucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanM6Cisg
ICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRNYWtlUHRyRXhwcmVzc2lvbik6CisgICAg
ICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRHZW5lcmljTGl0ZXJhbCk6CisgICAgICAgIChS
ZXdyaXRlci5wcm90b3R5cGUudmlzaXROdWxsTGl0ZXJhbCk6CisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUudmlzaXRGdW5jdGlvbkxpa2VCbG9jayk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRMb2dpY2FsTm90KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
eXBlUmVmLmpzOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAg
ICAoVHlwZVJlZik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5q
czoKKyAgICAgICAgKFZpc2l0b3IucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKToKKwogMjAx
Ny0wOS0xNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFdTTCBz
aG91bGQgc3VwcG9ydCArKywgLS0sICs9LCBhbmQgYWxsIG9mIHRob3NlIHRoaW5ncwpJbmRleDog
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanMJKHJldmlzaW9u
IDIyMjEwNSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC02NCw0ICs2NCwxNCBAQCBjbGFzcyBBdXRvV3JhcHBlciBleHRl
bmRzIFJld3JpdGVyIHsKICAgICB7CiAgICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7
CiAgICAgfQorICAgIAorICAgIHZpc2l0R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUpCisgICAgewor
ICAgICAgICByZXR1cm4gbm9kZTsKKyAgICB9CisKKyAgICB2aXNpdE51bGxUeXBlKG5vZGUpCisg
ICAgeworICAgICAgICByZXR1cm4gbm9kZTsKKyAgICB9CiB9CkluZGV4OiBUb29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcwkocmV2aXNpb24gMjIyMTA1
KQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMJKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDEwIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVu
ZHMgRXhwcmVzc2lvbiAKICAgICByZXNvbHZlKG92ZXJsb2FkKQogICAgIHsKICAgICAgICAgdGhp
cy5mdW5jID0gb3ZlcmxvYWQuZnVuYzsKLSAgICAgICAgdGhpcy5hY3R1YWxUeXBlQXJndW1lbnRz
ID0gb3ZlcmxvYWQudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVu
dCBpbnN0YW5jZW9mIFR5cGUgPyBUeXBlUmVmLndyYXAodHlwZUFyZ3VtZW50KSA6IHR5cGVBcmd1
bWVudCk7CisgICAgICAgIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IG92ZXJsb2FkLnR5cGVB
cmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQgaW5zdGFuY2VvZiBUeXBl
ID8gdHlwZUFyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSA6IHR5cGVBcmd1bWVudCk7
CiAgICAgICAgIGxldCByZXN1bHQgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0
ZVRvVW5pZmljYXRpb24oCiAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJz
LCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQpOworICAgICAgICB0aGlzLnJlc3VsdFR5cGUg
PSByZXN1bHQudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwogICAgICAgICBpZiAoIXJlc3VsdCkK
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCByZXR1cm4gdHlwZSIpOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2Fs
bEZ1bmN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qcwkocmV2aXNpb24gMjIyMTA1KQorKysgVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3
IEBAIGZ1bmN0aW9uIGNhbGxGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCB0eXAKICAgICAgICAgdHlw
ZS52aXNpdChuZXcgU3RydWN0TGF5b3V0QnVpbGRlcigpKTsKICAgICAgICAgZnVuYy5wYXJhbWV0
ZXJzW2ldLmVQdHIuY29weUZyb20oYXJndW1lbnRMaXN0W2ldLmVQdHIsIHR5cGUuc2l6ZSk7CiAg
ICAgfQotICAgIGxldCByZXN1bHQgPSBuZXcgRXZhbHVhdG9yKHByb2dyYW0pLnJ1bkJvZHkoZnVu
Yy5yZXR1cm5UeXBlLCBmdW5jLmJvZHkpOworICAgIGxldCByZXN1bHQgPSBuZXcgRXZhbHVhdG9y
KHByb2dyYW0pLnJ1bkZ1bmMoZnVuYyk7CiAgICAgcmV0dXJuIG5ldyBUeXBlZFZhbHVlKGZ1bmMu
cmV0dXJuVHlwZS51bmlmeU5vZGUsIHJlc3VsdCk7CiB9CiAKSW5kZXg6IFRvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcwkocmV2aXNpb24gMjIyMTA1KQorKysgVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTU4LDcg
KzE1OCw3IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB7CiAgICAgICAg
IGxldCBzdHJ1Y3RUeXBlID0gbm9kZS5zdHJ1Y3QudmlzaXQodGhpcykudW5pZnlOb2RlOwogICAg
ICAgICAKLSAgICAgICAgbm9kZS5zdHJ1Y3RUeXBlID0gVHlwZVJlZi53cmFwKHN0cnVjdFR5cGUp
OworICAgICAgICBub2RlLnN0cnVjdFR5cGUgPSBzdHJ1Y3RUeXBlLnZpc2l0KG5ldyBBdXRvV3Jh
cHBlcigpKTsKICAgICAgICAgCiAgICAgICAgIGxldCB1bmRlcmx5aW5nU3RydWN0ID0gc3RydWN0
VHlwZTsKICAgICAgICAgCkBAIC0yODUsNyArMjg1LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRz
IFZpc2l0b3IgewogICAgICAgICAgICAgbGV0IG5ld0FyZ3VtZW50ID0gYXJndW1lbnQudmlzaXQo
dGhpcyk7CiAgICAgICAgICAgICBpZiAoIW5ld0FyZ3VtZW50KQogICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigidmlzaXRvciByZXR1cm5lZCBudWxsIGZvciAiICsgYXJndW1lbnQpOwot
ICAgICAgICAgICAgcmV0dXJuIFR5cGVSZWYud3JhcChuZXdBcmd1bWVudCk7CisgICAgICAgICAg
ICByZXR1cm4gbmV3QXJndW1lbnQudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwogICAgICAgICB9
KTsKICAgICAgICAgbm9kZS5hcmd1bWVudFR5cGVzID0gYXJndW1lbnRUeXBlczsKICAgICAgICAg
aWYgKG5vZGUucmV0dXJuVHlwZSkKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzCShyZXZpc2lvbiAyMjIxMDUpCisrKyBUb29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtODcsNyArODcsNyBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlwZShjb25maWcp
CiAgICAgICAgIAogICAgICAgICBjb21taXRVbmlmaWNhdGlvbih1bmlmaWNhdGlvbkNvbnRleHQp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHRoaXMudHlwZSA9IFR5cGVSZWYud3JhcCh1bmlmaWNh
dGlvbkNvbnRleHQuZmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLnR5cGUgPSB1bmlmaWNh
dGlvbkNvbnRleHQuZmluZCh0aGlzKS52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHRvU3RyaW5nKCkKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0VCdWZmZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRUJ1ZmZlci5qcwkocmV2aXNpb24gMjIyMTA1KQorKysgVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRUJ1ZmZlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjUsMTQgKzI1
LDM4IEBACiAidXNlIHN0cmljdCI7CiAKIGxldCBlQnVmZmVyQ291bnQgPSAwOworbGV0IGNhbkFs
bG9jYXRlRUJ1ZmZlcnMgPSB0cnVlOwogCiBjbGFzcyBFQnVmZmVyIHsKICAgICBjb25zdHJ1Y3Rv
cihzaXplKQogICAgIHsKKyAgICAgICAgaWYgKCFjYW5BbGxvY2F0ZUVCdWZmZXJzKQorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJUcnlpbmcgdG8gYWxsb2NhdGUgRUJ1ZmZlciB3aGlsZSBh
bGxvY2F0aW9uIGlzIGRpc2FsbG93ZWQiKTsKICAgICAgICAgdGhpcy5faW5kZXggPSBlQnVmZmVy
Q291bnQrKzsKICAgICAgICAgdGhpcy5fYXJyYXkgPSBuZXcgQXJyYXkoc2l6ZSk7CiAgICAgfQog
ICAgIAorICAgIHN0YXRpYyBzZXRDYW5BbGxvY2F0ZUVCdWZmZXJzKHZhbHVlLCBjYWxsYmFjaykK
KyAgICB7CisgICAgICAgIGxldCBvbGRDYW5BbGxvY2F0ZUVCdWZmZXJzID0gY2FuQWxsb2NhdGVF
QnVmZmVyczsKKyAgICAgICAgY2FuQWxsb2NhdGVFQnVmZmVycyA9IHZhbHVlOworICAgICAgICB0
cnkgeworICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CisgICAgICAgIH0gZmluYWxseSB7
CisgICAgICAgICAgICBjYW5BbGxvY2F0ZUVCdWZmZXJzID0gb2xkQ2FuQWxsb2NhdGVFQnVmZmVy
czsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZGlzYWxsb3dBbGxvY2F0aW9u
KGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEVCdWZmZXIuc2V0Q2FuQWxsb2NhdGVF
QnVmZmVycyhmYWxzZSwgY2FsbGJhY2spOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYWxsb3dB
bGxvY2F0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEVCdWZmZXIuc2V0Q2Fu
QWxsb2NhdGVFQnVmZmVycyh0cnVlLCBjYWxsYmFjayk7CisgICAgfQorICAgIAogICAgIGdldChp
bmRleCkKICAgICB7CiAgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fYXJy
YXkubGVuZ3RoKQpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRUJ1ZmZlckJ1
aWxkZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRUJ1
ZmZlckJ1aWxkZXIuanMJKHJldmlzaW9uIDIyMjEwNSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0VCdWZmZXJCdWlsZGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw1
MyBAQCBjbGFzcyBFQnVmZmVyQnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0VmFy
aWFibGVEZWNsKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9jcmVhdGVFUHRyRm9yTm9kZShu
b2RlKTsKKyAgICAgICAgaWYgKG5vZGUuaW5pdGlhbGl6ZXIpCisgICAgICAgICAgICBub2RlLmlu
aXRpYWxpemVyLnZpc2l0KHRoaXMpOworICAgIH0KKyAgICAKKyAgICB2aXNpdEZ1bmNEZWYobm9k
ZSkKKyAgICB7CisgICAgICAgIG5vZGUucmV0dXJuRVB0ciA9IHRoaXMuX2NyZWF0ZUVQdHIobm9k
ZS5yZXR1cm5UeXBlKTsKKyAgICAgICAgc3VwZXIudmlzaXRGdW5jRGVmKG5vZGUpOworICAgIH0K
KyAgICAKKyAgICB2aXNpdEZ1bmN0aW9uTGlrZUJsb2NrKG5vZGUpCisgICAgeworICAgICAgICBu
b2RlLnJldHVybkVQdHIgPSB0aGlzLl9jcmVhdGVFUHRyKG5vZGUucmV0dXJuVHlwZSk7CisgICAg
ICAgIHN1cGVyLnZpc2l0RnVuY3Rpb25MaWtlQmxvY2sobm9kZSk7CisgICAgfQorICAgIAorICAg
IHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKKyAgICB7CisgICAgICAgIG5vZGUucmVzdWx0RVB0
ciA9IHRoaXMuX2NyZWF0ZUVQdHIobm9kZS5yZXN1bHRUeXBlKTsKKyAgICAgICAgc3VwZXIudmlz
aXRDYWxsRXhwcmVzc2lvbihub2RlKTsKKyAgICB9CisgICAgCisgICAgdmlzaXRNYWtlUHRyRXhw
cmVzc2lvbihub2RlKQorICAgIHsKKyAgICAgICAgbm9kZS5lUHRyID0gRVB0ci5ib3goKTsKKyAg
ICAgICAgc3VwZXIudmlzaXRNYWtlUHRyRXhwcmVzc2lvbihub2RlKTsKKyAgICB9CisgICAgCisg
ICAgdmlzaXRHZW5lcmljTGl0ZXJhbChub2RlKQorICAgIHsKKyAgICAgICAgbm9kZS5lUHRyID0g
RVB0ci5ib3goKTsKKyAgICB9CisgICAgCisgICAgdmlzaXROdWxsTGl0ZXJhbChub2RlKQorICAg
IHsKKyAgICAgICAgbm9kZS5lUHRyID0gRVB0ci5ib3goKTsKKyAgICB9CisgICAgCisgICAgdmlz
aXRCb29sTGl0ZXJhbChub2RlKQorICAgIHsKKyAgICAgICAgbm9kZS5lUHRyID0gRVB0ci5ib3go
KTsKKyAgICB9CisgICAgCisgICAgdmlzaXRMb2dpY2FsTm90KG5vZGUpCisgICAgeworICAgICAg
ICBub2RlLmVQdHIgPSBFUHRyLmJveCgpOworICAgICAgICBzdXBlci52aXNpdExvZ2ljYWxOb3Qo
bm9kZSk7CiAgICAgfQogfQogCkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9F
UHRyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VQdHIu
anMJKHJldmlzaW9uIDIyMjEwNSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VQ
dHIuanMJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDEzIEBAIGNsYXNzIEVQdHIgewogICAg
IC8vIEluIGEgcmVhbCBleGVjdXRpb24gZW52aXJvbm1lbnQsIHVzZXMgb2YgdGhpcyBtYW5pZmVz
dCBhcyBTU0EgdGVtcG9yYXJpZXMuCiAgICAgc3RhdGljIGJveCh2YWx1ZSkKICAgICB7Ci0gICAg
ICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKLSAgICAgICAgYnVmZmVyLnNldCgwLCB2
YWx1ZSk7Ci0gICAgICAgIHJldHVybiBuZXcgRVB0cihidWZmZXIsIDApOworICAgICAgICByZXR1
cm4gbmV3IEVQdHIobmV3IEVCdWZmZXIoMSksIDApLmJveCh2YWx1ZSk7CisgICAgfQorICAgIAor
ICAgIGJveCh2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2J1ZmZlci5zZXQoMCwgdmFsdWUp
OworICAgICAgICByZXR1cm4gdGhpczsKICAgICB9CiAgICAgCiAgICAgZ2V0IGJ1ZmZlcigpIHsg
cmV0dXJuIHRoaXMuX2J1ZmZlcjsgfQpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvRXZhbHVhdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0V2YWx1YXRvci5qcwkocmV2aXNpb24gMjIyMTA1KQorKysgVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRXZhbHVhdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxOCArMzUsMjcg
QEAgY2xhc3MgRXZhbHVhdG9yIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgLy8gWW91IG11c3Qgc25h
cHNob3QgaWYgeW91IHVzZSBhIHZhbHVlIGluIHJ2YWx1ZSBjb250ZXh0LiBGb3IgZXhhbXBsZSwg
YSBjYWxsIGV4cHJlc3Npb24gd2lsbAogICAgIC8vIHNuYXBzaG90IGFsbCBvZiBpdHMgYXJndW1l
bnRzIGltbWVkYWl0ZWx5IHVwb24gZXhlY3V0aW5nIHRoZW0uIEluIGdlbmVyYWwsIGl0IHNob3Vs
ZCBub3QgYmUKICAgICAvLyBwb3NzaWJsZSBmb3IgYSBwb2ludGVyIHJldHVybmVkIGZyb20gYSB2
aXNpdCBtZXRob2QgaW4gcnZhbHVlIGNvbnRleHQgdG8gbGl2ZSBhY3Jvc3MgYW55IGVmZmVjdHMu
Ci0gICAgX3NuYXBzaG90KHR5cGUsIHB0cikKKyAgICBfc25hcHNob3QodHlwZSwgZHN0UHRyLCBz
cmNQdHIpCiAgICAgewogICAgICAgICBsZXQgc2l6ZSA9IHR5cGUuc2l6ZTsKICAgICAgICAgaWYg
KCFzaXplKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IHNpemUgb2Yg
dHlwZTogIiArIHR5cGUpOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZm
ZXIoc2l6ZSksIDApOwotICAgICAgICByZXN1bHQuY29weUZyb20ocHRyLCBzaXplKTsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgaWYgKCFkc3RQdHIpCisgICAgICAgICAgICBkc3RQ
dHIgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihzaXplKSwgMCk7CisgICAgICAgIGRzdFB0ci5jb3B5
RnJvbShzcmNQdHIsIHNpemUpOworICAgICAgICByZXR1cm4gZHN0UHRyOworICAgIH0KKyAgICAK
KyAgICBydW5GdW5jKGZ1bmMpCisgICAgeworICAgICAgICByZXR1cm4gRUJ1ZmZlci5kaXNhbGxv
d0FsbG9jYXRpb24oCisgICAgICAgICAgICAoKSA9PiB0aGlzLl9ydW5Cb2R5KGZ1bmMucmV0dXJu
VHlwZSwgZnVuYy5yZXR1cm5FUHRyLCBmdW5jLmJvZHkpKTsKICAgICB9CiAgICAgCi0gICAgcnVu
Qm9keSh0eXBlLCBibG9jaykKKyAgICBfcnVuQm9keSh0eXBlLCBwdHIsIGJsb2NrKQogICAgIHsK
KyAgICAgICAgaWYgKCFwdHIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgcHRy
Iik7CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBibG9jay52aXNpdCh0aGlzKTsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGF2ZSBhIGNoZWNrIHRoYXQgdGhlcmUgaXMgbm8g
d2F5IHRvIGRyb3Agb3V0IG9mIGEgZnVuY3Rpb24gd2l0aG91dApAQCAtNTYsNyArNjUsNyBAQCBj
bGFzcyBFdmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIGlmIChlID09IEJy
ZWFrRXhjZXB0aW9uIHx8IGUgPT0gQ29udGludWVFeGNlcHRpb24pCiAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbm90IHNlZSBicmVhay9jb250aW51ZSBhdCBmdW5jdGlv
biBzY29wZSIpOwogICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBSZXR1cm5FeGNlcHRpb24p
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NuYXBzaG90KHR5cGUsIGUudmFsdWUpOwor
ICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zbmFwc2hvdCh0eXBlLCBwdHIsIGUudmFsdWUp
OwogICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICAgfQogICAgIH0KQEAgLTY4LDcgKzc3LDcg
QEAgY2xhc3MgRXZhbHVhdG9yIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAgICAgbm9k
ZS5hcmd1bWVudExpc3RbaV0udmlzaXQodGhpcyksCiAgICAgICAgICAgICAgICAgbm9kZS5wYXJh
bWV0ZXJzW2ldLnR5cGUuc2l6ZSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRoaXMucnVu
Qm9keShub2RlLnJldHVyblR5cGUsIG5vZGUuYm9keSk7CisgICAgICAgIHJldHVybiB0aGlzLl9y
dW5Cb2R5KG5vZGUucmV0dXJuVHlwZSwgbm9kZS5yZXR1cm5FUHRyLCBub2RlLmJvZHkpOwogICAg
IH0KICAgICAKICAgICB2aXNpdFJldHVybihub2RlKQpAQCAtMTAzLDcgKzExMiw3IEBAIGNsYXNz
IEV2YWx1YXRvciBleHRlbmRzIFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0TWFrZVB0ckV4cHJl
c3Npb24obm9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBFUHRyLmJveChub2RlLmxWYWx1ZS52
aXNpdCh0aGlzKSk7CisgICAgICAgIHJldHVybiBub2RlLmVQdHIuYm94KG5vZGUubFZhbHVlLnZp
c2l0KHRoaXMpKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXREb3RFeHByZXNzaW9uKG5vZGUpCkBA
IC0xMjgsMjMgKzEzNywyMyBAQCBjbGFzcyBFdmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICAKICAgICB2aXNpdEdlbmVyaWNMaXRlcmFsKG5vZGUpCiAgICAgewotICAgICAgICByZXR1cm4g
RVB0ci5ib3gobm9kZS52YWx1ZSk7CisgICAgICAgIHJldHVybiBub2RlLmVQdHIuYm94KG5vZGUu
dmFsdWUpOwogICAgIH0KICAgICAKICAgICB2aXNpdE51bGxMaXRlcmFsKG5vZGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gRVB0ci5ib3gobnVsbCk7CisgICAgICAgIHJldHVybiBub2RlLmVQdHIu
Ym94KG51bGwpOwogICAgIH0KICAgICAKICAgICB2aXNpdEJvb2xMaXRlcmFsKG5vZGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gRVB0ci5ib3gobm9kZS52YWx1ZSk7CisgICAgICAgIHJldHVybiBu
b2RlLmVQdHIuYm94KG5vZGUudmFsdWUpOwogICAgIH0KIAogICAgIHZpc2l0TG9naWNhbE5vdChu
b2RlKQogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9ICFub2RlLm9wZXJhbmQudmlzaXQodGhp
cykubG9hZFZhbHVlKCk7Ci0gICAgICAgIHJldHVybiBFUHRyLmJveChyZXN1bHQpOworICAgICAg
ICByZXR1cm4gbm9kZS5lUHRyLmJveChyZXN1bHQpOwogICAgIH0KIAogICAgIHZpc2l0SWZTdGF0
ZW1lbnQobm9kZSkKQEAgLTIyMiw5ICsyMzEsMTYgQEAgY2xhc3MgRXZhbHVhdG9yIGV4dGVuZHMg
VmlzaXRvciB7CiAgICAgICAgICAgICBpZiAoIXR5cGUgfHwgIWFyZ3VtZW50KQogICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCB0eXBlIG9yIGFyZ3VtZW50OyBpID0g
IiArIGkgKyAiLCBhcmd1bWVudCA9ICIgKyBhcmd1bWVudCArICIsIHR5cGUgPSAiICsgdHlwZSAr
ICI7IGluICIgKyBub2RlKTsKICAgICAgICAgICAgIGxldCBhcmd1bWVudFZhbHVlID0gYXJndW1l
bnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBjYWxsQXJndW1lbnRzLnB1c2godGhpcy5fc25h
cHNob3QodHlwZSwgYXJndW1lbnRWYWx1ZSkpOworICAgICAgICAgICAgY2FsbEFyZ3VtZW50cy5w
dXNoKCgpID0+IHRoaXMuX3NuYXBzaG90KHR5cGUsIG51bGwsIGFyZ3VtZW50VmFsdWUpKTsKICAg
ICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS5mdW5jLmltcGxlbWVudGF0aW9uKGNhbGxBcmd1
bWVudHMsIG5vZGUpOworICAgICAgICAKKyAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHksIHdlIGFs
bG93IGludHJpbnNpY3MgdG8ganVzdCBhbGxvY2F0ZSBuZXcgYnVmZmVycywgYW5kIHdlIGFsbG9j
YXRlIG5ldworICAgICAgICAvLyBidWZmZXJzIHdoZW4gc25hcHNob3R0aW5nIHRoZWlyIGFyZ3Vt
ZW50cy4gVGhpcyBpcyBub3Qgb2JzZXJ2YWJsZSB0byB0aGUgdXNlciwgc28gaXQncyBPSy4KKyAg
ICAgICAgbGV0IHJlc3VsdCA9IEVCdWZmZXIuYWxsb3dBbGxvY2F0aW9uKAorICAgICAgICAgICAg
KCkgPT4gbm9kZS5mdW5jLmltcGxlbWVudGF0aW9uKGNhbGxBcmd1bWVudHMubWFwKHRodW5rID0+
IHRodW5rKCkpLCBub2RlKSk7CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSB0aGlzLl9zbmFw
c2hvdChub2RlLm5hdGl2ZUZ1bmNJbnN0YW5jZS5yZXR1cm5UeXBlLCBub2RlLnJlc3VsdEVQdHIs
IHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogfQogCkluZGV4OiBUb29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVyLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMJKHJldmlzaW9uIDIyMjEwNSkKKysr
IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMJKHdvcmtpbmcgY29weSkK
QEAgLTUxLDggKzUxLDEwIEBAIGNsYXNzIElubGluZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIF9p
bmxpbmVGdW5jdGlvbih0aGlzLl9wcm9ncmFtLCBmdW5jLCB0aGlzLl92aXNpdGluZyk7Ci0gICAg
ICAgICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uTGlrZUJsb2NrKAorICAgICAgICAgICAgbGV0IHJl
c3VsdGluZ0Jsb2NrID0gbmV3IEZ1bmN0aW9uTGlrZUJsb2NrKAogICAgICAgICAgICAgICAgIHJl
c3VsdC5vcmlnaW4sIGZ1bmMucmV0dXJuVHlwZSwgcmVzdWx0LmFyZ3VtZW50TGlzdCwgZnVuYy5w
YXJhbWV0ZXJzLCBmdW5jLmJvZHkpOworICAgICAgICAgICAgcmVzdWx0aW5nQmxvY2sucmV0dXJu
RVB0ciA9IHJlc3VsdC5yZXN1bHRFUHRyOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdGluZ0Js
b2NrOwogICAgICAgICB9KTsKICAgICB9CiAKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMJKHJldmlzaW9uIDIy
MjEwNSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBjbGFzcyBJbnN0YW50aWF0
ZUltbWVkaWF0ZXMgZXh0ZW5kcyBSZXdyCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewog
ICAgICAgICBub2RlID0gc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwotICAgICAgICBsZXQgcmVz
dWx0ID0gVHlwZVJlZi53cmFwKG5vZGUuaW5zdGFudGlhdGVkVHlwZSk7CisgICAgICAgIGxldCBy
ZXN1bHQgPSBub2RlLmluc3RhbnRpYXRlZFR5cGUudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKSW5kZXg6IFRvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCShyZXZpc2lvbiAyMjIxMDUpCisrKyBUb29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMTg2
LDcgKzE4Niw5IEBAIGNsYXNzIFJld3JpdGVyIGV4dGVuZHMgVmlzaXRvckJhc2UgewogICAgIAog
ICAgIHZpc2l0TWFrZVB0ckV4cHJlc3Npb24obm9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBu
ZXcgTWFrZVB0ckV4cHJlc3Npb24obm9kZS5vcmlnaW4sIG5vZGUubFZhbHVlLnZpc2l0KHRoaXMp
KTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBNYWtlUHRyRXhwcmVzc2lvbihub2RlLm9yaWdp
biwgbm9kZS5sVmFsdWUudmlzaXQodGhpcykpOworICAgICAgICByZXN1bHQuZVB0ciA9IG5vZGUu
ZVB0cjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgdmlzaXRWYXJp
YWJsZVJlZihub2RlKQpAQCAtMjE1LDYgKzIxNyw3IEBAIGNsYXNzIFJld3JpdGVyIGV4dGVuZHMg
VmlzaXRvckJhc2UgewogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBJbnRMaXRlcmFs
KG5vZGUub3JpZ2luLCBub2RlLnZhbHVlKTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSBub2RlLnR5
cGUudmlzaXQodGhpcyk7CisgICAgICAgIHJlc3VsdC5lUHRyID0gbm9kZS5lUHRyOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKQEAgLTIzNSw2ICsyMzgsNyBAQCBjbGFzcyBS
ZXdyaXRlciBleHRlbmRzIFZpc2l0b3JCYXNlIHsKICAgICB7CiAgICAgICAgIGxldCByZXN1bHQg
PSBuZXcgTnVsbExpdGVyYWwobm9kZS5vcmlnaW4pOwogICAgICAgICByZXN1bHQudHlwZSA9IG5v
ZGUudHlwZS52aXNpdCh0aGlzKTsKKyAgICAgICAgcmVzdWx0LmVQdHIgPSBub2RlLmVQdHI7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMjYwLDYgKzI2NCw4IEBAIGNs
YXNzIFJld3JpdGVyIGV4dGVuZHMgVmlzaXRvckJhc2UgewogICAgICAgICByZXN1bHQucG9zc2li
bGVPdmVybG9hZHMgPSBub2RlLnBvc3NpYmxlT3ZlcmxvYWRzOwogICAgICAgICBpZiAobm9kZS5p
c0Nhc3QpCiAgICAgICAgICAgICByZXN1bHQuc2V0Q2FzdERhdGEobm9kZS5yZXR1cm5UeXBlLnZp
c2l0KHRoaXMpKTsKKyAgICAgICAgcmVzdWx0LnJlc3VsdFR5cGUgPSBub2RlLnJlc3VsdFR5cGUg
PyBub2RlLnJlc3VsdFR5cGUudmlzaXQodGhpcykgOiBudWxsOworICAgICAgICByZXN1bHQucmVz
dWx0RVB0ciA9IG5vZGUucmVzdWx0RVB0cjsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CiAKQEAgLTI3NCwxNiArMjgwLDIwIEBAIGNsYXNzIFJld3JpdGVyIGV4dGVuZHMgVmlzaXRvckJh
c2UgewogICAgIAogICAgIHZpc2l0RnVuY3Rpb25MaWtlQmxvY2sobm9kZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaWtlQmxvY2soCisgICAgICAgIGxldCByZXN1bHQgPSBu
ZXcgRnVuY3Rpb25MaWtlQmxvY2soCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwKICAgICAgICAg
ICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52aXNpdCh0aGlz
KSksCiAgICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0
ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpKTsKKyAg
ICAgICAgcmVzdWx0LnJldHVybkVQdHIgPSBub2RlLnJldHVybkVQdHI7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogICAgIAogICAgIHZpc2l0TG9naWNhbE5vdChub2RlKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIG5ldyBMb2dpY2FsTm90KG5vZGUub3JpZ2luLCBub2RlLm9wZXJhbmQu
dmlzaXQodGhpcykpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IExvZ2ljYWxOb3Qobm9kZS5v
cmlnaW4sIG5vZGUub3BlcmFuZC52aXNpdCh0aGlzKSk7CisgICAgICAgIHJlc3VsdC5lUHRyID0g
bm9kZS5lUHRyOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIHZpc2l0SWZT
dGF0ZW1lbnQobm9kZSkKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVS
ZWYuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJl
Zi5qcwkocmV2aXNpb24gMjIyMTA1KQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VHlwZVJlZi5qcwkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIFR5cGVS
ZWYgZXh0ZW5kcyBUeXBlIHsKICAgICB0b1N0cmluZygpCiAgICAgewogICAgICAgICBpZiAoIXRo
aXMubmFtZSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmcoKTsKKyAgICAg
ICAgICAgIHJldHVybiAicmVmOiIgKyB0aGlzLnR5cGUudG9TdHJpbmcoKTsKICAgICAgICAgaWYg
KCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFt
ZTsKICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyAr
ICI+IjsKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwkocmV2
aXNpb24gMjIyMTA1KQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5q
cwkod29ya2luZyBjb3B5KQpAQCAtMjk1LDYgKzI5NSw4IEBAIGNsYXNzIFZpc2l0b3IgZXh0ZW5k
cyBWaXNpdG9yQmFzZSB7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGUucmV0dXJuVHlwZSkK
ICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKTsKKyAgICAgICAgaWYgKG5v
ZGUucmVzdWx0VHlwZSkKKyAgICAgICAgICAgIG5vZGUucmVzdWx0VHlwZS52aXNpdCh0aGlzKTsK
ICAgICB9CiAgICAgCiAgICAgdmlzaXRMb2dpY2FsTm90KG5vZGUpCkBAIC0zMDksNiArMzExLDgg
QEAgY2xhc3MgVmlzaXRvciBleHRlbmRzIFZpc2l0b3JCYXNlIHsKICAgICAgICAgZm9yIChsZXQg
cGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNp
dCh0aGlzKTsKICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpOworICAgICAgICBpZiAobm9k
ZS5yZXN1bHRUeXBlKQorICAgICAgICAgICAgbm9kZS5yZXN1bHRUeXBlLnZpc2l0KHRoaXMpOwog
ICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320964</attachid>
            <date>2017-09-15 14:23:29 -0700</date>
            <delta_ts>2017-09-15 16:08:17 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20649</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMjExMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDk2IEBACisyMDE3LTA5LTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgV1NMIEV2YWx1YXRvciBzaG91bGQgb25seSBhbGxvY2F0ZSBFQnVmZmVycyB3aGVu
IGRlYWxpbmcgd2l0aCBpbnRyaW5zaWNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzY5NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZXRoZXIgb3Igbm90IHR3byB0ZW1wb3JhcnkgdmFs
dWVzIHNoYXJlIHRoZSBzYW1lIEVCdWZmZXIgaXMgdWx0aW1hdGVseSBvYnNlcnZhYmxlIGluIFdT
TCwKKyAgICAgICAgYmVjYXVzZSB5b3UgY2FuIGRvIHRoaXM6CisgICAgICAgIAorICAgICAgICAg
ICAgdGhyZWFkIGludF4gb3BlcmF0b3ImW10odGhyZWFkIGludF4gcHRyLCB1aW50IGluZGV4KQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGdfcHRyID0gcHRyOworICAgICAgICAgICAg
ICAgIHJldHVybiBwdHI7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBbmQgdGhl
biB0aGlzIGlzIGEgdGhpbmc6CisgICAgICAgIAorICAgICAgICAgICAgNDJbMF07CisgICAgICAg
ICAgICAvLyBnX3B0ciBub3cgcG9pbnRzIHRvIDQyJ3MgbG9jYXRpb24KKyAgICAgICAgCisgICAg
ICAgIE5vcm1hbGx5IHRoaXMgd291bGQgaGF2ZSBhIGxvdCBvZiBiYWQgaW1wbGljYXRpb25zLiBC
dXQgaW4gV1NMLCBpZiB5b3UgZGlkIGNob29zZSB0byBkbyB0aGlzLAorICAgICAgICB5b3UnZCBn
ZXQgYSBwb2ludGVyIHRvIHNvbWV0aGluZyB3ZWxsLWRlZmluZWQ6IHRoZSBFQnVmZmVyIG9mIDQy
J3MgR2VuZXJpY0xpdGVyYWwuIEVhY2ggc3RhdGljCisgICAgICAgIG9jY3VycmVuY2Ugb2YgYSBs
aXRlcmFsIGdldHMgaXRzIG93biBsb2NhdGlvbiwgYW5kIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIGxh
bmd1YWdlIGNhbGwgZm9yCisgICAgICAgIDQyIHRvIGJlIHN0b3JlZCBpbnRvIHRoaXMgbG9jYXRp
b24gd2hlbiBgNDJgICJleGVjdXRlcyIuIFNvLCB3aGlsZSB0aGUgcHJvZ3JhbW1lciBjb3VsZCBk
byBhbGwKKyAgICAgICAga2luZHMgb2Ygc3RyYW5nZSB0aGluZ3MsIGF0IGxlYXN0IHRoZSBzdHJh
bmdlbmVzcyB0aGV5IHdvdWxkIHNlZSBpcyBzb21ldGhpbmcgd2UgY2FuIHNwZWMuCisgICAgICAg
IAorICAgICAgICBCdXQgdG8gZG8gdGhpcywgdGhlIGludGVycHJldGVyIG5lZWRzIHRvIGFsbG9j
YXRlIEVCdWZmZXJzIGluIHRoZSBzYW1lIHdheSBhIGNvbXBpbGVyIHdvdWxkLgorICAgICAgICBJ
dCBjYW5ub3QgYWxsb2NhdGUgdGhlbSBkdXJpbmcgZXhlY3V0aW9uLCBleGNlcHQgd2hlbiBpbnRl
cmFjdGluZyB3aXRoIGludHJpbnNpY3MsIHdoaWNoIHdvbid0CisgICAgICAgIGtub3cgdGhlIGRp
ZmZlcmVuY2UuCisgICAgICAgIAorICAgICAgICBJbiB0aGUgcHJvY2VzcywgSSBmb3VuZCBwbGFj
ZXMgdGhhdCBuZWVkZWQgdG8gdXNlIEF1dG9XcmFwcGVyIGluc3RlYWQgb2YgVHlwZVJlZi53cmFw
LgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6Cisg
ICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRHZW5lcmljTGl0ZXJhbFR5cGUpOgor
ICAgICAgICAoQXV0b1dyYXBwZXIucHJvdG90eXBlLnZpc2l0TnVsbFR5cGUpOgorICAgICAgICAo
QXV0b1dyYXBwZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHBy
ZXNzaW9uLmpzOgorICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAg
ICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hl
Y2tlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFs
VHlwZS5qczoKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUuY29tbWl0VW5pZmljYXRpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0VCdWZmZXIuanM6CisgICAgICAgIChFQnVmZmVyKToKKyAgICAgICAgKEVCdWZmZXIu
c2V0Q2FuQWxsb2NhdGVFQnVmZmVycyk6CisgICAgICAgIChFQnVmZmVyLmRpc2FsbG93QWxsb2Nh
dGlvbik6CisgICAgICAgIChFQnVmZmVyLmFsbG93QWxsb2NhdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRUJ1ZmZlckJ1aWxkZXIuanM6CisgICAgICAgIChFQnVmZmVy
QnVpbGRlci5wcm90b3R5cGUudmlzaXRWYXJpYWJsZURlY2wpOgorICAgICAgICAoRUJ1ZmZlckJ1
aWxkZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAgIChFQnVmZmVyQnVpbGRlci5w
cm90b3R5cGUudmlzaXRGdW5jdGlvbkxpa2VCbG9jayk6CisgICAgICAgIChFQnVmZmVyQnVpbGRl
ci5wcm90b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChFQnVmZmVyQnVpbGRl
ci5wcm90b3R5cGUudmlzaXRNYWtlUHRyRXhwcmVzc2lvbik6CisgICAgICAgIChFQnVmZmVyQnVp
bGRlci5wcm90b3R5cGUudmlzaXRHZW5lcmljTGl0ZXJhbCk6CisgICAgICAgIChFQnVmZmVyQnVp
bGRlci5wcm90b3R5cGUudmlzaXROdWxsTGl0ZXJhbCk6CisgICAgICAgIChFQnVmZmVyQnVpbGRl
ci5wcm90b3R5cGUudmlzaXRCb29sTGl0ZXJhbCk6CisgICAgICAgIChFQnVmZmVyQnVpbGRlci5w
cm90b3R5cGUudmlzaXRMb2dpY2FsTm90KToKKyAgICAgICAgKEVCdWZmZXJCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FUHRyLmpzOgorICAgICAgICAoRVB0ci5i
b3gpOgorICAgICAgICAoRVB0ci5wcm90b3R5cGUuYm94KToKKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanM6CisgICAgICAgIChFdmFsdWF0b3IucHJvdG90eXBl
Ll9zbmFwc2hvdCk6CisgICAgICAgIChFdmFsdWF0b3IucHJvdG90eXBlLnJ1bkZ1bmMpOgorICAg
ICAgICAoRXZhbHVhdG9yLnByb3RvdHlwZS5fcnVuQm9keSk6CisgICAgICAgIChFdmFsdWF0b3Iu
cHJvdG90eXBlLnZpc2l0RnVuY3Rpb25MaWtlQmxvY2spOgorICAgICAgICAoRXZhbHVhdG9yLnBy
b3RvdHlwZS52aXNpdE1ha2VQdHJFeHByZXNzaW9uKToKKyAgICAgICAgKEV2YWx1YXRvci5wcm90
b3R5cGUudmlzaXRHZW5lcmljTGl0ZXJhbCk6CisgICAgICAgIChFdmFsdWF0b3IucHJvdG90eXBl
LnZpc2l0TnVsbExpdGVyYWwpOgorICAgICAgICAoRXZhbHVhdG9yLnByb3RvdHlwZS52aXNpdEJv
b2xMaXRlcmFsKToKKyAgICAgICAgKEV2YWx1YXRvci5wcm90b3R5cGUudmlzaXRMb2dpY2FsTm90
KToKKyAgICAgICAgKEV2YWx1YXRvci5wcm90b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6Cisg
ICAgICAgIChFdmFsdWF0b3IpOgorICAgICAgICAoRXZhbHVhdG9yLnByb3RvdHlwZS5ydW5Cb2R5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVyLmpz
OgorICAgICAgICAoSW5saW5lci5wcm90b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzOgor
ICAgICAgICAoSW5zdGFudGlhdGVJbW1lZGlhdGVzLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0TWFrZVB0ckV4cHJlc3Npb24pOgorICAgICAgICAoUmV3
cml0ZXIucHJvdG90eXBlLnZpc2l0R2VuZXJpY0xpdGVyYWwpOgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0TnVsbExpdGVyYWwpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBl
LnByb2Nlc3NEZXJpdmVkQ2FsbERhdGEpOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZp
c2l0RnVuY3Rpb25MaWtlQmxvY2spOgorICAgICAgICAoUmV3cml0ZXIucHJvdG90eXBlLnZpc2l0
TG9naWNhbE5vdCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5q
czoKKyAgICAgICAgKFR5cGVSZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFR5cGVS
ZWYpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanM6CisgICAg
ICAgIChWaXNpdG9yLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6CisKIDIwMTctMDktMTQg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBXU0wgc2hvdWxkIHN1
cHBvcnQgKyssIC0tLCArPSwgYW5kIGFsbCBvZiB0aG9zZSB0aGluZ3MKSW5kZXg6IFRvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCShyZXZpc2lvbiAyMjIxMTEp
CisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsNCArNjQsMTQgQEAgY2xhc3MgQXV0b1dyYXBwZXIgZXh0ZW5kcyBSZXdy
aXRlciB7CiAgICAgewogICAgICAgICByZXR1cm4gVHlwZVJlZi53cmFwKG5vZGUpOwogICAgIH0K
KyAgICAKKyAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG5vZGU7CisgICAgfQorCisgICAgdmlzaXROdWxsVHlwZShub2RlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG5vZGU7CisgICAgfQogfQpJbmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMJKHJldmlzaW9uIDIyMjExMSkKKysrIFRv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC00NSw5ICs0NSwxMCBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJl
c3Npb24gCiAgICAgcmVzb2x2ZShvdmVybG9hZCkKICAgICB7CiAgICAgICAgIHRoaXMuZnVuYyA9
IG92ZXJsb2FkLmZ1bmM7Ci0gICAgICAgIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IG92ZXJs
b2FkLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQgaW5zdGFu
Y2VvZiBUeXBlID8gVHlwZVJlZi53cmFwKHR5cGVBcmd1bWVudCkgOiB0eXBlQXJndW1lbnQpOwor
ICAgICAgICB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPSBvdmVybG9hZC50eXBlQXJndW1lbnRz
Lm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50IGluc3RhbmNlb2YgVHlwZSA/IHR5cGVB
cmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkgOiB0eXBlQXJndW1lbnQpOwogICAgICAg
ICBsZXQgcmVzdWx0ID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZp
Y2F0aW9uKAogICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3Zlcmxv
YWQudW5pZmljYXRpb25Db250ZXh0KTsKKyAgICAgICAgdGhpcy5yZXN1bHRUeXBlID0gcmVzdWx0
LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKTsKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgcmV0dXJuIHR5cGUiKTsKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlv
bi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVu
Y3Rpb24uanMJKHJldmlzaW9uIDIyMjExMSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0NhbGxGdW5jdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBmdW5j
dGlvbiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgdHlwCiAgICAgICAgIHR5cGUudmlzaXQo
bmV3IFN0cnVjdExheW91dEJ1aWxkZXIoKSk7CiAgICAgICAgIGZ1bmMucGFyYW1ldGVyc1tpXS5l
UHRyLmNvcHlGcm9tKGFyZ3VtZW50TGlzdFtpXS5lUHRyLCB0eXBlLnNpemUpOwogICAgIH0KLSAg
ICBsZXQgcmVzdWx0ID0gbmV3IEV2YWx1YXRvcihwcm9ncmFtKS5ydW5Cb2R5KGZ1bmMucmV0dXJu
VHlwZSwgZnVuYy5ib2R5KTsKKyAgICBsZXQgcmVzdWx0ID0gbmV3IEV2YWx1YXRvcihwcm9ncmFt
KS5ydW5GdW5jKGZ1bmMpOwogICAgIHJldHVybiBuZXcgVHlwZWRWYWx1ZShmdW5jLnJldHVyblR5
cGUudW5pZnlOb2RlLCByZXN1bHQpOwogfQogCkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9DaGVja2VyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NoZWNrZXIuanMJKHJldmlzaW9uIDIyMjExMSkKKysrIFRvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NoZWNrZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBA
QCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAgICAgICBsZXQgc3Ry
dWN0VHlwZSA9IG5vZGUuc3RydWN0LnZpc2l0KHRoaXMpLnVuaWZ5Tm9kZTsKICAgICAgICAgCi0g
ICAgICAgIG5vZGUuc3RydWN0VHlwZSA9IFR5cGVSZWYud3JhcChzdHJ1Y3RUeXBlKTsKKyAgICAg
ICAgbm9kZS5zdHJ1Y3RUeXBlID0gc3RydWN0VHlwZS52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7
CiAgICAgICAgIAogICAgICAgICBsZXQgdW5kZXJseWluZ1N0cnVjdCA9IHN0cnVjdFR5cGU7CiAg
ICAgICAgIApAQCAtMjk1LDcgKzI5NSw3IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKICAgICAgICAgICAgIGxldCBuZXdBcmd1bWVudCA9IGFyZ3VtZW50LnZpc2l0KHRoaXMpOwog
ICAgICAgICAgICAgaWYgKCFuZXdBcmd1bWVudCkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoInZpc2l0b3IgcmV0dXJuZWQgbnVsbCBmb3IgIiArIGFyZ3VtZW50KTsKLSAgICAgICAg
ICAgIHJldHVybiBUeXBlUmVmLndyYXAobmV3QXJndW1lbnQpOworICAgICAgICAgICAgcmV0dXJu
IG5ld0FyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKTsKICAgICAgICAgfSk7CiAgICAg
ICAgIG5vZGUuYXJndW1lbnRUeXBlcyA9IGFyZ3VtZW50VHlwZXM7CiAgICAgICAgIGlmIChub2Rl
LnJldHVyblR5cGUpCkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVM
aXRlcmFsVHlwZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9DcmVhdGVMaXRlcmFsVHlwZS5qcwkocmV2aXNpb24gMjIyMTExKQorKysgVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMJKHdvcmtpbmcgY29weSkKQEAg
LTg3LDcgKzg3LDcgQEAgZnVuY3Rpb24gY3JlYXRlTGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAg
ICAKICAgICAgICAgY29tbWl0VW5pZmljYXRpb24odW5pZmljYXRpb25Db250ZXh0KQogICAgICAg
ICB7Ci0gICAgICAgICAgICB0aGlzLnR5cGUgPSBUeXBlUmVmLndyYXAodW5pZmljYXRpb25Db250
ZXh0LmZpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy50eXBlID0gdW5pZmljYXRpb25Db250
ZXh0LmZpbmQodGhpcykudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICB0b1N0cmluZygpCkluZGV4OiBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FQnVmZmVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0VCdWZmZXIuanMJKHJldmlzaW9uIDIyMjExMSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0VCdWZmZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE0ICsyNSwzOCBAQAog
InVzZSBzdHJpY3QiOwogCiBsZXQgZUJ1ZmZlckNvdW50ID0gMDsKK2xldCBjYW5BbGxvY2F0ZUVC
dWZmZXJzID0gdHJ1ZTsKIAogY2xhc3MgRUJ1ZmZlciB7CiAgICAgY29uc3RydWN0b3Ioc2l6ZSkK
ICAgICB7CisgICAgICAgIGlmICghY2FuQWxsb2NhdGVFQnVmZmVycykKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiVHJ5aW5nIHRvIGFsbG9jYXRlIEVCdWZmZXIgd2hpbGUgYWxsb2NhdGlv
biBpcyBkaXNhbGxvd2VkIik7CiAgICAgICAgIHRoaXMuX2luZGV4ID0gZUJ1ZmZlckNvdW50Kys7
CiAgICAgICAgIHRoaXMuX2FycmF5ID0gbmV3IEFycmF5KHNpemUpOwogICAgIH0KICAgICAKKyAg
ICBzdGF0aWMgc2V0Q2FuQWxsb2NhdGVFQnVmZmVycyh2YWx1ZSwgY2FsbGJhY2spCisgICAgewor
ICAgICAgICBsZXQgb2xkQ2FuQWxsb2NhdGVFQnVmZmVycyA9IGNhbkFsbG9jYXRlRUJ1ZmZlcnM7
CisgICAgICAgIGNhbkFsbG9jYXRlRUJ1ZmZlcnMgPSB2YWx1ZTsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAg
ICAgICAgY2FuQWxsb2NhdGVFQnVmZmVycyA9IG9sZENhbkFsbG9jYXRlRUJ1ZmZlcnM7CisgICAg
ICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGRpc2FsbG93QWxsb2NhdGlvbihjYWxsYmFj
aykKKyAgICB7CisgICAgICAgIHJldHVybiBFQnVmZmVyLnNldENhbkFsbG9jYXRlRUJ1ZmZlcnMo
ZmFsc2UsIGNhbGxiYWNrKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGFsbG93QWxsb2NhdGlv
bihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHJldHVybiBFQnVmZmVyLnNldENhbkFsbG9jYXRl
RUJ1ZmZlcnModHJ1ZSwgY2FsbGJhY2spOworICAgIH0KKyAgICAKICAgICBnZXQoaW5kZXgpCiAg
ICAgewogICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRoaXMuX2FycmF5Lmxlbmd0
aCkKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VCdWZmZXJCdWlsZGVyLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VCdWZmZXJCdWls
ZGVyLmpzCShyZXZpc2lvbiAyMjIxMTEpCisrKyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9FQnVmZmVyQnVpbGRlci5qcwkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNTEgQEAgY2xh
c3MgRUJ1ZmZlckJ1aWxkZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIG5vZGUuaW5p
dGlhbGl6ZXIudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAorICAgIHZpc2l0RnVuY0RlZihub2Rl
KQorICAgIHsKKyAgICAgICAgbm9kZS5yZXR1cm5FUHRyID0gdGhpcy5fY3JlYXRlRVB0cihub2Rl
LnJldHVyblR5cGUpOworICAgICAgICBzdXBlci52aXNpdEZ1bmNEZWYobm9kZSk7CisgICAgfQor
ICAgIAorICAgIHZpc2l0RnVuY3Rpb25MaWtlQmxvY2sobm9kZSkKKyAgICB7CisgICAgICAgIG5v
ZGUucmV0dXJuRVB0ciA9IHRoaXMuX2NyZWF0ZUVQdHIobm9kZS5yZXR1cm5UeXBlKTsKKyAgICAg
ICAgc3VwZXIudmlzaXRGdW5jdGlvbkxpa2VCbG9jayhub2RlKTsKKyAgICB9CisgICAgCisgICAg
dmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQorICAgIHsKKyAgICAgICAgbm9kZS5yZXN1bHRFUHRy
ID0gdGhpcy5fY3JlYXRlRVB0cihub2RlLnJlc3VsdFR5cGUpOworICAgICAgICBzdXBlci52aXNp
dENhbGxFeHByZXNzaW9uKG5vZGUpOworICAgIH0KKyAgICAKKyAgICB2aXNpdE1ha2VQdHJFeHBy
ZXNzaW9uKG5vZGUpCisgICAgeworICAgICAgICBub2RlLmVQdHIgPSBFUHRyLmJveCgpOworICAg
ICAgICBzdXBlci52aXNpdE1ha2VQdHJFeHByZXNzaW9uKG5vZGUpOworICAgIH0KKyAgICAKKyAg
ICB2aXNpdEdlbmVyaWNMaXRlcmFsKG5vZGUpCisgICAgeworICAgICAgICBub2RlLmVQdHIgPSBF
UHRyLmJveCgpOworICAgIH0KKyAgICAKKyAgICB2aXNpdE51bGxMaXRlcmFsKG5vZGUpCisgICAg
eworICAgICAgICBub2RlLmVQdHIgPSBFUHRyLmJveCgpOworICAgIH0KKyAgICAKKyAgICB2aXNp
dEJvb2xMaXRlcmFsKG5vZGUpCisgICAgeworICAgICAgICBub2RlLmVQdHIgPSBFUHRyLmJveCgp
OworICAgIH0KKyAgICAKKyAgICB2aXNpdExvZ2ljYWxOb3Qobm9kZSkKKyAgICB7CisgICAgICAg
IG5vZGUuZVB0ciA9IEVQdHIuYm94KCk7CisgICAgICAgIHN1cGVyLnZpc2l0TG9naWNhbE5vdChu
b2RlKTsKKyAgICB9CisgICAgCiAgICAgdmlzaXRMZXRFeHByZXNzaW9uKG5vZGUpCiAgICAgewog
ICAgICAgICB0aGlzLl9jcmVhdGVFUHRyRm9yTm9kZShub2RlKTsKSW5kZXg6IFRvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0VQdHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRVB0ci5qcwkocmV2aXNpb24gMjIyMTExKQorKysgVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRVB0ci5qcwkod29ya2luZyBjb3B5KQpAQCAtMzgsOSArMzgsMTMg
QEAgY2xhc3MgRVB0ciB7CiAgICAgLy8gSW4gYSByZWFsIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCwg
dXNlcyBvZiB0aGlzIG1hbmlmZXN0IGFzIFNTQSB0ZW1wb3Jhcmllcy4KICAgICBzdGF0aWMgYm94
KHZhbHVlKQogICAgIHsKLSAgICAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwotICAg
ICAgICBidWZmZXIuc2V0KDAsIHZhbHVlKTsKLSAgICAgICAgcmV0dXJuIG5ldyBFUHRyKGJ1ZmZl
ciwgMCk7CisgICAgICAgIHJldHVybiBuZXcgRVB0cihuZXcgRUJ1ZmZlcigxKSwgMCkuYm94KHZh
bHVlKTsKKyAgICB9CisgICAgCisgICAgYm94KHZhbHVlKQorICAgIHsKKyAgICAgICAgdGhpcy5f
YnVmZmVyLnNldCgwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0aGlzOwogICAgIH0KICAgICAK
ICAgICBnZXQgYnVmZmVyKCkgeyByZXR1cm4gdGhpcy5fYnVmZmVyOyB9CkluZGV4OiBUb29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXZhbHVhdG9yLmpzCShyZXZpc2lvbiAyMjIxMTEpCisr
KyBUb29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FdmFsdWF0b3IuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDE4ICszNSwyNyBAQCBjbGFzcyBFdmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsK
ICAgICAvLyBZb3UgbXVzdCBzbmFwc2hvdCBpZiB5b3UgdXNlIGEgdmFsdWUgaW4gcnZhbHVlIGNv
bnRleHQuIEZvciBleGFtcGxlLCBhIGNhbGwgZXhwcmVzc2lvbiB3aWxsCiAgICAgLy8gc25hcHNo
b3QgYWxsIG9mIGl0cyBhcmd1bWVudHMgaW1tZWRhaXRlbHkgdXBvbiBleGVjdXRpbmcgdGhlbS4g
SW4gZ2VuZXJhbCwgaXQgc2hvdWxkIG5vdCBiZQogICAgIC8vIHBvc3NpYmxlIGZvciBhIHBvaW50
ZXIgcmV0dXJuZWQgZnJvbSBhIHZpc2l0IG1ldGhvZCBpbiBydmFsdWUgY29udGV4dCB0byBsaXZl
IGFjcm9zcyBhbnkgZWZmZWN0cy4KLSAgICBfc25hcHNob3QodHlwZSwgcHRyKQorICAgIF9zbmFw
c2hvdCh0eXBlLCBkc3RQdHIsIHNyY1B0cikKICAgICB7CiAgICAgICAgIGxldCBzaXplID0gdHlw
ZS5zaXplOwogICAgICAgICBpZiAoIXNpemUpCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkNhbm5vdCBnZXQgc2l6ZSBvZiB0eXBlOiAiICsgdHlwZSk7Ci0gICAgICAgIGxldCByZXN1bHQg
PSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihzaXplKSwgMCk7Ci0gICAgICAgIHJlc3VsdC5jb3B5RnJv
bShwdHIsIHNpemUpOwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICBpZiAoIWRzdFB0
cikKKyAgICAgICAgICAgIGRzdFB0ciA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKHNpemUpLCAwKTsK
KyAgICAgICAgZHN0UHRyLmNvcHlGcm9tKHNyY1B0ciwgc2l6ZSk7CisgICAgICAgIHJldHVybiBk
c3RQdHI7CisgICAgfQorICAgIAorICAgIHJ1bkZ1bmMoZnVuYykKKyAgICB7CisgICAgICAgIHJl
dHVybiBFQnVmZmVyLmRpc2FsbG93QWxsb2NhdGlvbigKKyAgICAgICAgICAgICgpID0+IHRoaXMu
X3J1bkJvZHkoZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnJldHVybkVQdHIsIGZ1bmMuYm9keSkpOwog
ICAgIH0KICAgICAKLSAgICBydW5Cb2R5KHR5cGUsIGJsb2NrKQorICAgIF9ydW5Cb2R5KHR5cGUs
IHB0ciwgYmxvY2spCiAgICAgeworICAgICAgICBpZiAoIXB0cikKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiTnVsbCBwdHIiKTsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGJsb2Nr
LnZpc2l0KHRoaXMpOwogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYXZlIGEgY2hl
Y2sgdGhhdCB0aGVyZSBpcyBubyB3YXkgdG8gZHJvcCBvdXQgb2YgYSBmdW5jdGlvbiB3aXRob3V0
CkBAIC01Niw3ICs2NSw3IEBAIGNsYXNzIEV2YWx1YXRvciBleHRlbmRzIFZpc2l0b3IgewogICAg
ICAgICAgICAgaWYgKGUgPT0gQnJlYWtFeGNlcHRpb24gfHwgZSA9PSBDb250aW51ZUV4Y2VwdGlv
bikKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBub3Qgc2VlIGJyZWFr
L2NvbnRpbnVlIGF0IGZ1bmN0aW9uIHNjb3BlIik7CiAgICAgICAgICAgICBpZiAoZSBpbnN0YW5j
ZW9mIFJldHVybkV4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc25hcHNo
b3QodHlwZSwgZS52YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NuYXBzaG90
KHR5cGUsIHB0ciwgZS52YWx1ZSk7CiAgICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNjgsNyArNzcsNyBAQCBjbGFzcyBFdmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsK
ICAgICAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdFtpXS52aXNpdCh0aGlzKSwKICAgICAg
ICAgICAgICAgICBub2RlLnBhcmFtZXRlcnNbaV0udHlwZS5zaXplKTsKICAgICAgICAgfQotICAg
ICAgICByZXR1cm4gdGhpcy5ydW5Cb2R5KG5vZGUucmV0dXJuVHlwZSwgbm9kZS5ib2R5KTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3J1bkJvZHkobm9kZS5yZXR1cm5UeXBlLCBub2RlLnJldHVybkVQ
dHIsIG5vZGUuYm9keSk7CiAgICAgfQogICAgIAogICAgIHZpc2l0UmV0dXJuKG5vZGUpCkBAIC0x
MDMsNyArMTEyLDcgQEAgY2xhc3MgRXZhbHVhdG9yIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgCiAg
ICAgdmlzaXRNYWtlUHRyRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KG5vZGUubFZhbHVlLnZpc2l0KHRoaXMpKTsKKyAgICAgICAgcmV0dXJuIG5vZGUuZVB0
ci5ib3gobm9kZS5sVmFsdWUudmlzaXQodGhpcykpOwogICAgIH0KICAgICAKICAgICB2aXNpdERv
dEV4cHJlc3Npb24obm9kZSkKQEAgLTEyOCwyMyArMTM3LDIzIEBAIGNsYXNzIEV2YWx1YXRvciBl
eHRlbmRzIFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0R2VuZXJpY0xpdGVyYWwobm9kZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBFUHRyLmJveChub2RlLnZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IG5vZGUuZVB0ci5ib3gobm9kZS52YWx1ZSk7CiAgICAgfQogICAgIAogICAgIHZpc2l0TnVsbExp
dGVyYWwobm9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBFUHRyLmJveChudWxsKTsKKyAgICAg
ICAgcmV0dXJuIG5vZGUuZVB0ci5ib3gobnVsbCk7CiAgICAgfQogICAgIAogICAgIHZpc2l0Qm9v
bExpdGVyYWwobm9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBFUHRyLmJveChub2RlLnZhbHVl
KTsKKyAgICAgICAgcmV0dXJuIG5vZGUuZVB0ci5ib3gobm9kZS52YWx1ZSk7CiAgICAgfQogCiAg
ICAgdmlzaXRMb2dpY2FsTm90KG5vZGUpCiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0gIW5v
ZGUub3BlcmFuZC52aXNpdCh0aGlzKS5sb2FkVmFsdWUoKTsKLSAgICAgICAgcmV0dXJuIEVQdHIu
Ym94KHJlc3VsdCk7CisgICAgICAgIHJldHVybiBub2RlLmVQdHIuYm94KHJlc3VsdCk7CiAgICAg
fQogCiAgICAgdmlzaXRJZlN0YXRlbWVudChub2RlKQpAQCAtMjI4LDkgKzIzNywxNiBAQCBjbGFz
cyBFdmFsdWF0b3IgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIGlmICghdHlwZSB8fCAh
YXJndW1lbnQpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IHR5
cGUgb3IgYXJndW1lbnQ7IGkgPSAiICsgaSArICIsIGFyZ3VtZW50ID0gIiArIGFyZ3VtZW50ICsg
IiwgdHlwZSA9ICIgKyB0eXBlICsgIjsgaW4gIiArIG5vZGUpOwogICAgICAgICAgICAgbGV0IGFy
Z3VtZW50VmFsdWUgPSBhcmd1bWVudC52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIGNhbGxBcmd1
bWVudHMucHVzaCh0aGlzLl9zbmFwc2hvdCh0eXBlLCBhcmd1bWVudFZhbHVlKSk7CisgICAgICAg
ICAgICBjYWxsQXJndW1lbnRzLnB1c2goKCkgPT4gdGhpcy5fc25hcHNob3QodHlwZSwgbnVsbCwg
YXJndW1lbnRWYWx1ZSkpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlLmZ1bmMuaW1w
bGVtZW50YXRpb24oY2FsbEFyZ3VtZW50cywgbm9kZSk7CisgICAgICAgIAorICAgICAgICAvLyBG
b3Igc2ltcGxpY2l0eSwgd2UgYWxsb3cgaW50cmluc2ljcyB0byBqdXN0IGFsbG9jYXRlIG5ldyBi
dWZmZXJzLCBhbmQgd2UgYWxsb2NhdGUgbmV3CisgICAgICAgIC8vIGJ1ZmZlcnMgd2hlbiBzbmFw
c2hvdHRpbmcgdGhlaXIgYXJndW1lbnRzLiBUaGlzIGlzIG5vdCBvYnNlcnZhYmxlIHRvIHRoZSB1
c2VyLCBzbyBpdCdzIE9LLgorICAgICAgICBsZXQgcmVzdWx0ID0gRUJ1ZmZlci5hbGxvd0FsbG9j
YXRpb24oCisgICAgICAgICAgICAoKSA9PiBub2RlLmZ1bmMuaW1wbGVtZW50YXRpb24oY2FsbEFy
Z3VtZW50cy5tYXAodGh1bmsgPT4gdGh1bmsoKSksIG5vZGUpKTsKKyAgICAgICAgCisgICAgICAg
IHJlc3VsdCA9IHRoaXMuX3NuYXBzaG90KG5vZGUubmF0aXZlRnVuY0luc3RhbmNlLnJldHVyblR5
cGUsIG5vZGUucmVzdWx0RVB0ciwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICB9CiB9CiAKSW5kZXg6IFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwko
cmV2aXNpb24gMjIyMTExKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
ci5qcwkod29ya2luZyBjb3B5KQpAQCAtNTEsOCArNTEsMTAgQEAgY2xhc3MgSW5saW5lciBleHRl
bmRzIFJld3JpdGVyIHsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHRoaXMuX3Byb2dyYW0sIGZ1bmMsIHRo
aXMuX3Zpc2l0aW5nKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgRnVuY3Rpb25MaWtlQmxvY2so
CisgICAgICAgICAgICBsZXQgcmVzdWx0aW5nQmxvY2sgPSBuZXcgRnVuY3Rpb25MaWtlQmxvY2so
CiAgICAgICAgICAgICAgICAgcmVzdWx0Lm9yaWdpbiwgZnVuYy5yZXR1cm5UeXBlLCByZXN1bHQu
YXJndW1lbnRMaXN0LCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMuYm9keSk7CisgICAgICAgICAgICBy
ZXN1bHRpbmdCbG9jay5yZXR1cm5FUHRyID0gcmVzdWx0LnJlc3VsdEVQdHI7CisgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0aW5nQmxvY2s7CiAgICAgICAgIH0pOwogICAgIH0KIApJbmRleDogVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qcwkocmV2aXNpb24gMjIyMTExKQorKysgVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3
IEBAIGNsYXNzIEluc3RhbnRpYXRlSW1tZWRpYXRlcyBleHRlbmRzIFJld3IKICAgICB2aXNpdFR5
cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUgPSBzdXBlci52aXNpdFR5cGVSZWYobm9k
ZSk7Ci0gICAgICAgIGxldCByZXN1bHQgPSBUeXBlUmVmLndyYXAobm9kZS5pbnN0YW50aWF0ZWRU
eXBlKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5vZGUuaW5zdGFudGlhdGVkVHlwZS52aXNpdChu
ZXcgQXV0b1dyYXBwZXIoKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApJ
bmRleDogVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMJKHJldmlzaW9u
IDIyMjExMSkKKysrIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDkgQEAgY2xhc3MgUmV3cml0ZXIgZXh0ZW5kcyBW
aXNpdG9yQmFzZSB7CiAgICAgCiAgICAgdmlzaXRNYWtlUHRyRXhwcmVzc2lvbihub2RlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIG5ldyBNYWtlUHRyRXhwcmVzc2lvbihub2RlLm9yaWdpbiwgbm9k
ZS5sVmFsdWUudmlzaXQodGhpcykpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IE1ha2VQdHJF
eHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLmxWYWx1ZS52aXNpdCh0aGlzKSk7CisgICAgICAg
IHJlc3VsdC5lUHRyID0gbm9kZS5lUHRyOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
ICAgICAKICAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCkBAIC0yMTUsNiArMjE3LDcgQEAgY2xh
c3MgUmV3cml0ZXIgZXh0ZW5kcyBWaXNpdG9yQmFzZSB7CiAgICAgewogICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IEludExpdGVyYWwobm9kZS5vcmlnaW4sIG5vZGUudmFsdWUpOwogICAgICAgICBy
ZXN1bHQudHlwZSA9IG5vZGUudHlwZS52aXNpdCh0aGlzKTsKKyAgICAgICAgcmVzdWx0LmVQdHIg
PSBub2RlLmVQdHI7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMjM1
LDYgKzIzOCw3IEBAIGNsYXNzIFJld3JpdGVyIGV4dGVuZHMgVmlzaXRvckJhc2UgewogICAgIHsK
ICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBOdWxsTGl0ZXJhbChub2RlLm9yaWdpbik7CiAgICAg
ICAgIHJlc3VsdC50eXBlID0gbm9kZS50eXBlLnZpc2l0KHRoaXMpOworICAgICAgICByZXN1bHQu
ZVB0ciA9IG5vZGUuZVB0cjsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBA
IC0yNjAsNiArMjY0LDggQEAgY2xhc3MgUmV3cml0ZXIgZXh0ZW5kcyBWaXNpdG9yQmFzZSB7CiAg
ICAgICAgIHJlc3VsdC5wb3NzaWJsZU92ZXJsb2FkcyA9IG5vZGUucG9zc2libGVPdmVybG9hZHM7
CiAgICAgICAgIGlmIChub2RlLmlzQ2FzdCkKICAgICAgICAgICAgIHJlc3VsdC5zZXRDYXN0RGF0
YShub2RlLnJldHVyblR5cGUudmlzaXQodGhpcykpOworICAgICAgICByZXN1bHQucmVzdWx0VHlw
ZSA9IG5vZGUucmVzdWx0VHlwZSA/IG5vZGUucmVzdWx0VHlwZS52aXNpdCh0aGlzKSA6IG51bGw7
CisgICAgICAgIHJlc3VsdC5yZXN1bHRFUHRyID0gbm9kZS5yZXN1bHRFUHRyOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KIApAQCAtMjc0LDE3ICsyODAsMjEgQEAgY2xhc3MgUmV3cml0
ZXIgZXh0ZW5kcyBWaXNpdG9yQmFzZSB7CiAgICAgCiAgICAgdmlzaXRGdW5jdGlvbkxpa2VCbG9j
ayhub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5jdGlvbkxpa2VCbG9jaygKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBGdW5jdGlvbkxpa2VCbG9jaygKICAgICAgICAgICAgIG5v
ZGUub3JpZ2luLAogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlID8gbm9kZS5yZXR1cm5UeXBl
LnZpc2l0KHRoaXMpIDogbnVsbCwKICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChh
cmd1bWVudCA9PiBhcmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLnBhcmFt
ZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAg
ICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpKTsKKyAgICAgICAgcmVzdWx0LnJldHVybkVQdHIgPSBu
b2RlLnJldHVybkVQdHI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAogICAg
IHZpc2l0TG9naWNhbE5vdChub2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBMb2dpY2Fs
Tm90KG5vZGUub3JpZ2luLCBub2RlLm9wZXJhbmQudmlzaXQodGhpcykpOworICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IExvZ2ljYWxOb3Qobm9kZS5vcmlnaW4sIG5vZGUub3BlcmFuZC52aXNpdCh0
aGlzKSk7CisgICAgICAgIHJlc3VsdC5lUHRyID0gbm9kZS5lUHRyOworICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KIAogICAgIHZpc2l0SWZTdGF0ZW1lbnQobm9kZSkKSW5kZXg6IFRvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwkocmV2aXNpb24gMjIyMTExKQorKysg
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKICAgICB0b1N0
cmluZygpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMubmFtZSkKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLnR5cGUudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiAicmVmOiIgKyB0aGlz
LnR5cGUudG9TdHJpbmcoKTsKICAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3Ro
KQogICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICAgICAgcmV0dXJuIHRoaXMubmFt
ZSArICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsKSW5kZXg6IFRvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwkocmV2aXNpb24gMjIyMTExKQorKysgVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYg
KzI5Myw4IEBAIGNsYXNzIFZpc2l0b3IgZXh0ZW5kcyBWaXNpdG9yQmFzZSB7CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKG5vZGUucmV0dXJuVHlwZSkKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlw
ZS52aXNpdCh0aGlzKTsKKyAgICAgICAgaWYgKG5vZGUucmVzdWx0VHlwZSkKKyAgICAgICAgICAg
IG5vZGUucmVzdWx0VHlwZS52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRMb2dp
Y2FsTm90KG5vZGUpCkBAIC0zMDksNiArMzExLDggQEAgY2xhc3MgVmlzaXRvciBleHRlbmRzIFZp
c2l0b3JCYXNlIHsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVy
cykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICAgICAgbm9kZS5ib2R5
LnZpc2l0KHRoaXMpOworICAgICAgICBpZiAobm9kZS5yZXN1bHRUeXBlKQorICAgICAgICAgICAg
bm9kZS5yZXN1bHRUeXBlLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKICAgICB2aXNpdExldEV4
cHJlc3Npb24obm9kZSkK
</data>
<flag name="review"
          id="341021"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
      

    </bug>

</bugzilla>