<?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>44830</bug_id>
          
          <creation_ts>2010-08-28 14:23:43 -0700</creation_ts>
          <short_desc>In Array&apos;s prototype functions we&apos;re incorrectly handing large index values</short_desc>
          <delta_ts>2010-08-28 19:13:55 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271059</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-28 14:23:43 -0700</bug_when>
    <thetext>We are in places casting doubles to unsigneds, and unsigneds to ints, without always check that the result is within bounds.  This is problematic in the case of double-to-unsigned conversion because we should be saturating to array length.

Also, the error return value from Array.splice should be [], not undefined.

I don&apos;t see any security concerns here.  These methods are spec&apos;ed in such a way that they can be applied to non Array objects, so In all cases the (potentially bogus) indices are being passed to functions that will safely check accesses are within bounds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271060</commentid>
    <comment_count>1</comment_count>
      <attachid>65840</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-28 14:33:57 -0700</bug_when>
    <thetext>Created attachment 65840
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271062</commentid>
    <comment_count>2</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-28 14:36:59 -0700</bug_when>
    <thetext>*** Bug 38356 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271064</commentid>
    <comment_count>3</comment_count>
      <attachid>65840</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-08-28 14:48:52 -0700</bug_when>
    <thetext>Comment on attachment 65840
The patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271067</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-28 15:22:27 -0700</bug_when>
    <thetext>What’s the performance impact of these changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271091</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-28 19:05:57 -0700</bug_when>
    <thetext>Fixed in r66318.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271092</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-08-28 19:13:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; What’s the performance impact of these changes?

Short answer, none.

Most of the benchmarks we track don&apos;t call these methods anyway.  For the most part the change is just to change a type (int vs unsigned), and should result in approx. the same code.  The two functional changes are to make Array.splice properly saturate large values - which is one extra integer compare instruction in an expensive function (allocates a JSArray).  Also changes return value if called with invalid parameters, which I would not expect to show up in any real code, and Michael has done work lately to reduce the cost of allocating unused Array objects which would also help mitigate this.

No change on SunSpider.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65840</attachid>
            <date>2010-08-28 14:33:57 -0700</date>
            <delta_ts>2010-08-28 14:48:51 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>ArrayProto.patch</filename>
            <type>text/plain</type>
            <size>25233</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2MzEzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDgtMjggIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyA0NDgzMCAtIEluIEFycmF5J3MgcHJvdG90
