<?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>99262</bug_id>
          
          <creation_ts>2012-10-13 23:10:48 -0700</creation_ts>
          <short_desc>DFG structure check hoisting should attempt to ignore side effects and make transformations that are sound even in their presence</short_desc>
          <delta_ts>2012-10-14 13:23:37 -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>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>98606</blocked>
    
    <blocked>99260</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>741551</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-13 23:10:48 -0700</bug_when>
    <thetext>This will simplify the phase and enable hoisting of effectful structure and array checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741556</commentid>
    <comment_count>1</comment_count>
      <attachid>168577</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-14 00:33:43 -0700</bug_when>
    <thetext>Created attachment 168577
work in progress

Still investigating performance issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741582</commentid>
    <comment_count>2</comment_count>
      <attachid>168587</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-14 12:37:07 -0700</bug_when>
    <thetext>Created attachment 168587
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741592</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-10-14 13:23:37 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/131270</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168577</attachid>
            <date>2012-10-14 00:33:43 -0700</date>
            <delta_ts>2012-10-14 12:37:07 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>simplehoist_1.patch</filename>
            <type>text/plain</type>
            <size>11790</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMxMjY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTEwLTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHN0cnVjdHVyZSBjaGVjayBob2lzdGluZyBzaG91bGQgYXR0ZW1wdCB0byBpZ25vcmUgc2lk
