<?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>161922</bug_id>
          
          <creation_ts>2016-09-13 12:11:56 -0700</creation_ts>
          <short_desc>MapHash should speculate on the type of its child node</short_desc>
          <delta_ts>2016-10-04 02:22:32 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229253</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-13 12:11:56 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229428</commentid>
    <comment_count>1</comment_count>
      <attachid>288763</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-13 19:52:20 -0700</bug_when>
    <thetext>Created attachment 288763
WIP

I think this is the patch, I just need to write a changelog.
At some point, I want to make things fast for doubles too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235519</commentid>
    <comment_count>2</comment_count>
      <attachid>290410</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-09-30 17:39:16 -0700</bug_when>
    <thetext>Created attachment 290410
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235894</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-03 13:52:24 -0700</bug_when>
    <thetext>landed in:
https://trac.webkit.org/changeset/206746</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236090</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-04 00:57:56 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; landed in:
&gt; https://trac.webkit.org/changeset/206746

It made many tests assert on 32 bit Apple Mac JSC bots:
- https://build.webkit.org/builders/Apple%20El%20Capitan%2032-bit%20JSC%20%28BuildAndTest%29/builds/3863
- https://build.webkit.org/builders/Apple%20Yosemite%2032-bit%20JSC%20%28BuildAndTest%29/builds/10854</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236108</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-04 01:34:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; landed in:
&gt; &gt; https://trac.webkit.org/changeset/206746
&gt; 
&gt; It made many tests assert on 32 bit Apple Mac JSC bots:
&gt; -
&gt; https://build.webkit.org/builders/Apple%20El%20Capitan%2032-
&gt; bit%20JSC%20%28BuildAndTest%29/builds/3863
&gt; -
&gt; https://build.webkit.org/builders/Apple%20Yosemite%2032-
&gt; bit%20JSC%20%28BuildAndTest%29/builds/10854

Will fix. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236114</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-04 02:12:55 -0700</bug_when>
    <thetext>Fix coming soon, just testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236115</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-10-04 02:22:32 -0700</bug_when>
    <thetext>landed 32-bit fix in:
https://trac.webkit.org/changeset/206767</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288763</attachid>
            <date>2016-09-13 19:52:20 -0700</date>
            <delta_ts>2016-09-30 17:39:16 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>13882</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL21hcC1rZXktd2VsbC10eXBlZC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tYXAta2V5LXdlbGwtdHlwZWQuanMJ