eXBlIGZ1bmN0eWlvbnMgd2UncmUgaW5jb3JyZWN0bHkgaGFuZGluZyBsYXJnZSBpbmRleCB2YWx1
ZXMKKworICAgICAgICBXZSBhcmUgaW4gcGxhY2VzIGNhc3RpbmcgZG91YmxlcyB0byB1bnNpZ25l
ZHMsIGFuZCB1bnNpZ25lZHMgdG8gaW50cywgd2l0aG91dCBhbHdheXMgY2hlY2sKKyAgICAgICAg
dGhhdCB0aGUgcmVzdWx0IGlzIHdpdGhpbiBib3VuZHMuIFRoaXMgaXMgcHJvYmxlbWF0aWMgaW4g
dGhlIGNhc2Ugb2YgZG91YmxlLXRvLXVuc2lnbmVkCisgICAgICAgIGNvbnZlcnNpb24gYmVjYXVz
ZSB3ZSBzaG91bGQgYmUgc2F0dXJhdGluZyB0byBhcnJheSBsZW5ndGguCisKKyAgICAgICAgQWxz
bywgdGhlIGVycm9yIHJldHVybiB2YWx1ZSBmcm9tIEFycmF5LnNwbGljZSBzaG91bGQgYmUgW10s
IG5vdCB1bmRlZmluZWQuCisKKyAgICAgICAgSSBkb24ndCBzZWUgYW55IHNlY3VyaXR5IGNvbmNl
cm5zIGhlcmUuIFRoZXNlIG1ldGhvZHMgYXJlIHNwZWMnZWQgaW4gc3VjaCBhIHdheSB0aGF0IHRo
ZXkKKyAgICAgICAgY2FuIGJlIGFwcGxpZWQgdG8gbm9uIEFycmF5IG9iamVjdHMsIHNvIGluIGFs
bCBjYXNlcyB0aGUgKHBvdGVudGlhbGx5IGJvZ3VzKSBpbmRpY2VzIGFyZQorICAgICAgICBiZWlu
ZyBwYXNzZWQgdG8gZnVuY3Rpb25zIHRoYXQgd2lsbCBzYWZlbHkgY2hlY2sgYWNjZXNzZXMgYXJl
IHdpdGhpbiBib3VuZHMuCisKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6YXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZCk6CisgICAg
ICAgIChKU0M6OmFycmF5UHJvdG9GdW5jSm9pbik6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9G
dW5jQ29uY2F0KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZXZlcnNlKToKKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9G
dW5jU2xpY2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NvcnQpOgorICAgICAgICAo
SlNDOjphcnJheVByb3RvRnVuY1NwbGljZSk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5j
VW5TaGlmdCk6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jRmlsdGVyKToKKyAgICAgICAg
KEpTQzo6YXJyYXlQcm90b0Z1bmNNYXApOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY0V2
ZXJ5KToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNGb3JFYWNoKToKKyAgICAgICAgKEpT
Qzo6YXJyYXlQcm90b0Z1bmNTb21lKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNSZWR1
Y2UpOgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1JlZHVjZVJpZ2h0KToKKyAgICAgICAg
KEpTQzo6YXJyYXlQcm90b0Z1bmNJbmRleE9mKToKKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1
bmNMYXN0SW5kZXhPZik6CisgICAgICAgICogcnVudGltZS9KU1ZhbHVlLmg6CisgICAgICAgIChK
U0M6OkpTVmFsdWU6OnRvVUludDMyKToKKwogMjAxMC0wOC0yOCAgUHJhdGlrIFNvbGFua2kgIDxw
c29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4K
SW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCShyZXZpc2lv
biA2NjI0NCkKKysrIEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDIwIEBAIHN0YXRpYyB2b2lkIHB1dFByb3BlcnR5
KEV4ZWNTdGF0ZSogZXhlYywKICAgICBvYmotPnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0
YXJ0T3JFbmQoRXhlY1N0YXRlKiBleGVjLCBpbnQgYXJndW1lbnQsIHVuc2lnbmVkIGxlbmd0aCwg
dW5zaWduZWQgdW5kZWZpbmVkVmFsdWUgPSAwKQoreworICAgIEpTVmFsdWUgdmFsdWUgPSBleGVj
LT5hcmd1bWVudChhcmd1bWVudCk7CisgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkKCkpCisgICAg
ICAgIHJldHVybiB1bmRlZmluZWRWYWx1ZTsKKworICAgIGRvdWJsZSBpbmRleERvdWJsZSA9IHZh
bHVlLnRvSW50ZWdlcihleGVjKTsKKyAgICBpZiAoaW5kZXhEb3VibGUgPCAwKSB7CisgICAgICAg
IGluZGV4RG91YmxlICs9IGxlbmd0aDsKKyAgICAgICAgcmV0dXJuIGluZGV4RG91YmxlIDwgMCA/
IDAgOiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5kZXhEb3VibGUpOworICAgIH0KKyAgICByZXR1
cm4gaW5kZXhEb3VibGUgPiBsZW5ndGggPyBsZW5ndGggOiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
aW5kZXhEb3VibGUpOworfQorCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwpAQCAtMjQ5LDggKzI2Myw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0YKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY0pvaW4oRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwotICAgIEpTT2JqZWN0KiB0aGlzT2Jq
ID0gdGhpc1ZhbHVlLnRvVGhpc09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXNPYmplY3QoZXhlYyk7CiAKICAgICBIYXNoU2V0
PEpTT2JqZWN0Kj4mIGFycmF5VmlzaXRlZEVsZW1lbnRzID0gZXhlYy0+Z2xvYmFsRGF0YSgpLmFy
cmF5VmlzaXRlZEVsZW1lbnRzOwogICAgIGlmIChhcnJheVZpc2l0ZWRFbGVtZW50cy5zaXplKCkg
Pj0gTWF4U21hbGxUaHJlYWRSZWVudHJ5RGVwdGgpIHsKQEAgLTMyMyw3ICszMzYsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GCiB7CiAgICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgSlNBcnJheSogYXJyID0gY29uc3Ry
dWN0RW1wdHlBcnJheShleGVjKTsKLSAgICBpbnQgbiA9IDA7CisgICAgdW5zaWduZWQgbiA9IDA7
CiAgICAgSlNWYWx1ZSBjdXJBcmcgPSB0aGlzVmFsdWUudG9UaGlzT2JqZWN0KGV4ZWMpOwogICAg
IHNpemVfdCBpID0gMDsKICAgICBzaXplX3QgYXJnQ291bnQgPSBleGVjLT5hcmd1bWVudENvdW50
KCk7CkBAIC0zODksOCArNDAyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2
ZXJzZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCk7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmogPSB0aGlzVmFsdWUudG9UaGlz
T2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpLnRvVGhpc09iamVjdChleGVjKTsKICAgICB1bnNpZ25lZCBsZW5ndGggPSB0aGlzT2JqLT5n
ZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkudG9VSW50MzIoZXhlYyk7CiAg
ICAgdW5zaWduZWQgbWlkZGxlID0gbGVuZ3RoIC8gMjsKIApAQCAtNDE0LDggKzQyNiw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0YKIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NoaWZ0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBKU09iamVj
dCogdGhpc09iaiA9IHRoaXNWYWx1ZS50b1RoaXNPYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3Qq
IHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGV4ZWMpOwogICAg
IEpTVmFsdWUgcmVzdWx0OwogCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09iai0+Z2V0KGV4
ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUludDMyKGV4ZWMpOwpAQCAtNDQy
LDQzICs0NTMsMTkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgog
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2xpY2UoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1
ZSgpOwogICAgIC8vIGh0dHA6Ly9kZXZlbG9wZXIubmV0c2NhcGUuY29tL2RvY3MvbWFudWFscy9q
cy9jbGllbnQvanNyZWYvYXJyYXkuaHRtIzExOTM3MTMgb3IgMTUuNC40LjEwCi0KLSAgICBKU09i
amVjdCogdGhpc09iaiA9IHRoaXNWYWx1ZS50b1RoaXNPYmplY3QoZXhlYyk7CisgICAgSlNPYmpl
Y3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGV4ZWMpOwog
CiAgICAgLy8gV2UgcmV0dXJuIGEgbmV3IGFycmF5CiAgICAgSlNBcnJheSogcmVzT2JqID0gY29u
c3RydWN0RW1wdHlBcnJheShleGVjKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHJlc09iajsKLSAg
ICBkb3VibGUgYmVnaW4gPSBleGVjLT5hcmd1bWVudCgwKS50b0ludGVnZXIoZXhlYyk7CisKICAg
ICB1bnNpZ25lZCBsZW5ndGggPSB0aGlzT2JqLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCkudG9VSW50MzIoZXhlYyk7Ci0gICAgaWYgKGJlZ2luID49IDApIHsKLSAgICAg
ICAgaWYgKGJlZ2luID4gbGVuZ3RoKQotICAgICAgICAgICAgYmVnaW4gPSBsZW5ndGg7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgYmVnaW4gKz0gbGVuZ3RoOwotICAgICAgICBpZiAoYmVnaW4gPCAw
KQotICAgICAgICAgICAgYmVnaW4gPSAwOwotICAgIH0KLSAgICBkb3VibGUgZW5kOwotICAgIGlm
IChleGVjLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpKQotICAgICAgICBlbmQgPSBsZW5ndGg7
Ci0gICAgZWxzZSB7Ci0gICAgICAgIGVuZCA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50ZWdlcihl
eGVjKTsKLSAgICAgICAgaWYgKGVuZCA8IDApIHsKLSAgICAgICAgICAgIGVuZCArPSBsZW5ndGg7
Ci0gICAgICAgICAgICBpZiAoZW5kIDwgMCkKLSAgICAgICAgICAgICAgICBlbmQgPSAwOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGVuZCA+IGxlbmd0aCkKLSAgICAgICAgICAg
ICAgICBlbmQgPSBsZW5ndGg7Ci0gICAgICAgIH0KLSAgICB9CisgICAgdW5zaWduZWQgYmVnaW4g
PSBhcmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5kKGV4ZWMsIDAsIGxlbmd0aCk7Cisg
ICAgdW5zaWduZWQgZW5kID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChleGVj
LCAxLCBsZW5ndGgsIGxlbmd0aCk7CiAKLSAgICBpbnQgbiA9IDA7Ci0gICAgaW50IGIgPSBzdGF0
aWNfY2FzdDxpbnQ+KGJlZ2luKTsKLSAgICBpbnQgZSA9IHN0YXRpY19jYXN0PGludD4oZW5kKTsK
LSAgICBmb3IgKGludCBrID0gYjsgayA8IGU7IGsrKywgbisrKSB7CisgICAgdW5zaWduZWQgbiA9
IDA7CisgICAgZm9yICh1bnNpZ25lZCBrID0gYmVnaW47IGsgPCBlbmQ7IGsrKywgbisrKSB7CiAg
ICAgICAgIGlmIChKU1ZhbHVlIHYgPSBnZXRQcm9wZXJ0eShleGVjLCB0aGlzT2JqLCBrKSkKICAg
ICAgICAgICAgIHJlc09iai0+cHV0KGV4ZWMsIG4sIHYpOwogICAgIH0KQEAgLTQ4OCw4ICs0NzUs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GCiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTb3J0KEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBK
U09iamVjdCogdGhpc09iaiA9IHRoaXNWYWx1ZS50b1RoaXNPYmplY3QoZXhlYyk7CisgICAgSlNP
YmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGV4ZWMp
OwogCiAgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAgIENhbGxE
YXRhIGNhbGxEYXRhOwpAQCAtNTQ3LDI5ICs1MzMsMjYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheVByb3RvRgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jU3BsaWNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBKU09iamVjdCogdGhpc09iaiA9IHRoaXNW
YWx1ZS50b1RoaXNPYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5o
b3N0VGhpc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGV4ZWMpOwogCiAgICAgLy8gMTUuNC40LjEyCiAK
LSAgICAvLyBGSVhNRTogRmlyZWZveCByZXR1cm5zIGFuIGVtcHR5IGFycmF5LgogICAgIGlmICgh
ZXhlYy0+YXJndW1lbnRDb3VudCgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEVt
cHR5QXJyYXkoZXhlYykpOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09iai0+Z2V0KGV4
ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUludDMyKGV4ZWMpOwotICAgIGRv
dWJsZSByZWxhdGl2ZUJlZ2luID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnRlZ2VyKGV4ZWMpOwot
ICAgIHVuc2lnbmVkIGJlZ2luOwotICAgIGlmIChyZWxhdGl2ZUJlZ2luIDwgMCkgewotICAgICAg
ICByZWxhdGl2ZUJlZ2luICs9IGxlbmd0aDsKLSAgICAgICAgYmVnaW4gPSAocmVsYXRpdmVCZWdp
biA8IDApID8gMCA6IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZWxhdGl2ZUJlZ2luKTsKLSAgICB9
IGVsc2UKLSAgICAgICAgYmVnaW4gPSBzdGQ6Om1pbjx1bnNpZ25lZD4oc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHJlbGF0aXZlQmVnaW4pLCBsZW5ndGgpOwotCi0gICAgdW5zaWduZWQgZGVsZXRlQ291
bnQ7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEpCi0gICAgICAgIGRlbGV0ZUNv
dW50ID0gc3RkOjptaW48aW50PihzdGQ6Om1heDxpbnQ+KGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUlu
dDMyKGV4ZWMpLCAwKSwgbGVuZ3RoIC0gYmVnaW4pOwotICAgIGVsc2UKLSAgICAgICAgZGVsZXRl
Q291bnQgPSBsZW5ndGggLSBiZWdpbjsKKyAgICB1bnNpZ25lZCBiZWdpbiA9IGFyZ3VtZW50Q2xh
bXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZXhlYywgMCwgbGVuZ3RoKTsKKworICAgIHVuc2lnbmVk
IGRlbGV0ZUNvdW50ID0gbGVuZ3RoIC0gYmVnaW47CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA+IDEpIHsKKyAgICAgICAgZG91YmxlIGRlbGV0ZURvdWJsZSA9IGV4ZWMtPmFyZ3VtZW50
KDEpLnRvSW50ZWdlcihleGVjKTsKKyAgICAgICAgaWYgKGRlbGV0ZURvdWJsZSA8IDApCisgICAg
ICAgICAgICBkZWxldGVDb3VudCA9IDA7CisgICAgICAgIGVsc2UgaWYgKGRlbGV0ZURvdWJsZSA+
IGxlbmd0aCAtIGJlZ2luKQorICAgICAgICAgICAgZGVsZXRlQ291bnQgPSBsZW5ndGggLSBiZWdp
bjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGVsZXRlQ291bnQgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oZGVsZXRlRG91YmxlKTsKKyAgICB9CiAKICAgICBKU0FycmF5KiByZXNPYmogPSBu
ZXcgKGV4ZWMpIEpTQXJyYXkoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5hcnJheVN0cnVj
dHVyZSgpLCBkZWxldGVDb3VudCwgQ3JlYXRlQ29tcGFjdCk7CiAgICAgSlNWYWx1ZSByZXN1bHQg
PSByZXNPYmo7CkBAIC02MTYsOCArNTk5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvRgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9G
dW5jVW5TaGlmdChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7Ci0gICAgSlNPYmplY3QqIHRoaXNPYmogPSB0aGlzVmFsdWUu
dG9UaGlzT2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpLnRvVGhpc09iamVjdChleGVjKTsKIAogICAgIC8vIDE1LjQuNC4xMwogICAgIHVu
c2lnbmVkIGxlbmd0aCA9IHRoaXNPYmotPmdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoKS50b1VJbnQzMihleGVjKTsKQEAgLTY0Myw4ICs2MjUsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYXJyYXlQcm90b0Z1bmNGaWx0ZXIoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwotICAgIEpTT2JqZWN0KiB0aGlzT2Jq
ID0gdGhpc1ZhbHVlLnRvVGhpc09iamVjdChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9
IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXNPYmplY3QoZXhlYyk7CiAKICAgICBKU1ZhbHVl
IGZ1bmN0aW9uID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CkBA
IC03MDIsOCArNjgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3Rv
RgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jTWFwKEV4ZWNT
dGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFs
dWUoKTsKLSAgICBKU09iamVjdCogdGhpc09iaiA9IHRoaXNWYWx1ZS50b1RoaXNPYmplY3QoZXhl
Yyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlz
T2JqZWN0KGV4ZWMpOwogCiAgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IGV4ZWMtPmFyZ3VtZW50KDAp
OwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpAQCAtNzYwLDggKzc0MCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0YKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY0V2ZXJ5KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBKU09iamVjdCogdGhpc09i
aiA9IHRoaXNWYWx1ZS50b1RoaXNPYmplY3QoZXhlYyk7CisgICAgSlNPYmplY3QqIHRoaXNPYmog
PSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGV4ZWMpOwogCiAgICAgSlNWYWx1
ZSBmdW5jdGlvbiA9IGV4ZWMtPmFyZ3VtZW50KDApOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpA
QCAtODE3LDggKzc5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90
b0YKIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0ZvckVhY2go
RXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRo
aXNWYWx1ZSgpOwotICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gdGhpc1ZhbHVlLnRvVGhpc09iamVj
dChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50
b1RoaXNPYmplY3QoZXhlYyk7CiAKICAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gZXhlYy0+YXJndW1l
bnQoMCk7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7CkBAIC04NjMsOCArODQxLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgogCiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU29tZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Ci0gICAgSlNPYmplY3QqIHRo
aXNPYmogPSB0aGlzVmFsdWUudG9UaGlzT2JqZWN0KGV4ZWMpOworICAgIEpTT2JqZWN0KiB0aGlz
T2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpc09iamVjdChleGVjKTsKIAogICAgIEpT
VmFsdWUgZnVuY3Rpb24gPSBleGVjLT5hcmd1bWVudCgwKTsKICAgICBDYWxsRGF0YSBjYWxsRGF0
YTsKQEAgLTkxNyw4ICs4OTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZWR1
Y2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOwotICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gdGhpc1ZhbHVlLnRvVGhpc09i
amVjdChleGVjKTsKKyAgICBKU09iamVjdCogdGhpc09iaiA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUo
KS50b1RoaXNPYmplY3QoZXhlYyk7CiAgICAgCiAgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IGV4ZWMt
PmFyZ3VtZW50KDApOwogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpAQCAtOTg4LDggKzk2NCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0YKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1JlZHVjZVJpZ2h0KEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAg
ICBKU09iamVjdCogdGhpc09iaiA9IHRoaXNWYWx1ZS50b1RoaXNPYmplY3QoZXhlYyk7CisgICAg
SlNPYmplY3QqIHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGV4
ZWMpOwogICAgIAogICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBleGVjLT5hcmd1bWVudCgwKTsKICAg
ICBDYWxsRGF0YSBjYWxsRGF0YTsKQEAgLTEwNTgsMjMgKzEwMzMsMTIgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRgogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGFycmF5UHJvdG9GdW5jSW5kZXhPZihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNWYWx1
ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgLy8gSmF2YVNjcmlwdCAx
LjUgRXh0ZW5zaW9uIGJ5IE1vemlsbGEKICAgICAvLyBEb2N1bWVudGF0aW9uOiBodHRwOi8vZGV2
ZWxvcGVyLm1vemlsbGEub3JnL2VuL2RvY3MvQ29yZV9KYXZhU2NyaXB0XzEuNV9SZWZlcmVuY2U6
R2xvYmFsX09iamVjdHM6QXJyYXk6aW5kZXhPZgorICAgIEpTT2JqZWN0KiB0aGlzT2JqID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpc09iamVjdChleGVjKTsKIAotICAgIEpTT2JqZWN0KiB0
aGlzT2JqID0gdGhpc1ZhbHVlLnRvVGhpc09iamVjdChleGVjKTsKLQotICAgIHVuc2lnbmVkIGlu
ZGV4ID0gMDsKLSAgICBkb3VibGUgZCA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50ZWdlcihleGVj
KTsKICAgICB1bnNpZ25lZCBsZW5ndGggPSB0aGlzT2JqLT5nZXQoZXhlYywgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmxlbmd0aCkudG9VSW50MzIoZXhlYyk7Ci0gICAgaWYgKGQgPCAwKQotICAgICAg
ICBkICs9IGxlbmd0aDsKLSAgICBpZiAoZCA+IDApIHsKLSAgICAgICAgaWYgKGQgPiBsZW5ndGgp
Ci0gICAgICAgICAgICBpbmRleCA9IGxlbmd0aDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
aW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZCk7Ci0gICAgfQorICAgIHVuc2lnbmVkIGlu
ZGV4ID0gYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChleGVjLCAxLCBsZW5ndGgp
OwogCiAgICAgSlNWYWx1ZSBzZWFyY2hFbGVtZW50ID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAg
Zm9yICg7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KSB7CkBAIC0xMDkwLDMyICsxMDU0LDM2IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0YKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAg
ICAvLyBKYXZhU2NyaXB0IDEuNiBFeHRlbnNpb24gYnkgTW96aWxsYQogICAgIC8vIERvY3VtZW50
YXRpb246IGh0dHA6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vZG9jcy9Db3JlX0phdmFTY3Jp
cHRfMS41X1JlZmVyZW5jZTpHbG9iYWxfT2JqZWN0czpBcnJheTpsYXN0SW5kZXhPZgotCi0gICAg
SlNPYmplY3QqIHRoaXNPYmogPSB0aGlzVmFsdWUudG9UaGlzT2JqZWN0KGV4ZWMpOworICAgIEpT
T2JqZWN0KiB0aGlzT2JqID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpc09iamVjdChleGVj
KTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRoaXNPYmotPmdldChleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkubGVuZ3RoKS50b1VJbnQzMihleGVjKTsKLSAgICBpbnQgaW5kZXggPSBsZW5n
dGggLSAxOwotICAgIGRvdWJsZSBkID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnRlZ2VyUHJlc2Vy
dmVOYU4oZXhlYyk7CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoZXhlYywgLTEpKTsKIAotICAgIGlmIChkIDwgMCkgewotICAgICAgICBk
ICs9IGxlbmd0aDsKLSAgICAgICAgaWYgKGQgPCAwKQotICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihleGVjLCAtMSkpOworICAgIHVuc2lnbmVkIGluZGV4ID0gbGVu
Z3RoIC0gMTsKKyAgICBKU1ZhbHVlIGZyb21WYWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDEpOworICAg
IGlmICghZnJvbVZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgZG91YmxlIGZyb21Eb3Vi
bGUgPSBmcm9tVmFsdWUudG9JbnRlZ2VyKGV4ZWMpOworICAgICAgICBpZiAoZnJvbURvdWJsZSA8
IDApIHsKKyAgICAgICAgICAgIGZyb21Eb3VibGUgKz0gbGVuZ3RoOworICAgICAgICAgICAgaWYg
KGZyb21Eb3VibGUgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoZXhlYywgLTEpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZnJvbURvdWJsZSA8
IGxlbmd0aCkKKyAgICAgICAgICAgIGluZGV4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZyb21E
b3VibGUpOwogICAgIH0KLSAgICBpZiAoZCA8IGxlbmd0aCkKLSAgICAgICAgaW5kZXggPSBzdGF0
aWNfY2FzdDxpbnQ+KGQpOwogCiAgICAgSlNWYWx1ZSBzZWFyY2hFbGVtZW50ID0gZXhlYy0+YXJn
dW1lbnQoMCk7Ci0gICAgZm9yICg7IGluZGV4ID49IDA7IC0taW5kZXgpIHsKKyAgICBkbyB7Cisg
ICAgICAgIEFTU0VSVChpbmRleCA8IGxlbmd0aCk7CiAgICAgICAgIEpTVmFsdWUgZSA9IGdldFBy
b3BlcnR5KGV4ZWMsIHRoaXNPYmosIGluZGV4KTsKICAgICAgICAgaWYgKCFlKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIGlmIChKU1ZhbHVlOjpzdHJpY3RFcXVhbChleGVjLCBzZWFy
Y2hFbGVtZW50LCBlKSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZXhlYywgaW5kZXgpKTsKLSAgICB9CisgICAgfSB3aGlsZSAoaW5kZXgtLSk7CiAKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGV4ZWMsIC0xKSk7CiB9CkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVmFsdWUuaAkocmV2aXNpb24gNjYyNDQpCisrKyBKYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEwLDcgKzQxMCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIGlubGluZSB1aW50MzJfdCBKU1ZhbHVlOjp0b1VJbnQzMihFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoaXNVSW50MzIoKSkKLSAgICAgICAg
ICAgIHJldHVybiBhc0ludDMyKCk7CisgICAgICAgICAgICByZXR1cm4gYXNVSW50MzIoKTsKIAog
ICAgICAgICBkb3VibGUgdmFsID0gdG9OdW1iZXIoZXhlYyk7CiAKSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2NjI0NCkKKysrIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDQ0Miw2ICsyMDQ0Miw3IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1
cmF0aW9uTGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwogCQkJY29tcGF0aWJpbGl0eVZl
cnNpb24gPSAiWGNvZGUgMi40IjsKKwkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJ
CWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVu
Z2xpc2gsCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NjMxMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEwLTA4LTI4ICBHYXZpbiBCYXJy
YWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcgNDQ4MzAgLSBJbiBBcnJheSdzIHByb3RvdHlw
ZSBmdW5jdHlpb25zIHdlJ3JlIGluY29ycmVjdGx5IGhhbmRpbmcgbGFyZ2UgaW5kZXggdmFsdWVz
CisKKyAgICAgICAgV2UgYXJlIGluIHBsYWNlcyBjYXN0aW5nIGRvdWJsZXMgdG8gdW5zaWduZWRz
LCBhbmQgdW5zaWduZWRzIHRvIGludHMsIHdpdGhvdXQgYWx3YXlzIGNoZWNrCisgICAgICAgIHRo
YXQgdGhlIHJlc3VsdCBpcyB3aXRoaW4gYm91bmRzLiBUaGlzIGlzIHByb2JsZW1hdGljIGluIHRo
ZSBjYXNlIG9mIGRvdWJsZS10by11bnNpZ25lZAorICAgICAgICBjb252ZXJzaW9uIGJlY2F1c2Ug
d2Ugc2hvdWxkIGJlIHNhdHVyYXRpbmcgdG8gYXJyYXkgbGVuZ3RoLgorCisgICAgICAgIEFsc28s
IHRoZSBlcnJvciByZXR1cm4gdmFsdWUgZnJvbSBBcnJheS5zcGxpY2Ugc2hvdWxkIGJlIFtdLCBu
b3QgdW5kZWZpbmVkLgorCisgICAgICAgIEkgZG9uJ3Qgc2VlIGFueSBzZWN1cml0eSBjb25jZXJu
cyBoZXJlLiBUaGVzZSBtZXRob2RzIGFyZSBzcGVjJ2VkIGluIHN1Y2ggYSB3YXkgdGhhdCB0aGV5
CisgICAgICAgIGNhbiBiZSBhcHBsaWVkIHRvIG5vbiBBcnJheSBvYmplY3RzLCBzbyBpbiBhbGwg
Y2FzZXMgdGhlIChwb3RlbnRpYWxseSBib2d1cykgaW5kaWNlcyBhcmUKKyAgICAgICAgYmVpbmcg
cGFzc2VkIHRvIGZ1bmN0aW9ucyB0aGF0IHdpbGwgc2FmZWx5IGNoZWNrIGFjY2Vzc2VzIGFyZSB3
aXRoaW4gYm91bmRzLgorCisgICAgICAgICogZmFzdC9qcy9hcnJheS1zcGxpY2UtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2FycmF5LXNwbGljZS5qczoKKyAg
ICAgICAgKiBmYXN0L2pzL3NwdXRuaWsvQ29uZm9ybWFuY2UvMTVfTmF0aXZlX09iamVjdHMvMTUu
NF9BcnJheS8xNS40LjQvMTUuNC40LjEwX0FycmF5X3Byb3RvdHlwZV9zbGljZS9TMTUuNC40LjEw
X0EzX1QzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL3NwdXRuaWsvQ29uZm9ybWFu
Y2UvMTVfTmF0aXZlX09iamVjdHMvMTUuNF9BcnJheS8xNS40LjQvMTUuNC40LjEyX0FycmF5X3By
b3RvdHlwZV9zcGxpY2UvUzE1LjQuNC4xMl9BMi4yX1QzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2pzL3NwdXRuaWsvSW1wbGVtZW50YXRpb25fRGlhZ25vc3RpY3MvUzE1LjQuNC4xMl9E
MS41X1QxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpZXRlc3RjZW50ZXIvSmF2YXNjcmlwdC8x
NS40LjQuMTUtMy0yNi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaWV0ZXN0Y2VudGVyL0phdmFz
Y3JpcHQvMTUuNC40LjE1LTMtMjctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlldGVzdGNlbnRl
ci9KYXZhc2NyaXB0LzE1LjQuNC4xNS01LTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlldGVz
dGNlbnRlci9KYXZhc2NyaXB0LzE1LjQuNC4xNS01LTEyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpZXRlc3RjZW50ZXIvSmF2YXNjcmlwdC8xNS40LjQuMTUtNS0xNC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaWV0ZXN0Y2VudGVyL0phdmFzY3JpcHQvMTUuNC40LjE1LTUtMTYtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGlldGVzdGNlbnRlci9KYXZhc2NyaXB0LzE1LjQuNC4xNS04LTktZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkOgor
CiAyMDEwLTA4LTI4ICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L2FycmF5LXNwbGljZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9hcnJheS1zcGxpY2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NjI0NCkKKysrIExheW91
dFRlc3RzL2Zhc3QvanMvYXJyYXktc3BsaWNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtOCw3ICs4LDcgQEAgUEFTUyBhcnIuc3BsaWNlKDIpIGlzIFsnYycsJ2QnXQogUEFTUyBhcnIg
aXMgWydhJywnYiddCiBQQVNTIGFyci5zcGxpY2UoMCkgaXMgWydhJywnYiddCiBQQVNTIGFyciBp
cyBbXQotUEFTUyBhcnIuc3BsaWNlKCkgaXMgdW5kZWZpbmVkCitQQVNTIGFyci5zcGxpY2UoKSBp
cyBbXQogUEFTUyBhcnIgaXMgWydhJywnYicsJ2MnLCdkJ10KIFBBU1MgYXJyLnNwbGljZSh1bmRl
ZmluZWQpIGlzIFsnYScsJ2InLCdjJywnZCddCiBQQVNTIGFyciBpcyBbXQpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvYXJyYXktc3BsaWNlLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2FycmF5LXNwbGljZS5qcwkocmV2aXNp
b24gNjYyNDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9hcnJheS1zcGxp
Y2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgc2hvdWxkQmUoImFyci5zcGxp
Y2UoMCkiLCAiWydhJywnYiddIik7CiBzaG91bGRCZSgiYXJyIiwgIltdIikKIAogYXJyID0gWydh
JywnYicsJ2MnLCdkJ107Ci1zaG91bGRCZSgiYXJyLnNwbGljZSgpIiwgInVuZGVmaW5lZCIpCitz
aG91bGRCZSgiYXJyLnNwbGljZSgpIiwgIltdIikKIHNob3VsZEJlKCJhcnIiLCAiWydhJywnYics
J2MnLCdkJ10iKTsKIHNob3VsZEJlKCJhcnIuc3BsaWNlKHVuZGVmaW5lZCkiLCAiWydhJywnYics
J2MnLCdkJ10iKQogc2hvdWxkQmUoImFyciIsICJbXSIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy9zcHV0bmlrL0NvbmZvcm1hbmNlLzE1X05hdGl2ZV9PYmplY3RzLzE1LjRfQXJyYXkvMTUu
NC40LzE1LjQuNC4xMF9BcnJheV9wcm90b3R5cGVfc2xpY2UvUzE1LjQuNC4xMF9BM19UMy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zcHV0bmlrL0NvbmZv
cm1hbmNlLzE1X05hdGl2ZV9PYmplY3RzLzE1LjRfQXJyYXkvMTUuNC40LzE1LjQuNC4xMF9BcnJh
eV9wcm90b3R5cGVfc2xpY2UvUzE1LjQuNC4xMF9BM19UMy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDY2MjQ0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zcHV0bmlrL0NvbmZvcm1hbmNlLzE1X05h
dGl2ZV9PYmplY3RzLzE1LjRfQXJyYXkvMTUuNC40LzE1LjQuNC4xMF9BcnJheV9wcm90b3R5cGVf
c2xpY2UvUzE1LjQuNC4xMF9BM19UMy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw2IEBACiBTMTUuNC40LjEwX0EzX1QzCiAKLUZBSUwgU3B1dG5pa0Vycm9yOiAjMTogdmFy
IG9iaiA9IHt9OyBvYmouc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7IG9ials0Mjk0OTY3
Mjk0XSA9ICJ4Ijsgb2JqLmxlbmd0aCA9IDQyOTQ5NjcyOTU7IHZhciBhcnIgPSBvYmouc2xpY2Uo
NDI5NDk2NzI5NCw0Mjk0OTY3Mjk1KTsgYXJyLmxlbmd0aCA9PT0gMS4gQWN0dWFsOiAwCitQQVNT
IAogCiBURVNUIENPTVBMRVRFCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc3B1dG5pay9D
b25mb3JtYW5jZS8xNV9OYXRpdmVfT2JqZWN0cy8xNS40X0FycmF5LzE1LjQuNC8xNS40LjQuMTJf
QXJyYXlfcHJvdG90eXBlX3NwbGljZS9TMTUuNC40LjEyX0EyLjJfVDMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc3B1dG5pay9Db25mb3JtYW5jZS8xNV9O
YXRpdmVfT2JqZWN0cy8xNS40X0FycmF5LzE1LjQuNC8xNS40LjQuMTJfQXJyYXlfcHJvdG90eXBl
X3NwbGljZS9TMTUuNC40LjEyX0EyLjJfVDMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2NjI0NCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvc3B1dG5pay9Db25mb3JtYW5jZS8xNV9OYXRpdmVfT2Jq
ZWN0cy8xNS40X0FycmF5LzE1LjQuNC8xNS40LjQuMTJfQXJyYXlfcHJvdG90eXBlX3NwbGljZS9T
MTUuNC40LjEyX0EyLjJfVDMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEs
NiBAQAogUzE1LjQuNC4xMl9BMi4yX1QzCiAKLUZBSUwgU3B1dG5pa0Vycm9yOiAjMjogdmFyIHgg
PSBbMCwxLDIsM107IHZhciBhcnIgPSB4LnNwbGljZSgwLE51bWJlci5QT1NJVElWRV9JTkZJTklU
WSk7IGFyci5sZW5ndGggPT09IDQuIEFjdHVhbDogMAorUEFTUyAKIAogVEVTVCBDT01QTEVURQog
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NwdXRuaWsvSW1wbGVtZW50YXRpb25fRGlhZ25v
c3RpY3MvUzE1LjQuNC4xMl9EMS41X1QxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2pzL3NwdXRuaWsvSW1wbGVtZW50YXRpb25fRGlhZ25vc3RpY3MvUzE1LjQu
NC4xMl9EMS41X1QxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjYyNDQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2pzL3NwdXRuaWsvSW1wbGVtZW50YXRpb25fRGlhZ25vc3RpY3MvUzE1LjQuNC4xMl9E
MS41X1QxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIFMxNS40
LjQuMTJfRDEuNV9UMQogCi1GQUlMIFR5cGVFcnJvcjogUmVzdWx0IG9mIGV4cHJlc3Npb24gJ2Fy
cicgW3VuZGVmaW5lZF0gaXMgbm90IGFuIG9iamVjdC4KK1BBU1MgCiAKIFRFU1QgQ09NUExFVEUK
IApJbmRleDogTGF5b3V0VGVzdHMvaWV0ZXN0Y2VudGVyL0phdmFzY3JpcHQvMTUuNC40LjE1LTMt
MjYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2lldGVzdGNlbnRlci9K
YXZhc2NyaXB0LzE1LjQuNC4xNS0zLTI2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjYyNDQpCisr
KyBMYXlvdXRUZXN0cy9pZXRlc3RjZW50ZXIvSmF2YXNjcmlwdC8xNS40LjQuMTUtMy0yNi1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogCiBQQVNTIEVTNUhhcm5lc3MucHJlY29uZGl0aW9u
UGFzc2VkIGlzIHRydWUKLUZBSUwgRVM1SGFybmVzcy50ZXN0UGFzc2VkIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCitQQVNTIEVTNUhhcm5lc3MudGVzdFBhc3NlZCBpcyB0cnVlCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRl
c3RzL2lldGVzdGNlbnRlci9KYXZhc2NyaXB0LzE1LjQuNC4xNS0zLTI3LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pZXRlc3RjZW50ZXIvSmF2YXNjcmlwdC8xNS40LjQu
MTUtMy0yNy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2MjQ0KQorKysgTGF5b3V0VGVzdHMvaWV0
ZXN0Y2VudGVyL0phdmFzY3JpcHQvMTUuNC40LjE1LTMtMjctZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBCiAKIAogUEFTUyBFUzVIYXJuZXNzLnByZWNvbmRpdGlvblBhc3NlZCBpcyB0cnVlCi1G
QUlMIEVTNUhhcm5lc3MudGVzdFBhc3NlZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFT
UyBFUzVIYXJuZXNzLnRlc3RQYXNzZWQgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9pZXRlc3RjZW50ZXIv
SmF2YXNjcmlwdC8xNS40LjQuMTUtNS0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9pZXRlc3RjZW50ZXIvSmF2YXNjcmlwdC8xNS40LjQuMTUtNS0xLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNjYyNDQpCisrKyBMYXlvdXRUZXN0cy9pZXRlc3RjZW50ZXIvSmF2YXNjcmlw
dC8xNS40LjQuMTUtNS0xLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiAKIFBBU1MgRVM1
SGFybmVzcy5wcmVjb25kaXRpb25QYXNzZWQgaXMgdHJ1ZQotRkFJTCBFUzVIYXJuZXNzLnRlc3RQ
YXNzZWQgc2hvdWxkIGJlIHRydWUgKG9mIHR5cGUgYm9vbGVhbikuIFdhcyB1bmRlZmluZWQgKG9m
IHR5cGUgdW5kZWZpbmVkKS4KK1BBU1MgRVM1SGFybmVzcy50ZXN0UGFzc2VkIGlzIHRydWUKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5
b3V0VGVzdHMvaWV0ZXN0Y2VudGVyL0phdmFzY3JpcHQvMTUuNC40LjE1LTUtMTItZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2lldGVzdGNlbnRlci9KYXZhc2NyaXB0LzE1
LjQuNC4xNS01LTEyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjYyNDQpCisrKyBMYXlvdXRUZXN0
cy9pZXRlc3RjZW50ZXIvSmF2YXNjcmlwdC8xNS40LjQuMTUtNS0xMi1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEEKIAogCiBQQVNTIEVTNUhhcm5lc3MucHJlY29uZGl0aW9uUGFzc2VkIGlzIHRy
dWUKLUZBSUwgRVM1SGFybmVzcy50ZXN0UGFzc2VkIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2Uu
CitQQVNTIEVTNUhhcm5lc3MudGVzdFBhc3NlZCBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2lldGVzdGNl
bnRlci9KYXZhc2NyaXB0LzE1LjQuNC4xNS01LTE0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pZXRlc3RjZW50ZXIvSmF2YXNjcmlwdC8xNS40LjQuMTUtNS0xNC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDY2MjQ0KQorKysgTGF5b3V0VGVzdHMvaWV0ZXN0Y2VudGVyL0ph
dmFzY3JpcHQvMTUuNC40LjE1LTUtMTQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00
LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAog
UEFTUyBFUzVIYXJuZXNzLnByZWNvbmRpdGlvblBhc3NlZCBpcyB0cnVlCi1GQUlMIEVTNUhhcm5l
c3MudGVzdFBhc3NlZCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBFUzVIYXJuZXNz
LnRlc3RQYXNzZWQgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9pZXRlc3RjZW50ZXIvSmF2YXNjcmlwdC8x
NS40LjQuMTUtNS0xNi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaWV0
ZXN0Y2VudGVyL0phdmFzY3JpcHQvMTUuNC40LjE1LTUtMTYtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA2NjI0NCkKKysrIExheW91dFRlc3RzL2lldGVzdGNlbnRlci9KYXZhc2NyaXB0LzE1LjQuNC4x
NS01LTE2LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiAKIFBBU1MgRVM1SGFybmVzcy5w
cmVjb25kaXRpb25QYXNzZWQgaXMgdHJ1ZQotRkFJTCBFUzVIYXJuZXNzLnRlc3RQYXNzZWQgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgRVM1SGFybmVzcy50ZXN0UGFzc2VkIGlzIHRy
dWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRl
eDogTGF5b3V0VGVzdHMvaWV0ZXN0Y2VudGVyL0phdmFzY3JpcHQvMTUuNC40LjE1LTgtOS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaWV0ZXN0Y2VudGVyL0phdmFzY3Jp
cHQvMTUuNC40LjE1LTgtOS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2MjQ0KQorKysgTGF5b3V0
VGVzdHMvaWV0ZXN0Y2VudGVyL0phdmFzY3JpcHQvMTUuNC40LjE1LTgtOS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEEKIAogCiBQQVNTIEVTNUhhcm5lc3MucHJlY29uZGl0aW9uUGFzc2VkIGlz
IHRydWUKLUZBSUwgRVM1SGFybmVzcy50ZXN0UGFzc2VkIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCitQQVNTIEVTNUhhcm5lc3MudGVzdFBhc3NlZCBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCShyZXZpc2lvbiA2NjI0NCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzAsMTEgKzEzMCw2IEBAIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWlt
YWcKICMgVGhpcyB0ZXN0IGFzc2VydHM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzkzMgogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtZGVzdHJveS1p
ZnJhbWUuaHRtbAogCi0jIFRoZXNlIHRlc3RzIGZhaWwgaW4gNjQgYml0Ci0jIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODM1NgotZmFzdC9qcy9zcHV0bmlrL0NvbmZv
cm1hbmNlLzExX0V4cHJlc3Npb25zLzExLjVfTXVsdGlwbGljYXRpdmVfT3BlcmF0b3JzLzExLjUu
M19QZXJjZW50L1MxMS41LjNfQTRfVDIuaHRtbAotZmFzdC9qcy9zcHV0bmlrL0NvbmZvcm1hbmNl
LzE1X05hdGl2ZV9PYmplY3RzLzE1LjRfQXJyYXkvMTUuNC40LzE1LjQuNC4xMl9BcnJheV9wcm90
b3R5cGVfc3BsaWNlL1MxNS40LjQuMTJfQTIuMV9UMy5odG1sCi0KICMgVGVzdCBmYWlscyBvbiBT
bm93IExlb3BhcmQgaW4gRFJUIGJ1dCBwYXNzZXMgd2hlbiBydW4gbWFudWFsbHkgYW5kIHBhc3Nl
cyBvbiBMZW9wYXJkLiBUaGUgdGVzdCBpdHNlbGYgbWlnaHQgbmVlZAogIyB0d2Vha2luZyB0byBk
ZWFsIHdpdGggc2Nyb2xsaW5nIGRpZmZlcmVuY2VzIGJldHdlZW4gTGVvcGFyZCBhbmQgU0wuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODQxNgogZmFzdC9yZXBhaW50
L2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQtc2Nyb2xsLmh0bWwK
</data>
<flag name="review"
          id="54720"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>