ZSBlZmZlY3RzIGFuZCBtYWtlIHRyYW5zZm9ybWF0aW9ucyB0aGF0IGFyZSBzb3VuZCBldmVuIGlu
IHRoZWlyIHByZXNlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTI2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgaXMgYSB3b3JrIGluIHByb2dyZXNzLiBJdCBsb29rcyBsaWtlIGl0J3MgYSBz
cGVlZC11cCwgZXhjZXB0IG9uIGRlbHRhYmx1ZSwgd2hlcmUgaXQKKyAgICAgICAgaXNuJ3QuCisK
KyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2U6OnJ1bik6CisgICAgICAg
IChKU0M6OkRGRzo6U3RydWN0dXJlQ2hlY2tIb2lzdGluZ1BoYXNlOjpub3RpY2VTdHJ1Y3R1cmVD
aGVjayk6CisgICAgICAgIChTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2UpOgorICAgICAgICAo
Q2hlY2tEYXRhKToKKyAgICAgICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhh
c2U6OkNoZWNrRGF0YTo6Q2hlY2tEYXRhKToKKwogMjAxMi0xMC0xMiAgS2FuZ2lsIEhhbiAgPGth
bmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgRml4IGJ1aWxkIGVycm9yIG9uIERGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCShyZXZp
c2lvbiAxMzEyNjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUNo
ZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNSwxMjUgKzIxNSw2IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIC8vIElkZW50aWZ5
IHRoZSBzZXQgb2YgdmFyaWFibGVzIHRoYXQgYXJlIGxpdmUgYWNyb3NzIGEgc3RydWN0dXJlIGNs
b2JiZXIuCi0gICAgICAgIAotICAgICAgICBPcGVyYW5kczxWYXJpYWJsZUFjY2Vzc0RhdGEqPiBs
aXZlKAotICAgICAgICAgICAgbV9ncmFwaC5tX2Jsb2Nrc1swXS0+dmFyaWFibGVzQXRUYWlsLm51
bWJlck9mQXJndW1lbnRzKCksCi0gICAgICAgICAgICBtX2dyYXBoLm1fYmxvY2tzWzBdLT52YXJp
YWJsZXNBdFRhaWwubnVtYmVyT2ZMb2NhbHMoKSk7Ci0gICAgICAgIGZvciAoQmxvY2tJbmRleCBi
bG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IG1fZ3JhcGgubV9ibG9ja3Muc2l6ZSgpOyArK2Js
b2NrSW5kZXgpIHsKLSAgICAgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFwaC5tX2Js
b2Nrc1tibG9ja0luZGV4XS5nZXQoKTsKLSAgICAgICAgICAgIGlmICghYmxvY2spCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBBU1NFUlQobGl2ZS5udW1iZXJPZkFyZ3Vt
ZW50cygpID09IGJsb2NrLT52YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZBcmd1bWVudHMoKSk7Ci0g
ICAgICAgICAgICBBU1NFUlQobGl2ZS5udW1iZXJPZkxvY2FscygpID09IGJsb2NrLT52YXJpYWJs
ZXNBdFRhaWwubnVtYmVyT2ZMb2NhbHMoKSk7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBsaXZlLnNpemUoKTsgaS0tOykgewotICAgICAgICAgICAgICAgIE5vZGVJbmRleCBpbmRleEF0
VGFpbCA9IGJsb2NrLT52YXJpYWJsZXNBdFRhaWxbaV07Ci0gICAgICAgICAgICAgICAgVmFyaWFi
bGVBY2Nlc3NEYXRhKiB2YXJpYWJsZTsKLSAgICAgICAgICAgICAgICBpZiAoaW5kZXhBdFRhaWwg
PT0gTm9Ob2RlKQotICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IDA7Ci0gICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IG1fZ3JhcGhbaW5kZXhB
dFRhaWxdLnZhcmlhYmxlQWNjZXNzRGF0YSgpOwotICAgICAgICAgICAgICAgIGxpdmVbaV0gPSB2
YXJpYWJsZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXhJ
bkJsb2NrID0gYmxvY2stPnNpemUoKTsgaW5kZXhJbkJsb2NrLS07KSB7Ci0gICAgICAgICAgICAg
ICAgTm9kZUluZGV4IG5vZGVJbmRleCA9IGJsb2NrLT5hdChpbmRleEluQmxvY2spOwotICAgICAg
ICAgICAgICAgIE5vZGUmIG5vZGUgPSBtX2dyYXBoW25vZGVJbmRleF07Ci0gICAgICAgICAgICAg
ICAgaWYgKCFub2RlLnNob3VsZEdlbmVyYXRlKCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgICAgIHN3aXRjaCAobm9kZS5vcCgpKSB7Ci0gICAgICAgICAgICAg
ICAgY2FzZSBHZXRMb2NhbDoKLSAgICAgICAgICAgICAgICBjYXNlIEZsdXNoOgotICAgICAgICAg
ICAgICAgICAgICAvLyBUaGlzIGlzIGEgYmlydGguCi0gICAgICAgICAgICAgICAgICAgIGxpdmUu
b3BlcmFuZChub2RlLmxvY2FsKCkpID0gbm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGNhc2UgU2V0TG9jYWw6Ci0gICAgICAgICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKLSAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKGxpdmUub3BlcmFuZChub2RlLmxvY2FsKCkpKTsgLy8g
TXVzdCBiZSBsaXZlLgotICAgICAgICAgICAgICAgICAgICBBU1NFUlQobGl2ZS5vcGVyYW5kKG5v
ZGUubG9jYWwoKSkgPT0gbm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKSk7IC8vIE11c3QgaGF2ZSB0
aGUgdmFyaWFibGUgd2UgZXhwZWN0ZWQuCi0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg
YSBkZWF0aC4KLSAgICAgICAgICAgICAgICAgICAgbGl2ZS5vcGVyYW5kKG5vZGUubG9jYWwoKSkg
PSAwOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgLy8gVXNlIHRoZSBDRkEncyBub3Rpb24gb2Ygd2hhdCBjbG9iYmVycyB0
aGUgd29ybGQuCi0gICAgICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKG1fZ3JhcGguYWRkU2hvdWxkU3BlY3VsYXRlSW50ZWdlcihub2RlKSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBpZiAoTm9kZTo6
c2hvdWxkU3BlY3VsYXRlTnVtYmVyKG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0sIG1fZ3JhcGhbbm9k
ZS5jaGlsZDIoKV0pKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgICAgIGNsb2JiZXIobGl2ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVMZXNzOgotICAg
ICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUxlc3NFcToKLSAgICAgICAgICAgICAgICBjYXNlIENv
bXBhcmVHcmVhdGVyOgotICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKLSAg
ICAgICAgICAgICAgICBjYXNlIENvbXBhcmVFcTogewotICAgICAgICAgICAgICAgICAgICBOb2Rl
JiBsZWZ0ID0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXTsKLSAgICAgICAgICAgICAgICAgICAgTm9k
ZSYgcmlnaHQgPSBtX2dyYXBoW25vZGUuY2hpbGQyKCldOwotICAgICAgICAgICAgICAgICAgICBp
ZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlSW50ZWdlcihsZWZ0LCByaWdodCkpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgaWYgKE5vZGU6OnNob3Vs
ZFNwZWN1bGF0ZU51bWJlcihsZWZ0LCByaWdodCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUub3AoKSA9PSBDb21wYXJlRXEpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobV9ncmFwaC5pc0NvbnN0YW50KG5vZGUuY2hp
bGQxKCkuaW5kZXgoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbV9ncmFwaC52
YWx1ZU9mSlNDb25zdGFudChub2RlLmNoaWxkMSgpLmluZGV4KCkpLmlzTnVsbCgpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHx8IChtX2dyYXBoLmlzQ29uc3RhbnQobm9kZS5jaGlsZDIo
KS5pbmRleCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBtX2dyYXBoLnZh
bHVlT2ZKU0NvbnN0YW50KG5vZGUuY2hpbGQyKCkuaW5kZXgoKSkuaXNOdWxsKCkpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlRmluYWxPYmpl
Y3QobGVmdCwgcmlnaHQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZUFycmF5KGxlZnQs
IHJpZ2h0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChsZWZ0LnNob3VsZFNwZWN1bGF0ZUZpbmFsT2JqZWN0KCkgJiYgcmln
aHQuc2hvdWxkU3BlY3VsYXRlRmluYWxPYmplY3RPck90aGVyKCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmlnaHQuc2hv
dWxkU3BlY3VsYXRlRmluYWxPYmplY3QoKSAmJiBsZWZ0LnNob3VsZFNwZWN1bGF0ZUZpbmFsT2Jq
ZWN0T3JPdGhlcigpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGxlZnQuc2hvdWxkU3BlY3VsYXRlQXJyYXkoKSAmJiByaWdo
dC5zaG91bGRTcGVjdWxhdGVBcnJheU9yT3RoZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodC5zaG91bGRTcGVj
dWxhdGVBcnJheSgpICYmIGxlZnQuc2hvdWxkU3BlY3VsYXRlQXJyYXlPck90aGVyKCkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgY2xvYmJlcihsaXZlKTsKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICBjYXNlIEdldEJ5VmFsOgotICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6Ci0gICAg
ICAgICAgICAgICAgY2FzZSBQdXRCeVZhbEFsaWFzOgotICAgICAgICAgICAgICAgICAgICBpZiAo
bV9ncmFwaC5ieVZhbElzUHVyZShub2RlKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICBjbG9iYmVyKGxpdmUpOwotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgY2FzZSBHZXRN
eUFyZ3VtZW50c0xlbmd0aFNhZmU6Ci0gICAgICAgICAgICAgICAgY2FzZSBHZXRNeUFyZ3VtZW50
QnlWYWxTYWZlOgotICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlJZDoKLSAgICAgICAgICAgICAg
ICBjYXNlIEdldEJ5SWRGbHVzaDoKLSAgICAgICAgICAgICAgICBjYXNlIFB1dFN0cnVjdHVyZToK
LSAgICAgICAgICAgICAgICBjYXNlIFBoYW50b21QdXRTdHJ1Y3R1cmU6Ci0gICAgICAgICAgICAg
ICAgY2FzZSBQdXRCeUlkOgotICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKLSAg
ICAgICAgICAgICAgICBjYXNlIENhbGw6Ci0gICAgICAgICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6
Ci0gICAgICAgICAgICAgICAgY2FzZSBSZXNvbHZlOgotICAgICAgICAgICAgICAgIGNhc2UgUmVz
b2x2ZUJhc2U6Ci0gICAgICAgICAgICAgICAgY2FzZSBSZXNvbHZlQmFzZVN0cmljdFB1dDoKLSAg
ICAgICAgICAgICAgICBjYXNlIFJlc29sdmVHbG9iYWw6Ci0gICAgICAgICAgICAgICAgY2FzZSBB
cnJheVB1c2g6Ci0gICAgICAgICAgICAgICAgY2FzZSBBcnJheVBvcDoKLSAgICAgICAgICAgICAg
ICBjYXNlIEFycmF5aWZ5OgotICAgICAgICAgICAgICAgICAgICBjbG9iYmVyKGxpdmUpOwotICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG5vZGUub3AoKSAhPSBQ
aGkpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGJvb2wgY2hhbmdlZCA9IGZh
bHNlOwogCiAjaWYgREZHX0VOQUJMRShERUJVR19QUk9QQUdBVElPTl9WRVJCT1NFKQpAQCAtMzQz
LDIwICsyMjQsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIGRhdGFMb2coIk5vdCBob2lz
dGluZyBjaGVja3MgZm9yICVzIGJlY2F1c2Ugb2YgaGV1cmlzdGljcy5cbiIsIG1fZ3JhcGgubmFt
ZU9mVmFyaWFibGVBY2Nlc3NEYXRhKGl0LT5rZXkpKTsKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChpdC0+dmFsdWUubV9pc0Nsb2JiZXJl
ZCAmJiAhaXQtPnZhbHVlLm1fc3RydWN0dXJlLT50cmFuc2l0aW9uV2F0Y2hwb2ludFNldElzU3Rp
bGxWYWxpZCgpKSB7Ci0gICAgICAgICAgICAgICAgZGF0YUxvZygiTm90IGhvaXN0aW5nIGNoZWNr
cyBmb3IgJXMgYmVjYXVzZSB0aGUgc3RydWN0dXJlIGlzIGNsb2JiZXJlZCBhbmQgaGFzIGFuIGlu
dmFsaWQgd2F0Y2hwb2ludCBzZXQuXG4iLCBtX2dyYXBoLm5hbWVPZlZhcmlhYmxlQWNjZXNzRGF0
YShpdC0+a2V5KSk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CiAg
ICAgICAgICAgICBkYXRhTG9nKCJIb2lzdGluZyBjaGVja3MgZm9yICVzXG4iLCBtX2dyYXBoLm5h
bWVPZlZhcmlhYmxlQWNjZXNzRGF0YShpdC0+a2V5KSk7CiAgICAgICAgIH0KICNlbmRpZiAvLyBE
RkdfRU5BQkxFKERFQlVHX1BST1BBR0FUSU9OX1ZFUkJPU0UpCiAgICAgICAgIAotICAgICAgICAv
LyBNYWtlIGNoYW5nZXM6Ci0gICAgICAgIC8vIDEpIElmIGEgdmFyaWFibGUncyBsaXZlIHJhbmdl
IGRvZXMgbm90IHNwYW4gYSBjbG9iYmVyLCB0aGVuIGluamVjdCBzdHJ1Y3R1cmUKLSAgICAgICAg
Ly8gICAgY2hlY2tzIGJlZm9yZSB0aGUgU2V0TG9jYWwuCi0gICAgICAgIC8vIDIpIElmIGEgdmFy
aWFibGUncyBsaXZlIHJhbmdlIHNwYW5zIGEgY2xvYmJlciBidXQgaXMgd2F0Y2hwb2ludGFibGUs
IHRoZW4KLSAgICAgICAgLy8gICAgaW5qZWN0IHN0cnVjdHVyZSBjaGVja3MgYmVmb3JlIHRoZSBT
ZXRMb2NhbCBhbmQgcmVwbGFjZSBhbGwgb3RoZXIgc3RydWN0dXJlCi0gICAgICAgIC8vICAgIGNo
ZWNrcyBvbiB0aGF0IHZhcmlhYmxlIHdpdGggc3RydWN0dXJlIHRyYW5zaXRpb24gd2F0Y2hwb2lu
dHMuCisgICAgICAgIC8vIFBsYWNlIENoZWNrU3RydWN0dXJlJ3MgYXQgU2V0TG9jYWwgc2l0ZXMu
CiAgICAgICAgIAogICAgICAgICBJbnNlcnRpb25TZXQ8Tm9kZUluZGV4PiBpbnNlcnRpb25TZXQ7
CiAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IG1f
Z3JhcGgubV9ibG9ja3Muc2l6ZSgpOyArK2Jsb2NrSW5kZXgpIHsKQEAgLTM4NCw4ICsyNTYsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKCFpdGVyLT52YWx1ZS5tX3N0cnVjdHVyZSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlci0+dmFsdWUubV9pc0Nsb2Ji
ZXJlZCAmJiAhaXRlci0+dmFsdWUubV9zdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0
SXNTdGlsbFZhbGlkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIG5vZGUucmVmKCk7CiAKQEAgLTQyMCw4
ICsyOTAsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFpdGVyLT52YWx1ZS5tX3N0cnVjdHVyZSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBpZiAoaXRlci0+dmFsdWUu
bV9pc0Nsb2JiZXJlZCAmJiAhaXRlci0+dmFsdWUubV9zdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRj
aHBvaW50U2V0SXNTdGlsbFZhbGlkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCBpbnNlcnQgYSBkZWFkIFNldExvY2FsIHRv
IHRlbGwgT1NSIHRoYXQgdGhlIGNoaWxkJ3MgdmFsdWUgc2hvdWxkCiAgICAgICAgICAgICAgICAg
ICAgIC8vIGJlIGRyb3BwZWQgaW50byB0aGlzIGJ5dGVjb2RlIHZhcmlhYmxlIGlmIHRoZSBDaGVj
a1N0cnVjdHVyZSBkZWNpZGVzCkBAIC00NDYsMjggKzMxNCw2IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOiB7Ci0gICAgICAgICAgICAg
ICAgICAgIE5vZGUmIGNoaWxkID0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGNoaWxkLm9wKCkgIT0gR2V0TG9jYWwpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgSGFzaE1hcDxWYXJpYWJsZUFjY2Vzc0Rh
dGEqLCBDaGVja0RhdGE+OjppdGVyYXRvciBpdGVyID0gbV9tYXAuZmluZChjaGlsZC52YXJpYWJs
ZUFjY2Vzc0RhdGEoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpdGVyID09IG1fbWFwLmVu
ZCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICghaXRlci0+dmFsdWUubV9zdHJ1Y3R1cmUpCi0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFpdGVyLT52YWx1ZS5tX2lzQ2xvYmJlcmVk
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnNldE9wQW5kRGVmYXVsdEZsYWdzKFBo
YW50b20pOwotICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKG5vZGUucmVmQ291bnQoKSA9
PSAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmICghaXRlci0+dmFsdWUubV9zdHJ1Y3R1cmUtPnRy
YW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGl0ZXItPnZhbHVlLm1fc3Ry
dWN0dXJlID09IG5vZGUuc3RydWN0dXJlU2V0KCkuc2luZ2xldG9uU3RydWN0dXJlKCkpOwotICAg
ICAgICAgICAgICAgICAgICBub2RlLmNvbnZlcnRUb1N0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBv
aW50KCk7Ci0gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KQEAgLTQ4Miw3ICszMjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90
aWNlU3RydWN0dXJlQ2hlY2soVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgewogICAgICAgICBIYXNoTWFwPFZhcmlhYmxlQWNjZXNzRGF0YSos
IENoZWNrRGF0YT46OkFkZFJlc3VsdCByZXN1bHQgPQotICAgICAgICAgICAgbV9tYXAuYWRkKHZh
cmlhYmxlLCBDaGVja0RhdGEoc3RydWN0dXJlLCBmYWxzZSkpOworICAgICAgICAgICAgbV9tYXAu
YWRkKHZhcmlhYmxlLCBDaGVja0RhdGEoc3RydWN0dXJlKSk7CiAgICAgICAgIGlmIChyZXN1bHQu
aXNOZXdFbnRyeSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUubV9zdHJ1Y3R1cmUgPT0gc3RydWN0dXJlKQpAQCAtNDk5LDM4ICszNDUsMTYg
QEAgcHJpdmF0ZToKICAgICAgICAgbm90aWNlU3RydWN0dXJlQ2hlY2sodmFyaWFibGUsIHNldC5z
aW5nbGV0b25TdHJ1Y3R1cmUoKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgbm90aWNlQ2xvYmJl
cihWYXJpYWJsZUFjY2Vzc0RhdGEqIHZhcmlhYmxlKQotICAgIHsKLSAgICAgICAgSGFzaE1hcDxW
YXJpYWJsZUFjY2Vzc0RhdGEqLCBDaGVja0RhdGE+OjppdGVyYXRvciBpdGVyID0KLSAgICAgICAg
ICAgIG1fbWFwLmZpbmQodmFyaWFibGUpOwotICAgICAgICBpZiAoaXRlciA9PSBtX21hcC5lbmQo
KSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaXRlci0+dmFsdWUubV9pc0Nsb2JiZXJl
ZCA9IHRydWU7Ci0gICAgfQotICAgIAotICAgIHZvaWQgY2xvYmJlcihjb25zdCBPcGVyYW5kczxW
YXJpYWJsZUFjY2Vzc0RhdGEqPiYgbGl2ZSkKLSAgICB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkg
PSBsaXZlLnNpemUoKTsgaS0tOykgewotICAgICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2
YXJpYWJsZSA9IGxpdmVbaV07Ci0gICAgICAgICAgICBpZiAoIXZhcmlhYmxlKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgbm90aWNlQ2xvYmJlcih2YXJpYWJsZSk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgCiAgICAgc3RydWN0IENoZWNrRGF0YSB7CiAgICAgICAgIFN0
cnVjdHVyZSogbV9zdHJ1Y3R1cmU7Ci0gICAgICAgIGJvb2wgbV9pc0Nsb2JiZXJlZDsKICAgICAg
ICAgCiAgICAgICAgIENoZWNrRGF0YSgpCiAgICAgICAgICAgICA6IG1fc3RydWN0dXJlKDApCi0g
ICAgICAgICAgICAsIG1faXNDbG9iYmVyZWQoZmFsc2UpCiAgICAgICAgIHsKICAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgQ2hlY2tEYXRhKFN0cnVjdHVyZSogc3RydWN0dXJlLCBib29sIGlz
Q2xvYmJlcmVkKQorICAgICAgICBDaGVja0RhdGEoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
ICAgICAgICA6IG1fc3RydWN0dXJlKHN0cnVjdHVyZSkKLSAgICAgICAgICAgICwgbV9pc0Nsb2Ji
ZXJlZChpc0Nsb2JiZXJlZCkKICAgICAgICAgewogICAgICAgICB9CiAgICAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168587</attachid>
            <date>2012-10-14 12:37:07 -0700</date>
            <delta_ts>2012-10-14 13:14:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>simplehoist_2.patch</filename>
            <type>text/plain</type>
            <size>12336</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTMxMjY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDEyLTEwLTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHN0cnVjdHVyZSBjaGVjayBob2lzdGluZyBzaG91bGQgYXR0ZW1wdCB0byBpZ25vcmUgc2lk