KG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3MvbWFwLWtleS13ZWxsLXR5
cGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAzIEBACitmdW5jdGlvbiBhc3NlcnQo
YikgeworICAgIGlmICghYikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQhIik7Cit9Citu
b0lubGluZShhc3NlcnQpOworCitsZXQgbWFwID0gbmV3IE1hcDsKKworZnVuY3Rpb24gaW50S2V5
KGtleSkgeworICAgIGtleSsrOworICAgIGtleS0tOworICAgIHJldHVybiBtYXAuZ2V0KGtleSk7
Cit9Citub0lubGluZShpbnRLZXkpOworCitmdW5jdGlvbiBkb3VibGVLZXkoa2V5KSB7CisgICAg
a2V5ICs9IDAuNTsKKyAgICByZXR1cm4gbWFwLmdldChrZXkpOworfQorbm9JbmxpbmUoZG91Ymxl
S2V5KTsKKworZnVuY3Rpb24gb2JqZWN0S2V5KG8pIHsKKyAgICBvLmY7CisgICAgcmV0dXJuIG1h
cC5nZXQobyk7Cit9Citub0lubGluZShvYmplY3RLZXkpOworCitmdW5jdGlvbiBzdHJpbmdLZXko
cykgeworICAgIHMgPSBzICsgczsKKyAgICBzID0gcy50b1N0cmluZygpOworICAgIHJldHVybiBt
YXAuZ2V0KHMpOworfQorbm9JbmxpbmUoc3RyaW5nS2V5KTsKKworZnVuY3Rpb24gYm9vbGVhbktl
eShib29sVmFsdWUpIHsKKyAgICByZXR1cm4gbWFwLmdldCghYm9vbFZhbHVlKTsKK30KK25vSW5s
aW5lKGJvb2xlYW5LZXkpOworCitmdW5jdGlvbiBzeW1ib2xLZXkobykgeworICAgIGxldCBzeW1i
b2wgPSBvLnN5bWJvbDsKKyAgICByZXR1cm4gbWFwLmdldChzeW1ib2wpOworfQorbm9JbmxpbmUo
c3ltYm9sS2V5KTsKKworY29uc3QgaXRlcnMgPSAxMDAwMDAwOworbGV0IHN0YXJ0ID0gRGF0ZS5u
b3coKTsKKworbWFwLnNldCgyMCwgNTApOworZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVyczsgaSsr
KSB7CisgICAgYXNzZXJ0KGludEtleSgyMCkgPT09IDUwKTsKK30KKworbWFwLnNldCgyMC41LCA1
NSk7Citmb3IgKGxldCBpID0gMDsgaSA8IGl0ZXJzOyBpKyspIHsKKyAgICBhc3NlcnQoZG91Ymxl
S2V5KDIwLjApID09PSA1NSk7Cit9CisKK21hcC5zZXQoMzAuMCwgNjApOworZm9yIChsZXQgaSA9
IDA7IGkgPCBpdGVyczsgaSsrKSB7CisgICAgYXNzZXJ0KGRvdWJsZUtleSgyOS41KSA9PT0gNjAp
OworfQorCit7CisgICAgbGV0IG8gPSB7ZjogMjB9OworICAgIG1hcC5zZXQobywgbyk7CisgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCBpdGVyczsgaSsrKSB7CisgICAgICAgIGFzc2VydChvYmplY3RL
ZXkobykgPT09IG8pOworICAgIH0KKyAgICBsZXQgc3RyID0gIjkzNDIxbmprZnNhZGhqa2xmc2Rh
aHV5OWk0MzEyIjsKKyAgICBtYXAuc2V0KHN0ciwgc3RyKTsKKyAgICBmb3IgKGxldCBpID0gMDsg
aSA8IDEwMDsgaSsrKQorICAgICAgICBhc3NlcnQob2JqZWN0S2V5KHN0cikgPT09IHN0cik7Cit9
CisKK3sKKyAgICBsZXQgcyA9ICJmb29mb28iOworICAgIG1hcC5zZXQocywgcyk7CisgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBpdGVyczsgaSsrKSB7CisgICAgICAgIGFzc2VydChzdHJpbmdLZXko
ImZvbyIpID09PSBzKTsKKyAgICB9Cit9CisKK21hcC5zZXQodHJ1ZSwgImFiYyIpOworZm9yIChs
ZXQgaSA9IDA7IGkgPCBpdGVyczsgaSsrKSB7CisgICAgYXNzZXJ0KGJvb2xlYW5LZXkoZmFsc2Up
ID09PSAiYWJjIik7Cit9CisKK21hcC5zZXQoZmFsc2UsICJhYmNkIik7Citmb3IgKGxldCBpID0g
MDsgaSA8IGl0ZXJzOyBpKyspIHsKKyAgICBhc3NlcnQoYm9vbGVhbktleSh0cnVlKSA9PT0gImFi
Y2QiKTsKK30KKworeworICAgIGxldCBzeW1ib2wgPSBTeW1ib2woKTsKKyAgICBsZXQgbyA9IHtz
eW1ib2x9OworICAgIG1hcC5zZXQoc3ltYm9sLCBvKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8
IGl0ZXJzOyBpKyspIHsKKyAgICAgICAgYXNzZXJ0KHN5bWJvbEtleShvKSA9PT0gbyk7CisgICAg
fQorfQorCitwcmludChEYXRlLm5vdygpIC0gc3RhcnQpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAyMDU4NzMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTc4LDkgKzE1NzgsNDAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8S25vd25D
ZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBj
YXNlIE1hcEhhc2g6CisgICAgICAgIGNhc2UgTWFwSGFzaDogeworICAgICAgICAgICAgaWYgKG5v
ZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVCb29sZWFuKCkpIHsKKyAgICAgICAgICAgICAg
ICBmaXhFZGdlPEJvb2xlYW5Vc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5z
aG91bGRTcGVjdWxhdGVJbnQzMigpKSB7CisgICAgICAgICAgICAgICAgZml4RWRnZTxJbnQzMlVz
ZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZVN5bWJv
bCgpKSB7CisgICAgICAgICAgICAgICAgZml4RWRnZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVPYmplY3QoKSkgeworICAgICAgICAg
ICAgICAgIGZpeEVkZ2U8T2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nKCkpIHsKKyAgICAgICAgICAgICAgICBmaXhFZGdlPFN0
cmluZ1VzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0
ZUNlbGwoKSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQx
KCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAgICAg
ICBmaXhFZGdlPFVudHlwZWRVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIC8vIEhhdmUgdGhl
c2Ugbm8tb3AgY2FzZXMgaGVyZSB0byBlbnN1cmUgdGhhdCBub2JvZHkgZm9yZ2V0cyB0byBhZGQg
aGFuZGxlcnMgZm9yIG5ldyBvcGNvZGVzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAyMDU4NzMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NjM4LDYgKzQ2MzgsODMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgIH0KIAogICAgIGNhc2UgTWFwSGFzaDogeworICAgICAgICBib29s
IGVtaXR0ZWQgPSBmYWxzZTsKKyAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkpIHsKKyAgICAgICAgY2FzZSBCb29sZWFuVXNlOgorICAgICAgICBjYXNlIEludDMyVXNlOgor
ICAgICAgICBjYXNlIFN5bWJvbFVzZToKKyAgICAgICAgY2FzZSBPYmplY3RVc2U6IHsKKyAgICAg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIGlucHV0KHRoaXMsIG5vZGUtPmNoaWxkMSgpLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlz
LCBSZXVzZSwgaW5wdXQpOworICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAodGhpcyk7CisK
KyAgICAgICAgICAgIEdQUlJlZyBpbnB1dEdQUiA9IGlucHV0LmdwcigpOworICAgICAgICAgICAg
R1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICAgICAgICAgIEdQUlJlZyB0ZW1w
R1BSID0gdGVtcC5ncHIoKTsKKworICAgICAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG5vZGUtPmNo
aWxkMSgpKTsKKworICAgICAgICAgICAgbV9qaXQubW92ZShpbnB1dEdQUiwgcmVzdWx0R1BSKTsK
KyAgICAgICAgICAgIG1faml0LndhbmdzSW50NjRIYXNoKHJlc3VsdEdQUiwgdGVtcEdQUik7Cisg
ICAgICAgICAgICBpbnQzMlJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworICAgICAgICAgICAgZW1p
dHRlZCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNh
c2UgQ2VsbFVzZToKKyAgICAgICAgY2FzZSBTdHJpbmdVc2U6IHsKKyAgICAgICAgICAgIFNwZWN1
bGF0ZUNlbGxPcGVyYW5kIGlucHV0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAg
IEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgICAgICBPcHRpb25hbDxHUFJUZW1w
b3Jhcnk+IHRlbXA7CisKKyAgICAgICAgICAgIEdQUlJlZyB0ZW1wR1BSOworICAgICAgICAgICAg
aWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7CisgICAgICAgICAgICAg
ICAgdGVtcCA9IEdQUlRlbXBvcmFyeSh0aGlzKTsKKyAgICAgICAgICAgICAgICB0ZW1wR1BSID0g
dGVtcC0+Z3ByKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEdQUlJlZyBpbnB1dEdQ
UiA9IGlucHV0LmdwcigpOworICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5n
cHIoKTsKKworICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dQYXRoOwor
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGRvbmU7CisKKyAgICAgICAgICAg
IGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gU3RyaW5nVXNlKQorICAgICAgICAgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgaW5wdXRHUFIpOworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBpc1N0cmluZyA9IG1faml0LmJyYW5jaDgo
TWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhpbnB1dEdQUiwg
SlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdUeXBlKSk7
CisgICAgICAgICAgICAgICAgbV9qaXQubW92ZShpbnB1dEdQUiwgcmVzdWx0R1BSKTsKKyAgICAg
ICAgICAgICAgICBtX2ppdC53YW5nc0ludDY0SGFzaChyZXN1bHRHUFIsIHRlbXBHUFIpOworICAg
ICAgICAgICAgICAgIGRvbmUuYXBwZW5kKG1faml0Lmp1bXAoKSk7CisgICAgICAgICAgICAgICAg
aXNTdHJpbmcubGluaygmbV9qaXQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtX2pp
dC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGlucHV0R1BSLCBKU1N0cmluZzo6b2Zm
c2V0T2ZWYWx1ZSgpKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZCht
X2ppdC5icmFuY2hUZXN0UHRyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCByZXN1bHRHUFIpKTsKKyAg
ICAgICAgICAgIG1faml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhyZXN1bHRHUFIs
IFN0cmluZ0ltcGw6OmZsYWdzT2Zmc2V0KCkpLCByZXN1bHRHUFIpOworICAgICAgICAgICAgbV9q
aXQudXJzaGlmdDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoU3RyaW5nSW1wbDo6c19m
bGFnQ291bnQpLCByZXN1bHRHUFIpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0
LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmVzdWx0R1BSKSk7CisgICAgICAg
ICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOworCisgICAgICAgICAgICBzbG93UGF0aC5s
aW5rKCZtX2ppdCk7CisgICAgICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRH
UFIpOworICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25NYXBIYXNoLCByZXN1bHRH
UFIsIEpTVmFsdWVSZWdzKGlucHV0R1BSKSk7CisgICAgICAgICAgICBzaWxlbnRGaWxsQWxsUmVn
aXN0ZXJzKHJlc3VsdEdQUik7CisgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwor
CisgICAgICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIGludDMyUmVzdWx0
KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgICAgICAgICBlbWl0dGVkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVtaXR0ZWQpCisgICAgICAgICAgICBicmVh
azsKKwogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBpbnB1dCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwogICAgICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjA1ODczKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzI0LDggKzYzMjQs
MTIwIEBAIHByaXZhdGU6CiAgICAgICAgIHNldEJvb2xlYW4obV9vdXQucGhpKEludDMyLCBub3RD
ZWxsUmVzdWx0LCBjZWxsUmVzdWx0KSk7CiAgICAgfQogCisgICAgTFZhbHVlIHdhbmdzSW50NjRI
YXNoKExWYWx1ZSBpbnB1dCkKKyAgICB7CisgICAgICAgIC8vIGtleSArPSB+KGtleSA8PCAzMik7
CisgICAgICAgIExWYWx1ZSBrZXkgPSBpbnB1dDsKKyAgICAgICAgTFZhbHVlIHRlbXAgPSBrZXk7
CisgICAgICAgIHRlbXAgPSBtX291dC5zaGwodGVtcCwgbV9vdXQuY29uc3RJbnQzMigzMikpOwor
ICAgICAgICB0ZW1wID0gbV9vdXQuYml0Tm90KHRlbXApOworICAgICAgICBrZXkgPSBtX291dC5h
ZGQoa2V5LCB0ZW1wKTsKKyAgICAgICAgLy8ga2V5IF49IChrZXkgPj4gMjIpOworICAgICAgICB0
ZW1wID0ga2V5OworICAgICAgICB0ZW1wID0gbV9vdXQubFNocih0ZW1wLCBtX291dC5jb25zdElu
dDMyKDIyKSk7CisgICAgICAgIGtleSA9IG1fb3V0LmJpdFhvcihrZXksIHRlbXApOworICAgICAg
ICAvLyBrZXkgKz0gfihrZXkgPDwgMTMpOworICAgICAgICB0ZW1wID0ga2V5OworICAgICAgICB0
ZW1wID0gbV9vdXQuc2hsKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMTMpKTsKKyAgICAgICAgdGVt
cCA9IG1fb3V0LmJpdE5vdCh0ZW1wKTsKKyAgICAgICAga2V5ID0gbV9vdXQuYWRkKGtleSwgdGVt
cCk7CisgICAgICAgIC8vIGtleSBePSAoa2V5ID4+IDgpOworICAgICAgICB0ZW1wID0ga2V5Owor
ICAgICAgICB0ZW1wID0gbV9vdXQubFNocih0ZW1wLCBtX291dC5jb25zdEludDMyKDgpKTsKKyAg
ICAgICAga2V5ID0gbV9vdXQuYml0WG9yKGtleSwgdGVtcCk7CisgICAgICAgIC8vIGtleSArPSAo
a2V5IDw8IDMpOworICAgICAgICB0ZW1wID0ga2V5OworICAgICAgICB0ZW1wID0gbV9vdXQuc2hs
KHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMykpOworICAgICAgICBrZXkgPSBtX291dC5hZGQoa2V5
LCB0ZW1wKTsKKyAgICAgICAgLy8ga2V5IF49IChrZXkgPj4gMTUpOworICAgICAgICB0ZW1wID0g
a2V5OworICAgICAgICB0ZW1wID0gbV9vdXQubFNocih0ZW1wLCBtX291dC5jb25zdEludDMyKDE1
KSk7CisgICAgICAgIGtleSA9IG1fb3V0LmJpdFhvcihrZXksIHRlbXApOworICAgICAgICAvLyBr
ZXkgKz0gfihrZXkgPDwgMjcpOworICAgICAgICB0ZW1wID0ga2V5OworICAgICAgICB0ZW1wID0g
bV9vdXQuc2hsKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMjcpKTsKKyAgICAgICAgdGVtcCA9IG1f
b3V0LmJpdE5vdCh0ZW1wKTsKKyAgICAgICAga2V5ID0gbV9vdXQuYWRkKGtleSwgdGVtcCk7Cisg
ICAgICAgIC8vIGtleSBePSAoa2V5ID4+IDMxKTsKKyAgICAgICAgdGVtcCA9IGtleTsKKyAgICAg
ICAgdGVtcCA9IG1fb3V0LmxTaHIodGVtcCwgbV9vdXQuY29uc3RJbnQzMigzMSkpOworICAgICAg
ICBrZXkgPSBtX291dC5iaXRYb3Ioa2V5LCB0ZW1wKTsKKyAgICAgICAga2V5ID0gbV9vdXQuY2Fz
dFRvSW50MzIoa2V5KTsKKworICAgICAgICByZXR1cm4ga2V5OworICAgIH0KKworICAgIExWYWx1
ZSBtYXBIYXNoU3RyaW5nKExWYWx1ZSBzdHJpbmcpCisgICAgeworICAgICAgICBMQmFzaWNCbG9j
ayBub25FbXB0eVN0cmluZ0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNC
bG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Jsb2NrIGNv
bnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisKKyAgICAgICAgTFZhbHVlIHN0cmluZ0lt
cGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CisgICAg
ICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgIG1fb3V0LmVxdWFsKHN0cmluZ0ltcGwsIG1f
b3V0LmNvbnN0SW50UHRyKDApKSwgdW5zdXJlKHNsb3dDYXNlKSwgdW5zdXJlKG5vbkVtcHR5U3Ry
aW5nQ2FzZSkpOworCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5k
VG8obm9uRW1wdHlTdHJpbmdDYXNlLCBzbG93Q2FzZSk7CisgICAgICAgIExWYWx1ZSBoYXNoID0g
bV9vdXQubFNocihtX291dC5sb2FkMzIoc3RyaW5nSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2hh
c2hBbmRGbGFncyksIG1fb3V0LmNvbnN0SW50MzIoU3RyaW5nSW1wbDo6c19mbGFnQ291bnQpKTsK
KyAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm9uRW1wdHlTdHJpbmdIYXNoUmVzdWx0ID0gbV9vdXQu
YW5jaG9yKGhhc2gpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwoaGFzaCwgbV9v
dXQuY29uc3RJbnQzMigwKSksCisgICAgICAgICAgICB1bnN1cmUoc2xvd0Nhc2UpLCB1bnN1cmUo
Y29udGludWF0aW9uKSk7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRp
bnVhdGlvbik7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNo
b3IoCisgICAgICAgICAgICB2bUNhbGwoSW50MzIsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25N
YXBIYXNoKSwgbV9jYWxsRnJhbWUsIHN0cmluZykpOworICAgICAgICBtX291dC5qdW1wKGNvbnRp
bnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4
dCk7CisgICAgICAgIHJldHVybiBtX291dC5waGkoSW50MzIsIHNsb3dSZXN1bHQsIG5vbkVtcHR5
U3RyaW5nSGFzaFJlc3VsdCk7CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlTWFwSGFzaCgpCiAg
ICAgeworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CisgICAg
ICAgIGNhc2UgQm9vbGVhblVzZToKKyAgICAgICAgY2FzZSBJbnQzMlVzZToKKyAgICAgICAgY2Fz
ZSBTeW1ib2xVc2U6CisgICAgICAgIGNhc2UgT2JqZWN0VXNlOiB7CisgICAgICAgICAgICBMVmFs
dWUga2V5ID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpLCBNYW51YWxPcGVyYW5kU3BlY3Vs
YXRpb24pOworICAgICAgICAgICAgc3BlY3VsYXRlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICAgICAgc2V0SW50MzIod2FuZ3NJbnQ2NEhhc2goa2V5KSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBjYXNlIENlbGxVc2U6IHsKKyAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIGlzU3RyaW5nID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIG5vdFN0cmluZyA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgICAgICBMQmFzaWNCbG9j
ayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOworCisgICAgICAgICAgICBMVmFsdWUg
dmFsdWUgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgTFZhbHVlIGlz
U3RyaW5nVmFsdWUgPSBtX291dC5lcXVhbChtX291dC5sb2FkOFplcm9FeHQzMih2YWx1ZSwgbV9o
ZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwgbV9vdXQuY29uc3RJbnQzMihTdHJpbmdUeXBlKSk7
CisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgaXNTdHJpbmdWYWx1
ZSwgdW5zdXJlKGlzU3RyaW5nKSwgdW5zdXJlKG5vdFN0cmluZykpOworCisgICAgICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlzU3RyaW5nLCBub3RTdHJpbmcp
OworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc3RyaW5nUmVzdWx0ID0gbV9vdXQuYW5jaG9y
KG1hcEhhc2hTdHJpbmcodmFsdWUpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0
aW9uKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90U3RyaW5nLCBjb250aW51YXRp
b24pOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm90U3RyaW5nUmVzdWx0ID0gbV9vdXQu
YW5jaG9yKHdhbmdzSW50NjRIYXNoKHZhbHVlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNv
bnRpbnVhdGlvbik7CisKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwg
bGFzdE5leHQpOworICAgICAgICAgICAgc2V0SW50MzIobV9vdXQucGhpKEludDMyLCBzdHJpbmdS
ZXN1bHQsIG5vdFN0cmluZ1Jlc3VsdCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgY2FzZSBTdHJpbmdVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBzdHJpbmcg
PSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBzZXRJbnQzMihtYXBI
YXNoU3RyaW5nKHN0cmluZykpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAg
TFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKIAogICAgICAgICBM
QmFzaWNCbG9jayBpc0NlbGxDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKQEAgLTYzNTQsNyArNjQ2
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIExWYWx1ZSBoYXNoID0gbV9vdXQubFNocihtX291dC5s
b2FkMzIoc3RyaW5nSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2hhc2hBbmRGbGFncyksIG1fb3V0
LmNvbnN0SW50MzIoU3RyaW5nSW1wbDo6c19mbGFnQ291bnQpKTsKICAgICAgICAgVmFsdWVGcm9t
QmxvY2sgbm9uRW1wdHlTdHJpbmdIYXNoUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGhhc2gpOwogICAg
ICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwoaGFzaCwgbV9vdXQuY29uc3RJbnQzMigwKSks
Ci0gICAgICAgICAgICByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5KGNvbnRpbnVhdGlvbikpOwor
ICAgICAgICAgICAgdW5zdXJlKHNsb3dDYXNlKSwgdW5zdXJlKGNvbnRpbnVhdGlvbikpOwogCiAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdENlbGwsIGlzTnVtYmVyQ2FzZSk7CiAgICAgICAgIG1f
b3V0LmJyYW5jaCgKQEAgLTYzNjUsNDUgKzY0NzcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
aXNJbnQzMih2YWx1ZSksIHVuc3VyZShzdHJhaWdodEhhc2gpLCB1bnN1cmUoc2xvd0Nhc2UpKTsK
IAogICAgICAgICBtX291dC5hcHBlbmRUbyhzdHJhaWdodEhhc2gsIHNsb3dDYXNlKTsKLSAgICAg
ICAgLy8ga2V5ICs9IH4oa2V5IDw8IDMyKTsKLSAgICAgICAgTFZhbHVlIGtleSA9IHZhbHVlOwot
ICAgICAgICBMVmFsdWUgdGVtcCA9IGtleTsKLSAgICAgICAgdGVtcCA9IG1fb3V0LnNobCh0ZW1w
LCBtX291dC5jb25zdEludDMyKDMyKSk7Ci0gICAgICAgIHRlbXAgPSBtX291dC5iaXROb3QodGVt
cCk7Ci0gICAgICAgIGtleSA9IG1fb3V0LmFkZChrZXksIHRlbXApOwotICAgICAgICAvLyBrZXkg
Xj0gKGtleSA+PiAyMik7Ci0gICAgICAgIHRlbXAgPSBrZXk7Ci0gICAgICAgIHRlbXAgPSBtX291
dC5sU2hyKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMjIpKTsKLSAgICAgICAga2V5ID0gbV9vdXQu
Yml0WG9yKGtleSwgdGVtcCk7Ci0gICAgICAgIC8vIGtleSArPSB+KGtleSA8PCAxMyk7Ci0gICAg
ICAgIHRlbXAgPSBrZXk7Ci0gICAgICAgIHRlbXAgPSBtX291dC5zaGwodGVtcCwgbV9vdXQuY29u
c3RJbnQzMigxMykpOwotICAgICAgICB0ZW1wID0gbV9vdXQuYml0Tm90KHRlbXApOwotICAgICAg
ICBrZXkgPSBtX291dC5hZGQoa2V5LCB0ZW1wKTsKLSAgICAgICAgLy8ga2V5IF49IChrZXkgPj4g
OCk7Ci0gICAgICAgIHRlbXAgPSBrZXk7Ci0gICAgICAgIHRlbXAgPSBtX291dC5sU2hyKHRlbXAs
IG1fb3V0LmNvbnN0SW50MzIoOCkpOwotICAgICAgICBrZXkgPSBtX291dC5iaXRYb3Ioa2V5LCB0
ZW1wKTsKLSAgICAgICAgLy8ga2V5ICs9IChrZXkgPDwgMyk7Ci0gICAgICAgIHRlbXAgPSBrZXk7
Ci0gICAgICAgIHRlbXAgPSBtX291dC5zaGwodGVtcCwgbV9vdXQuY29uc3RJbnQzMigzKSk7Ci0g
ICAgICAgIGtleSA9IG1fb3V0LmFkZChrZXksIHRlbXApOwotICAgICAgICAvLyBrZXkgXj0gKGtl
eSA+PiAxNSk7Ci0gICAgICAgIHRlbXAgPSBrZXk7Ci0gICAgICAgIHRlbXAgPSBtX291dC5sU2hy
KHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMTUpKTsKLSAgICAgICAga2V5ID0gbV9vdXQuYml0WG9y
KGtleSwgdGVtcCk7Ci0gICAgICAgIC8vIGtleSArPSB+KGtleSA8PCAyNyk7Ci0gICAgICAgIHRl
bXAgPSBrZXk7Ci0gICAgICAgIHRlbXAgPSBtX291dC5zaGwodGVtcCwgbV9vdXQuY29uc3RJbnQz
MigyNykpOwotICAgICAgICB0ZW1wID0gbV9vdXQuYml0Tm90KHRlbXApOwotICAgICAgICBrZXkg
PSBtX291dC5hZGQoa2V5LCB0ZW1wKTsKLSAgICAgICAgLy8ga2V5IF49IChrZXkgPj4gMzEpOwot
ICAgICAgICB0ZW1wID0ga2V5OwotICAgICAgICB0ZW1wID0gbV9vdXQubFNocih0ZW1wLCBtX291
dC5jb25zdEludDMyKDMxKSk7Ci0gICAgICAgIGtleSA9IG1fb3V0LmJpdFhvcihrZXksIHRlbXAp
OwotICAgICAgICBrZXkgPSBtX291dC5jYXN0VG9JbnQzMihrZXkpOwotCi0gICAgICAgIFZhbHVl
RnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3Ioa2V5KTsKKyAgICAgICAgVmFsdWVG
cm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcih3YW5nc0ludDY0SGFzaCh2YWx1ZSkp
OwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAKICAgICAgICAgbV9vdXQuYXBw
ZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290410</attachid>
            <date>2016-09-30 17:39:16 -0700</date>
            <delta_ts>2016-09-30 18:10:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>17662</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDY2OTcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIxIEBACisyMDE2LTA5LTMwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIE1hcEhhc2ggc2hvdWxkIHNwZWN1bGF0ZSBvbiB0aGUgdHlwZSBvZiBp
