<?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>52493</bug_id>
          
          <creation_ts>2011-01-14 16:15:06 -0800</creation_ts>
          <short_desc>[jsfunfuzz] parser doesn&apos;t enforce continue restrictions correctly.</short_desc>
          <delta_ts>2011-01-14 17:34:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13638</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>jruderman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>334707</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-14 16:15:06 -0800</bug_when>
    <thetext>[jsfunfuzz] parser doesn&apos;t enforce continue restrictions correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334721</commentid>
    <comment_count>1</comment_count>
      <attachid>79022</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-14 16:34:57 -0800</bug_when>
    <thetext>Created attachment 79022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334770</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-01-14 17:25:41 -0800</bug_when>
    <thetext>Committed r75852: &lt;http://trac.webkit.org/changeset/75852&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79022</attachid>
            <date>2011-01-14 16:34:57 -0800</date>
            <delta_ts>2011-01-14 17:06:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52493-20110114163457.patch</filename>
            <type>text/plain</type>
            <size>19505</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YzJhMjIzNjE5NjdiMzlkMjI1YzNmZmRhMmVjMzc5MDQyODZhODA4Li5jNjUwZjE0
ZDdmYzZmYWIwMGMzYWNiZjUxMDc4MzU2Mzc1MjNhNWI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTEtMDEtMTQgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbanNmdW5mdXp6XSBwYXJzZXIg
ZG9lc24ndCBlbmZvcmNlIGNvbnRpbnVlIHJlc3RyaWN0aW9ucyBjb3JyZWN0bHkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjQ5MworCisgICAgICAg
IEFkZCBhIGZldyB0ZXN0cyBmb3IgY29udGludWUgdG8gY292ZXIgdGhlIGNhc2VzIHdoZXJlIGNv
bnRpbnVlCisgICAgICAgIGlzbid0IHN5bnRhY3RpY2FsbHkgdmFsaWQuCisKKyAgICAgICAgKiBm
YXN0L2pzL2pzLWNvbnRpbnVlLWJyZWFrLXJlc3RyaWN0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvanMvanMtY29udGludWUtYnJlYWstcmVzdHJpY3Rpb25zLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2pzLWNvbnRpbnVlLWJyZWFr
LXJlc3RyaWN0aW9ucy5qczogQWRkZWQuCisKIDIwMTEtMDEtMTMgIEp1c3RpbiBTY2h1aCAgPGpz
Y2h1aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBleHBlY3Rh
dGlvbnMgdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9qcy1jb250aW51
ZS1icmVhay1yZXN0cmljdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9q
cy1jb250aW51ZS1icmVhay1yZXN0cmljdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1
YjA3M2NmMDRmNWI0ZmEzZmI4Mzc3Y2FhODQwODgwN2YxNDU2MjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL2pzLWNvbnRpbnVlLWJyZWFrLXJlc3RyaWN0aW9ucy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzNyBAQAorVmVyaWZ5IHRoYXQgaW52YWxpZCBjb250aW51ZSBh
bmQgYnJlYWsgc3RhdGVtZW50cyBhcmUgaGFuZGxlZCBjb3JyZWN0bHkKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgTDp7dHJ1ZTticmVhayBMO2ZhbHNlfSBpcyB0cnVlCitQ
QVNTIGlmICgwKSB7IEw6eyBicmVhazsgfSB9IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjog
UGFyc2UgZXJyb3IuCitQQVNTIGlmICgwKSB7IEw6eyBjb250aW51ZSBMOyB9IH0gdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1MgaWYgKDApIHsgTDp7IGNvbnRp
bnVlOyB9IH0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BBU1Mg
aWYgKDApIHsgc3dpdGNoICgxKSB7IGNhc2UgMTogY29udGludWU7IH0gfSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyBBOkw6e3RydWU7YnJlYWsgTDtmYWxz
ZX0gaXMgdHJ1ZQorUEFTUyBpZiAoMCkgeyBBOkw6eyBicmVhazsgfSB9IHRocmV3IGV4Y2VwdGlv
biBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIGlmICgwKSB7IEE6TDp7IGNvbnRpbnVl
IEw7IH0gfSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyBp
ZiAoMCkgeyBBOkw6eyBjb250aW51ZTsgfSB9IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjog
UGFyc2UgZXJyb3IuCitQQVNTIEw6QTp7dHJ1ZTticmVhayBMO2ZhbHNlfSBpcyB0cnVlCitQQVNT
IGlmICgwKSB7IEw6QTp7IGJyZWFrOyB9IH0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQ
YXJzZSBlcnJvci4KK1BBU1MgaWYgKDApIHsgTDpBOnsgY29udGludWUgTDsgfSB9IHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IuCitQQVNTIGlmICgwKSB7IEw6QTp7IGNv
bnRpbnVlOyB9IH0gdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBQYXJzZSBlcnJvci4KK1BB
U1MgaWYoMCl7IEw6Zm9yKDs7KSBjb250aW51ZSBMOyB9IGlzIHVuZGVmaW5lZC4KK1BBU1MgaWYo
MCl7IEw6QTpmb3IoOzspIGNvbnRpbnVlIEw7IH0gaXMgdW5kZWZpbmVkLgorUEFTUyBpZigwKXsg
QTpMOmZvcig7OykgY29udGludWUgTDsgfSBpcyB1bmRlZmluZWQuCitQQVNTIGlmKDApeyBBOmZv
cig7OykgTDpjb250aW51ZSBMOyB9IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IuCitQQVNTIGlmKDApeyBMOmZvcig7OykgQTpjb250aW51ZSBMOyB9IGlzIHVuZGVmaW5l
ZC4KK1BBU1MgaWYoMCl7IEw6ZG8gY29udGludWUgTDsgd2hpbGUoMCk7IH0gaXMgdW5kZWZpbmVk
LgorUEFTUyBpZigwKXsgTDpBOmRvIGNvbnRpbnVlIEw7IHdoaWxlKDApOyB9IGlzIHVuZGVmaW5l
ZC4KK1BBU1MgaWYoMCl7IEE6TDpkbyBjb250aW51ZSBMOyB3aGlsZSgwKTt9IGlzIHVuZGVmaW5l
ZC4KK1BBU1MgaWYoMCl7IEE6ZG8gTDpjb250aW51ZSBMOyB3aGlsZSgwKTsgfSB0aHJldyBleGNl
cHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyBpZigwKXsgTDpkbyBBOmNvbnRp
bnVlIEw7IHdoaWxlKDApOyB9IGlzIHVuZGVmaW5lZC4KK1BBU1MgaWYoMCl7IEw6d2hpbGUoMCkg
Y29udGludWUgTDsgfSBpcyB1bmRlZmluZWQuCitQQVNTIGlmKDApeyBMOkE6d2hpbGUoMCkgY29u
dGludWUgTDsgfSBpcyB1bmRlZmluZWQuCitQQVNTIGlmKDApeyBBOkw6d2hpbGUoMCkgY29udGlu
dWUgTDsgfSBpcyB1bmRlZmluZWQuCitQQVNTIGlmKDApeyBBOndoaWxlKDApIEw6Y29udGludWUg
TDsgfSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFBhcnNlIGVycm9yLgorUEFTUyBpZigw
KXsgTDp3aGlsZSgwKSBBOmNvbnRpbnVlIEw7IH0gaXMgdW5kZWZpbmVkLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvanMvanMtY29udGludWUtYnJlYWstcmVzdHJpY3Rpb25zLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2pzL2pzLWNvbnRpbnVlLWJyZWFrLXJlc3RyaWN0aW9ucy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZhYTllODhiNDNiYWU3YWY3NmU0ODNmMTZjM2EzNmYyOGM3OWE2NWQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2pzLWNvbnRpbnVlLWJyZWFrLXJlc3RyaWN0
aW9ucy5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvanMtY29udGludWUtYnJlYWstcmVzdHJpY3Rpb25zLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3Rz
L2pzLWNvbnRpbnVlLWJyZWFrLXJlc3RyaWN0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMv
c2NyaXB0LXRlc3RzL2pzLWNvbnRpbnVlLWJyZWFrLXJlc3RyaWN0aW9ucy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNTA0ODVkYmFjMDhhNGI5NDZhZDg4MTMyYjhiZWViODU1MDhiMGMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvanMtY29udGludWUtYnJlYWst
cmVzdHJpY3Rpb25zLmpzCkBAIC0wLDAgKzEsMzggQEAKK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhh
dCBpbnZhbGlkIGNvbnRpbnVlIGFuZCBicmVhayBzdGF0ZW1lbnRzIGFyZSBoYW5kbGVkIGNvcnJl
Y3RseSIpOworCitzaG91bGRCZVRydWUoIkw6e3RydWU7YnJlYWsgTDtmYWxzZX0iKTsKK3Nob3Vs
ZFRocm93KCJpZiAoMCkgeyBMOnsgYnJlYWs7IH0gfSIpOworc2hvdWxkVGhyb3coImlmICgwKSB7
IEw6eyBjb250aW51ZSBMOyB9IH0iKTsKK3Nob3VsZFRocm93KCJpZiAoMCkgeyBMOnsgY29udGlu
dWU7IH0gfSIpOworc2hvdWxkVGhyb3coImlmICgwKSB7IHN3aXRjaCAoMSkgeyBjYXNlIDE6IGNv
bnRpbnVlOyB9IH0iKTsKK3Nob3VsZEJlVHJ1ZSgiQTpMOnt0cnVlO2JyZWFrIEw7ZmFsc2V9Iik7
CitzaG91bGRUaHJvdygiaWYgKDApIHsgQTpMOnsgYnJlYWs7IH0gfSIpOworc2hvdWxkVGhyb3co
ImlmICgwKSB7IEE6TDp7IGNvbnRpbnVlIEw7IH0gfSIpOworc2hvdWxkVGhyb3coImlmICgwKSB7
IEE6TDp7IGNvbnRpbnVlOyB9IH0iKTsKKworc2hvdWxkQmVUcnVlKCJMOkE6e3RydWU7YnJlYWsg
TDtmYWxzZX0iKTsKK3Nob3VsZFRocm93KCJpZiAoMCkgeyBMOkE6eyBicmVhazsgfSB9Iik7Citz
aG91bGRUaHJvdygiaWYgKDApIHsgTDpBOnsgY29udGludWUgTDsgfSB9Iik7CitzaG91bGRUaHJv
dygiaWYgKDApIHsgTDpBOnsgY29udGludWU7IH0gfSIpOworCitzaG91bGRCZVVuZGVmaW5lZCgi
aWYoMCl7IEw6Zm9yKDs7KSBjb250aW51ZSBMOyB9IikKK3Nob3VsZEJlVW5kZWZpbmVkKCJpZigw
KXsgTDpBOmZvcig7OykgY29udGludWUgTDsgfSIpCitzaG91bGRCZVVuZGVmaW5lZCgiaWYoMCl7
IEE6TDpmb3IoOzspIGNvbnRpbnVlIEw7IH0iKQorc2hvdWxkVGhyb3coImlmKDApeyBBOmZvcig7
OykgTDpjb250aW51ZSBMOyB9IikKK3Nob3VsZEJlVW5kZWZpbmVkKCJpZigwKXsgTDpmb3IoOzsp
IEE6Y29udGludWUgTDsgfSIpCisKK3Nob3VsZEJlVW5kZWZpbmVkKCJpZigwKXsgTDpkbyBjb250
aW51ZSBMOyB3aGlsZSgwKTsgfSIpCitzaG91bGRCZVVuZGVmaW5lZCgiaWYoMCl7IEw6QTpkbyBj
b250aW51ZSBMOyB3aGlsZSgwKTsgfSIpCitzaG91bGRCZVVuZGVmaW5lZCgiaWYoMCl7IEE6TDpk
byBjb250aW51ZSBMOyB3aGlsZSgwKTt9IikKK3Nob3VsZFRocm93KCJpZigwKXsgQTpkbyBMOmNv
bnRpbnVlIEw7IHdoaWxlKDApOyB9IikKK3Nob3VsZEJlVW5kZWZpbmVkKCJpZigwKXsgTDpkbyBB
OmNvbnRpbnVlIEw7IHdoaWxlKDApOyB9IikKKworCitzaG91bGRCZVVuZGVmaW5lZCgiaWYoMCl7
IEw6d2hpbGUoMCkgY29udGludWUgTDsgfSIpCitzaG91bGRCZVVuZGVmaW5lZCgiaWYoMCl7IEw6
QTp3aGlsZSgwKSBjb250aW51ZSBMOyB9IikKK3Nob3VsZEJlVW5kZWZpbmVkKCJpZigwKXsgQTpM
OndoaWxlKDApIGNvbnRpbnVlIEw7IH0iKQorc2hvdWxkVGhyb3coImlmKDApeyBBOndoaWxlKDAp
IEw6Y29udGludWUgTDsgfSIpCitzaG91bGRCZVVuZGVmaW5lZCgiaWYoMCl7IEw6d2hpbGUoMCkg
QTpjb250aW51ZSBMOyB9IikKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDM4MjVmZjlhYjk3ZWU1YTJmMDE5MGQ1YzJjODQ3ZTI1
YjhjYTJjMDAuLmJlZTQwMWFiYzk4Yzg5OGUzMmI1NWU5YjdhY2EyMGYzOTFkOGY2YjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDExLTAxLTE0ICBPbGl2ZXIg
SHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW2pzZnVuZnV6el0gcGFyc2VyIGRvZXNuJ3QgZW5mb3JjZSBjb250
aW51ZSByZXN0cmljdGlvbnMgY29ycmVjdGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0OTMKKworICAgICAgICBUaGlzIHBhdGNoIHJld29ya3Mg
aGFuZGxpbmcgb2YgYnJlYWssIGNvbnRpbnVlIGFuZCBsYWJlbCBzdGF0ZW1lbnRzCisgICAgICAg
IHRvIGNvcnJlY3RseSBoYW5kbGUgYWxsIHRoZSB2YWxpZCBhbmQgaW52YWxpZCBjYXNlcy4gIFBy
ZXZpb3VzbHkgY2VydGFpbgorICAgICAgICBlcnJvcnMgd291bGQgYmUgbWlzc2VkIGJ5IHRoZSBw
YXJzZXIgaW4gc3RyaWN0IG1vZGUsIGJ1dCB0aGUgYnl0ZWNvZGUgCisgICAgICAgIGdlbmVyYXRv
ciBuZWVkZWQgdG8gaGFuZGxlIHRob3NlIGNhc2VzIGZvciBub24tc3RyaWN0IGNvZGUgc28gbm90
aGluZworICAgICAgICBmYWlsZWQsIGl0IHNpbXBseSBiZWNhbWUgbm9uLXN0YW5kYXJkIGJlaGF2
aW91ci4KKworICAgICAgICBOb3cgdGhhdCB3ZSB0cmVhdCBicmVhayBhbmQgY29udGludWUgZXJy
b3JzIGFzIGVhcmx5IGZhdWx0cyBpbiBub24tc3RyaWN0CisgICAgICAgIG1vZGUgYXMgd2VsbCB0
aGF0IHNhZmV0eSBuZXQgaGFzIGJlZW4gcmVtb3ZlZCBzbyB0aGUgcGFyc2VyIGJ1Z3MgcmVzdWx0
IGluCisgICAgICAgIGNyYXNoZXMgYXQgY29kZWdlbiB0aW1lLgorCisgICAgICAgICogcGFyc2Vy
L0pTUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQYXJzZXI6OlNjb3BlTGFiZWxJbmZvOjpT
Y29wZUxhYmVsSW5mbyk6CisgICAgICAgIChKU0M6OkpTUGFyc2VyOjpuZXh0KToKKyAgICAgICAg
KEpTQzo6SlNQYXJzZXI6Om5leHRUb2tlbklzQ29sb24pOgorICAgICAgICAoSlNDOjpKU1BhcnNl
cjo6Y29udGludWVJc1ZhbGlkKToKKyAgICAgICAgICAgIENvbnRpbnVlIGlzIG9ubHkgdmFsaWQg
aW4gbG9vcHMgc28gd2UgY2FuJ3QgdXNlIGJyZWFrSXNWYWxpZCgpCisgICAgICAgIChKU0M6OkpT
UGFyc2VyOjpwdXNoTGFiZWwpOgorICAgICAgICAgICAgV2Ugbm93IHRyYWNrIHdoZXRoZXIgdGhl
IGxhYmVsIGlzIGZvciBhIGxvb3AgKGFuZCBpcyB0aGVyZWZvcmUgYQorICAgICAgICAgICAgdmFs
aWQgdGFyZ2V0IGZvciBjb250aW51ZS4KKyAgICAgICAgKEpTQzo6SlNQYXJzZXI6OnBvcExhYmVs
KToKKyAgICAgICAgKEpTQzo6SlNQYXJzZXI6OmdldExhYmVsKToKKyAgICAgICAgICAgIFJlcGxh
Y2UgaGFzTGFiZWwgd2l0aCBnZXRMYWJlbCBzbyB0aGF0IHdlIGNhbiB2YWxpZGF0ZSB0aGUgdGFy
Z2V0CisgICAgICAgICAgICB3aGVuIHBhcnNpbmcgY29udGludWUgc3RhdGVtZW50cy4KKyAgICAg
ICAgKEpTQzo6SlNQYXJzZXI6OlNjb3BlOjpjb250aW51ZUlzVmFsaWQpOgorICAgICAgICAoSlND
OjpKU1BhcnNlcjo6U2NvcGU6OnB1c2hMYWJlbCk6CisgICAgICAgIChKU0M6OkpTUGFyc2VyOjpT
Y29wZTo6Z2V0TGFiZWwpOgorICAgICAgICAoSlNDOjpKU1BhcnNlcjo6SlNQYXJzZXIpOgorICAg
ICAgICAoSlNDOjpKU1BhcnNlcjo6cGFyc2VCcmVha1N0YXRlbWVudCk6CisgICAgICAgIChKU0M6
OkpTUGFyc2VyOjpwYXJzZUNvbnRpbnVlU3RhdGVtZW50KToKKyAgICAgICAgKEpTQzo6TGFiZWxJ
bmZvOjpMYWJlbEluZm8pOgorICAgICAgICAoSlNDOjpKU1BhcnNlcjo6cGFyc2VFeHByZXNzaW9u
T3JMYWJlbFN0YXRlbWVudCk6CisgICAgICAgICAgICBDb25zZWN1dGl2ZSBsYWJlbHMgbm93IGdl
dCBoYW5kbGVkIGl0ZXJhdGl2ZWx5IHNvIHRoYXQgd2UgY2FuIGRldGVybWluZQorICAgICAgICAg
ICAgd2hldGhlciB0aGV5J3JlIHZhbGlkIHRhcmdldHMgZm9yIGNvbnRpbnVlLgorICAgICAgICAq
IHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyOjpuZXh0VG9rZW5Jc0NvbG9u
KToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKEpTQzo6TGV4ZXI6OnNldE9m
ZnNldCk6CisKIDIwMTEtMDEtMTMgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9KU1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0pTUGFyc2VyLmNwcAppbmRleCAxNDJmNDAzOGI2MzY4NWEzNGFjYzhiMDQwYzky
ZGRmOGYyOWJhZTEyLi43OTJkMTliYTJkNWMyMTc3ZjBhNzcwZTA3YjE3ODI2YjEwN2JjMzlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0pTUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0pTUGFyc2VyLmNwcApAQCAtODQsNiArODQs
MTYgQEAgcHJpdmF0ZToKICAgICAgICAgSlNQYXJzZXIqIG1fcGFyc2VyOwogICAgICAgICBib29s
IG1fb2xkQWxsb3dzSW47CiAgICAgfTsKKyAgICAKKyAgICBzdHJ1Y3QgU2NvcGVMYWJlbEluZm8g
eworICAgICAgICBTY29wZUxhYmVsSW5mbyhTdHJpbmdJbXBsKiBpZGVudCwgYm9vbCBpc0xvb3Ap
CisgICAgICAgIDogbV9pZGVudChpZGVudCkKKyAgICAgICAgLCBtX2lzTG9vcChpc0xvb3ApCisg
ICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdJbXBsKiBtX2lkZW50OworICAgICAg
ICBib29sIG1faXNMb29wOworICAgIH07CiAKICAgICB2b2lkIG5leHQoTGV4ZXI6OkxleFR5cGUg
bGV4VHlwZSA9IExleGVyOjpJZGVudGlmeVJlc2VydmVkV29yZHMpCiAgICAgewpAQCAtOTEsNyAr
MTAxLDExIEBAIHByaXZhdGU6CiAgICAgICAgIG1fbGFzdFRva2VuRW5kID0gbV90b2tlbi5tX2lu
Zm8uZW5kT2Zmc2V0OwogICAgICAgICBtX2xleGVyLT5zZXRMYXN0TGluZU51bWJlcihtX2xhc3RM
aW5lKTsKICAgICAgICAgbV90b2tlbi5tX3R5cGUgPSBtX2xleGVyLT5sZXgoJm1fdG9rZW4ubV9k
YXRhLCAmbV90b2tlbi5tX2luZm8sIGxleFR5cGUsIHN0cmljdE1vZGUoKSk7Ci0gICAgICAgIG1f
dG9rZW5Db3VudCsrOworICAgIH0KKyAgICAKKyAgICBib29sIG5leHRUb2tlbklzQ29sb24oKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbGV4ZXItPm5leHRUb2tlbklzQ29sb24oKTsKICAgICB9
CiAKICAgICBib29sIGNvbnN1bWUoSlNUb2tlblR5cGUgZXhwZWN0ZWQpCkBAIC0xNDAsMTggKzE1
NCwyOSBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
LSAgICB2b2lkIHB1c2hMYWJlbChjb25zdCBJZGVudGlmaWVyKiBsYWJlbCkgeyBjdXJyZW50U2Nv
cGUoKS0+cHVzaExhYmVsKGxhYmVsKTsgfQotICAgIHZvaWQgcG9wTGFiZWwoKSB7IGN1cnJlbnRT
Y29wZSgpLT5wb3BMYWJlbCgpOyB9Ci0gICAgYm9vbCBoYXNMYWJlbChjb25zdCBJZGVudGlmaWVy
KiBsYWJlbCkKKyAgICBib29sIGNvbnRpbnVlSXNWYWxpZCgpCiAgICAgewogICAgICAgICBTY29w
ZVJlZiBjdXJyZW50ID0gY3VycmVudFNjb3BlKCk7Ci0gICAgICAgIHdoaWxlICghY3VycmVudC0+
aGFzTGFiZWwobGFiZWwpKSB7CisgICAgICAgIHdoaWxlICghY3VycmVudC0+Y29udGludWVJc1Zh
bGlkKCkpIHsKICAgICAgICAgICAgIGlmICghY3VycmVudC5oYXNDb250YWluaW5nU2NvcGUoKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjdXJyZW50ID0gY3Vy
cmVudC5jb250YWluaW5nU2NvcGUoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CisgICAgdm9pZCBwdXNoTGFiZWwoY29uc3QgSWRlbnRpZmllciogbGFiZWwsIGJvb2wg
aXNMb29wKSB7IGN1cnJlbnRTY29wZSgpLT5wdXNoTGFiZWwobGFiZWwsIGlzTG9vcCk7IH0KKyAg
ICB2b2lkIHBvcExhYmVsKCkgeyBjdXJyZW50U2NvcGUoKS0+cG9wTGFiZWwoKTsgfQorICAgIFNj
b3BlTGFiZWxJbmZvKiBnZXRMYWJlbChjb25zdCBJZGVudGlmaWVyKiBsYWJlbCkKKyAgICB7Cisg
ICAgICAgIFNjb3BlUmVmIGN1cnJlbnQgPSBjdXJyZW50U2NvcGUoKTsKKyAgICAgICAgU2NvcGVM
YWJlbEluZm8qIHJlc3VsdCA9IDA7CisgICAgICAgIHdoaWxlICghKHJlc3VsdCA9IGN1cnJlbnQt
PmdldExhYmVsKGxhYmVsKSkpIHsKKyAgICAgICAgICAgIGlmICghY3VycmVudC5oYXNDb250YWlu
aW5nU2NvcGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIGN1cnJl
bnQgPSBjdXJyZW50LmNvbnRhaW5pbmdTY29wZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQogCiAgICAgZW51bSBTb3VyY2VFbGVtZW50c01vZGUgeyBDaGVja0Zv
clN0cmljdE1vZGUsIERvbnRDaGVja0ZvclN0cmljdE1vZGUgfTsKICAgICB0ZW1wbGF0ZSA8U291
cmNlRWxlbWVudHNNb2RlIG1vZGUsIGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU291cmNlRWxlbWVu
dHMgcGFyc2VTb3VyY2VFbGVtZW50cyhUcmVlQnVpbGRlciYpOwpAQCAtMjI0LDcgKzI0OSw2IEBA
IHByaXZhdGU6CiAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CiAgICAgSlNUb2tlbiBt
X3Rva2VuOwogICAgIGJvb2wgbV9hbGxvd3NJbjsKLSAgICBpbnQgbV90b2tlbkNvdW50OwogICAg
IGludCBtX2xhc3RMaW5lOwogICAgIGludCBtX2xhc3RUb2tlbkVuZDsKICAgICBpbnQgbV9hc3Np
Z25tZW50Q291bnQ7CkBAIC0yNTAsNyArMjc0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaW50IG1f
b3JpZ2luYWxEZXB0aDsKICAgICAgICAgaW50KiBtX2RlcHRoOwogICAgIH07Ci0KKyAgICAKICAg
ICBzdHJ1Y3QgU2NvcGUgewogICAgICAgICBTY29wZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEs
IGJvb2wgaXNGdW5jdGlvbiwgYm9vbCBzdHJpY3RNb2RlKQogICAgICAgICAgICAgOiBtX2dsb2Jh
bERhdGEoZ2xvYmFsRGF0YSkKQEAgLTI3NCwxMiArMjk4LDEzIEBAIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgZW5kTG9vcCgpIHsgQVNTRVJUKG1fbG9vcERlcHRoKTsgbV9sb29wRGVwdGgtLTsgfQog
ICAgICAgICBib29sIGluTG9vcCgpIHsgcmV0dXJuICEhbV9sb29wRGVwdGg7IH0KICAgICAgICAg
Ym9vbCBicmVha0lzVmFsaWQoKSB7IHJldHVybiBtX2xvb3BEZXB0aCB8fCBtX3N3aXRjaERlcHRo
OyB9CisgICAgICAgIGJvb2wgY29udGludWVJc1ZhbGlkKCkgeyByZXR1cm4gbV9sb29wRGVwdGg7
IH0KIAotICAgICAgICB2b2lkIHB1c2hMYWJlbChjb25zdCBJZGVudGlmaWVyKiBsYWJlbCkKKyAg
ICAgICAgdm9pZCBwdXNoTGFiZWwoY29uc3QgSWRlbnRpZmllciogbGFiZWwsIGJvb2wgaXNMb29w
KQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1fbGFiZWxzKQogICAgICAgICAgICAgICAg
IG1fbGFiZWxzID0gbmV3IExhYmVsU3RhY2s7Ci0gICAgICAgICAgICBtX2xhYmVscy0+YXBwZW5k
KGxhYmVsLT5pbXBsKCkpOworICAgICAgICAgICAgbV9sYWJlbHMtPmFwcGVuZChTY29wZUxhYmVs
SW5mbyhsYWJlbC0+aW1wbCgpLCBpc0xvb3ApKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQg
cG9wTGFiZWwoKQpAQCAtMjg5LDE1ICszMTQsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1f
bGFiZWxzLT5yZW1vdmVMYXN0KCk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIGhhc0xhYmVs
KGNvbnN0IElkZW50aWZpZXIqIGxhYmVsKQorICAgICAgICBTY29wZUxhYmVsSW5mbyogZ2V0TGFi
ZWwoY29uc3QgSWRlbnRpZmllciogbGFiZWwpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgh
bV9sYWJlbHMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1fbGFiZWxzLT5zaXplKCk7IGkg
PiAwOyBpLS0pIHsKLSAgICAgICAgICAgICAgICBpZiAobV9sYWJlbHMtPmF0KGkgLSAxKSA9PSBs
YWJlbC0+aW1wbCgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBpZiAobV9sYWJlbHMtPmF0KGkgLSAxKS5tX2lkZW50ID09IGxhYmVsLT5pbXBsKCkp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAmbV9sYWJlbHMtPmF0KGkgLSAxKTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAw
OwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBzZXRJc0Z1bmN0aW9uKCkKQEAgLTQwNSw3ICs0
MzAsOCBAQCBwcml2YXRlOgogICAgICAgICBib29sIG1faXNWYWxpZFN0cmljdE1vZGUgOiAxOwog
ICAgICAgICBpbnQgbV9sb29wRGVwdGg7CiAgICAgICAgIGludCBtX3N3aXRjaERlcHRoOwotICAg
ICAgICB0eXBlZGVmIFZlY3RvcjxTdHJpbmdJbXBsKiwgMj4gTGFiZWxTdGFjazsKKworICAgICAg
ICB0eXBlZGVmIFZlY3RvcjxTY29wZUxhYmVsSW5mbywgMj4gTGFiZWxTdGFjazsKICAgICAgICAg
TGFiZWxTdGFjayogbV9sYWJlbHM7CiAgICAgICAgIElkZW50aWZpZXJTZXQgbV9kZWNsYXJlZFZh
cmlhYmxlczsKICAgICAgICAgSWRlbnRpZmllclNldCBtX3VzZWRWYXJpYWJsZXM7CkBAIC01MzIs
NyArNTU4LDYgQEAgSlNQYXJzZXI6OkpTUGFyc2VyKExleGVyKiBsZXhlciwgSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBGdW5jdGlvblBhcmFtZXRlcnMqIHAKICAgICAsIG1fZXJyb3JNZXNzYWdl
KCJQYXJzZSBlcnJvciIpCiAgICAgLCBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0YSkKICAgICAsIG1f
YWxsb3dzSW4odHJ1ZSkKLSAgICAsIG1fdG9rZW5Db3VudCgwKQogICAgICwgbV9sYXN0TGluZSgw
KQogICAgICwgbV9sYXN0VG9rZW5FbmQoMCkKICAgICAsIG1fYXNzaWdubWVudENvdW50KDApCkBA
IC04NjIsNyArODg3LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlU3RhdGVt
ZW50IEpTUGFyc2VyOjpwYXJzZUJyZWFrU3RhdGVtZW50KFRyZWVCdWkKICAgICB9CiAgICAgbWF0
Y2hPckZhaWwoSURFTlQpOwogICAgIGNvbnN0IElkZW50aWZpZXIqIGlkZW50ID0gbV90b2tlbi5t
X2RhdGEuaWRlbnQ7Ci0gICAgZmFpbElmRmFsc2UoaGFzTGFiZWwoaWRlbnQpKTsKKyAgICBmYWls
SWZGYWxzZShnZXRMYWJlbChpZGVudCkpOwogICAgIGVuZENvbCA9IHRva2VuRW5kKCk7CiAgICAg
ZW5kTGluZSA9IHRva2VuTGluZSgpOwogICAgIG5leHQoKTsKQEAgLTg4MCwxMiArOTA1LDE0IEBA
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBKU1BhcnNlcjo6cGFy
c2VDb250aW51ZVN0YXRlbWVudChUcmVlCiAgICAgbmV4dCgpOwogCiAgICAgaWYgKGF1dG9TZW1p
Q29sb24oKSkgewotICAgICAgICBmYWlsSWZGYWxzZShicmVha0lzVmFsaWQoKSk7CisgICAgICAg
IGZhaWxJZkZhbHNlKGNvbnRpbnVlSXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIGNvbnRleHQu
Y3JlYXRlQ29udGludWVTdGF0ZW1lbnQoc3RhcnRDb2wsIGVuZENvbCwgc3RhcnRMaW5lLCBlbmRM
aW5lKTsKICAgICB9CiAgICAgbWF0Y2hPckZhaWwoSURFTlQpOwogICAgIGNvbnN0IElkZW50aWZp
ZXIqIGlkZW50ID0gbV90b2tlbi5tX2RhdGEuaWRlbnQ7Ci0gICAgZmFpbElmRmFsc2UoaGFzTGFi
ZWwoaWRlbnQpKTsKKyAgICBTY29wZUxhYmVsSW5mbyogbGFiZWwgPSBnZXRMYWJlbChpZGVudCk7
CisgICAgZmFpbElmRmFsc2UobGFiZWwpOworICAgIGZhaWxJZkZhbHNlKGxhYmVsLT5tX2lzTG9v
cCk7CiAgICAgZW5kQ29sID0gdG9rZW5FbmQoKTsKICAgICBlbmRMaW5lID0gdG9rZW5MaW5lKCk7
CiAgICAgbmV4dCgpOwpAQCAtMTI0MCwzNSArMTI2Nyw3OSBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJl
ZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgSlNQYXJzZXI6OnBhcnNlRnVuY3Rpb25EZWNsYXJhdGlv
bihUcgogICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUZ1bmNEZWNsU3RhdGVtZW50KG5hbWUsIGJv
ZHksIHBhcmFtZXRlcnMsIG9wZW5CcmFjZVBvcywgY2xvc2VCcmFjZVBvcywgYm9keVN0YXJ0TGlu
ZSwgbV9sYXN0TGluZSk7CiB9CiAKK3N0cnVjdCBMYWJlbEluZm8geworICAgIExhYmVsSW5mbyhj
b25zdCBJZGVudGlmaWVyKiBpZGVudCwgaW50IHN0YXJ0LCBpbnQgZW5kKQorICAgICAgICA6IG1f
aWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9zdGFydChzdGFydCkKKyAgICAgICAgLCBtX2VuZChl
bmQpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IElkZW50aWZpZXIqIG1faWRlbnQ7CisgICAg
aW50IG1fc3RhcnQ7CisgICAgaW50IG1fZW5kOworfTsKKwogdGVtcGxhdGUgPGNsYXNzIFRyZWVC
dWlsZGVyPiBUcmVlU3RhdGVtZW50IEpTUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25PckxhYmVsU3Rh
dGVtZW50KFRyZWVCdWlsZGVyJiBjb250ZXh0KQogewogCi0gICAgLyogRXhwcmVzc2lvbiBhbmQg
TGFiZWwgc3RhdGVtZW50cyBhcmUgYW1iaWd1b3VzIGF0IExMKDEpLCB0byBhdm9pZAotICAgICAq
IHRoZSBjb3N0IG9mIGhhdmluZyBhIHRva2VuIGJ1ZmZlciB0byBzdXBwb3J0IExMKDIpIHdlIHNp
bXBseSBhc3N1bWUKLSAgICAgKiB3ZSBoYXZlIGFuIGV4cHJlc3Npb24gc3RhdGVtZW50LCBhbmQg
dGhlbiBvbmx5IGxvb2sgZm9yIGEgbGFiZWwgaWYgdGhhdAotICAgICAqIHBhcnNlIGZhaWxzLgor
ICAgIC8qIEV4cHJlc3Npb24gYW5kIExhYmVsIHN0YXRlbWVudHMgYXJlIGFtYmlndW91cyBhdCBM
TCgxKSwgc28gd2UgaGF2ZSBhCisgICAgICogc3BlY2lhbCBjYXNlIHRoYXQgbG9va3MgZm9yIGEg
Y29sb24gYXMgdGhlIG5leHQgY2hhcmFjdGVyIGluIHRoZSBpbnB1dC4KICAgICAgKi8KLSAgICBp
bnQgc3RhcnQgPSB0b2tlblN0YXJ0KCk7Ci0gICAgaW50IHN0YXJ0TGluZSA9IHRva2VuTGluZSgp
OwotICAgIGNvbnN0IElkZW50aWZpZXIqIGlkZW50ID0gbV90b2tlbi5tX2RhdGEuaWRlbnQ7Ci0g
ICAgaW50IGN1cnJlbnRUb2tlbiA9IG1fdG9rZW5Db3VudDsKLSAgICBUcmVlRXhwcmVzc2lvbiBl
eHByZXNzaW9uID0gcGFyc2VFeHByZXNzaW9uKGNvbnRleHQpOwotICAgIGZhaWxJZkZhbHNlKGV4
cHJlc3Npb24pOwotICAgIGlmIChhdXRvU2VtaUNvbG9uKCkpCi0gICAgICAgIHJldHVybiBjb250
ZXh0LmNyZWF0ZUV4cHJTdGF0ZW1lbnQoZXhwcmVzc2lvbiwgc3RhcnRMaW5lLCBtX2xhc3RMaW5l
KTsKLSAgICBmYWlsSWZGYWxzZShjdXJyZW50VG9rZW4gKyAxID09IG1fdG9rZW5Db3VudCk7Ci0g
ICAgaW50IGVuZCA9IHRva2VuRW5kKCk7Ci0gICAgY29uc3VtZU9yRmFpbChDT0xPTik7CisgICAg
VmVjdG9yPExhYmVsSW5mbz4gbGFiZWxzOworCisgICAgZG8geworICAgICAgICBpbnQgc3RhcnQg
PSB0b2tlblN0YXJ0KCk7CisgICAgICAgIGludCBzdGFydExpbmUgPSB0b2tlbkxpbmUoKTsKKyAg
ICAgICAgaWYgKCFuZXh0VG9rZW5Jc0NvbG9uKCkpIHsKKyAgICAgICAgICAgIC8vIElmIHdlIGhp
dCB0aGlzIHBhdGggd2UncmUgbWFraW5nIGEgZXhwcmVzc2lvbiBzdGF0ZW1lbnQsIHdoaWNoCisg
ICAgICAgICAgICAvLyBieSBkZWZpbml0aW9uIGNhbid0IG1ha2UgdXNlIG9mIGNvbnRpbnVlL2Jy
ZWFrIHNvIHdlIGNhbiBqdXN0CisgICAgICAgICAgICAvLyBpZ25vcmUgYW55IGxhYmVscyB3ZSBt
aWdodCBoYXZlIGFjY3VtdWxhdGVkLgorICAgICAgICAgICAgVHJlZUV4cHJlc3Npb24gZXhwcmVz
c2lvbiA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICAgICAgICAgIGZhaWxJZkZhbHNl
KGV4cHJlc3Npb24pOworICAgICAgICAgICAgZmFpbElmRmFsc2UoYXV0b1NlbWlDb2xvbigpKTsK
KyAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUV4cHJTdGF0ZW1lbnQoZXhwcmVzc2lv
biwgc3RhcnRMaW5lLCBtX2xhc3RMaW5lKTsKKyAgICAgICAgfQorICAgICAgICBjb25zdCBJZGVu
dGlmaWVyKiBpZGVudCA9IG1fdG9rZW4ubV9kYXRhLmlkZW50OworICAgICAgICBpbnQgZW5kID0g
dG9rZW5FbmQoKTsKKyAgICAgICAgbmV4dCgpOworICAgICAgICBjb25zdW1lT3JGYWlsKENPTE9O
KTsKKyAgICAgICAgaWYgKCFtX3N5bnRheEFscmVhZHlWYWxpZGF0ZWQpIHsKKyAgICAgICAgICAg
IC8vIFRoaXMgaXMgTyhOXjIpIG92ZXIgdGhlIGN1cnJlbnQgbGlzdCBvZiBjb25zZWN1dGl2ZSBs
YWJlbHMsIGJ1dCBJCisgICAgICAgICAgICAvLyBoYXZlIG5ldmVyIHNlZW4gbW9yZSB0aGFuIG9u
ZSBsYWJlbCBpbiBhIHJvdyBpbiB0aGUgcmVhbCB3b3JsZC4KKyAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGFiZWxzLnNpemUoKTsgaSsrKQorICAgICAgICAgICAgICAgIGZhaWxJ
ZlRydWUoaWRlbnQgPT0gbGFiZWxzW2ldLm1faWRlbnQpOworICAgICAgICAgICAgZmFpbElmVHJ1
ZShnZXRMYWJlbChpZGVudCkpOworICAgICAgICAgICAgbGFiZWxzLmFwcGVuZChMYWJlbEluZm8o
aWRlbnQsIHN0YXJ0LCBlbmQpKTsKKyAgICAgICAgfQorICAgIH0gd2hpbGUgKG1hdGNoKElERU5U
KSk7CisgICAgYm9vbCBpc0xvb3AgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKG1fdG9rZW4ubV90eXBl
KSB7CisgICAgY2FzZSBGT1I6CisgICAgY2FzZSBXSElMRToKKyAgICBjYXNlIERPOgorICAgICAg
ICBpc0xvb3AgPSB0cnVlOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KICAgICBjb25zdCBJZGVudGlmaWVyKiB1bnVzZWQgPSAwOwogICAgIGlm
ICghbV9zeW50YXhBbHJlYWR5VmFsaWRhdGVkKSB7Ci0gICAgICAgIGZhaWxJZlRydWUoaGFzTGFi
ZWwoaWRlbnQpKTsKLSAgICAgICAgcHVzaExhYmVsKGlkZW50KTsKKyAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBsYWJlbHMuc2l6ZSgpOyBpKyspCisgICAgICAgICAgICBwdXNoTGFiZWwo
bGFiZWxzW2ldLm1faWRlbnQsIGlzTG9vcCk7CiAgICAgfQogICAgIFRyZWVTdGF0ZW1lbnQgc3Rh
dGVtZW50ID0gcGFyc2VTdGF0ZW1lbnQoY29udGV4dCwgdW51c2VkKTsKLSAgICBpZiAoIW1fc3lu
dGF4QWxyZWFkeVZhbGlkYXRlZCkKLSAgICAgICAgcG9wTGFiZWwoKTsKKyAgICBpZiAoIW1fc3lu
dGF4QWxyZWFkeVZhbGlkYXRlZCkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxh
YmVscy5zaXplKCk7IGkrKykKKyAgICAgICAgICAgIHBvcExhYmVsKCk7CisgICAgfQogICAgIGZh
aWxJZkZhbHNlKHN0YXRlbWVudCk7Ci0gICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlTGFiZWxTdGF0
ZW1lbnQoaWRlbnQsIHN0YXRlbWVudCwgc3RhcnQsIGVuZCk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsYWJlbHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgY29uc3QgTGFiZWxJbmZvJiBp
bmZvID0gbGFiZWxzW2xhYmVscy5zaXplKCkgLSBpIC0gMV07CisgICAgICAgIHN0YXRlbWVudCA9
IGNvbnRleHQuY3JlYXRlTGFiZWxTdGF0ZW1lbnQoaW5mby5tX2lkZW50LCBzdGF0ZW1lbnQsIGlu
Zm8ubV9zdGFydCwgaW5mby5tX2VuZCk7CisgICAgfQorICAgIHJldHVybiBzdGF0ZW1lbnQ7CiB9
CiAKIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWVudCBKU1BhcnNlcjo6
cGFyc2VFeHByZXNzaW9uU3RhdGVtZW50KFRyZWVCdWlsZGVyJiBjb250ZXh0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCBmZjcwNzlmMzY0MzMzMzYzYjhjMjc1MzA2
ZDVjNDg0YjY3OTVlNDYwLi4zNWQwOTA2MjYyMTBkNjUxYTVjNzBlOTBkNDE4OTJmMTgwODBmODNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAtNzAzLDYgKzcwMywx
NSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgTGV4ZXI6OnBhcnNlTXVsdGlsaW5lQ29tbWVudCgpCiAg
ICAgfQogfQogCitib29sIExleGVyOjpuZXh0VG9rZW5Jc0NvbG9uKCkKK3sKKyAgICBjb25zdCBV
Q2hhciogY29kZSA9IG1fY29kZTsKKyAgICB3aGlsZSAoY29kZSA8IG1fY29kZUVuZCAmJiAoaXNX
aGl0ZVNwYWNlKCpjb2RlKSB8fCBpc0xpbmVUZXJtaW5hdG9yKCpjb2RlKSkpCisgICAgICAgIGNv
ZGUrKzsKKyAgICAgICAgCisgICAgcmV0dXJuIGNvZGUgPCBtX2NvZGVFbmQgJiYgKmNvZGUgPT0g
JzonOworfQorCiBKU1Rva2VuVHlwZSBMZXhlcjo6bGV4KEpTVG9rZW5EYXRhKiBsdmFscCwgSlNU
b2tlbkluZm8qIGxsb2NwLCBMZXhUeXBlIGxleFR5cGUsIGJvb2wgc3RyaWN0TW9kZSkKIHsKICAg
ICBBU1NFUlQoIW1fZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCmluZGV4
IDRkMjUxM2QwZmY0MTYwZWViNTM0YjRiODRjMzUzN2RjYzgzYzcxYzYuLmU3Mjg4OGY0MmM3Njg2
MTM0OGMzMzYxZWQ4YTYzMjUzMTBkOGM5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTGV4ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xl
eGVyLmgKQEAgLTUzLDYgKzUzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIC8vIEZ1bmN0
aW9ucyBmb3IgdGhlIHBhcnNlciBpdHNlbGYuCiAgICAgICAgIGVudW0gTGV4VHlwZSB7IElkZW50
aWZ5UmVzZXJ2ZWRXb3JkcywgSWdub3JlUmVzZXJ2ZWRXb3JkcyB9OwogICAgICAgICBKU1Rva2Vu
VHlwZSBsZXgoSlNUb2tlbkRhdGEqIGx2YWxwLCBKU1Rva2VuSW5mbyogbGxvY3AsIExleFR5cGUs
IGJvb2wgc3RyaWN0TW9kZSk7CisgICAgICAgIGJvb2wgbmV4dFRva2VuSXNDb2xvbigpOwogICAg
ICAgICBpbnQgbGluZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51bWJlcjsgfQogICAg
ICAgICB2b2lkIHNldExhc3RMaW5lTnVtYmVyKGludCBsYXN0TGluZU51bWJlcikgeyBtX2xhc3RM
aW5lTnVtYmVyID0gbGFzdExpbmVOdW1iZXI7IH0KICAgICAgICAgaW50IGxhc3RMaW5lTnVtYmVy
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TGluZU51bWJlcjsgfQpAQCAtNjcsNiArNjgsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgaW50IGN1cnJlbnRPZmZzZXQoKSB7IHJldHVybiBtX2Nv
ZGUgLSBtX2NvZGVTdGFydDsgfQogICAgICAgICB2b2lkIHNldE9mZnNldChpbnQgb2Zmc2V0KQog
ICAgICAgICB7CisgICAgICAgICAgICBtX2Vycm9yID0gMDsKICAgICAgICAgICAgIG1fY29kZSA9
IG1fY29kZVN0YXJ0ICsgb2Zmc2V0OwogICAgICAgICAgICAgbV9jdXJyZW50ID0gKm1fY29kZTsK
ICAgICAgICAgfQo=
</data>
<flag name="review"
          id="70408"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>