<?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>90829</bug_id>
          
          <creation_ts>2012-07-09 15:50:35 -0700</creation_ts>
          <short_desc>DFG may get stuck in an infinite fix point if it constant folds a mispredicted node</short_desc>
          <delta_ts>2012-07-09 16:29:12 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665252</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-09 15:50:35 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665253</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-09 15:50:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/11823843&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665261</commentid>
    <comment_count>2</comment_count>
      <attachid>151339</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-09 15:55:35 -0700</bug_when>
    <thetext>Created attachment 151339
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665294</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-09 16:29:12 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/122167</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151339</attachid>
            <date>2012-07-09 15:55:35 -0700</date>
            <delta_ts>2012-07-09 16:03:33 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixinfinity_patch_1.diff</filename>
            <type>text/plain</type>
            <size>22702</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyMTYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDEyLTA3LTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIG1heSBnZXQgc3R1Y2sgaW4gYW4gaW5maW5pdGUgZml4IHBvaW50IGlmIGl0IGNvbnN0YW50
IGZvbGRzIGEgbWlzcHJlZGljdGVkIG5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkwODI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMTgyMzg0
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIElmIGEgbm9kZSBpcyBzaG93biB0byBoYXZlIGJlZW4gbWlzcHJlZGljdGVkIGR1cmluZyBD
RkEsIHRoZW4gZG9uJ3QgYWxsb3cgY29uc3RhbnQKKyAgICAgICAgZm9sZGluZyB0byBtYWtlIHRo
ZSBncmFwaCBldmVuIG1vcmUgZGVnZW5lcmF0ZS4gSW5zdGVhZCwgcHVsbCBiYWNrIG9uIGNvbnN0
YW50IGZvbGRpbmcKKyAgICAgICAgYW5kIGFsbG93IHRoZSBub3JtYWwgT1NSIG1hY2hpbmVyeSB0
byBmaXggb3VyIHByb2ZpbGluZyBzbyB0aGF0IGEgZnV0dXJlIHJlY29tcGlsYXRpb24KKyAgICAg
ICAgZG9lc24ndCBzZWUgdGhlIHNhbWUgbWlzdGFrZS4KKworICAgICAgICAqIGRmZy9ERkdBYnN0
cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpleGVjdXRl
KToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RTdGF0ZS5oOgorICAgICAgICAoSlNDOjpERkc6
OkFic3RyYWN0U3RhdGU6OnRyeVNldENvbnN0YW50KToKKyAgICAgICAgKEFic3RyYWN0U3RhdGUp
OgorICAgICAgICAqIGRmZy9ERkdQaGFzZS5oOgorICAgICAgICAoSlNDOjpERkc6OlBoYXNlOjpu
YW1lKToKKyAgICAgICAgKFBoYXNlKToKKyAgICAgICAgKEpTQzo6REZHOjpydW5BbmRMb2cpOgor
ICAgICAgICAoREZHKToKKyAgICAgICAgKEpTQzo6REZHOjpydW5QaGFzZSk6CisKIDIwMTItMDct
MDkgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjIxMDcuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDEyMjE1NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxMSwzMSArMzExLDM1IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1
bnNpZ25lZCBpbmQKICAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5pc0ludDMyKCkg
JiYgcmlnaHQuaXNJbnQzMigpKSB7CiAgICAgICAgICAgICBpbnQzMl90IGEgPSBsZWZ0LmFzSW50
MzIoKTsKICAgICAgICAgICAgIGludDMyX3QgYiA9IHJpZ2h0LmFzSW50MzIoKTsKKyAgICAgICAg
ICAgIGJvb2wgY29uc3RhbnRXYXNTZXQ7CiAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUub3AoKSkg
ewogICAgICAgICAgICAgY2FzZSBCaXRBbmQ6Ci0gICAgICAgICAgICAgICAgZm9yTm9kZShub2Rl
SW5kZXgpLnNldChKU1ZhbHVlKGEgJiBiKSk7CisgICAgICAgICAgICAgICAgY29uc3RhbnRXYXNT
ZXQgPSB0cnlTZXRDb25zdGFudChub2RlSW5kZXgsIEpTVmFsdWUoYSAmIGIpKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQml0T3I6Ci0gICAgICAgICAgICAgICAg
Zm9yTm9kZShub2RlSW5kZXgpLnNldChKU1ZhbHVlKGEgfCBiKSk7CisgICAgICAgICAgICAgICAg
Y29uc3RhbnRXYXNTZXQgPSB0cnlTZXRDb25zdGFudChub2RlSW5kZXgsIEpTVmFsdWUoYSB8IGIp
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQml0WG9yOgotICAg
ICAgICAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQoSlNWYWx1ZShhIF4gYikpOworICAg
ICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gdHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4LCBK
U1ZhbHVlKGEgXiBiKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNl
IEJpdFJTaGlmdDoKLSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCkuc2V0KEpTVmFs
dWUoYSA+PiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYikpKTsKKyAgICAgICAgICAgICAgICBjb25z
dGFudFdhc1NldCA9IHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwgSlNWYWx1ZShhID4+IHN0YXRp
Y19jYXN0PHVpbnQzMl90PihiKSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBCaXRMU2hpZnQ6Ci0gICAgICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNl
dChKU1ZhbHVlKGEgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGIpKSk7CisgICAgICAgICAgICAg
ICAgY29uc3RhbnRXYXNTZXQgPSB0cnlTZXRDb25zdGFudChub2RlSW5kZXgsIEpTVmFsdWUoYSA8
PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYikpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgQml0VVJTaGlmdDoKLSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJ
bmRleCkuc2V0KEpTVmFsdWUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGEpID4+IHN0YXRpY19jYXN0
PHVpbnQzMl90PihiKSkpOworICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gdHJ5U2V0
Q29uc3RhbnQobm9kZUluZGV4LCBKU1ZhbHVlKHN0YXRpY19jYXN0PHVpbnQzMl90PihhKSA+PiBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oYikpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICAgICAgY29uc3RhbnRXYXNTZXQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChjb25zdGFudFdhc1NldCkgeworICAgICAgICAgICAgICAgIG1fZm91bmRD
b25zdGFudHMgPSB0cnVlOworICAgICAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhpdChmYWxzZSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2Zv
dW5kQ29uc3RhbnRzID0gdHJ1ZTsKLSAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhpdChmYWxzZSk7
Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBzcGVjdWxhdGVJbnQzMkJp
bmFyeShub2RlKTsKICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChTcGVjSW50MzIpOwpA
QCAtMzQ2LDEwICszNTAsMTEgQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVk
IGluZAogICAgICAgICBKU1ZhbHVlIGNoaWxkID0gZm9yTm9kZShub2RlLmNoaWxkMSgpKS52YWx1
ZSgpOwogICAgICAgICBpZiAoY2hpbGQgJiYgY2hpbGQuaXNOdW1iZXIoKSkgewogICAgICAgICAg
ICAgQVNTRVJUKGNoaWxkLmlzSW50MzIoKSk7Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRl
eCkuc2V0KEpTVmFsdWUoY2hpbGQuYXNVSW50MzIoKSkpOwotICAgICAgICAgICAgbV9mb3VuZENv
bnN0YW50cyA9IHRydWU7Ci0gICAgICAgICAgICBub2RlLnNldENhbkV4aXQoZmFsc2UpOwotICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAodHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4
LCBKU1ZhbHVlKGNoaWxkLmFzVUludDMyKCkpKSkgeworICAgICAgICAgICAgICAgIG1fZm91bmRD
b25zdGFudHMgPSB0cnVlOworICAgICAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhpdChmYWxzZSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKCFub2RlLmNhblNwZWN1bGF0ZUludGVnZXIoKSkgewogICAgICAgICAgICAgZm9yTm9k
ZShub2RlSW5kZXgpLnNldChTcGVjRG91YmxlKTsKQEAgLTM2Nyw4ICszNzIsOCBAQCBib29sIEFi
c3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kCiAgICAgICAgIGlmIChjaGlsZCAmJiBj
aGlsZC5pc051bWJlcigpKSB7CiAgICAgICAgICAgICBkb3VibGUgYXNEb3VibGUgPSBjaGlsZC5h
c051bWJlcigpOwogICAgICAgICAgICAgaW50MzJfdCBhc0ludCA9IEpTQzo6dG9JbnQzMihhc0Rv
dWJsZSk7Ci0gICAgICAgICAgICBpZiAoYml0d2lzZV9jYXN0PGludDY0X3Q+KHN0YXRpY19jYXN0
PGRvdWJsZT4oYXNJbnQpKSA9PSBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oYXNEb3VibGUpKSB7Ci0g
ICAgICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChKU1ZhbHVlKGFzSW50KSk7Cisg
ICAgICAgICAgICBpZiAoYml0d2lzZV9jYXN0PGludDY0X3Q+KHN0YXRpY19jYXN0PGRvdWJsZT4o
YXNJbnQpKSA9PSBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oYXNEb3VibGUpCisgICAgICAgICAgICAg
ICAgJiYgdHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4LCBKU1ZhbHVlKGFzSW50KSkpIHsKICAgICAg
ICAgICAgICAgICBtX2ZvdW5kQ29uc3RhbnRzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KQEAgLTM4MiwxMyArMzg3LDE2IEBAIGJvb2wgQWJzdHJhY3RTdGF0
ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICBjYXNlIFZhbHVlVG9JbnQzMjogewogICAgICAg
ICBKU1ZhbHVlIGNoaWxkID0gZm9yTm9kZShub2RlLmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAg
ICBpZiAoY2hpbGQgJiYgY2hpbGQuaXNOdW1iZXIoKSkgeworICAgICAgICAgICAgYm9vbCBjb25z
dGFudFdhc1NldDsKICAgICAgICAgICAgIGlmIChjaGlsZC5pc0ludDMyKCkpCi0gICAgICAgICAg
ICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChjaGlsZCk7CisgICAgICAgICAgICAgICAgY29u
c3RhbnRXYXNTZXQgPSB0cnlTZXRDb25zdGFudChub2RlSW5kZXgsIGNoaWxkKTsKICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCkuc2V0KEpTVmFsdWUo
SlNDOjp0b0ludDMyKGNoaWxkLmFzRG91YmxlKCkpKSk7Ci0gICAgICAgICAgICBtX2ZvdW5kQ29u
c3RhbnRzID0gdHJ1ZTsKLSAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhpdChmYWxzZSk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjb25zdGFudFdhc1NldCA9IHRyeVNldENv
bnN0YW50KG5vZGVJbmRleCwgSlNWYWx1ZShKU0M6OnRvSW50MzIoY2hpbGQuYXNEb3VibGUoKSkp
KTsKKyAgICAgICAgICAgIGlmIChjb25zdGFudFdhc1NldCkgeworICAgICAgICAgICAgICAgIG1f
Zm91bmRDb25zdGFudHMgPSB0cnVlOworICAgICAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhpdChm
YWxzZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0uc2hvdWxkU3BlY3VsYXRlSW50ZWdl
cigpKQogICAgICAgICAgICAgc3BlY3VsYXRlSW50MzJVbmFyeShub2RlKTsKQEAgLTQwNSw4ICs0
MTMsOCBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kCiAgICAgICAg
IAogICAgIGNhc2UgSW50MzJUb0RvdWJsZTogewogICAgICAgICBKU1ZhbHVlIGNoaWxkID0gZm9y
Tm9kZShub2RlLmNoaWxkMSgpKS52YWx1ZSgpOwotICAgICAgICBpZiAoY2hpbGQgJiYgY2hpbGQu
aXNOdW1iZXIoKSkgewotICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChKU1ZhbHVl
KEpTVmFsdWU6OkVuY29kZUFzRG91YmxlLCBjaGlsZC5hc051bWJlcigpKSk7CisgICAgICAgIGlm
IChjaGlsZCAmJiBjaGlsZC5pc051bWJlcigpCisgICAgICAgICAgICAmJiB0cnlTZXRDb25zdGFu
dChub2RlSW5kZXgsIEpTVmFsdWUoSlNWYWx1ZTo6RW5jb2RlQXNEb3VibGUsIGNoaWxkLmFzTnVt
YmVyKCkpKSkgewogICAgICAgICAgICAgbV9mb3VuZENvbnN0YW50cyA9IHRydWU7CiAgICAgICAg
ICAgICBub2RlLnNldENhbkV4aXQoZmFsc2UpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC00MjQs
OCArNDMyLDggQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAg
IGNhc2UgQXJpdGhBZGQ6IHsKICAgICAgICAgSlNWYWx1ZSBsZWZ0ID0gZm9yTm9kZShub2RlLmNo
aWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBKU1ZhbHVlIHJpZ2h0ID0gZm9yTm9kZShub2RlLmNo
aWxkMigpKS52YWx1ZSgpOwotICAgICAgICBpZiAobGVmdCAmJiByaWdodCAmJiBsZWZ0LmlzTnVt
YmVyKCkgJiYgcmlnaHQuaXNOdW1iZXIoKSkgewotICAgICAgICAgICAgZm9yTm9kZShub2RlSW5k
ZXgpLnNldChKU1ZhbHVlKGxlZnQuYXNOdW1iZXIoKSArIHJpZ2h0LmFzTnVtYmVyKCkpKTsKKyAg
ICAgICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5pc051bWJlcigpICYmIHJpZ2h0LmlzTnVt
YmVyKCkKKyAgICAgICAgICAgICYmIHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwgSlNWYWx1ZShs
ZWZ0LmFzTnVtYmVyKCkgKyByaWdodC5hc051bWJlcigpKSkpIHsKICAgICAgICAgICAgIG1fZm91
bmRDb25zdGFudHMgPSB0cnVlOwogICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0KGZhbHNlKTsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDU2LDggKzQ2NCw4IEBAIGJvb2wgQWJzdHJhY3RTdGF0
ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICBjYXNlIEFyaXRoU3ViOiB7CiAgICAgICAgIEpT
VmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNW
YWx1ZSByaWdodCA9IGZvck5vZGUobm9kZS5jaGlsZDIoKSkudmFsdWUoKTsKLSAgICAgICAgaWYg
KGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5pc051bWJlcigpICYmIHJpZ2h0LmlzTnVtYmVyKCkpIHsK
LSAgICAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQoSlNWYWx1ZShsZWZ0LmFzTnVtYmVy
KCkgLSByaWdodC5hc051bWJlcigpKSk7CisgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxl
ZnQuaXNOdW1iZXIoKSAmJiByaWdodC5pc051bWJlcigpCisgICAgICAgICAgICAmJiB0cnlTZXRD
b25zdGFudChub2RlSW5kZXgsIEpTVmFsdWUobGVmdC5hc051bWJlcigpIC0gcmlnaHQuYXNOdW1i
ZXIoKSkpKSB7CiAgICAgICAgICAgICBtX2ZvdW5kQ29uc3RhbnRzID0gdHJ1ZTsKICAgICAgICAg
ICAgIG5vZGUuc2V0Q2FuRXhpdChmYWxzZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ3NSw4
ICs0ODMsOCBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQgaW5kCiAgICAg
ICAgIAogICAgIGNhc2UgQXJpdGhOZWdhdGU6IHsKICAgICAgICAgSlNWYWx1ZSBjaGlsZCA9IGZv
ck5vZGUobm9kZS5jaGlsZDEoKSkudmFsdWUoKTsKLSAgICAgICAgaWYgKGNoaWxkICYmIGNoaWxk
LmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQoSlNWYWx1
ZSgtY2hpbGQuYXNOdW1iZXIoKSkpOworICAgICAgICBpZiAoY2hpbGQgJiYgY2hpbGQuaXNOdW1i
ZXIoKQorICAgICAgICAgICAgJiYgdHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4LCBKU1ZhbHVlKC1j
aGlsZC5hc051bWJlcigpKSkpIHsKICAgICAgICAgICAgIG1fZm91bmRDb25zdGFudHMgPSB0cnVl
OwogICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0KGZhbHNlKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtNDk1LDggKzUwMyw4IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25l
ZCBpbmQKICAgICBjYXNlIEFyaXRoTXVsOiB7CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5v
ZGUobm9kZS5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNWYWx1ZSByaWdodCA9IGZvck5v
ZGUobm9kZS5jaGlsZDIoKSkudmFsdWUoKTsKLSAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYg
bGVmdC5pc051bWJlcigpICYmIHJpZ2h0LmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIGZvck5v
ZGUobm9kZUluZGV4KS5zZXQoSlNWYWx1ZShsZWZ0LmFzTnVtYmVyKCkgKiByaWdodC5hc051bWJl
cigpKSk7CisgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNOdW1iZXIoKSAmJiBy
aWdodC5pc051bWJlcigpCisgICAgICAgICAgICAmJiB0cnlTZXRDb25zdGFudChub2RlSW5kZXgs
IEpTVmFsdWUobGVmdC5hc051bWJlcigpICogcmlnaHQuYXNOdW1iZXIoKSkpKSB7CiAgICAgICAg
ICAgICBtX2ZvdW5kQ29uc3RhbnRzID0gdHJ1ZTsKICAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhp
dChmYWxzZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTUyMywyNiArNTMxLDMwIEBAIGJvb2wg
QWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAgICAgaWYgKGxlZnQgJiYg
cmlnaHQgJiYgbGVmdC5pc051bWJlcigpICYmIHJpZ2h0LmlzTnVtYmVyKCkpIHsKICAgICAgICAg
ICAgIGRvdWJsZSBhID0gbGVmdC5hc051bWJlcigpOwogICAgICAgICAgICAgZG91YmxlIGIgPSBy
aWdodC5hc051bWJlcigpOworICAgICAgICAgICAgYm9vbCBjb25zdGFudFdhc1NldDsKICAgICAg
ICAgICAgIHN3aXRjaCAobm9kZS5vcCgpKSB7CiAgICAgICAgICAgICBjYXNlIEFyaXRoRGl2Ogot
ICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQoSlNWYWx1ZShhIC8gYikpOwor
ICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gdHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4
LCBKU1ZhbHVlKGEgLyBiKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIEFyaXRoTWluOgotICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQoSlNW
YWx1ZShhIDwgYiA/IGEgOiAoYiA8PSBhID8gYiA6IGEgKyBiKSkpOworICAgICAgICAgICAgICAg
IGNvbnN0YW50V2FzU2V0ID0gdHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4LCBKU1ZhbHVlKGEgPCBi
ID8gYSA6IChiIDw9IGEgPyBiIDogYSArIGIpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIEFyaXRoTWF4OgotICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZUlu
ZGV4KS5zZXQoSlNWYWx1ZShhID4gYiA/IGEgOiAoYiA+PSBhID8gYiA6IGEgKyBiKSkpOworICAg
ICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gdHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4LCBK
U1ZhbHVlKGEgPiBiID8gYSA6IChiID49IGEgPyBiIDogYSArIGIpKSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEFyaXRoTW9kOgotICAgICAgICAgICAgICAgIGZv
ck5vZGUobm9kZUluZGV4KS5zZXQoSlNWYWx1ZShmbW9kKGEsIGIpKSk7CisgICAgICAgICAgICAg
ICAgY29uc3RhbnRXYXNTZXQgPSB0cnlTZXRDb25zdGFudChub2RlSW5kZXgsIEpTVmFsdWUoZm1v
ZChhLCBiKSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBj
b25zdGFudFdhc1NldCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKGNvbnN0YW50V2FzU2V0KSB7CisgICAgICAgICAgICAgICAg
bV9mb3VuZENvbnN0YW50cyA9IHRydWU7CisgICAgICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0
KGZhbHNlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIG1fZm91bmRDb25zdGFudHMgPSB0cnVlOwotICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0
KGZhbHNlKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlmIChOb2Rl
OjpzaG91bGRTcGVjdWxhdGVJbnRlZ2VyKAogICAgICAgICAgICAgICAgIG1fZ3JhcGhbbm9kZS5j
aGlsZDEoKV0sIG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0pCkBAIC01NTgsOCArNTcwLDggQEAgYm9v
bCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICAgICAgCiAgICAg
Y2FzZSBBcml0aEFiczogewogICAgICAgICBKU1ZhbHVlIGNoaWxkID0gZm9yTm9kZShub2RlLmNo
aWxkMSgpKS52YWx1ZSgpOwotICAgICAgICBpZiAoY2hpbGQgJiYgY2hpbGQuaXNOdW1iZXIoKSkg
ewotICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChKU1ZhbHVlKGZhYnMoY2hpbGQu
YXNOdW1iZXIoKSkpKTsKKyAgICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLmlzTnVtYmVyKCkKKyAg
ICAgICAgICAgICYmIHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwgSlNWYWx1ZShmYWJzKGNoaWxk
LmFzTnVtYmVyKCkpKSkpIHsKICAgICAgICAgICAgIG1fZm91bmRDb25zdGFudHMgPSB0cnVlOwog
ICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0KGZhbHNlKTsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNTc3LDggKzU4OSw4IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBp
bmQKICAgICAgICAgICAgIAogICAgIGNhc2UgQXJpdGhTcXJ0OiB7CiAgICAgICAgIEpTVmFsdWUg
Y2hpbGQgPSBmb3JOb2RlKG5vZGUuY2hpbGQxKCkpLnZhbHVlKCk7Ci0gICAgICAgIGlmIChjaGls
ZCAmJiBjaGlsZC5pc051bWJlcigpKSB7Ci0gICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCku
c2V0KEpTVmFsdWUoc3FydChjaGlsZC5hc051bWJlcigpKSkpOworICAgICAgICBpZiAoY2hpbGQg
JiYgY2hpbGQuaXNOdW1iZXIoKQorICAgICAgICAgICAgJiYgdHJ5U2V0Q29uc3RhbnQobm9kZUlu
ZGV4LCBKU1ZhbHVlKHNxcnQoY2hpbGQuYXNOdW1iZXIoKSkpKSkgewogICAgICAgICAgICAgbV9m
b3VuZENvbnN0YW50cyA9IHRydWU7CiAgICAgICAgICAgICBub2RlLnNldENhbkV4aXQoZmFsc2Up
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC01OTAsOCArNjAyLDcgQEAgYm9vbCBBYnN0cmFjdFN0
YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICAgICAgCiAgICAgY2FzZSBMb2dpY2Fs
Tm90OiB7CiAgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdCA9IGZvck5vZGUobm9kZS5jaGlsZDEo
KSkudmFsdWUoKTsKLSAgICAgICAgaWYgKGNoaWxkQ29uc3QpIHsKLSAgICAgICAgICAgIGZvck5v
ZGUobm9kZUluZGV4KS5zZXQoanNCb29sZWFuKCFjaGlsZENvbnN0LnRvQm9vbGVhbigpKSk7Cisg
ICAgICAgIGlmIChjaGlsZENvbnN0ICYmIHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwganNCb29s
ZWFuKCFjaGlsZENvbnN0LnRvQm9vbGVhbigpKSkpIHsKICAgICAgICAgICAgIG1fZm91bmRDb25z
dGFudHMgPSB0cnVlOwogICAgICAgICAgICAgbm9kZS5zZXRDYW5FeGl0KGZhbHNlKTsKICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtNjI2LDI3ICs2MzcsMjggQEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpl
eGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICBub2RlLnNldENhbkV4aXQoZmFsc2UpOwogICAg
ICAgICBKU1ZhbHVlIGNoaWxkID0gZm9yTm9kZShub2RlLmNoaWxkMSgpKS52YWx1ZSgpOwogICAg
ICAgICBpZiAoY2hpbGQpIHsKLSAgICAgICAgICAgIGJvb2wgZm91bmRDb25zdGFudCA9IHRydWU7
CisgICAgICAgICAgICBib29sIGNvbnN0YW50V2FzU2V0OwogICAgICAgICAgICAgc3dpdGNoIChu
b2RlLm9wKCkpIHsKICAgICAgICAgICAgIGNhc2UgSXNVbmRlZmluZWQ6Ci0gICAgICAgICAgICAg
ICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChqc0Jvb2xlYW4oCisgICAgICAgICAgICAgICAgY29u
c3RhbnRXYXNTZXQgPSB0cnlTZXRDb25zdGFudChub2RlSW5kZXgsIGpzQm9vbGVhbigKICAgICAg
ICAgICAgICAgICAgICAgY2hpbGQuaXNDZWxsKCkKICAgICAgICAgICAgICAgICAgICAgPyBjaGls
ZC5hc0NlbGwoKS0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkubWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCgpCiAgICAgICAgICAgICAgICAgICAgIDogY2hpbGQuaXNVbmRlZmluZWQoKSkpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBJc0Jvb2xlYW46Ci0gICAgICAgICAg
ICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChqc0Jvb2xlYW4oY2hpbGQuaXNCb29sZWFuKCkp
KTsKKyAgICAgICAgICAgICAgICBjb25zdGFudFdhc1NldCA9IHRyeVNldENvbnN0YW50KG5vZGVJ
bmRleCwganNCb29sZWFuKGNoaWxkLmlzQm9vbGVhbigpKSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIElzTnVtYmVyOgotICAgICAgICAgICAgICAgIGZvck5vZGUo
bm9kZUluZGV4KS5zZXQoanNCb29sZWFuKGNoaWxkLmlzTnVtYmVyKCkpKTsKKyAgICAgICAgICAg
ICAgICBjb25zdGFudFdhc1NldCA9IHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwganNCb29sZWFu
KGNoaWxkLmlzTnVtYmVyKCkpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgSXNTdHJpbmc6Ci0gICAgICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChq
c0Jvb2xlYW4oaXNKU1N0cmluZyhjaGlsZCkpKTsKKyAgICAgICAgICAgICAgICBjb25zdGFudFdh
c1NldCA9IHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwganNCb29sZWFuKGlzSlNTdHJpbmcoY2hp
bGQpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZm91bmRDb25zdGFudCkgeworICAg
ICAgICAgICAgaWYgKGNvbnN0YW50V2FzU2V0KSB7CiAgICAgICAgICAgICAgICAgbV9mb3VuZENv
bnN0YW50cyA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBA
IC02NjUsMjkgKzY3NywzMyBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGUodW5zaWduZWQg
aW5kCiAgICAgICAgIGlmIChsZWZ0Q29uc3QgJiYgcmlnaHRDb25zdCAmJiBsZWZ0Q29uc3QuaXNO
dW1iZXIoKSAmJiByaWdodENvbnN0LmlzTnVtYmVyKCkpIHsKICAgICAgICAgICAgIGRvdWJsZSBh
ID0gbGVmdENvbnN0LmFzTnVtYmVyKCk7CiAgICAgICAgICAgICBkb3VibGUgYiA9IHJpZ2h0Q29u
c3QuYXNOdW1iZXIoKTsKKyAgICAgICAgICAgIGJvb2wgY29uc3RhbnRXYXNTZXQ7CiAgICAgICAg
ICAgICBzd2l0Y2ggKG5vZGUub3AoKSkgewogICAgICAgICAgICAgY2FzZSBDb21wYXJlTGVzczoK
LSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCkuc2V0KGpzQm9vbGVhbihhIDwgYikp
OworICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gdHJ5U2V0Q29uc3RhbnQobm9kZUlu
ZGV4LCBqc0Jvb2xlYW4oYSA8IGIpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIGNhc2UgQ29tcGFyZUxlc3NFcToKLSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRl
eCkuc2V0KGpzQm9vbGVhbihhIDw9IGIpKTsKKyAgICAgICAgICAgICAgICBjb25zdGFudFdhc1Nl
dCA9IHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwganNCb29sZWFuKGEgPD0gYikpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlcjoKLSAgICAg
ICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCkuc2V0KGpzQm9vbGVhbihhID4gYikpOworICAg
ICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gdHJ5U2V0Q29uc3RhbnQobm9kZUluZGV4LCBq
c0Jvb2xlYW4oYSA+IGIpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgQ29tcGFyZUdyZWF0ZXJFcToKLSAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCku
c2V0KGpzQm9vbGVhbihhID49IGIpKTsKKyAgICAgICAgICAgICAgICBjb25zdGFudFdhc1NldCA9
IHRyeVNldENvbnN0YW50KG5vZGVJbmRleCwganNCb29sZWFuKGEgPj0gYikpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDb21wYXJlRXE6Ci0gICAgICAgICAgICAg
ICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChqc0Jvb2xlYW4oYSA9PSBiKSk7CisgICAgICAgICAg
ICAgICAgY29uc3RhbnRXYXNTZXQgPSB0cnlTZXRDb25zdGFudChub2RlSW5kZXgsIGpzQm9vbGVh
bihhID09IGIpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAg
Y29uc3RhbnRXYXNTZXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChjb25zdGFudFdhc1NldCkgeworICAgICAgICAgICAgICAg
IG1fZm91bmRDb25zdGFudHMgPSB0cnVlOworICAgICAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhp
dChmYWxzZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBtX2ZvdW5kQ29uc3RhbnRzID0gdHJ1ZTsKLSAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhp
dChmYWxzZSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChTcGVjQm9vbGVhbik7CkBAIC03NjcsOCArNzgzLDgg
QEAgYm9vbCBBYnN0cmFjdFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgIGNhc2UgQ29t
cGFyZVN0cmljdEVxOiB7CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS5jaGls
ZDEoKSkudmFsdWUoKTsKICAgICAgICAgSlNWYWx1ZSByaWdodCA9IGZvck5vZGUobm9kZS5jaGls
ZDIoKSkudmFsdWUoKTsKLSAgICAgICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5pc051bWJl
cigpICYmIHJpZ2h0LmlzTnVtYmVyKCkpIHsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZUluZGV4
KS5zZXQoanNCb29sZWFuKGxlZnQuYXNOdW1iZXIoKSA9PSByaWdodC5hc051bWJlcigpKSk7Cisg
ICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNOdW1iZXIoKSAmJiByaWdodC5pc051
bWJlcigpCisgICAgICAgICAgICAmJiB0cnlTZXRDb25zdGFudChub2RlSW5kZXgsIGpzQm9vbGVh
bihsZWZ0LmFzTnVtYmVyKCkgPT0gcmlnaHQuYXNOdW1iZXIoKSkpKSB7CiAgICAgICAgICAgICBt
X2ZvdW5kQ29uc3RhbnRzID0gdHJ1ZTsKICAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhpdChmYWxz
ZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTExMDYsOCArMTEyMiw3IEBAIGJvb2wgQWJzdHJh
Y3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAgICAgICAgIAogICAgIGNhc2UgVG9Q
cmltaXRpdmU6IHsKICAgICAgICAgSlNWYWx1ZSBjaGlsZENvbnN0ID0gZm9yTm9kZShub2RlLmNo
aWxkMSgpKS52YWx1ZSgpOwotICAgICAgICBpZiAoY2hpbGRDb25zdCAmJiBjaGlsZENvbnN0Lmlz
TnVtYmVyKCkpIHsKLSAgICAgICAgICAgIGZvck5vZGUobm9kZUluZGV4KS5zZXQoY2hpbGRDb25z
dCk7CisgICAgICAgIGlmIChjaGlsZENvbnN0ICYmIGNoaWxkQ29uc3QuaXNOdW1iZXIoKSAmJiB0
cnlTZXRDb25zdGFudChub2RlSW5kZXgsIGNoaWxkQ29uc3QpKSB7CiAgICAgICAgICAgICBtX2Zv
dW5kQ29uc3RhbnRzID0gdHJ1ZTsKICAgICAgICAgICAgIG5vZGUuc2V0Q2FuRXhpdChmYWxzZSk7
CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RTdGF0ZS5oCShyZXZpc2lvbiAxMjIxNTYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDYgKzI2
NywyMyBAQCBwcml2YXRlOgogICAgICAgICBjaGlsZFZhbHVlMi5maWx0ZXIoU3BlY051bWJlcik7
CiAgICAgfQogICAgIAorICAgIGJvb2wgdHJ5U2V0Q29uc3RhbnQoTm9kZUluZGV4IG5vZGVJbmRl
eCwgSlNWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBj
b25zdGFudCBmb2xkIHNvbWV0aGluZyB0aGF0IHdpbGwgcHJvZHVjZSB2YWx1ZXMgdGhhdCBjb250
cmF2ZW5lCisgICAgICAgIC8vIHByZWRpY3Rpb25zLiBJZiB0aGF0IGhhcHBlbnMgdGhlbiB3ZSBr
bm93IHRoYXQgdGhlIGNvZGUgd2lsbCBPU1IgZXhpdCwgZm9yY2luZworICAgICAgICAvLyByZWNv
bXBpbGF0aW9uLiBCdXQgaWYgd2UgdHJpZWQgdG8gY29uc3RhbnQgZm9sZCB0aGVuIHdlJ2xsIGhh
dmUgYSB2ZXJ5IGRlZ2VuZXJhdGUKKyAgICAgICAgLy8gSVI6IG5hbWVseSB3ZSdsbCBoYXZlIGEg
SlNDb25zdGFudCB0aGF0IGNvbnRyYXZlbmVzIGl0cyBvd24gcHJlZGljdGlvbi4gVGhlcmUncyBh
CisgICAgICAgIC8vIGxvdCBvZiBzdWJ0bGUgY29kZSB0aGF0IGFzc3VtZXMgdGhhdAorICAgICAg
ICAvLyBzcGVjdWxhdGlvbkZyb21WYWx1ZShqc0NvbnN0YW50KSA9PSBqc0NvbnN0YW50LnByZWRp
Y3Rpb24oKS4gIkhhcmRlbmluZyIgdGhhdCBjb2RlCisgICAgICAgIC8vIGlzIHByb2JhYmx5IGxl
c3Mgc2FuZSB0aGFuIGp1c3QgcHVsbGluZyBiYWNrIG9uIGNvbnN0YW50IGZvbGRpbmcuCisgICAg
ICAgIFNwZWN1bGF0ZWRUeXBlIG9sZFR5cGUgPSBtX2dyYXBoW25vZGVJbmRleF0ucHJlZGljdGlv
bigpOworICAgICAgICBpZiAobWVyZ2VTcGVjdWxhdGlvbnMoc3BlY3VsYXRpb25Gcm9tVmFsdWUo
dmFsdWUpLCBvbGRUeXBlKSAhPSBvbGRUeXBlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAKKyAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldCh2YWx1ZSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyAgICAKICAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwog
ICAgIEdyYXBoJiBtX2dyYXBoOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQaGFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UGhhc2UuaAkocmV2aXNpb24gMTIyMTU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQaGFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw4IEBAIHB1YmxpYzoKICAgICAg
ICAgZW5kUGhhc2UoKTsKICAgICB9CiAgICAgCisgICAgY29uc3QgY2hhciogbmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIAogICAgIC8vIEVhY2ggcGhhc2UgbXVzdCBoYXZlIGEg
cnVuKCkgbWV0aG9kLgogICAgIAogcHJvdGVjdGVkOgpAQCAtNzYsMTcgKzc4LDI4IEBAIHByaXZh
dGU6CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQaGFzZVR5cGU+Citib29sIHJ1bkFuZExvZyhQ
aGFzZVR5cGUmIHBoYXNlKQoreworICAgIGJvb2wgcmVzdWx0ID0gcGhhc2UucnVuKCk7CisjaWYg
REZHX0VOQUJMRShERUJVR19WRVJCT1NFKQorICAgIGlmIChyZXN1bHQpCisgICAgICAgIGRhdGFM
b2coIlBoYXNlICVzIGNoYW5nZWQgdGhlIElSLlxuIiwgcGhhc2UubmFtZSgpKTsKKyNlbmRpZgor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFBoYXNlVHlwZT4KIGJv
b2wgcnVuUGhhc2UoR3JhcGgmIGdyYXBoKQogewogICAgIFBoYXNlVHlwZSBwaGFzZShncmFwaCk7
Ci0gICAgcmV0dXJuIHBoYXNlLnJ1bigpOworICAgIHJldHVybiBydW5BbmRMb2cocGhhc2UpOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQaGFzZVR5cGUsIHR5cGVuYW1lIEFyZ3VtZW50VHlwZTE+
CiBib29sIHJ1blBoYXNlKEdyYXBoJiBncmFwaCwgQXJndW1lbnRUeXBlMSBhcmcxKQogewogICAg
IFBoYXNlVHlwZSBwaGFzZShncmFwaCwgYXJnMSk7Ci0gICAgcmV0dXJuIHBoYXNlLnJ1bigpOwor
ICAgIHJldHVybiBydW5BbmRMb2cocGhhc2UpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
REZHCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjIxNjApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0wOSAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIERGRyBtYXkgZ2V0IHN0dWNrIGluIGFuIGlu
ZmluaXRlIGZpeCBwb2ludCBpZiBpdCBjb25zdGFudCBmb2xkcyBhIG1pc3ByZWRpY3RlZCBub2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9q
cy9kZmctY29uc3RhbnQtZm9sZC1taXNwcmVkaWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9qcy9kZmctY29uc3RhbnQtZm9sZC1taXNwcmVkaWN0aW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1jb25zdGFudC1mb2xkLW1p
c3ByZWRpY3Rpb24uanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxMi0wNy0wOSAgVmlu
Y2VudCBTY2hlaWIgIDxzY2hlaWJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlZmFjdG9yIGNv
bW1vbiBQb2ludGVyIExvY2sgdGVzdCBjb2RlIHRvIGEgaGFybmVzcy4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvanMvZGZnLWNvbnN0YW50LWZvbGQtbWlzcHJlZGljdGlvbi1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctY29uc3RhbnQtZm9sZC1taXNw
cmVkaWN0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
anMvZGZnLWNvbnN0YW50LWZvbGQtbWlzcHJlZGljdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdHMgdGhhdCBhIGNvbnN0YW50IGZvbGRpbmcg
b24gYSBub2RlIHRoYXQgaGFzIG9idmlvdXNseSBtaXNwcmVkaWN0ZWQgdHlwZSBkb2Vzbid0IHNl
bmQgdGhlIGNvbXBpbGVyIGludG8gYW4gaW5maW5pdGUgbG9vcC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgZm9vKDAuNSkgaXMgMTAwMC41MDAyNQorUEFTUyBmb28oMC41
KSBpcyAxMDAwLjUwMDI1CitQQVNTIGZvbygwLjUpIGlzIDEwMDAuNTAwMjUKK1BBU1MgZm9vKDAu
NSkgaXMgMTAwMC41MDAyNQorUEFTUyBmb28oMC41KSBpcyAxMDAwLjUwMDI1CitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9kZmctY29uc3RhbnQtZm9sZC1taXNwcmVkaWN0aW9uLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctY29uc3RhbnQtZm9sZC1taXNwcmVkaWN0aW9u
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1jb25zdGFudC1m
b2xkLW1pc3ByZWRpY3Rpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RmZy1jb25zdGFudC1mb2xk
LW1pc3ByZWRpY3Rpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWNvbnN0YW50LWZvbGQtbWlzcHJlZGljdGlvbi5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctY29u
c3RhbnQtZm9sZC1taXNwcmVkaWN0aW9uLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWNvbnN0YW50LWZvbGQtbWlzcHJlZGljdGlvbi5qcwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorZGVzY3JpcHRpb24oCisiVGhpcyB0ZXN0cyB0
aGF0IGEgY29uc3RhbnQgZm9sZGluZyBvbiBhIG5vZGUgdGhhdCBoYXMgb2J2aW91c2x5IG1pc3By
ZWRpY3RlZCB0eXBlIGRvZXNuJ3Qgc2VuZCB0aGUgY29tcGlsZXIgaW50byBhbiBpbmZpbml0ZSBs
b29wLiIKKyk7CisKKy8vIEEgZnVuY3Rpb24gd2l0aCBhbiBhcmd1bWVudCBjb3JyZWN0bHkgcHJl
ZGljdGVkIGRvdWJsZS4KK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgLy8gVHdvIHZhcmlhYmxlcyBo
b2xkaW5nIGNvbnN0YW50cyBzdWNoIHRoYXQgdGhlIGJ5dGVjb2RlIGdlbmVyYXRpb24gY29uc3Rh
bnQgZm9sZGVyCisgICAgLy8gd2lsbCBub3QgY29uc3RhbnQgZm9sZCB0aGUgZGl2aXNpb24gYmVs
b3csIGJ1dCB0aGUgREZHIGNvbnN0YW50IGZvbGRlciB3aWxsLgorICAgIHZhciBhID0gMTsKKyAg
ICB2YXIgYiA9IDQwMDA7CisgICAgLy8gQSBkaXZpc2lvbiB0aGF0IGlzIGdvaW5nIHRvIGJlIHBy
ZWRpY3RlZCBpbnRlZ2VyIG9uIHRoZSBmaXJzdCBjb21waWxhdGlvbi4gVGhlCisgICAgLy8gY29t
cGlsYXRpb24gd2lsbCBiZSB0cmlnZ2VyZWQgZnJvbSB0aGUgbG9vcCBiZWxvdyBzbyB0aGUgc2xv
dyBjYXNlIGNvdW50ZXIgb2YgdGhlCisgICAgLy8gZGl2aXNpb24gd2lsbCBiZSAxLCB3aGljaCBp
cyB0b28gbG93IGZvciB0aGUgZGl2aXNpb24gdG8gYmUgcHJlZGljdGVkIGRvdWJsZS4KKyAgICAv
LyBJZiB3ZSBjb25zdGFudCBmb2xkIHRoaXMgZGl2aXNpb24sIHdlJ2xsIGhhdmUgYSBjb25zdGFu
dCBub2RlIHRoYXQgaXMgcHJlZGljdGVkCisgICAgLy8gaW50ZWdlciBidXQgdGhhdCBjb250YWlu
cyBhIGRvdWJsZS4gVGhlIHN1YnNlcXVlbnQgYWRkaXRpb24gdG8geCwgd2hpY2ggaXMKKyAgICAv
LyBwcmVkaWN0ZWQgZG91YmxlLCB3aWxsIGxlYWQgdGhlIEZpeHVwIHBoYXNlIHRvIGluamVjdCBh
biBJbnQzMlRvRG91YmxlIG5vZGUgb24KKyAgICAvLyB0aGUgY29uc3RhbnQtdGhhdC13YXMtYS1k
aXZpc2lvbjsgc3Vic2VxdWVudCBmYXNlcyBpbiB0aGUgZml4cG9pbnQgd2lsbCBjb25zdGFudAor
ICAgIC8vIGZvbGQgdGhhdCBJbnQzMlRvRG91YmxlLiBBbmQgaGVuY2Ugd2Ugd2lsbCBoYXZlIGFu
IGluZmluaXRlIGxvb3AuIFRoZSBjb3JyZWN0IGZpeAorICAgIC8vIGlzIHRvIGRpc2FibGUgY29u
c3RhbnQgZm9sZGluZyBvZiBtaXNwcmVkaWN0ZWQgbm9kZXM7IHRoYXQgYWxsb3dzIHRoZSBub3Jt
YWwKKyAgICAvLyBwcm9jZXNzIG9mIGNvcnJlY3RpbmcgcHJlZGljdGlvbnMgKE9TUiBleGl0IHBy
b2ZpbGluZywgZXhpdGluZyB0byBwcm9maWxlZCBjb2RlLAorICAgIC8vIGFuZCByZWNvbXBpbGF0
aW9uIHdpdGggZXhwb25lbnRpYWwgYmFja29mZikgdG8gdGFrZSBlZmZlY3Qgc28gdGhhdCB0aGUg
bmV4dAorICAgIC8vIGNvbXBpbGF0aW9uIGRvZXMgbm90IG1ha2UgdGhpcyBzYW1lIG1pc3Rha2Uu
CisgICAgdmFyIGMgPSAoYSAvIGIpICsgeDsKKyAgICAvLyBBIHBvaW50bGVzcyBsb29wIHRvIGZv
cmNlIHRoZSBmaXJzdCBjb21waWxhdGlvbiB0byBvY2N1ciBiZWZvcmUgdGhlIGRpdmlzaW9uIGdv
dAorICAgIC8vIGhvdC4gSWYgdGhpcyBsb29wIHdhcyBub3QgaGVyZSB0aGVuIHRoZSBkaXZpc2lv
biB3b3VsZCBiZSBrbm93biB0byBwcm9kdWNlIGRvdWJsZXMKKyAgICAvLyBvbiB0aGUgZmlyc3Qg
Y29tcGlsYXRpb24uCisgICAgdmFyIGQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDsgKytpKQorICAgICAgICBkKys7CisgICAgcmV0dXJuIGMgKyBkOworfQorCisvLyBDYWxsIGZv
bygpIGVub3VnaCB0aW1lcyB0byBtYWtlIHRvdGFsbHkgc3VyZSB0aGF0IHdlIG9wdGltaXplLgor
Zm9yICh2YXIgaSA9IDA7IGkgPCA1OyArK2kpCisgICAgc2hvdWxkQmUoImZvbygwLjUpIiwgIjEw
MDAuNTAwMjUiKTsKKworCg==
</data>
<flag name="review"
          id="159774"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>