dHMgY2hpbGQgbm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYxOTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBtaWNyb2JlbmNobWFya3MvbWFwLWtleS13ZWxsLXR5cGVkLmpzOiBBZGRlZC4KKyAg
ICAgICAgKGFzc2VydCk6CisgICAgICAgIChpbnRLZXkpOgorICAgICAgICAoZG91YmxlS2V5KToK
KyAgICAgICAgKG9iamVjdEtleSk6CisgICAgICAgIChzdHJpbmdLZXkpOgorICAgICAgICAoYm9v
bGVhbktleSk6CisgICAgICAgIChzeW1ib2xLZXkpOgorICAgICAgICAoYXNzZXJ0LmRvdWJsZUtl
eSk6CisgICAgICAgIChhc3NlcnQuYm9vbGVhbktleSk6CisKIDIwMTYtMDktMzAgIFNhYW0gQmFy
YXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXJyb3cgZnVuY3Rpb25zIHNob3Vs
ZCBub3QgYWxsb3cgZHVwbGljYXRlIHBhcmFtZXRlciBuYW1lcwpJbmRleDogSlNUZXN0cy9taWNy
b2JlbmNobWFya3MvbWFwLWtleS13ZWxsLXR5cGVkLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL21hcC1rZXktd2VsbC10eXBlZC5qcwkobm9uZXhpc3RlbnQpCisrKyBK
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9tYXAta2V5LXdlbGwtdHlwZWQuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMjcgQEAKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgICAgaWYgKCFiKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCEiKTsKK30KK25vSW5saW5lKGFzc2VydCk7CisK
K2xldCBtYXAgPSBuZXcgTWFwOworCitmdW5jdGlvbiBpbnRLZXkoa2V5KSB7CisgICAga2V5Kys7
CisgICAga2V5LS07CisgICAgcmV0dXJuIG1hcC5nZXQoa2V5KTsKK30KK25vSW5saW5lKGludEtl
eSk7CisKK2Z1bmN0aW9uIGRvdWJsZUtleShrZXkpIHsKKyAgICBrZXkgKz0gMC41OworICAgIHJl
dHVybiBtYXAuZ2V0KGtleSk7Cit9Citub0lubGluZShkb3VibGVLZXkpOworCitmdW5jdGlvbiBv
YmplY3RLZXkobykgeworICAgIG8uZjsKKyAgICByZXR1cm4gbWFwLmdldChvKTsKK30KK25vSW5s
aW5lKG9iamVjdEtleSk7CisKK2Z1bmN0aW9uIHN0cmluZ0tleShzKSB7CisgICAgcyA9IHMgKyBz
OworICAgIHMgPSBzLnRvU3RyaW5nKCk7CisgICAgcmV0dXJuIG1hcC5nZXQocyk7Cit9Citub0lu
bGluZShzdHJpbmdLZXkpOworCitmdW5jdGlvbiBib29sZWFuS2V5KGJvb2xWYWx1ZSkgeworICAg
IHJldHVybiBtYXAuZ2V0KCFib29sVmFsdWUpOworfQorbm9JbmxpbmUoYm9vbGVhbktleSk7CisK
K2Z1bmN0aW9uIHN5bWJvbEtleShvKSB7CisgICAgbGV0IHN5bWJvbCA9IG8uc3ltYm9sOworICAg
IHJldHVybiBtYXAuZ2V0KHN5bWJvbCk7Cit9Citub0lubGluZShzeW1ib2xLZXkpOworCitmdW5j
dGlvbiBjZWxsS2V5KGspIHsKKyAgICByZXR1cm4gbWFwLmdldChrKTsKK30KK25vSW5saW5lKGNl
bGxLZXkpOworCitjb25zdCBpdGVycyA9IDMwMDAwMDsKK2xldCBzdGFydCA9IERhdGUubm93KCk7
CisKK21hcC5zZXQoMjAsIDUwKTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgaXRlcnM7IGkrKykgewor
ICAgIGFzc2VydChpbnRLZXkoMjApID09PSA1MCk7Cit9CisKK21hcC5zZXQoMjAuNSwgNTUpOwor
Zm9yIChsZXQgaSA9IDA7IGkgPCBpdGVyczsgaSsrKSB7CisgICAgYXNzZXJ0KGRvdWJsZUtleSgy
MC4wKSA9PT0gNTUpOworfQorCittYXAuc2V0KDMwLjAsIDYwKTsKK2ZvciAobGV0IGkgPSAwOyBp
IDwgaXRlcnM7IGkrKykgeworICAgIGFzc2VydChkb3VibGVLZXkoMjkuNSkgPT09IDYwKTsKK30K
KworeworICAgIGxldCBvID0ge2Y6IDIwfTsKKyAgICBtYXAuc2V0KG8sIG8pOworICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgaXRlcnM7IGkrKykgeworICAgICAgICBhc3NlcnQob2JqZWN0S2V5KG8p
ID09PSBvKTsKKyAgICB9CisgICAgbGV0IHN0ciA9ICI5MzQyMW5qa2ZzYWRoamtsZnNkYWh1eTlp
NDMxMiI7CisgICAgbWFwLnNldChzdHIsIHN0cik7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDA7IGkrKykKKyAgICAgICAgYXNzZXJ0KG9iamVjdEtleShzdHIpID09PSBzdHIpOworfQorCit7
CisgICAgbGV0IHMgPSAiZm9vZm9vIjsKKyAgICBtYXAuc2V0KHMsIHMpOworICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgaXRlcnM7IGkrKykgeworICAgICAgICBhc3NlcnQoc3RyaW5nS2V5KCJmb28i
KSA9PT0gcyk7CisgICAgfQorfQorCittYXAuc2V0KHRydWUsICJhYmMiKTsKK2ZvciAobGV0IGkg
PSAwOyBpIDwgaXRlcnM7IGkrKykgeworICAgIGFzc2VydChib29sZWFuS2V5KGZhbHNlKSA9PT0g
ImFiYyIpOworfQorCittYXAuc2V0KGZhbHNlLCAiYWJjZCIpOworZm9yIChsZXQgaSA9IDA7IGkg
PCBpdGVyczsgaSsrKSB7CisgICAgYXNzZXJ0KGJvb2xlYW5LZXkodHJ1ZSkgPT09ICJhYmNkIik7
Cit9CisKK3sKKyAgICBsZXQgc3ltYm9sID0gU3ltYm9sKCk7CisgICAgbGV0IG8gPSB7c3ltYm9s
fTsKKyAgICBtYXAuc2V0KHN5bWJvbCwgbyk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVy
czsgaSsrKSB7CisgICAgICAgIGFzc2VydChzeW1ib2xLZXkobykgPT09IG8pOworICAgIH0KK30K
KworeworICAgIGxldCBvMSA9IHt9OworICAgIGxldCBvMiA9IHt9OworICAgIGxldCBzMSA9ICJz
MXMxczFzMXMxczEiOworICAgIGxldCBzMiA9ICJzMXMxczFzMXMxczFzMiI7CisgICAgbWFwLnNl
dChvMSwgbzIpOworICAgIG1hcC5zZXQoczEsIHMyKTsKKyAgICBsZXQga2V5cyA9IFtvMSwgbzIs
IHMxLCBzMl07CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVyczsgaSsrKSB7CisgICAgICAg
IGxldCBrID0ga2V5c1tpICUga2V5cy5sZW5ndGhdOworICAgICAgICBsZXQgcmVzdWx0ID0gayA9
PT0gbzEgPyBvMiA6IAorICAgICAgICAgICAgICAgICAgICAgayA9PT0gczEgPyBzMiA6CisgICAg
ICAgICAgICAgICAgICAgICB1bmRlZmluZWQ7CisgICAgICAgIGFzc2VydChjZWxsS2V5KGspID09
PSByZXN1bHQpOworICAgIH0KK30KKworY29uc3QgdmVyYm9zZSA9IHRydWU7CitpZiAodmVyYm9z
ZSkKKyAgICBwcmludChEYXRlLm5vdygpIC0gc3RhcnQpOwpJbmRleDogUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwNjY0MykKKysrIFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDktMzAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CisKKyAgICAgICAgTWFwSGFzaCBzaG91bGQgc3BlY3VsYXRlIG9uIHRoZSB0eXBl
IG9mIGl0cyBjaGlsZCBub2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjE5MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJIGdhdmUgdGhlIG1haW4gZ2VuZXJhdG9yIGEgbmFtZSBzbyBpdCdzIGVhc2ll
ciB0byBzZWUgd2hhdAorICAgICAgICBpdCBpcyB3aGVuIHVzaW5nIHRoZSBzYW1wbGluZyBwcm9m
aWxlci4KKworICAgICAgICAqIEVTNlNhbXBsZUJlbmNoL0Jhc2ljL2FzdC5qczoKKyAgICAgICAg
KEJhc2ljLlByb2dyYW0pOgorCiAyMDE2LTA5LTE5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3Zp
bGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZ3JpZF0gUmVtb3ZlIHRoZSB4MiBjb21w
dXRhdGlvbiBvZiByb3cgc2l6ZXMgd2l0aCBpbmRlZmluaXRlIGhlaWdodHMKSW5kZXg6IFBlcmZv
cm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvQmFzaWMvYXN0LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBl
cmZvcm1hbmNlVGVzdHMvRVM2U2FtcGxlQmVuY2gvQmFzaWMvYXN0LmpzCShyZXZpc2lvbiAyMDY2
NDMpCisrKyBQZXJmb3JtYW5jZVRlc3RzL0VTNlNhbXBsZUJlbmNoL0Jhc2ljL2FzdC5qcwkod29y
a2luZyBjb3B5KQpAQCAtMjU3LDcgKzI1Nyw3IEBAIEJhc2ljLkVuZCA9IGZ1bmN0aW9uKihzdGF0
ZSkKIAogQmFzaWMuRW5kLmlzQmxvY2tFbmQgPSB0cnVlOwogCi1CYXNpYy5Qcm9ncmFtID0gZnVu
Y3Rpb24qKHN0YXRlKQorQmFzaWMuUHJvZ3JhbSA9IGZ1bmN0aW9uKiBwcm9ncmFtR2VuZXJhdG9y
KHN0YXRlKQogewogICAgIHN0YXRlLnZhbGlkYXRlKHN0YXRlLnByb2dyYW0gPT0gdGhpcywgIlN0
YXRlIG11c3QgbWF0Y2ggcHJvZ3JhbSIpOwogICAgIGxldCBtYXhMaW5lTnVtYmVyID0gTWF0aC5t
YXgoLi4udGhpcy5zdGF0ZW1lbnRzLmtleXMoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIwNjY3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxNi0wOS0zMCAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAgICBNYXBIYXNoIHNob3VsZCBzcGVjdWxhdGUg
b24gdGhlIHR5cGUgb2YgaXRzIGNoaWxkIG5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTkyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBydW50aW1lIHR5
cGUgY2hlY2tzIHdoZW4gd2UndmUgYWxyZWFkeQorICAgICAgICBwcm92ZW4gdGhlIHR5cGUgb2Yg
dGhlIGluY29taW5nIHZhbHVlLgorCisgICAgICAgIFRoaXMgaXMgYSAyLTMlIHNwZWVkdXAgb24g
RVM2U2FtcGxlQmVuY2gvQmFzaWMuCisKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjp3YW5nc0ludDY0SGFzaCk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Om1hcEhhc2hTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTWFwSGFzaCk6CisKIDIwMTYt
MDktMzAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggbW9kdWxlcyB0ZXN0cyBhZnRlciByMjA2NjUzIGhhbmRsZSBicmVha3BvaW50IGxvY2F0aW9u
cyBpbiBpbXBvcnQvZXhwb3J0IHN0YXRlbWVudHMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMjA2NjQzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU5
OSw5ICsxNTk5LDQwIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBN
YXBIYXNoOgorICAgICAgICBjYXNlIE1hcEhhc2g6IHsKKyAgICAgICAgICAgIGlmIChub2RlLT5j
aGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlQm9vbGVhbigpKSB7CisgICAgICAgICAgICAgICAgZml4
RWRnZTxCb29sZWFuVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxk
U3BlY3VsYXRlSW50MzIoKSkgeworICAgICAgICAgICAgICAgIGZpeEVkZ2U8SW50MzJVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVTeW1ib2woKSkg
eworICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3ltYm9sVXNlPihub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAg
ICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCktPnNo
b3VsZFNwZWN1bGF0ZVN0cmluZygpKSB7CisgICAgICAgICAgICAgICAgZml4RWRnZTxTdHJpbmdV
c2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVDZWxs
KCkpIHsKKyAgICAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZml4
RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICAvLyBIYXZlIHRoZXNlIG5v
LW9wIGNhc2VzIGhlcmUgdG8gZW5zdXJlIHRoYXQgbm9ib2R5IGZvcmdldHMgdG8gYWRkIGhhbmRs
ZXJzIGZvciBuZXcgb3Bjb2Rlcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMjA2NjQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDYwMiw2ICs0NjAyLDc5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgTWFwSGFzaDogeworICAgICAgICBz
d2l0Y2ggKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgeworICAgICAgICBjYXNlIEJvb2xlYW5V
c2U6CisgICAgICAgIGNhc2UgSW50MzJVc2U6CisgICAgICAgIGNhc2UgU3ltYm9sVXNlOgorICAg
ICAgICBjYXNlIE9iamVjdFVzZTogeworICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaW5wdXQo
dGhpcywgbm9kZS0+Y2hpbGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAgICAg
ICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBpbnB1dCk7CisgICAgICAgICAg
ICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKKworICAgICAgICAgICAgR1BSUmVnIGlucHV0R1BS
ID0gaW5wdXQuZ3ByKCk7CisgICAgICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0Lmdw
cigpOworICAgICAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOworCisgICAgICAg
ICAgICBzcGVjdWxhdGUobm9kZSwgbm9kZS0+Y2hpbGQxKCkpOworCisgICAgICAgICAgICBtX2pp
dC5tb3ZlKGlucHV0R1BSLCByZXN1bHRHUFIpOworICAgICAgICAgICAgbV9qaXQud2FuZ3NJbnQ2
NEhhc2gocmVzdWx0R1BSLCB0ZW1wR1BSKTsKKyAgICAgICAgICAgIGludDMyUmVzdWx0KHJlc3Vs
dEdQUiwgbm9kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IENlbGxVc2U6CisgICAgICAgIGNhc2UgU3RyaW5nVXNlOiB7CisgICAgICAgICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBpbnB1dCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAgT3B0aW9uYWw8R1BSVGVtcG9y
YXJ5PiB0ZW1wOworCisgICAgICAgICAgICBHUFJSZWcgdGVtcEdQUjsKKyAgICAgICAgICAgIGlm
IChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgeworICAgICAgICAgICAgICAg
IHRlbXAgPSBHUFJUZW1wb3JhcnkodGhpcyk7CisgICAgICAgICAgICAgICAgdGVtcEdQUiA9IHRl
bXAtPmdwcigpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBHUFJSZWcgaW5wdXRHUFIg
PSBpbnB1dC5ncHIoKTsKKyAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3By
KCk7CisKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKKyAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBkb25lOworCisgICAgICAgICAgICBp
ZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFN0cmluZ1VzZSkKKyAgICAgICAgICAgICAg
ICBzcGVjdWxhdGVTdHJpbmcobm9kZS0+Y2hpbGQxKCksIGlucHV0R1BSKTsKKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gaXNTdHJpbmcgPSBtX2ppdC5icmFuY2g4KE1h
Y3JvQXNzZW1ibGVyOjpFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoaW5wdXRHUFIsIEpT
Q2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3RyaW5nVHlwZSkpOwor
ICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoaW5wdXRHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
ICAgICAgICAgbV9qaXQud2FuZ3NJbnQ2NEhhc2gocmVzdWx0R1BSLCB0ZW1wR1BSKTsKKyAgICAg
ICAgICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgICAgIGlz
U3RyaW5nLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9qaXQu
bG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhpbnB1dEdQUiwgSlNTdHJpbmc6Om9mZnNl
dE9mVmFsdWUoKSksIHJlc3VsdEdQUik7CisgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9q
aXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmVzdWx0R1BSKSk7CisgICAg
ICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBT
dHJpbmdJbXBsOjpmbGFnc09mZnNldCgpKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIG1faml0
LnVyc2hpZnQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKFN0cmluZ0ltcGw6OnNfZmxh
Z0NvdW50KSwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5i
cmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJlc3VsdEdQUikpOworICAgICAgICAg
ICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKworICAgICAgICAgICAgc2xvd1BhdGgubGlu
aygmbV9qaXQpOworICAgICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0R1BS
KTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTWFwSGFzaCwgcmVzdWx0R1BS
LCBKU1ZhbHVlUmVncyhpbnB1dEdQUikpOworICAgICAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lz
dGVycyhyZXN1bHRHUFIpOworICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKwor
ICAgICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICBpbnQzMlJlc3VsdChy
ZXN1bHRHUFIsIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBVbnR5cGVkVXNlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpICE9IFVudHlwZWRVc2Up
CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBpbnB1dCh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOwogICAg
ICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjA2NjQzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MzM1LDggKzYzMzUsMTIwIEBAIHByaXZhdGU6CiAgICAgICAgIHNldEJvb2xlYW4obV9v
dXQucGhpKEludDMyLCBub3RDZWxsUmVzdWx0LCBjZWxsUmVzdWx0KSk7CiAgICAgfQogCisgICAg
TFZhbHVlIHdhbmdzSW50NjRIYXNoKExWYWx1ZSBpbnB1dCkKKyAgICB7CisgICAgICAgIC8vIGtl
eSArPSB+KGtleSA8PCAzMik7CisgICAgICAgIExWYWx1ZSBrZXkgPSBpbnB1dDsKKyAgICAgICAg
TFZhbHVlIHRlbXAgPSBrZXk7CisgICAgICAgIHRlbXAgPSBtX291dC5zaGwodGVtcCwgbV9vdXQu
Y29uc3RJbnQzMigzMikpOworICAgICAgICB0ZW1wID0gbV9vdXQuYml0Tm90KHRlbXApOworICAg
ICAgICBrZXkgPSBtX291dC5hZGQoa2V5LCB0ZW1wKTsKKyAgICAgICAgLy8ga2V5IF49IChrZXkg
Pj4gMjIpOworICAgICAgICB0ZW1wID0ga2V5OworICAgICAgICB0ZW1wID0gbV9vdXQubFNocih0
ZW1wLCBtX291dC5jb25zdEludDMyKDIyKSk7CisgICAgICAgIGtleSA9IG1fb3V0LmJpdFhvcihr
ZXksIHRlbXApOworICAgICAgICAvLyBrZXkgKz0gfihrZXkgPDwgMTMpOworICAgICAgICB0ZW1w
ID0ga2V5OworICAgICAgICB0ZW1wID0gbV9vdXQuc2hsKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIo
MTMpKTsKKyAgICAgICAgdGVtcCA9IG1fb3V0LmJpdE5vdCh0ZW1wKTsKKyAgICAgICAga2V5ID0g
bV9vdXQuYWRkKGtleSwgdGVtcCk7CisgICAgICAgIC8vIGtleSBePSAoa2V5ID4+IDgpOworICAg
ICAgICB0ZW1wID0ga2V5OworICAgICAgICB0ZW1wID0gbV9vdXQubFNocih0ZW1wLCBtX291dC5j
b25zdEludDMyKDgpKTsKKyAgICAgICAga2V5ID0gbV9vdXQuYml0WG9yKGtleSwgdGVtcCk7Cisg
ICAgICAgIC8vIGtleSArPSAoa2V5IDw8IDMpOworICAgICAgICB0ZW1wID0ga2V5OworICAgICAg
ICB0ZW1wID0gbV9vdXQuc2hsKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMykpOworICAgICAgICBr
ZXkgPSBtX291dC5hZGQoa2V5LCB0ZW1wKTsKKyAgICAgICAgLy8ga2V5IF49IChrZXkgPj4gMTUp
OworICAgICAgICB0ZW1wID0ga2V5OworICAgICAgICB0ZW1wID0gbV9vdXQubFNocih0ZW1wLCBt
X291dC5jb25zdEludDMyKDE1KSk7CisgICAgICAgIGtleSA9IG1fb3V0LmJpdFhvcihrZXksIHRl
bXApOworICAgICAgICAvLyBrZXkgKz0gfihrZXkgPDwgMjcpOworICAgICAgICB0ZW1wID0ga2V5
OworICAgICAgICB0ZW1wID0gbV9vdXQuc2hsKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMjcpKTsK
KyAgICAgICAgdGVtcCA9IG1fb3V0LmJpdE5vdCh0ZW1wKTsKKyAgICAgICAga2V5ID0gbV9vdXQu
YWRkKGtleSwgdGVtcCk7CisgICAgICAgIC8vIGtleSBePSAoa2V5ID4+IDMxKTsKKyAgICAgICAg
dGVtcCA9IGtleTsKKyAgICAgICAgdGVtcCA9IG1fb3V0LmxTaHIodGVtcCwgbV9vdXQuY29uc3RJ
bnQzMigzMSkpOworICAgICAgICBrZXkgPSBtX291dC5iaXRYb3Ioa2V5LCB0ZW1wKTsKKyAgICAg
ICAga2V5ID0gbV9vdXQuY2FzdFRvSW50MzIoa2V5KTsKKworICAgICAgICByZXR1cm4ga2V5Owor
ICAgIH0KKworICAgIExWYWx1ZSBtYXBIYXNoU3RyaW5nKExWYWx1ZSBzdHJpbmcpCisgICAgewor
ICAgICAgICBMQmFzaWNCbG9jayBub25FbXB0eVN0cmluZ0Nhc2UgPSBtX291dC5uZXdCbG9jaygp
OworICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAg
ICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisKKyAgICAg
ICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291dC5sb2FkUHRyKHN0cmluZywgbV9oZWFwcy5KU1N0
cmluZ192YWx1ZSk7CisgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgIG1fb3V0LmVx
dWFsKHN0cmluZ0ltcGwsIG1fb3V0LmNvbnN0SW50UHRyKDApKSwgdW5zdXJlKHNsb3dDYXNlKSwg
dW5zdXJlKG5vbkVtcHR5U3RyaW5nQ2FzZSkpOworCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3RO
ZXh0ID0gbV9vdXQuYXBwZW5kVG8obm9uRW1wdHlTdHJpbmdDYXNlLCBzbG93Q2FzZSk7CisgICAg
ICAgIExWYWx1ZSBoYXNoID0gbV9vdXQubFNocihtX291dC5sb2FkMzIoc3RyaW5nSW1wbCwgbV9o
ZWFwcy5TdHJpbmdJbXBsX2hhc2hBbmRGbGFncyksIG1fb3V0LmNvbnN0SW50MzIoU3RyaW5nSW1w
bDo6c19mbGFnQ291bnQpKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm9uRW1wdHlTdHJpbmdI
YXNoUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGhhc2gpOworICAgICAgICBtX291dC5icmFuY2gobV9v
dXQuZXF1YWwoaGFzaCwgbV9vdXQuY29uc3RJbnQzMigwKSksCisgICAgICAgICAgICB1bnN1cmUo
c2xvd0Nhc2UpLCB1bnN1cmUoY29udGludWF0aW9uKSk7CisKKyAgICAgICAgbV9vdXQuYXBwZW5k
VG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dS
ZXN1bHQgPSBtX291dC5hbmNob3IoCisgICAgICAgICAgICB2bUNhbGwoSW50MzIsIG1fb3V0Lm9w
ZXJhdGlvbihvcGVyYXRpb25NYXBIYXNoKSwgbV9jYWxsRnJhbWUsIHN0cmluZykpOworICAgICAg
ICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29u
dGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHJldHVybiBtX291dC5waGkoSW50MzIsIHNs
b3dSZXN1bHQsIG5vbkVtcHR5U3RyaW5nSGFzaFJlc3VsdCk7CisgICAgfQorCiAgICAgdm9pZCBj
b21waWxlTWFwSGFzaCgpCiAgICAgeworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpKSB7CisgICAgICAgIGNhc2UgQm9vbGVhblVzZToKKyAgICAgICAgY2FzZSBJbnQz
MlVzZToKKyAgICAgICAgY2FzZSBTeW1ib2xVc2U6CisgICAgICAgIGNhc2UgT2JqZWN0VXNlOiB7
CisgICAgICAgICAgICBMVmFsdWUga2V5ID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpLCBN
YW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICAgICAgc3BlY3VsYXRlKG1fbm9kZS0+
Y2hpbGQxKCkpOworICAgICAgICAgICAgc2V0SW50MzIod2FuZ3NJbnQ2NEhhc2goa2V5KSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjYXNlIENlbGxVc2U6IHsK
KyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlzU3RyaW5nID0gbV9vdXQubmV3QmxvY2soKTsKKyAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmluZyA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAg
ICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOworCisg
ICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgTFZhbHVlIGlzU3RyaW5nVmFsdWUgPSBtX291dC5lcXVhbChtX291dC5sb2FkOFpl
cm9FeHQzMih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwgbV9vdXQuY29uc3RJ
bnQzMihTdHJpbmdUeXBlKSk7CisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAg
ICAgICAgaXNTdHJpbmdWYWx1ZSwgdW5zdXJlKGlzU3RyaW5nKSwgdW5zdXJlKG5vdFN0cmluZykp
OworCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGlz
U3RyaW5nLCBub3RTdHJpbmcpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc3RyaW5nUmVz
dWx0ID0gbV9vdXQuYW5jaG9yKG1hcEhhc2hTdHJpbmcodmFsdWUpKTsKKyAgICAgICAgICAgIG1f
b3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90
U3RyaW5nLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm90U3Ry
aW5nUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHdhbmdzSW50NjRIYXNoKHZhbHVlKSk7CisgICAgICAg
ICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgc2V0SW50MzIobV9vdXQu
cGhpKEludDMyLCBzdHJpbmdSZXN1bHQsIG5vdFN0cmluZ1Jlc3VsdCkpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTdHJpbmdVc2U6IHsKKyAgICAgICAg
ICAgIExWYWx1ZSBzdHJpbmcgPSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
ICAgICBzZXRJbnQzMihtYXBIYXNoU3RyaW5nKHN0cmluZykpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisKICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxk
MSgpKTsKIAogICAgICAgICBMQmFzaWNCbG9jayBpc0NlbGxDYXNlID0gbV9vdXQubmV3QmxvY2so
KTsKQEAgLTYzNjUsNyArNjQ3Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIExWYWx1ZSBoYXNoID0g
bV9vdXQubFNocihtX291dC5sb2FkMzIoc3RyaW5nSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2hh
c2hBbmRGbGFncyksIG1fb3V0LmNvbnN0SW50MzIoU3RyaW5nSW1wbDo6c19mbGFnQ291bnQpKTsK
ICAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm9uRW1wdHlTdHJpbmdIYXNoUmVzdWx0ID0gbV9vdXQu
YW5jaG9yKGhhc2gpOwogICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwoaGFzaCwgbV9v
dXQuY29uc3RJbnQzMigwKSksCi0gICAgICAgICAgICByYXJlbHkoc2xvd0Nhc2UpLCB1c3VhbGx5
KGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgdW5zdXJlKHNsb3dDYXNlKSwgdW5zdXJlKGNv
bnRpbnVhdGlvbikpOwogCiAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdENlbGwsIGlzTnVtYmVy
Q2FzZSk7CiAgICAgICAgIG1fb3V0LmJyYW5jaCgKQEAgLTYzNzYsNDUgKzY0ODgsNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgaXNJbnQzMih2YWx1ZSksIHVuc3VyZShzdHJhaWdodEhhc2gpLCB1
bnN1cmUoc2xvd0Nhc2UpKTsKIAogICAgICAgICBtX291dC5hcHBlbmRUbyhzdHJhaWdodEhhc2gs
IHNsb3dDYXNlKTsKLSAgICAgICAgLy8ga2V5ICs9IH4oa2V5IDw8IDMyKTsKLSAgICAgICAgTFZh
bHVlIGtleSA9IHZhbHVlOwotICAgICAgICBMVmFsdWUgdGVtcCA9IGtleTsKLSAgICAgICAgdGVt
cCA9IG1fb3V0LnNobCh0ZW1wLCBtX291dC5jb25zdEludDMyKDMyKSk7Ci0gICAgICAgIHRlbXAg
PSBtX291dC5iaXROb3QodGVtcCk7Ci0gICAgICAgIGtleSA9IG1fb3V0LmFkZChrZXksIHRlbXAp
OwotICAgICAgICAvLyBrZXkgXj0gKGtleSA+PiAyMik7Ci0gICAgICAgIHRlbXAgPSBrZXk7Ci0g
ICAgICAgIHRlbXAgPSBtX291dC5sU2hyKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMjIpKTsKLSAg
ICAgICAga2V5ID0gbV9vdXQuYml0WG9yKGtleSwgdGVtcCk7Ci0gICAgICAgIC8vIGtleSArPSB+
KGtleSA8PCAxMyk7Ci0gICAgICAgIHRlbXAgPSBrZXk7Ci0gICAgICAgIHRlbXAgPSBtX291dC5z
aGwodGVtcCwgbV9vdXQuY29uc3RJbnQzMigxMykpOwotICAgICAgICB0ZW1wID0gbV9vdXQuYml0
Tm90KHRlbXApOwotICAgICAgICBrZXkgPSBtX291dC5hZGQoa2V5LCB0ZW1wKTsKLSAgICAgICAg
Ly8ga2V5IF49IChrZXkgPj4gOCk7Ci0gICAgICAgIHRlbXAgPSBrZXk7Ci0gICAgICAgIHRlbXAg
PSBtX291dC5sU2hyKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoOCkpOwotICAgICAgICBrZXkgPSBt
X291dC5iaXRYb3Ioa2V5LCB0ZW1wKTsKLSAgICAgICAgLy8ga2V5ICs9IChrZXkgPDwgMyk7Ci0g
ICAgICAgIHRlbXAgPSBrZXk7Ci0gICAgICAgIHRlbXAgPSBtX291dC5zaGwodGVtcCwgbV9vdXQu
Y29uc3RJbnQzMigzKSk7Ci0gICAgICAgIGtleSA9IG1fb3V0LmFkZChrZXksIHRlbXApOwotICAg
ICAgICAvLyBrZXkgXj0gKGtleSA+PiAxNSk7Ci0gICAgICAgIHRlbXAgPSBrZXk7Ci0gICAgICAg
IHRlbXAgPSBtX291dC5sU2hyKHRlbXAsIG1fb3V0LmNvbnN0SW50MzIoMTUpKTsKLSAgICAgICAg
a2V5ID0gbV9vdXQuYml0WG9yKGtleSwgdGVtcCk7Ci0gICAgICAgIC8vIGtleSArPSB+KGtleSA8
PCAyNyk7Ci0gICAgICAgIHRlbXAgPSBrZXk7Ci0gICAgICAgIHRlbXAgPSBtX291dC5zaGwodGVt
cCwgbV9vdXQuY29uc3RJbnQzMigyNykpOwotICAgICAgICB0ZW1wID0gbV9vdXQuYml0Tm90KHRl
bXApOwotICAgICAgICBrZXkgPSBtX291dC5hZGQoa2V5LCB0ZW1wKTsKLSAgICAgICAgLy8ga2V5
IF49IChrZXkgPj4gMzEpOwotICAgICAgICB0ZW1wID0ga2V5OwotICAgICAgICB0ZW1wID0gbV9v
dXQubFNocih0ZW1wLCBtX291dC5jb25zdEludDMyKDMxKSk7Ci0gICAgICAgIGtleSA9IG1fb3V0
LmJpdFhvcihrZXksIHRlbXApOwotICAgICAgICBrZXkgPSBtX291dC5jYXN0VG9JbnQzMihrZXkp
OwotCi0gICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3Ioa2V5
KTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hvcih3YW5n
c0ludDY0SGFzaCh2YWx1ZSkpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CiAK
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7Cg==
</data>
<flag name="review"
          id="313598"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>