ZSBlZmZlY3RzIGFuZCBtYWtlIHRyYW5zZm9ybWF0aW9ucyB0aGF0IGFyZSBzb3VuZCBldmVuIGlu
IHRoZWlyIHByZXNlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTI2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgaHVnZWx5IHNpbXBsaWZpZXMgdGhlIHN0cnVjdHVyZSBjaGVjayBob2lzdGlu
ZyBwaGFzZS4gSXQgd2lsbCBubyBsb25nZXIgYmUgbmVjZXNzYXJ5CisgICAgICAgIHRvIG1vZGlm
eSBpdCB3aGVuIHRoZSBlZmZlY3RmdWxuZXNzIG9mIG9wZXJhdGlvbnMgY2hhbmdlcy4gVGhpcyBh
bHNvIGVuYWJsZXMgdGhlIGhvaXN0ZXIKKyAgICAgICAgdG8gaG9pc3QgZWZmZWN0ZnVsIHRoaW5n
cyBpbiB0aGUgZnV0dXJlLgorICAgICAgICAKKyAgICAgICAgVGhlIGRvd25zaWRlIGlzIHRoYXQg
dGhlIGhvaXN0ZXIgbWF5IGVuZCB1cCBhZGRpbmcgc3RyaWN0bHkgbW9yZSBjaGVja3MgdGhhbiB3
ZXJlIHByZXNlbnQKKyAgICAgICAgaW4gdGhlIG9yaWdpbmFsIGNvZGUsIGlmIHRoZSBjb2RlIHRy
dWx5IGhhcyBhIGxvdCBvZiBzaWRlLWVmZmVjdHMuIEkgZG9uJ3Qgc2VlIGV2aWRlbmNlCisgICAg
ICAgIG9mIHRoaXMgaGFwcGVuaW5nLiBUaGlzIHBhdGNoIGRvZXMgaGF2ZSBzb21lIHNwZWVkLXVw
cyBhbmQgc29tZSBzbG93LWRvd25zLCBidXQgaXMKKyAgICAgICAgbmV1dHJhbCBpbiB0aGUgYXZl
cmFnZSwgYW5kIHRoZSBzbG93LWRvd25zIGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSBtb3JlIHN0cnVj
dHVyZSBjaGVja3MKKyAgICAgICAgdGhhbiBUb1QuCisKKyAgICAgICAgKiBkZmcvREZHU3RydWN0
dXJlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTdHJ1Y3R1cmVD
aGVja0hvaXN0aW5nUGhhc2U6OnJ1bik6CisgICAgICAgIChKU0M6OkRGRzo6U3RydWN0dXJlQ2hl
Y2tIb2lzdGluZ1BoYXNlOjpub3RpY2VTdHJ1Y3R1cmVDaGVjayk6CisgICAgICAgIChTdHJ1Y3R1
cmVDaGVja0hvaXN0aW5nUGhhc2UpOgorICAgICAgICAoQ2hlY2tEYXRhKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTdHJ1Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2U6OkNoZWNrRGF0YTo6Q2hlY2tEYXRh
KToKKwogMjAxMi0xMC0xMiAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgRml4IGJ1aWxkIGVycm9yIG9uIERGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQ
aGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1
Y3R1cmVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCShyZXZpc2lvbiAxMzEyNjIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIxNSwxMjUgKzIxNSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogCi0gICAgICAgIC8vIElkZW50aWZ5IHRoZSBzZXQgb2YgdmFyaWFibGVzIHRo
YXQgYXJlIGxpdmUgYWNyb3NzIGEgc3RydWN0dXJlIGNsb2JiZXIuCi0gICAgICAgIAotICAgICAg
ICBPcGVyYW5kczxWYXJpYWJsZUFjY2Vzc0RhdGEqPiBsaXZlKAotICAgICAgICAgICAgbV9ncmFw
aC5tX2Jsb2Nrc1swXS0+dmFyaWFibGVzQXRUYWlsLm51bWJlck9mQXJndW1lbnRzKCksCi0gICAg
ICAgICAgICBtX2dyYXBoLm1fYmxvY2tzWzBdLT52YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZMb2Nh
bHMoKSk7Ci0gICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRl
eCA8IG1fZ3JhcGgubV9ibG9ja3Muc2l6ZSgpOyArK2Jsb2NrSW5kZXgpIHsKLSAgICAgICAgICAg
IEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFwaC5tX2Jsb2Nrc1tibG9ja0luZGV4XS5nZXQoKTsK
LSAgICAgICAgICAgIGlmICghYmxvY2spCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICBBU1NFUlQobGl2ZS5udW1iZXJPZkFyZ3VtZW50cygpID09IGJsb2NrLT52YXJpYWJs
ZXNBdFRhaWwubnVtYmVyT2ZBcmd1bWVudHMoKSk7Ci0gICAgICAgICAgICBBU1NFUlQobGl2ZS5u
dW1iZXJPZkxvY2FscygpID09IGJsb2NrLT52YXJpYWJsZXNBdFRhaWwubnVtYmVyT2ZMb2NhbHMo
KSk7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBsaXZlLnNpemUoKTsgaS0tOykgewot
ICAgICAgICAgICAgICAgIE5vZGVJbmRleCBpbmRleEF0VGFpbCA9IGJsb2NrLT52YXJpYWJsZXNB
dFRhaWxbaV07Ci0gICAgICAgICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZTsK
LSAgICAgICAgICAgICAgICBpZiAoaW5kZXhBdFRhaWwgPT0gTm9Ob2RlKQotICAgICAgICAgICAg
ICAgICAgICB2YXJpYWJsZSA9IDA7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICB2YXJpYWJsZSA9IG1fZ3JhcGhbaW5kZXhBdFRhaWxdLnZhcmlhYmxlQWNjZXNzRGF0
YSgpOwotICAgICAgICAgICAgICAgIGxpdmVbaV0gPSB2YXJpYWJsZTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXhJbkJsb2NrID0gYmxvY2stPnNpemUoKTsg
aW5kZXhJbkJsb2NrLS07KSB7Ci0gICAgICAgICAgICAgICAgTm9kZUluZGV4IG5vZGVJbmRleCA9
IGJsb2NrLT5hdChpbmRleEluQmxvY2spOwotICAgICAgICAgICAgICAgIE5vZGUmIG5vZGUgPSBt
X2dyYXBoW25vZGVJbmRleF07Ci0gICAgICAgICAgICAgICAgaWYgKCFub2RlLnNob3VsZEdlbmVy
YXRlKCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIHN3
aXRjaCAobm9kZS5vcCgpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBHZXRMb2NhbDoKLSAgICAg
ICAgICAgICAgICBjYXNlIEZsdXNoOgotICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEg
YmlydGguCi0gICAgICAgICAgICAgICAgICAgIGxpdmUub3BlcmFuZChub2RlLmxvY2FsKCkpID0g
bm9kZS52YXJpYWJsZUFjY2Vzc0RhdGEoKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGNhc2UgU2V0TG9jYWw6Ci0gICAg
ICAgICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJU
KGxpdmUub3BlcmFuZChub2RlLmxvY2FsKCkpKTsgLy8gTXVzdCBiZSBsaXZlLgotICAgICAgICAg
ICAgICAgICAgICBBU1NFUlQobGl2ZS5vcGVyYW5kKG5vZGUubG9jYWwoKSkgPT0gbm9kZS52YXJp
YWJsZUFjY2Vzc0RhdGEoKSk7IC8vIE11c3QgaGF2ZSB0aGUgdmFyaWFibGUgd2UgZXhwZWN0ZWQu
Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBkZWF0aC4KLSAgICAgICAgICAgICAg
ICAgICAgbGl2ZS5vcGVyYW5kKG5vZGUubG9jYWwoKSkgPSAwOwotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8gVXNlIHRo
ZSBDRkEncyBub3Rpb24gb2Ygd2hhdCBjbG9iYmVycyB0aGUgd29ybGQuCi0gICAgICAgICAgICAg
ICAgY2FzZSBWYWx1ZUFkZDoKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGguYWRkU2hv
dWxkU3BlY3VsYXRlSW50ZWdlcihub2RlKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlTnVtYmVyKG1f
Z3JhcGhbbm9kZS5jaGlsZDEoKV0sIG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0pKQotICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNsb2JiZXIobGl2ZSk7
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBjYXNlIENvbXBhcmVMZXNzOgotICAgICAgICAgICAgICAgIGNhc2UgQ29tcGFy
ZUxlc3NFcToKLSAgICAgICAgICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVyOgotICAgICAgICAg
ICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKLSAgICAgICAgICAgICAgICBjYXNlIENvbXBh
cmVFcTogewotICAgICAgICAgICAgICAgICAgICBOb2RlJiBsZWZ0ID0gbV9ncmFwaFtub2RlLmNo
aWxkMSgpXTsKLSAgICAgICAgICAgICAgICAgICAgTm9kZSYgcmlnaHQgPSBtX2dyYXBoW25vZGUu
Y2hpbGQyKCldOwotICAgICAgICAgICAgICAgICAgICBpZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRl
SW50ZWdlcihsZWZ0LCByaWdodCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKE5vZGU6OnNob3VsZFNwZWN1bGF0ZU51bWJlcihsZWZ0LCBy
aWdodCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKG5vZGUub3AoKSA9PSBDb21wYXJlRXEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgobV9ncmFwaC5pc0NvbnN0YW50KG5vZGUuY2hpbGQxKCkuaW5kZXgoKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJiYgbV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChub2RlLmNo
aWxkMSgpLmluZGV4KCkpLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8
IChtX2dyYXBoLmlzQ29uc3RhbnQobm9kZS5jaGlsZDIoKS5pbmRleCgpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmJiBtX2dyYXBoLnZhbHVlT2ZKU0NvbnN0YW50KG5vZGUuY2hp
bGQyKCkuaW5kZXgoKSkuaXNOdWxsKCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoTm9kZTo6c2hvdWxkU3BlY3VsYXRlRmluYWxPYmplY3QobGVmdCwgcmlnaHQpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KE5vZGU6OnNob3VsZFNwZWN1bGF0ZUFycmF5KGxlZnQsIHJpZ2h0KSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0LnNo
b3VsZFNwZWN1bGF0ZUZpbmFsT2JqZWN0KCkgJiYgcmlnaHQuc2hvdWxkU3BlY3VsYXRlRmluYWxP
YmplY3RPck90aGVyKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocmlnaHQuc2hvdWxkU3BlY3VsYXRlRmluYWxPYmplY3Qo
KSAmJiBsZWZ0LnNob3VsZFNwZWN1bGF0ZUZpbmFsT2JqZWN0T3JPdGhlcigpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxl
ZnQuc2hvdWxkU3BlY3VsYXRlQXJyYXkoKSAmJiByaWdodC5zaG91bGRTcGVjdWxhdGVBcnJheU9y
T3RoZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChyaWdodC5zaG91bGRTcGVjdWxhdGVBcnJheSgpICYmIGxlZnQuc2hv
dWxkU3BlY3VsYXRlQXJyYXlPck90aGVyKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgY2xvYmJl
cihsaXZlKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBjYXNlIEdldEJ5VmFsOgotICAg
ICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6Ci0gICAgICAgICAgICAgICAgY2FzZSBQdXRCeVZh
bEFsaWFzOgotICAgICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5ieVZhbElzUHVyZShub2Rl
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBj
bG9iYmVyKGxpdmUpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgY2FzZSBHZXRNeUFyZ3VtZW50c0xlbmd0aFNhZmU6Ci0g
ICAgICAgICAgICAgICAgY2FzZSBHZXRNeUFyZ3VtZW50QnlWYWxTYWZlOgotICAgICAgICAgICAg
ICAgIGNhc2UgR2V0QnlJZDoKLSAgICAgICAgICAgICAgICBjYXNlIEdldEJ5SWRGbHVzaDoKLSAg
ICAgICAgICAgICAgICBjYXNlIFB1dFN0cnVjdHVyZToKLSAgICAgICAgICAgICAgICBjYXNlIFBo
YW50b21QdXRTdHJ1Y3R1cmU6Ci0gICAgICAgICAgICAgICAgY2FzZSBQdXRCeUlkOgotICAgICAg
ICAgICAgICAgIGNhc2UgUHV0QnlJZERpcmVjdDoKLSAgICAgICAgICAgICAgICBjYXNlIENhbGw6
Ci0gICAgICAgICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6Ci0gICAgICAgICAgICAgICAgY2FzZSBS
ZXNvbHZlOgotICAgICAgICAgICAgICAgIGNhc2UgUmVzb2x2ZUJhc2U6Ci0gICAgICAgICAgICAg
ICAgY2FzZSBSZXNvbHZlQmFzZVN0cmljdFB1dDoKLSAgICAgICAgICAgICAgICBjYXNlIFJlc29s
dmVHbG9iYWw6Ci0gICAgICAgICAgICAgICAgY2FzZSBBcnJheVB1c2g6Ci0gICAgICAgICAgICAg
ICAgY2FzZSBBcnJheVBvcDoKLSAgICAgICAgICAgICAgICBjYXNlIEFycmF5aWZ5OgotICAgICAg
ICAgICAgICAgICAgICBjbG9iYmVyKGxpdmUpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKG5vZGUub3AoKSAhPSBQaGkpOwotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgCiAgICAgICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwogCiAjaWYgREZHX0VOQUJMRShE
RUJVR19QUk9QQUdBVElPTl9WRVJCT1NFKQpAQCAtMzQzLDIwICsyMjQsMTEgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgIGRhdGFMb2coIk5vdCBob2lzdGluZyBjaGVja3MgZm9yICVzIGJlY2F1
c2Ugb2YgaGV1cmlzdGljcy5cbiIsIG1fZ3JhcGgubmFtZU9mVmFyaWFibGVBY2Nlc3NEYXRhKGl0
LT5rZXkpKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGlmIChpdC0+dmFsdWUubV9pc0Nsb2JiZXJlZCAmJiAhaXQtPnZhbHVlLm1fc3RydWN0
dXJlLT50cmFuc2l0aW9uV2F0Y2hwb2ludFNldElzU3RpbGxWYWxpZCgpKSB7Ci0gICAgICAgICAg
ICAgICAgZGF0YUxvZygiTm90IGhvaXN0aW5nIGNoZWNrcyBmb3IgJXMgYmVjYXVzZSB0aGUgc3Ry
dWN0dXJlIGlzIGNsb2JiZXJlZCBhbmQgaGFzIGFuIGludmFsaWQgd2F0Y2hwb2ludCBzZXQuXG4i
LCBtX2dyYXBoLm5hbWVPZlZhcmlhYmxlQWNjZXNzRGF0YShpdC0+a2V5KSk7Ci0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBkYXRhTG9nKCJIb2lz
dGluZyBjaGVja3MgZm9yICVzXG4iLCBtX2dyYXBoLm5hbWVPZlZhcmlhYmxlQWNjZXNzRGF0YShp
dC0+a2V5KSk7CiAgICAgICAgIH0KICNlbmRpZiAvLyBERkdfRU5BQkxFKERFQlVHX1BST1BBR0FU
SU9OX1ZFUkJPU0UpCiAgICAgICAgIAotICAgICAgICAvLyBNYWtlIGNoYW5nZXM6Ci0gICAgICAg
IC8vIDEpIElmIGEgdmFyaWFibGUncyBsaXZlIHJhbmdlIGRvZXMgbm90IHNwYW4gYSBjbG9iYmVy
LCB0aGVuIGluamVjdCBzdHJ1Y3R1cmUKLSAgICAgICAgLy8gICAgY2hlY2tzIGJlZm9yZSB0aGUg
U2V0TG9jYWwuCi0gICAgICAgIC8vIDIpIElmIGEgdmFyaWFibGUncyBsaXZlIHJhbmdlIHNwYW5z
IGEgY2xvYmJlciBidXQgaXMgd2F0Y2hwb2ludGFibGUsIHRoZW4KLSAgICAgICAgLy8gICAgaW5q
ZWN0IHN0cnVjdHVyZSBjaGVja3MgYmVmb3JlIHRoZSBTZXRMb2NhbCBhbmQgcmVwbGFjZSBhbGwg
b3RoZXIgc3RydWN0dXJlCi0gICAgICAgIC8vICAgIGNoZWNrcyBvbiB0aGF0IHZhcmlhYmxlIHdp
dGggc3RydWN0dXJlIHRyYW5zaXRpb24gd2F0Y2hwb2ludHMuCisgICAgICAgIC8vIFBsYWNlIENo
ZWNrU3RydWN0dXJlJ3MgYXQgU2V0TG9jYWwgc2l0ZXMuCiAgICAgICAgIAogICAgICAgICBJbnNl
cnRpb25TZXQ8Tm9kZUluZGV4PiBpbnNlcnRpb25TZXQ7CiAgICAgICAgIGZvciAoQmxvY2tJbmRl
eCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IG1fZ3JhcGgubV9ibG9ja3Muc2l6ZSgpOyAr
K2Jsb2NrSW5kZXgpIHsKQEAgLTM4NCw4ICsyNTYsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFpdGVyLT52YWx1ZS5t
X3N0cnVjdHVyZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoaXRlci0+dmFsdWUubV9pc0Nsb2JiZXJlZCAmJiAhaXRlci0+dmFsdWUubV9z
dHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgIG5vZGUucmVmKCk7CiAKQEAgLTQyMCw4ICsyOTAsNiBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFpdGVy
LT52YWx1ZS5tX3N0cnVjdHVyZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICBpZiAoaXRlci0+dmFsdWUubV9pc0Nsb2JiZXJlZCAmJiAhaXRlci0+
dmFsdWUubV9zdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZhbGlkKCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgICAgICAv
LyBGaXJzdCBpbnNlcnQgYSBkZWFkIFNldExvY2FsIHRvIHRlbGwgT1NSIHRoYXQgdGhlIGNoaWxk
J3MgdmFsdWUgc2hvdWxkCiAgICAgICAgICAgICAgICAgICAgIC8vIGJlIGRyb3BwZWQgaW50byB0
aGlzIGJ5dGVjb2RlIHZhcmlhYmxlIGlmIHRoZSBDaGVja1N0cnVjdHVyZSBkZWNpZGVzCkBAIC00
NDYsMjggKzMxNCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBjYXNl
IENoZWNrU3RydWN0dXJlOiB7Ci0gICAgICAgICAgICAgICAgICAgIE5vZGUmIGNoaWxkID0gbV9n
cmFwaFtub2RlLmNoaWxkMSgpXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm9wKCkg
IT0gR2V0TG9jYWwpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgSGFzaE1hcDxWYXJpYWJsZUFjY2Vzc0RhdGEqLCBDaGVja0RhdGE+OjppdGVyYXRv
ciBpdGVyID0gbV9tYXAuZmluZChjaGlsZC52YXJpYWJsZUFjY2Vzc0RhdGEoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChpdGVyID09IG1fbWFwLmVuZCgpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghaXRlci0+dmFsdWUubV9zdHJ1
Y3R1cmUpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFpdGVyLT52YWx1ZS5tX2lzQ2xvYmJlcmVkKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBub2RlLnNldE9wQW5kRGVmYXVsdEZsYWdzKFBoYW50b20pOwotICAgICAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKG5vZGUucmVmQ291bnQoKSA9PSAxKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IGlmICghaXRlci0+dmFsdWUubV9zdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNT
dGlsbFZhbGlkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKGl0ZXItPnZhbHVlLm1fc3RydWN0dXJlID09IG5vZGUuc3RydWN0dXJl
U2V0KCkuc2luZ2xldG9uU3RydWN0dXJlKCkpOwotICAgICAgICAgICAgICAgICAgICBub2RlLmNv
bnZlcnRUb1N0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50KCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KQEAgLTQ4Miw3
ICszMjgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbm90aWNlU3RydWN0dXJlQ2hlY2soVmFyaWFi
bGVBY2Nlc3NEYXRhKiB2YXJpYWJsZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewogICAg
ICAgICBIYXNoTWFwPFZhcmlhYmxlQWNjZXNzRGF0YSosIENoZWNrRGF0YT46OkFkZFJlc3VsdCBy
ZXN1bHQgPQotICAgICAgICAgICAgbV9tYXAuYWRkKHZhcmlhYmxlLCBDaGVja0RhdGEoc3RydWN0
dXJlLCBmYWxzZSkpOworICAgICAgICAgICAgbV9tYXAuYWRkKHZhcmlhYmxlLCBDaGVja0RhdGEo
c3RydWN0dXJlKSk7CiAgICAgICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUubV9zdHJ1Y3R1cmUg
PT0gc3RydWN0dXJlKQpAQCAtNDk5LDM4ICszNDUsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgbm90
aWNlU3RydWN0dXJlQ2hlY2sodmFyaWFibGUsIHNldC5zaW5nbGV0b25TdHJ1Y3R1cmUoKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgbm90aWNlQ2xvYmJlcihWYXJpYWJsZUFjY2Vzc0RhdGEqIHZh
cmlhYmxlKQotICAgIHsKLSAgICAgICAgSGFzaE1hcDxWYXJpYWJsZUFjY2Vzc0RhdGEqLCBDaGVj
a0RhdGE+OjppdGVyYXRvciBpdGVyID0KLSAgICAgICAgICAgIG1fbWFwLmZpbmQodmFyaWFibGUp
OwotICAgICAgICBpZiAoaXRlciA9PSBtX21hcC5lbmQoKSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgaXRlci0+dmFsdWUubV9pc0Nsb2JiZXJlZCA9IHRydWU7Ci0gICAgfQotICAgIAot
ICAgIHZvaWQgY2xvYmJlcihjb25zdCBPcGVyYW5kczxWYXJpYWJsZUFjY2Vzc0RhdGEqPiYgbGl2
ZSkKLSAgICB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSBsaXZlLnNpemUoKTsgaS0tOykgewot
ICAgICAgICAgICAgVmFyaWFibGVBY2Nlc3NEYXRhKiB2YXJpYWJsZSA9IGxpdmVbaV07Ci0gICAg
ICAgICAgICBpZiAoIXZhcmlhYmxlKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgbm90aWNlQ2xvYmJlcih2YXJpYWJsZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAg
ICAgc3RydWN0IENoZWNrRGF0YSB7CiAgICAgICAgIFN0cnVjdHVyZSogbV9zdHJ1Y3R1cmU7Ci0g
ICAgICAgIGJvb2wgbV9pc0Nsb2JiZXJlZDsKICAgICAgICAgCiAgICAgICAgIENoZWNrRGF0YSgp
CiAgICAgICAgICAgICA6IG1fc3RydWN0dXJlKDApCi0gICAgICAgICAgICAsIG1faXNDbG9iYmVy
ZWQoZmFsc2UpCiAgICAgICAgIHsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgQ2hlY2tE
YXRhKFN0cnVjdHVyZSogc3RydWN0dXJlLCBib29sIGlzQ2xvYmJlcmVkKQorICAgICAgICBDaGVj
a0RhdGEoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgICAgICA6IG1fc3RydWN0dXJlKHN0
cnVjdHVyZSkKLSAgICAgICAgICAgICwgbV9pc0Nsb2JiZXJlZChpc0Nsb2JiZXJlZCkKICAgICAg
ICAgewogICAgICAgICB9CiAgICAgfTsK
</data>
<flag name="review"
          id="181607"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>