<?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>40412</bug_id>
          
          <creation_ts>2010-06-10 03:00:50 -0700</creation_ts>
          <short_desc>[Qt]  Explicit conversions to JSC opaque types should be removed.</short_desc>
          <delta_ts>2010-06-11 03:36:44 -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>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31863</blocked>
    
    <blocked>40415</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kent.hansen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>236268</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-10 03:00:50 -0700</bug_when>
    <thetext>Conversion between JSC C types and QtScript private types, takes a main part of the source code. In most cases a mapping between the types is one to one. New cast operators should be introduced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236269</commentid>
    <comment_count>1</comment_count>
      <attachid>58351</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-10 03:06:27 -0700</bug_when>
    <thetext>Created attachment 58351
Fix v1

No new functionality, refactoring only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236764</commentid>
    <comment_count>2</comment_count>
      <attachid>58351</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-11 03:28:46 -0700</bug_when>
    <thetext>Comment on attachment 58351
Fix v1

r=me

but the ChangeLog needs a little cleanup before landing. Right now it just starts with &quot;Explicit conversions to JSC types were removed&quot;, which in the
context of JavaScriptCore/ChangeLog does not make much sense.

I&apos;ll change this when landing it. Perhaps we should use JavaScriptCore/qt/ChangeLog in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236766</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-06-11 03:36:44 -0700</bug_when>
    <thetext>Committed r61003: &lt;http://trac.webkit.org/changeset/61003&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58351</attachid>
            <date>2010-06-10 03:06:27 -0700</date>
            <delta_ts>2010-06-11 03:28:45 -0700</delta_ts>
            <desc>Fix v1</desc>
            <filename>oper.diff</filename>
            <type>text/plain</type>
            <size>21875</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4OGJkNzE1Li5iNWFkOTJlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUg
QEAKKzIwMTAtMDYtMTAgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhw
bGljaXQgY29udmVyc2lvbnMgdG8gSlNDIG9wYXF1ZSB0eXBlcyB3ZXJlIHJlbW92ZWQuCisKKyAg
ICAgICAgQ29udmVyc2lvbiBiZXR3ZWVuIGEgSlNDIEMgdHlwZXMgYW5kIGEgUXRTY3JpcHQgcHJp
dmF0ZSB0eXBlcywgdGFrZXMKKyAgICAgICAgbWFpbiBwYXJ0IG9mIHRoZSBzb3VyY2UgY29kZS4g
SW4gbW9zdCBjYXNlcyBhIG1hcHBpbmcgYmV0d2VlbiB0aGUgdHlwZXMKKyAgICAgICAgaXMgb25l
IHRvIG9uZS4gTmV3IGNhc3Qgb3BlcmF0b3JzIHdlcmUgYWRkZWQgdG8gc2ltcGxpZnkgdGhlIGNv
ZGUuCisKKyAgICAgICAgVGhlIFFTY3JpcHRWYWx1ZVByaXZhdGUgY291bGQgYmUgY2FzdGVkIHRv
IHRoZSBKU1ZhbHVlUmVmIGFuZCB0aGUgSlNPYmplY3RSZWYuCisgICAgICAgIFRoZSBRU2NyaXB0
RW5naW5lUHJpdmF0ZSBjb3VsZCBiZSBjYXN0ZWQgdG8gdGhlIEpTR2xvYmFsQ29udGV4dC4KKyAg
ICAgICAgVGhlIFFTY3JpcHRQcm9ncmFtUHJpdmF0ZSBjb3VsZCBiZSBjYXN0ZWQgdG8gdGhlIEpT
U3RyaW5nUmVmLgorCisgICAgICAgIFtRdF0gIEV4cGxpY2l0IGNvbnZlcnNpb25zIHRvIEpTQyBv
cGFxdWUgdHlwZXMgc2hvdWxkIGJlIHJlbW92ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDQxMgorCisgICAgICAgICogcXQvYXBpL3FzY3JpcHRl
bmdpbmVfcC5jcHA6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJpdmF0ZTo6ZXZhbHVhdGUpOgor
ICAgICAgICAoUVNjcmlwdEVuZ2luZVByaXZhdGU6Om5ld09iamVjdCk6CisgICAgICAgIChRU2Ny
aXB0RW5naW5lUHJpdmF0ZTo6Z2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlw
dGVuZ2luZV9wLmg6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJpdmF0ZTo6b3BlcmF0b3IgSlNH
bG9iYWxDb250ZXh0UmVmKToKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHByb2dyYW1fcC5oOgor
ICAgICAgICAoUVNjcmlwdFByb2dyYW1Qcml2YXRlOjpvcGVyYXRvciBKU1N0cmluZ1JlZik6Cisg
ICAgICAgICogcXQvYXBpL3FzY3JpcHRzeW50YXhjaGVja3Jlc3VsdC5jcHA6CisgICAgICAgIChR
U2NyaXB0U3ludGF4Q2hlY2tSZXN1bHRQcml2YXRlOjp+UVNjcmlwdFN5bnRheENoZWNrUmVzdWx0
UHJpdmF0ZSk6CisgICAgICAgIChRU2NyaXB0U3ludGF4Q2hlY2tSZXN1bHRQcml2YXRlOjplcnJv
ck1lc3NhZ2UpOgorICAgICAgICAoUVNjcmlwdFN5bnRheENoZWNrUmVzdWx0UHJpdmF0ZTo6ZXJy
b3JMaW5lTnVtYmVyKToKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlX3AuaDoKKyAgICAg
ICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6On5RU2NyaXB0VmFsdWVQcml2YXRlKToKKyAgICAgICAg
KFFTY3JpcHRWYWx1ZVByaXZhdGU6OlFTY3JpcHRWYWx1ZVByaXZhdGUpOgorICAgICAgICAoUVNj
cmlwdFZhbHVlUHJpdmF0ZTo6aXNCb29sKToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6
OmlzTnVtYmVyKToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzTnVsbCk6CisgICAg
ICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjppc1N0cmluZyk6CisgICAgICAgIChRU2NyaXB0VmFs
dWVQcml2YXRlOjppc1VuZGVmaW5lZCk6CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjpp
c0Z1bmN0aW9uKToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvU3RyaW5nKToKKyAg
ICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvTnVtYmVyKToKKyAgICAgICAgKFFTY3JpcHRW
YWx1ZVByaXZhdGU6OnRvQm9vbCk6CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjp0b09i
amVjdCk6CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjplcXVhbHMpOgorICAgICAgICAo
UVNjcmlwdFZhbHVlUHJpdmF0ZTo6c3RyaWN0bHlFcXVhbHMpOgorICAgICAgICAoUVNjcmlwdFZh
bHVlUHJpdmF0ZTo6aW5zdGFuY2VPZik6CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjpj
YWxsKToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6Om9wZXJhdG9yIEpTVmFsdWVSZWYp
OgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6b3BlcmF0b3IgSlNPYmplY3RSZWYpOgor
ICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6c2V0VmFsdWUpOgorICAgICAgICAoUVNjcmlw
dFZhbHVlUHJpdmF0ZTo6aW5oZXJpdHMpOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6
cmVmaW5lZEpTVmFsdWUpOgorCiAyMDEwLTA2LTA3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFt
aW4ucG91bGFpbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21h
bm4uCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNw
cCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuY3BwCmluZGV4IDA3ZGJh
MjcuLmE2Y2Y0YTQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5n
aW5lX3AuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuY3Bw
CkBAIC03NCwxNiArNzQsMTYgQEAgUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdEVuZ2luZVBy
aXZhdGU6OmV2YWx1YXRlKGNvbnN0IFFTY3JpcHRQcm9ncmFtUHJpdmF0ZSoKIHsKICAgICBpZiAo
cHJvZ3JhbS0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0
ZTsKLSAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGUodGhpcywgZXZhbHVhdGUocHJv
Z3JhbS0+cHJvZ3JhbSgpLCBwcm9ncmFtLT5maWxlKCksIHByb2dyYW0tPmxpbmUoKSkpOworICAg
IHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCBldmFsdWF0ZSgqcHJvZ3JhbSwg
cHJvZ3JhbS0+ZmlsZSgpLCBwcm9ncmFtLT5saW5lKCkpKTsKIH0KIAogUVNjcmlwdFZhbHVlUHJp
dmF0ZSogUVNjcmlwdEVuZ2luZVByaXZhdGU6Om5ld09iamVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKHRoaXMsIEpTT2JqZWN0TWFrZShjb250ZXh0KCks
IC8qIGpzQ2xhc3MgKi8gMCwgLyogdXNlckRhdGEgKi8gMCkpOworICAgIHJldHVybiBuZXcgUVNj
cmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCBKU09iamVjdE1ha2UobV9jb250ZXh0LCAvKiBqc0NsYXNz
ICovIDAsIC8qIHVzZXJEYXRhICovIDApKTsKIH0KIAogUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNj
cmlwdEVuZ2luZVByaXZhdGU6Omdsb2JhbE9iamVjdCgpIGNvbnN0CiB7Ci0gICAgSlNPYmplY3RS
ZWYgZ2xvYmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KGNvbnRleHQoKSk7Cisg
ICAgSlNPYmplY3RSZWYgZ2xvYmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KG1f
Y29udGV4dCk7CiAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKHRoaXMsIGdsb2Jh
bE9iamVjdCwgZ2xvYmFsT2JqZWN0KTsKIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0
L2FwaS9xc2NyaXB0ZW5naW5lX3AuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5n
aW5lX3AuaAppbmRleCA0ZTk3ZTUwLi45MDgzZjdkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3Fz
Y3JpcHRlbmdpbmVfcC5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIGlubGluZSBR
U2NyaXB0U3RyaW5nUHJpdmF0ZSogdG9TdHJpbmdIYW5kbGUoY29uc3QgUVN0cmluZyYgc3RyKSBj
b25zdDsKIAotICAgIGlubGluZSBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCgpIGNvbnN0Owor
ICAgIGlubGluZSBvcGVyYXRvciBKU0dsb2JhbENvbnRleHRSZWYoKSBjb25zdDsKIHByaXZhdGU6
CiAgICAgUVNjcmlwdEVuZ2luZSogcV9wdHI7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVmIG1fY29u
dGV4dDsKQEAgLTEzMyw4ICsxMzMsOSBAQCBRU2NyaXB0U3RyaW5nUHJpdmF0ZSogUVNjcmlwdEVu
Z2luZVByaXZhdGU6OnRvU3RyaW5nSGFuZGxlKGNvbnN0IFFTdHJpbmcmIHN0cikgYwogICAgIHJl
dHVybiBuZXcgUVNjcmlwdFN0cmluZ1ByaXZhdGUoc3RyKTsKIH0KIAotSlNHbG9iYWxDb250ZXh0
UmVmIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpjb250ZXh0KCkgY29uc3QKK1FTY3JpcHRFbmdpbmVQ
cml2YXRlOjpvcGVyYXRvciBKU0dsb2JhbENvbnRleHRSZWYoKSBjb25zdAogeworICAgIFFfQVNT
RVJUKHRoaXMpOwogICAgIHJldHVybiBtX2NvbnRleHQ7CiB9CiAKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0cHJvZ3JhbV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdHByb2dyYW1fcC5oCmluZGV4IDZlODBlODUuLmY2ODgyYzUgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0cHJvZ3JhbV9wLmgKKysrIGIvSmF2YVNjcmlw
dENvcmUvcXQvYXBpL3FzY3JpcHRwcm9ncmFtX3AuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6
CiAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRU2NyaXB0UHJvZ3JhbVByaXZhdGUm
IG90aGVyKSBjb25zdDsKICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFFTY3JpcHRQ
cm9ncmFtUHJpdmF0ZSYgb3RoZXIpIGNvbnN0OwogCi0gICAgaW5saW5lIEpTU3RyaW5nUmVmIHBy
b2dyYW0oKSBjb25zdDsKKyAgICBpbmxpbmUgb3BlcmF0b3IgSlNTdHJpbmdSZWYoKSBjb25zdDsK
ICAgICBpbmxpbmUgSlNTdHJpbmdSZWYgZmlsZSgpIGNvbnN0OwogICAgIGlubGluZSBpbnQgbGlu
ZSgpIGNvbnN0OwogcHJpdmF0ZToKQEAgLTEyMiw3ICsxMjIsMTEgQEAgYm9vbCBRU2NyaXB0UHJv
Z3JhbVByaXZhdGU6Om9wZXJhdG9yIT0oY29uc3QgUVNjcmlwdFByb2dyYW1Qcml2YXRlJiBvdGhl
cikgY29uc3QKICAgICAgICAgICAgIHx8ICFKU1N0cmluZ0lzRXF1YWwobV9wcm9ncmFtLCBvdGhl
ci5tX3Byb2dyYW0pOwogfQogCi1KU1N0cmluZ1JlZiBRU2NyaXB0UHJvZ3JhbVByaXZhdGU6OnBy
b2dyYW0oKSBjb25zdCB7IHJldHVybiBtX3Byb2dyYW07IH0KK1FTY3JpcHRQcm9ncmFtUHJpdmF0
ZTo6b3BlcmF0b3IgSlNTdHJpbmdSZWYoKSBjb25zdAoreworICAgIHJldHVybiBtX3Byb2dyYW07
Cit9CisKIEpTU3RyaW5nUmVmIFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6ZmlsZSgpIGNvbnN0IHty
ZXR1cm4gbV9maWxlTmFtZTsgfQogaW50IFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6bGluZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbGluZTsgfQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdHN5bnRheGNoZWNrcmVzdWx0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9x
c2NyaXB0c3ludGF4Y2hlY2tyZXN1bHQuY3BwCmluZGV4IDVjZjAyZWYuLjM5NDhjNWQgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0c3ludGF4Y2hlY2tyZXN1bHQuY3Bw
CisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0c3ludGF4Y2hlY2tyZXN1bHQuY3Bw
CkBAIC0xMTksNyArMTE5LDcgQEAgUVN0cmluZyBRU2NyaXB0U3ludGF4Q2hlY2tSZXN1bHQ6OmVy
cm9yTWVzc2FnZSgpIGNvbnN0CiBRU2NyaXB0U3ludGF4Q2hlY2tSZXN1bHRQcml2YXRlOjp+UVNj
cmlwdFN5bnRheENoZWNrUmVzdWx0UHJpdmF0ZSgpCiB7CiAgICAgaWYgKG1fZXhjZXB0aW9uKQot
ICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fZW5naW5lLT5jb250ZXh0KCksIG1fZXhjZXB0aW9u
KTsKKyAgICAgICAgSlNWYWx1ZVVucHJvdGVjdCgqbV9lbmdpbmUsIG1fZXhjZXB0aW9uKTsKIH0K
IAogUVN0cmluZyBRU2NyaXB0U3ludGF4Q2hlY2tSZXN1bHRQcml2YXRlOjplcnJvck1lc3NhZ2Uo
KSBjb25zdApAQCAtMTI3LDcgKzEyNyw3IEBAIFFTdHJpbmcgUVNjcmlwdFN5bnRheENoZWNrUmVz
dWx0UHJpdmF0ZTo6ZXJyb3JNZXNzYWdlKCkgY29uc3QKICAgICBpZiAoIW1fZXhjZXB0aW9uKQog
ICAgICAgICByZXR1cm4gUVN0cmluZygpOwogCi0gICAgSlNTdHJpbmdSZWYgdG1wID0gSlNWYWx1
ZVRvU3RyaW5nQ29weShtX2VuZ2luZS0+Y29udGV4dCgpLCBtX2V4Y2VwdGlvbiwgLyogZXhjZXB0
aW9uICovIDApOworICAgIEpTU3RyaW5nUmVmIHRtcCA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoKm1f
ZW5naW5lLCBtX2V4Y2VwdGlvbiwgLyogZXhjZXB0aW9uICovIDApOwogICAgIFFTdHJpbmcgbWVz
c2FnZSA9IFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3RyaW5nKHRtcCk7CiAgICAgSlNTdHJpbmdSZWxl
YXNlKHRtcCk7CiAgICAgcmV0dXJuIG1lc3NhZ2U7CkBAIC0xMzksMTAgKzEzOSwxMCBAQCBpbnQg
UVNjcmlwdFN5bnRheENoZWNrUmVzdWx0UHJpdmF0ZTo6ZXJyb3JMaW5lTnVtYmVyKCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIC0xOwogICAgIC8vIG1fZXhjZXB0aW9uIGlzIGFuIGluc3RhbmNlIG9m
IHRoZSBFeGNlcHRpb24gc28gaXQgaGFzICJsaW5lIiBhdHRyaWJ1dGUuCiAgICAgSlNTdHJpbmdS
ZWYgbGluZUF0dHJOYW1lID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmcoImxpbmUiKTsKLSAg
ICBKU1ZhbHVlUmVmIGxpbmUgPSBKU09iamVjdEdldFByb3BlcnR5KG1fZW5naW5lLT5jb250ZXh0
KCksCisgICAgSlNWYWx1ZVJlZiBsaW5lID0gSlNPYmplY3RHZXRQcm9wZXJ0eSgqbV9lbmdpbmUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4Y2VwdGlvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVBdHRyTmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4Y2VwdGlvbnMg
Ki8wKTsKICAgICBKU1N0cmluZ1JlbGVhc2UobGluZUF0dHJOYW1lKTsKLSAgICByZXR1cm4gSlNW
YWx1ZVRvTnVtYmVyKG1fZW5naW5lLT5jb250ZXh0KCksIGxpbmUsIC8qIGV4Y2VwdGlvbnMgKi8w
KTsKKyAgICByZXR1cm4gSlNWYWx1ZVRvTnVtYmVyKCptX2VuZ2luZSwgbGluZSwgLyogZXhjZXB0
aW9ucyAqLzApOwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2
YWx1ZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaAppbmRleCAw
MjkwNWMwLi4xYmI4YTc3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dHZhbHVlX3AuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaApA
QCAtNTksNiArNTksMTAgQEAgY2xhc3MgUVNjcmlwdFZhbHVlOwogCiAgIEVhY2ggc3RhdGUga2Vl
cCBhbGwgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIGludm9rZSBhbGwgbWV0aG9kcywgaWYgbm90
IGl0IHNob3VsZCBiZSBjaGFuZ2VkIHRvCiAgIGEgcHJvcGVyIHN0YXRlLiBDaGFuZ2VkIHN0YXRl
IHNob3VsZG4ndCBiZSByZXZlcnRlZC4KKworICBUaGUgUVNjcmlwdFZhbHVlUHJpdmF0ZSB1c2Ug
dGhlIEpTQyBDIEFQSSBkaXJlY3RseS4gVGhlIFFTVlAgdHlwZSBpcyBlcXVhbCB0byBjb21iaW5h
dGlvbiBvZgorICB0aGUgSlNWYWx1ZVJlZiBhbmQgdGhlIEpTT2JqZWN0UmVmLCBhbmQgaXQgY291
bGQgYmUgYXV0b21hdGljYWxseSBjYXN0ZWQgdG8gdGhlc2UgdHlwZXMgYnkgY2FzdAorICBvcGVy
YXRvcnMuCiAqLwogCiBjbGFzcyBRU2NyaXB0VmFsdWVQcml2YXRlIDogcHVibGljIFFTaGFyZWRE
YXRhIHsKQEAgLTExNCw5ICsxMTgsOSBAQCBwdWJsaWM6CiAKICAgICBpbmxpbmUgUVNjcmlwdFZh
bHVlUHJpdmF0ZSogY2FsbChjb25zdCBRU2NyaXB0VmFsdWVQcml2YXRlKiAsIGNvbnN0IFFTY3Jp
cHRWYWx1ZUxpc3QmIGFyZ3MpOwogCi0gICAgaW5saW5lIEpTR2xvYmFsQ29udGV4dFJlZiBjb250
ZXh0KCkgY29uc3Q7Ci0gICAgaW5saW5lIEpTVmFsdWVSZWYgdmFsdWUoKSBjb25zdDsKLSAgICBp
bmxpbmUgSlNPYmplY3RSZWYgb2JqZWN0KCkgY29uc3Q7CisgICAgaW5saW5lIG9wZXJhdG9yIEpT
VmFsdWVSZWYoKSBjb25zdDsKKyAgICBpbmxpbmUgb3BlcmF0b3IgSlNPYmplY3RSZWYoKSBjb25z
dDsKKwogICAgIGlubGluZSBRU2NyaXB0RW5naW5lUHJpdmF0ZSogZW5naW5lKCkgY29uc3Q7CiAK
IHByaXZhdGU6CkBAIC0xNjMsNyArMTY3LDcgQEAgUVNjcmlwdFZhbHVlIFFTY3JpcHRWYWx1ZVBy
aXZhdGU6OmdldChRU2NyaXB0VmFsdWVQcml2YXRlKiBkKQogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6
flFTY3JpcHRWYWx1ZVByaXZhdGUoKQogewogICAgIGlmIChtX3ZhbHVlKQotICAgICAgICBKU1Zh
bHVlVW5wcm90ZWN0KGNvbnRleHQoKSwgbV92YWx1ZSk7CisgICAgICAgIEpTVmFsdWVVbnByb3Rl
Y3QoKm1fZW5naW5lLCBtX3ZhbHVlKTsKIH0KIAogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6UVNjcmlw
dFZhbHVlUHJpdmF0ZSgpCkBAIC0yMTksNyArMjIzLDcgQEAgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6
UVNjcmlwdFZhbHVlUHJpdmF0ZShjb25zdCBRU2NyaXB0RW5naW5lUHJpdmF0ZSogZW5naW5lLCBi
b28KICAgICAsIG1fdmFsdWUoZW5naW5lLT5tYWtlSlNWYWx1ZSh2YWx1ZSkpCiB7CiAgICAgUV9B
U1NFUlQoZW5naW5lKTsKLSAgICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0KCksIG1fdmFsdWUpOwor
ICAgIEpTVmFsdWVQcm90ZWN0KCptX2VuZ2luZSwgbV92YWx1ZSk7CiB9CiAKIFFTY3JpcHRWYWx1
ZVByaXZhdGU6OlFTY3JpcHRWYWx1ZVByaXZhdGUoY29uc3QgUVNjcmlwdEVuZ2luZVByaXZhdGUq
IGVuZ2luZSwgaW50IHZhbHVlKQpAQCAtMjI4LDcgKzIzMiw3IEBAIFFTY3JpcHRWYWx1ZVByaXZh
dGU6OlFTY3JpcHRWYWx1ZVByaXZhdGUoY29uc3QgUVNjcmlwdEVuZ2luZVByaXZhdGUqIGVuZ2lu
ZSwgaW50CiAgICAgLCBtX3ZhbHVlKG1fZW5naW5lLT5tYWtlSlNWYWx1ZSh2YWx1ZSkpCiB7CiAg
ICAgUV9BU1NFUlQoZW5naW5lKTsKLSAgICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0KCksIG1fdmFs
dWUpOworICAgIEpTVmFsdWVQcm90ZWN0KCptX2VuZ2luZSwgbV92YWx1ZSk7CiB9CiAKIFFTY3Jp
cHRWYWx1ZVByaXZhdGU6OlFTY3JpcHRWYWx1ZVByaXZhdGUoY29uc3QgUVNjcmlwdEVuZ2luZVBy
aXZhdGUqIGVuZ2luZSwgdWludCB2YWx1ZSkKQEAgLTIzNyw3ICsyNDEsNyBAQCBRU2NyaXB0VmFs
dWVQcml2YXRlOjpRU2NyaXB0VmFsdWVQcml2YXRlKGNvbnN0IFFTY3JpcHRFbmdpbmVQcml2YXRl
KiBlbmdpbmUsIHVpbgogICAgICwgbV92YWx1ZShtX2VuZ2luZS0+bWFrZUpTVmFsdWUodmFsdWUp
KQogewogICAgIFFfQVNTRVJUKGVuZ2luZSk7Ci0gICAgSlNWYWx1ZVByb3RlY3QoY29udGV4dCgp
LCBtX3ZhbHVlKTsKKyAgICBKU1ZhbHVlUHJvdGVjdCgqbV9lbmdpbmUsIG1fdmFsdWUpOwogfQog
CiBRU2NyaXB0VmFsdWVQcml2YXRlOjpRU2NyaXB0VmFsdWVQcml2YXRlKGNvbnN0IFFTY3JpcHRF
bmdpbmVQcml2YXRlKiBlbmdpbmUsIHFzcmVhbCB2YWx1ZSkKQEAgLTI0Niw3ICsyNTAsNyBAQCBR
U2NyaXB0VmFsdWVQcml2YXRlOjpRU2NyaXB0VmFsdWVQcml2YXRlKGNvbnN0IFFTY3JpcHRFbmdp
bmVQcml2YXRlKiBlbmdpbmUsIHFzcgogICAgICwgbV92YWx1ZShtX2VuZ2luZS0+bWFrZUpTVmFs
dWUodmFsdWUpKQogewogICAgIFFfQVNTRVJUKGVuZ2luZSk7Ci0gICAgSlNWYWx1ZVByb3RlY3Qo
Y29udGV4dCgpLCBtX3ZhbHVlKTsKKyAgICBKU1ZhbHVlUHJvdGVjdCgqbV9lbmdpbmUsIG1fdmFs
dWUpOwogfQogCiBRU2NyaXB0VmFsdWVQcml2YXRlOjpRU2NyaXB0VmFsdWVQcml2YXRlKGNvbnN0
IFFTY3JpcHRFbmdpbmVQcml2YXRlKiBlbmdpbmUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQpAQCAt
MjU1LDcgKzI1OSw3IEBAIFFTY3JpcHRWYWx1ZVByaXZhdGU6OlFTY3JpcHRWYWx1ZVByaXZhdGUo
Y29uc3QgUVNjcmlwdEVuZ2luZVByaXZhdGUqIGVuZ2luZSwgY29uCiAgICAgLCBtX3ZhbHVlKG1f
ZW5naW5lLT5tYWtlSlNWYWx1ZSh2YWx1ZSkpCiB7CiAgICAgUV9BU1NFUlQoZW5naW5lKTsKLSAg
ICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0KCksIG1fdmFsdWUpOworICAgIEpTVmFsdWVQcm90ZWN0
KCptX2VuZ2luZSwgbV92YWx1ZSk7CiB9CiAKIFFTY3JpcHRWYWx1ZVByaXZhdGU6OlFTY3JpcHRW
YWx1ZVByaXZhdGUoY29uc3QgUVNjcmlwdEVuZ2luZVByaXZhdGUqIGVuZ2luZSwgUVNjcmlwdFZh
bHVlOjpTcGVjaWFsVmFsdWUgdmFsdWUpCkBAIC0yNjQsNyArMjY4LDcgQEAgUVNjcmlwdFZhbHVl
UHJpdmF0ZTo6UVNjcmlwdFZhbHVlUHJpdmF0ZShjb25zdCBRU2NyaXB0RW5naW5lUHJpdmF0ZSog
ZW5naW5lLCBRU2MKICAgICAsIG1fdmFsdWUobV9lbmdpbmUtPm1ha2VKU1ZhbHVlKHZhbHVlKSkK
IHsKICAgICBRX0FTU0VSVChlbmdpbmUpOwotICAgIEpTVmFsdWVQcm90ZWN0KGNvbnRleHQoKSwg
bV92YWx1ZSk7CisgICAgSlNWYWx1ZVByb3RlY3QoKm1fZW5naW5lLCBtX3ZhbHVlKTsKIH0KIAog
UVNjcmlwdFZhbHVlUHJpdmF0ZTo6UVNjcmlwdFZhbHVlUHJpdmF0ZShjb25zdCBRU2NyaXB0RW5n
aW5lUHJpdmF0ZSogZW5naW5lLCBKU1ZhbHVlUmVmIHZhbHVlKQpAQCAtMjc0LDcgKzI3OCw3IEBA
IFFTY3JpcHRWYWx1ZVByaXZhdGU6OlFTY3JpcHRWYWx1ZVByaXZhdGUoY29uc3QgUVNjcmlwdEVu
Z2luZVByaXZhdGUqIGVuZ2luZSwgSlNWCiB7CiAgICAgUV9BU1NFUlQoZW5naW5lKTsKICAgICBR
X0FTU0VSVCh2YWx1ZSk7Ci0gICAgSlNWYWx1ZVByb3RlY3QoY29udGV4dCgpLCBtX3ZhbHVlKTsK
KyAgICBKU1ZhbHVlUHJvdGVjdCgqbV9lbmdpbmUsIG1fdmFsdWUpOwogfQogCiBRU2NyaXB0VmFs
dWVQcml2YXRlOjpRU2NyaXB0VmFsdWVQcml2YXRlKGNvbnN0IFFTY3JpcHRFbmdpbmVQcml2YXRl
KiBlbmdpbmUsIEpTVmFsdWVSZWYgdmFsdWUsIEpTT2JqZWN0UmVmIG9iamVjdCkKQEAgLTI4Niw3
ICsyOTAsNyBAQCBRU2NyaXB0VmFsdWVQcml2YXRlOjpRU2NyaXB0VmFsdWVQcml2YXRlKGNvbnN0
IFFTY3JpcHRFbmdpbmVQcml2YXRlKiBlbmdpbmUsIEpTVgogICAgIFFfQVNTRVJUKGVuZ2luZSk7
CiAgICAgUV9BU1NFUlQodmFsdWUpOwogICAgIFFfQVNTRVJUKG9iamVjdCk7Ci0gICAgSlNWYWx1
ZVByb3RlY3QoY29udGV4dCgpLCBtX3ZhbHVlKTsKKyAgICBKU1ZhbHVlUHJvdGVjdCgqbV9lbmdp
bmUsIG1fdmFsdWUpOwogfQogCiBib29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiBtX3N0YXRlICE9IEludmFsaWQ7IH0KQEAgLTMwMSw3ICszMDUsNyBAQCBi
b29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmlzQm9vbCgpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIC8vIEZhbGwtdGhyb3VnaC4KICAgICBjYXNlIEpTUHJpbWl0aXZlOgotICAg
ICAgICByZXR1cm4gSlNWYWx1ZUlzQm9vbGVhbihjb250ZXh0KCksIHZhbHVlKCkpOworICAgICAg
ICByZXR1cm4gSlNWYWx1ZUlzQm9vbGVhbigqbV9lbmdpbmUsICp0aGlzKTsKICAgICBkZWZhdWx0
OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzE3LDcgKzMyMSw3IEBAIGJvb2wg
UVNjcmlwdFZhbHVlUHJpdmF0ZTo6aXNOdW1iZXIoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICAvLyBGYWxsLXRocm91Z2guCiAgICAgY2FzZSBKU1ByaW1pdGl2ZToKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWVJc051bWJlcihjb250ZXh0KCksIHZhbHVlKCkpOworICAgICAgICBy
ZXR1cm4gSlNWYWx1ZUlzTnVtYmVyKCptX2VuZ2luZSwgKnRoaXMpOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0zMzMsNyArMzM3LDcgQEAgYm9vbCBRU2Ny
aXB0VmFsdWVQcml2YXRlOjppc051bGwoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAvLyBGYWxsLXRocm91Z2guCiAgICAgY2FzZSBKU1ByaW1pdGl2ZToKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWVJc051bGwoY29udGV4dCgpLCB2YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWVJc051bGwoKm1fZW5naW5lLCAqdGhpcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KQEAgLTM0OSw3ICszNTMsNyBAQCBib29sIFFTY3JpcHRWYWx1ZVBy
aXZhdGU6OmlzU3RyaW5nKCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgLy8g
RmFsbC10aHJvdWdoLgogICAgIGNhc2UgSlNQcmltaXRpdmU6Ci0gICAgICAgIHJldHVybiBKU1Zh
bHVlSXNTdHJpbmcoY29udGV4dCgpLCB2YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVJ
c1N0cmluZygqbV9lbmdpbmUsICp0aGlzKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQpAQCAtMzY1LDcgKzM2OSw3IEBAIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0
ZTo6aXNVbmRlZmluZWQoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAvLyBG
YWxsLXRocm91Z2guCiAgICAgY2FzZSBKU1ByaW1pdGl2ZToKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWVJc1VuZGVmaW5lZChjb250ZXh0KCksIHZhbHVlKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1
ZUlzVW5kZWZpbmVkKCptX2VuZ2luZSwgKnRoaXMpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CkBAIC00MDYsNyArNDEwLDcgQEAgYm9vbCBRU2NyaXB0VmFsdWVQ
cml2YXRlOjppc0Z1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
Ly8gRmFsbC10aHJvdWdoLgogICAgIGNhc2UgSlNPYmplY3Q6Ci0gICAgICAgIHJldHVybiBKU09i
amVjdElzRnVuY3Rpb24oY29udGV4dCgpLCBvYmplY3QoKSk7CisgICAgICAgIHJldHVybiBKU09i
amVjdElzRnVuY3Rpb24oKm1fZW5naW5lLCAqdGhpcyk7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTQzMCw3ICs0MzQsNyBAQCBRU3RyaW5nIFFTY3JpcHRW
YWx1ZVByaXZhdGU6OnRvU3RyaW5nKCkgY29uc3QKICAgICBjYXNlIEpTVmFsdWU6CiAgICAgY2Fz
ZSBKU1ByaW1pdGl2ZToKICAgICBjYXNlIEpTT2JqZWN0OgotICAgICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gcHRyKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQoKSwgdmFs
dWUoKSwgLyogZXhjZXB0aW9uICovIDApKTsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHB0cihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weSgqbV9lbmdpbmUsICp0aGlzLCAvKiBl
eGNlcHRpb24gKi8gMCkpOwogICAgICAgICByZXR1cm4gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJp
bmcocHRyLmdldCgpKTsKICAgICB9CiAKQEAgLTQ0NCw3ICs0NDgsNyBAQCBxc3JlYWwgUVNjcmlw
dFZhbHVlUHJpdmF0ZTo6dG9OdW1iZXIoKSBjb25zdAogICAgIGNhc2UgSlNWYWx1ZToKICAgICBj
YXNlIEpTUHJpbWl0aXZlOgogICAgIGNhc2UgSlNPYmplY3Q6Ci0gICAgICAgIHJldHVybiBKU1Zh
bHVlVG9OdW1iZXIoY29udGV4dCgpLCB2YWx1ZSgpLCAvKiBleGNlcHRpb24gKi8gMCk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlVG9OdW1iZXIoKm1fZW5naW5lLCAqdGhpcywgLyogZXhjZXB0aW9u
ICovIDApOwogICAgIGNhc2UgQ051bWJlcjoKICAgICAgICAgcmV0dXJuIG1fbnVtYmVyOwogICAg
IGNhc2UgQ0Jvb2w6CkBAIC00NzYsNyArNDgwLDcgQEAgYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRl
Ojp0b0Jvb2woKSBjb25zdAogICAgIHN3aXRjaCAobV9zdGF0ZSkgewogICAgIGNhc2UgSlNWYWx1
ZToKICAgICBjYXNlIEpTUHJpbWl0aXZlOgotICAgICAgICByZXR1cm4gSlNWYWx1ZVRvQm9vbGVh
bihjb250ZXh0KCksIHZhbHVlKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZVRvQm9vbGVhbigq
bV9lbmdpbmUsICp0aGlzKTsKICAgICBjYXNlIEpTT2JqZWN0OgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBjYXNlIENOdW1iZXI6CkBAIC01NDcsMjEgKzU1MSwyMSBAQCBRU2NyaXB0VmFsdWVQ
cml2YXRlKiBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b09iamVjdChRU2NyaXB0RW5naW5lUHJpdmF0
ZSogZW5naW5lKQogICAgIGNhc2UgQ1N0cmluZzoKICAgICAgICAgewogICAgICAgICAgICAgLy8g
RXhjZXB0aW9uIGNhbid0IG9jY3VyIGhlcmUuCi0gICAgICAgICAgICBKU09iamVjdFJlZiBvYmpl
Y3QgPSBKU1ZhbHVlVG9PYmplY3QoZW5naW5lLT5jb250ZXh0KCksIGVuZ2luZS0+bWFrZUpTVmFs
dWUobV9zdHJpbmcpLCAvKiBleGNlcHRpb24gKi8gMCk7CisgICAgICAgICAgICBKU09iamVjdFJl
ZiBvYmplY3QgPSBKU1ZhbHVlVG9PYmplY3QoKmVuZ2luZSwgZW5naW5lLT5tYWtlSlNWYWx1ZSht
X3N0cmluZyksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKICAgICAgICAgICAgIFFfQVNTRVJUKG9iamVj
dCk7CiAgICAgICAgICAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGUoZW5naW5lLCBv
YmplY3QsIG9iamVjdCk7CiAgICAgICAgIH0KICAgICBjYXNlIENOdW1iZXI6CiAgICAgICAgIHsK
ICAgICAgICAgICAgIC8vIEV4Y2VwdGlvbiBjYW4ndCBvY2N1ciBoZXJlLgotICAgICAgICAgICAg
SlNPYmplY3RSZWYgb2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0KGVuZ2luZS0+Y29udGV4dCgpLCBl
bmdpbmUtPm1ha2VKU1ZhbHVlKG1fbnVtYmVyKSwgLyogZXhjZXB0aW9uICovIDApOworICAgICAg
ICAgICAgSlNPYmplY3RSZWYgb2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0KCplbmdpbmUsIGVuZ2lu
ZS0+bWFrZUpTVmFsdWUobV9udW1iZXIpLCAvKiBleGNlcHRpb24gKi8gMCk7CiAgICAgICAgICAg
ICBRX0FTU0VSVChvYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQ
cml2YXRlKGVuZ2luZSwgb2JqZWN0LCBvYmplY3QpOwogICAgICAgICB9CiAgICAgY2FzZSBDQm9v
bDoKICAgICAgICAgewogICAgICAgICAgICAgLy8gRXhjZXB0aW9uIGNhbid0IG9jY3VyZSBoZXJl
LgotICAgICAgICAgICAgSlNPYmplY3RSZWYgb2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0KGVuZ2lu
ZS0+Y29udGV4dCgpLCBlbmdpbmUtPm1ha2VKU1ZhbHVlKHN0YXRpY19jYXN0PGJvb2w+KG1fbnVt
YmVyKSksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICAgICAgICAgIEpTT2JqZWN0UmVmIG9iamVj
dCA9IEpTVmFsdWVUb09iamVjdCgqZW5naW5lLCBlbmdpbmUtPm1ha2VKU1ZhbHVlKHN0YXRpY19j
YXN0PGJvb2w+KG1fbnVtYmVyKSksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKICAgICAgICAgICAgIFFf
QVNTRVJUKG9iamVjdCk7CiAgICAgICAgICAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZh
dGUoZW5naW5lLCBvYmplY3QsIG9iamVjdCk7CiAgICAgICAgIH0KQEAgLTU3Myw3ICs1NzcsNyBA
QCBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b09iamVjdChRU2Ny
aXB0RW5naW5lUHJpdmF0ZSogZW5naW5lKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoZW5n
aW5lICE9IHRoaXMtPmVuZ2luZSgpKQogICAgICAgICAgICAgICAgIHFXYXJuaW5nKCJRU2NyaXB0
RW5naW5lOjp0b09iamVjdDogY2Fubm90IGNvbnZlcnQgdmFsdWUgY3JlYXRlZCBpbiBhIGRpZmZl
cmVudCBlbmdpbmUiKTsKLSAgICAgICAgICAgIEpTT2JqZWN0UmVmIG9iamVjdCA9IEpTVmFsdWVU
b09iamVjdChjb250ZXh0KCksIHZhbHVlKCksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICAgICAg
ICAgIEpTT2JqZWN0UmVmIG9iamVjdCA9IEpTVmFsdWVUb09iamVjdCgqbV9lbmdpbmUsICp0aGlz
LCAvKiBleGNlcHRpb24gKi8gMCk7CiAgICAgICAgICAgICBpZiAob2JqZWN0KQogICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZShtX2VuZ2luZS5jb25zdERhdGEo
KSwgb2JqZWN0KTsKICAgICAgICAgfQpAQCAtNjMxLDcgKzYzNSw3IEBAIGJvb2wgUVNjcmlwdFZh
bHVlUHJpdmF0ZTo6ZXF1YWxzKFFTY3JpcHRWYWx1ZVByaXZhdGUqIG90aGVyKQogICAgICAgICB9
CiAgICAgfQogCi0gICAgcmV0dXJuIEpTVmFsdWVJc0VxdWFsKGNvbnRleHQoKSwgdmFsdWUoKSwg
b3RoZXItPnZhbHVlKCksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICByZXR1cm4gSlNWYWx1ZUlz
RXF1YWwoKm1fZW5naW5lLCAqdGhpcywgKm90aGVyLCAvKiBleGNlcHRpb24gKi8gMCk7CiB9CiAK
IGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6c3RyaWN0bHlFcXVhbHMoUVNjcmlwdFZhbHVlUHJp
dmF0ZSogb3RoZXIpCkBAIC02NDAsMjEgKzY0NCwyMSBAQCBib29sIFFTY3JpcHRWYWx1ZVByaXZh
dGU6OnN0cmljdGx5RXF1YWxzKFFTY3JpcHRWYWx1ZVByaXZhdGUqIG90aGVyKQogICAgICAgICAv
LyBXZSBjYW4ndCBjb21wYXJlIHRoZXNlIHR3byB2YWx1ZXMgd2l0aG91dCBiaW5kaW5nIHRvIHRo
ZSBzYW1lIGVuZ2luZS4KICAgICAgICAgaWYgKCFvdGhlci0+aXNKU0Jhc2VkKCkpIHsKICAgICAg
ICAgICAgIGlmIChvdGhlci0+YXNzaWduRW5naW5lKGVuZ2luZSgpKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZUlzU3RyaWN0RXF1YWwoY29udGV4dCgpLCB2YWx1ZSgpLCBvdGhlci0+
dmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWVJc1N0cmljdEVxdWFsKCpt
X2VuZ2luZSwgKnRoaXMsICpvdGhlcik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKG90aGVyLT5lbmdpbmUoKSAhPSBlbmdpbmUoKSkgewogICAgICAg
ICAgICAgcVdhcm5pbmcoInN0cmljdGx5RXF1YWxzKCk6IENhbm5vdCBjb21wYXJlIHRvIGEgdmFs
dWUgY3JlYXRlZCBpbiBhIGRpZmZlcmVudCBlbmdpbmUiKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSlNWYWx1ZUlzU3RyaWN0RXF1YWwoY29u
dGV4dCgpLCB2YWx1ZSgpLCBvdGhlci0+dmFsdWUoKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVl
SXNTdHJpY3RFcXVhbCgqbV9lbmdpbmUsICp0aGlzLCAqb3RoZXIpOwogICAgIH0KICAgICBpZiAo
aXNTdHJpbmdCYXNlZCgpKSB7CiAgICAgICAgIGlmIChvdGhlci0+aXNTdHJpbmdCYXNlZCgpKQog
ICAgICAgICAgICAgcmV0dXJuIG1fc3RyaW5nID09IG90aGVyLT5tX3N0cmluZzsKICAgICAgICAg
aWYgKG90aGVyLT5pc0pTQmFzZWQoKSkgewogICAgICAgICAgICAgYXNzaWduRW5naW5lKG90aGVy
LT5lbmdpbmUoKSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZUlzU3RyaWN0RXF1YWwoY29u
dGV4dCgpLCB2YWx1ZSgpLCBvdGhlci0+dmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZUlzU3RyaWN0RXF1YWwoKm1fZW5naW5lLCAqdGhpcywgKm90aGVyKTsKICAgICAgICAgfQog
ICAgIH0KICAgICBpZiAoaXNOdW1iZXJCYXNlZCgpKSB7CkBAIC02NjIsNyArNjY2LDcgQEAgYm9v
bCBRU2NyaXB0VmFsdWVQcml2YXRlOjpzdHJpY3RseUVxdWFscyhRU2NyaXB0VmFsdWVQcml2YXRl
KiBvdGhlcikKICAgICAgICAgICAgIHJldHVybiBtX251bWJlciA9PSBvdGhlci0+bV9udW1iZXI7
CiAgICAgICAgIGlmIChvdGhlci0+aXNKU0Jhc2VkKCkpIHsKICAgICAgICAgICAgIGFzc2lnbkVu
Z2luZShvdGhlci0+ZW5naW5lKCkpOwotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWVJc1N0cmlj
dEVxdWFsKGNvbnRleHQoKSwgdmFsdWUoKSwgb3RoZXItPnZhbHVlKCkpOworICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWVJc1N0cmljdEVxdWFsKCptX2VuZ2luZSwgKnRoaXMsICpvdGhlcik7CiAg
ICAgICAgIH0KICAgICB9CiAgICAgaWYgKCFpc1ZhbGlkKCkgJiYgIW90aGVyLT5pc1ZhbGlkKCkp
CkBAIC02NzUsNyArNjc5LDcgQEAgaW5saW5lIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6aW5z
dGFuY2VPZihRU2NyaXB0VmFsdWVQcml2YXRlKiBvdGhlcikKIHsKICAgICBpZiAoIWlzSlNCYXNl
ZCgpIHx8ICFvdGhlci0+aXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJl
dHVybiBKU1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoY29udGV4dCgpLCB2YWx1ZSgpLCBv
dGhlci0+b2JqZWN0KCksIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICByZXR1cm4gSlNWYWx1ZUlz
SW5zdGFuY2VPZkNvbnN0cnVjdG9yKCptX2VuZ2luZSwgKnRoaXMsICpvdGhlciwgLyogZXhjZXB0
aW9uICovIDApOwogfQogCiAvKiEKQEAgLTczMiwxMiArNzM2LDEyIEBAIFFTY3JpcHRWYWx1ZVBy
aXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmNhbGwoY29uc3QgUVNjcmlwdFZhbHVlUHJpdmF0
ZSosIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgIHFXYXJuaW5nKCJRU2NyaXB0VmFsdWU6OmNh
bGwoKSBmYWlsZWQ6IGNhbm5vdCBjYWxsIGZ1bmN0aW9uIHdpdGggdmFsdWVzIGNyZWF0ZWQgaW4g
YSBkaWZmZXJlbnQgZW5naW5lIik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUVNj
cmlwdFZhbHVlUHJpdmF0ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYXJn
dltqXSA9IHZhbHVlLT52YWx1ZSgpOworICAgICAgICAgICAgICAgIGFyZ3Zbal0gPSAqdmFsdWU7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIE1ha2UgdGhlIGNhbGwKICAgICAgICAg
ICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgICAgIEpTVmFsdWVSZWYgcmVz
dWx0ID0gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjb250ZXh0KCksIG9iamVjdCgpLCAvKiB0aGlz
T2JqZWN0ICovIDAsIGFyZ2MsIGFyZ3YuY29uc3REYXRhKCksICZleGNlcHRpb24pOworICAgICAg
ICAgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKCptX2VuZ2lu
ZSwgKnRoaXMsIC8qIHRoaXNPYmplY3QgKi8gMCwgYXJnYywgYXJndi5jb25zdERhdGEoKSwgJmV4
Y2VwdGlvbik7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdCAmJiBleGNlcHRpb24pCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKGVuZ2luZSgpLCBleGNlcHRp
b24pOwogICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiAhZXhjZXB0aW9uKQpAQCAtNzU2LDE5ICs3
NjAsMTMgQEAgUVNjcmlwdEVuZ2luZVByaXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmVuZ2lu
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZW5naW5lLmRhdGEoKTsKIH0KIAotSlNHbG9iYWxDb250
ZXh0UmVmIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmNvbnRleHQoKSBjb25zdAotewotICAgIFFfQVNT
RVJUKGlzSlNCYXNlZCgpKTsKLSAgICByZXR1cm4gbV9lbmdpbmUtPmNvbnRleHQoKTsKLX0KLQot
SlNWYWx1ZVJlZiBRU2NyaXB0VmFsdWVQcml2YXRlOjp2YWx1ZSgpIGNvbnN0CitRU2NyaXB0VmFs
dWVQcml2YXRlOjpvcGVyYXRvciBKU1ZhbHVlUmVmKCkgY29uc3QKIHsKICAgICBRX0FTU0VSVChp
c0pTQmFzZWQoKSk7CiAgICAgcmV0dXJuIG1fdmFsdWU7CiB9CiAKLUpTT2JqZWN0UmVmIFFTY3Jp
cHRWYWx1ZVByaXZhdGU6Om9iamVjdCgpIGNvbnN0CitRU2NyaXB0VmFsdWVQcml2YXRlOjpvcGVy
YXRvciBKU09iamVjdFJlZigpIGNvbnN0CiB7CiAgICAgUV9BU1NFUlQobV9zdGF0ZSA9PSBKU09i
amVjdCk7CiAgICAgcmV0dXJuIG1fb2JqZWN0OwpAQCAtNzc3LDkgKzc3NSw5IEBAIEpTT2JqZWN0
UmVmIFFTY3JpcHRWYWx1ZVByaXZhdGU6Om9iamVjdCgpIGNvbnN0CiB2b2lkIFFTY3JpcHRWYWx1
ZVByaXZhdGU6OnNldFZhbHVlKEpTVmFsdWVSZWYgdmFsdWUpCiB7CiAgICAgaWYgKG1fdmFsdWUp
Ci0gICAgICAgIEpTVmFsdWVVbnByb3RlY3QoY29udGV4dCgpLCBtX3ZhbHVlKTsKKyAgICAgICAg
SlNWYWx1ZVVucHJvdGVjdCgqbV9lbmdpbmUsIG1fdmFsdWUpOwogICAgIGlmICh2YWx1ZSkKLSAg
ICAgICAgSlNWYWx1ZVByb3RlY3QoY29udGV4dCgpLCB2YWx1ZSk7CisgICAgICAgIEpTVmFsdWVQ
cm90ZWN0KCptX2VuZ2luZSwgdmFsdWUpOwogICAgIG1fdmFsdWUgPSB2YWx1ZTsKIH0KIApAQCAt
NzkxLDExICs3ODksMTEgQEAgdm9pZCBRU2NyaXB0VmFsdWVQcml2YXRlOjpzZXRWYWx1ZShKU1Zh
bHVlUmVmIHZhbHVlKQogYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRlOjppbmhlcml0cyhjb25zdCBj
aGFyKiBuYW1lKQogewogICAgIFFfQVNTRVJUKGlzSlNCYXNlZCgpKTsKLSAgICBKU09iamVjdFJl
ZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QoY29udGV4dCgpKTsKKyAg
ICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QoKm1f
ZW5naW5lKTsKICAgICBKU1N0cmluZ1JlZiBlcnJvckF0dHJOYW1lID0gUVNjcmlwdENvbnZlcnRl
cjo6dG9TdHJpbmcobmFtZSk7Ci0gICAgSlNWYWx1ZVJlZiBlcnJvciA9IEpTT2JqZWN0R2V0UHJv
cGVydHkoY29udGV4dCgpLCBnbG9iYWxPYmplY3QsIGVycm9yQXR0ck5hbWUsIC8qIGV4Y2VwdGlv
biAqLyAwKTsKKyAgICBKU1ZhbHVlUmVmIGVycm9yID0gSlNPYmplY3RHZXRQcm9wZXJ0eSgqbV9l
bmdpbmUsIGdsb2JhbE9iamVjdCwgZXJyb3JBdHRyTmFtZSwgLyogZXhjZXB0aW9uICovIDApOwog
ICAgIEpTU3RyaW5nUmVsZWFzZShlcnJvckF0dHJOYW1lKTsKLSAgICByZXR1cm4gSlNWYWx1ZUlz
SW5zdGFuY2VPZkNvbnN0cnVjdG9yKGNvbnRleHQoKSwgdmFsdWUoKSwgSlNWYWx1ZVRvT2JqZWN0
KGNvbnRleHQoKSwgZXJyb3IsIC8qIGV4Y2VwdGlvbiAqLyAwKSwgLyogZXhjZXB0aW9uICovIDAp
OworICAgIHJldHVybiBKU1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoKm1fZW5naW5lLCAq
dGhpcywgSlNWYWx1ZVRvT2JqZWN0KCptX2VuZ2luZSwgZXJyb3IsIC8qIGV4Y2VwdGlvbiAqLyAw
KSwgLyogZXhjZXB0aW9uICovIDApOwogfQogCiAvKiEKQEAgLTgwNSwxMiArODAzLDEyIEBAIGJv
b2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6aW5oZXJpdHMoY29uc3QgY2hhciogbmFtZSkKIFFTY3Jp
cHRWYWx1ZVByaXZhdGU6OlN0YXRlIFFTY3JpcHRWYWx1ZVByaXZhdGU6OnJlZmluZWRKU1ZhbHVl
KCkKIHsKICAgICBRX0FTU0VSVChtX3N0YXRlID09IEpTVmFsdWUpOwotICAgIGlmICghSlNWYWx1
ZUlzT2JqZWN0KGNvbnRleHQoKSwgdmFsdWUoKSkpIHsKKyAgICBpZiAoIUpTVmFsdWVJc09iamVj
dCgqbV9lbmdpbmUsICp0aGlzKSkgewogICAgICAgICBtX3N0YXRlID0gSlNQcmltaXRpdmU7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgbV9zdGF0ZSA9IEpTT2JqZWN0OwogICAgICAgICAvLyBXZSBh
cmUgc3VyZSB0aGF0IHZhbHVlIGlzIGFuIEpTT2JqZWN0LCBzbyB3ZSBjYW4gY29uc3RfY2FzdCBz
YWZlbHkgd2l0aG91dAotICAgICAgICAvLyBjYWxsaW5nIEpTQyBDIEFQSSAoSlNWYWx1ZVRvT2Jq
ZWN0KGNvbnRleHQoKSwgdmFsdWUoKSwgLyogZXhjZXB0aW9ucyAqLyAwKSkuCisgICAgICAgIC8v
IGNhbGxpbmcgSlNDIEMgQVBJIChKU1ZhbHVlVG9PYmplY3QoKm1fZW5naW5lLCAqdGhpcywgLyog
ZXhjZXB0aW9ucyAqLyAwKSkuCiAgICAgICAgIG1fb2JqZWN0ID0gY29uc3RfY2FzdDxKU09iamVj
dFJlZj4obV92YWx1ZSk7CiAgICAgfQogICAgIHJldHVybiBtX3N0YXRlOwo=
</data>
<flag name="review"
          id="43402"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="43403"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>