<?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>143377</bug_id>
          
          <creation_ts>2015-04-03 09:31:35 -0700</creation_ts>
          <short_desc>Native JSFunction should be able to wrap std::function</short_desc>
          <delta_ts>2015-06-16 04:58:22 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1082585</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-03 09:31:35 -0700</bug_when>
    <thetext>By enabling std::function wrapped JSFunctions, we would allow lambda functions to be used as native JS functions.
This would be useful for instance in the implementation of ReadableStream operating on JS sources.
The close, error and enqueue JS functions need to retrieve in some manner the stream to operate on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082591</commentid>
    <comment_count>1</comment_count>
      <attachid>250081</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-03 09:34:38 -0700</bug_when>
    <thetext>Created attachment 250081
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102219</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-16 04:58:22 -0700</bug_when>
    <thetext>Fixed as part of bug 145792</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250081</attachid>
            <date>2015-04-03 09:34:38 -0700</date>
            <delta_ts>2015-04-03 09:34:38 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-143377-20150403183351.patch</filename>
            <type>text/plain</type>
            <size>12404</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OWYxM2YxNDcxOGQ4OGVmN2NiZmQ1MTE3ZmUyZTJkZDc5NGU4MmQyLi43ZGQyOTVhZmY1ZDhmMzlm
MTZiMTIyOTAxNGNmNGY3MTczMGMwYzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNS0wNC0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3Jm
LmNhbm9uLmZyPgorCisgICAgICAgIFRvb2x0aXAgZm9yIGphdmFzY3JpcHQgY29uc29sZSAiY2xl
YXIiIGJ1dHRvbiBpcyB3cm9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAwMDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OnJ1blN0
ZEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKwogMjAxNS0wNC0wMiAgTWFyayBMYW0gIDxtYXJrLmxh
bUBhcHBsZS5jb20+CiAKICAgICAgICAgRW5oYW5jZSBhYmlsaXR5IHRvIGR1bXAgSlNDIE9wdGlv
bnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZDQ0ZTNlMjNhODE5MGQ3NjJiODM3MzE5MTFlYjZjMzUyYTk4MWRl
MC4uMzUwZjY0ZDc3MmU0NTg2ZmRjZDhmNGVhZGZjMmE2MjE3YzkxZjA4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIzIEBACisyMDE1LTA0LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxl
dEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgVG9vbHRpcCBmb3IgamF2YXNjcmlwdCBjb25zb2xl
ICJjbGVhciIgYnV0dG9uIGlzIHdyb25nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDAwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RKU1JlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0
cmVhbUpTU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlYWRhYmxlU3RyZWFt
RW5xdWV1ZUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlYWRhYmxlU3RyZWFt
Q2xvc2VGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZWFkYWJsZVN0cmVhbUVy
cm9yRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6
Y3JlYXRlSlNGdW5jdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1KU1Nv
dXJjZTo6c3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRh
YmxlU3RyZWFtSlNTb3VyY2U6OnN0YXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJs
ZVN0cmVhbUpTU291cmNlLmg6CisKIDIwMTUtMDQtMDEgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIg
PGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0IDx5b3Vlbm4uZmFibGV0QGNy
Zi5jYW5vbi5mcj4KIAogICAgICAgICBbU3RyZWFtcyBBUEldIFNwbGl0IFJlYWRhYmxlU3RyZWFt
L1JlYWRlciBpbXBsZW1lbnRhdGlvbiBhY2NvcmRpbmcgc291cmNlIHR5cGUgKEpTIHZzIG5hdGl2
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXgg
N2MzYWMyYmY2OGUyMzYxNDBlM2RkMmZmMzRjNmQ2MTU1YjUyZDYwZC4uOWVmNDYzNGQ0YTdmZGVh
N2NjNjM3ZjUwM2Y2MjM4ZjI5MGJjZDgwZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTUyMSw0ICs1MjEsNDIgQEAgU3RyaW5nIGdldENhbGN1
bGF0ZWREaXNwbGF5TmFtZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIG9iamVjdCkK
ICAgICByZXR1cm4gIiI7CiB9CiAKK2NsYXNzIEpTU3RkRnVuY3Rpb246IHB1YmxpYyBKU0Z1bmN0
aW9uIHsKK3B1YmxpYzoKKyAgICBKU1N0ZEZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IG9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogSlNGdW5jdGlvbih2bSwg
b2JqZWN0LCBzdHJ1Y3R1cmUpIHsgfQorICAgIEVuY29kZWRKU1ZhbHVlIGNhbGwoRXhlY1N0YXRl
KiBleGVjKSB7IHJldHVybiBtX3N0ZEZ1bmN0aW9uKGV4ZWMpOyB9CisgICAgdm9pZCBzZXRGdW5j
dGlvbihOYXRpdmVTdGRGdW5jdGlvbiBzdGRGdW5jdGlvbikgeyBtX3N0ZEZ1bmN0aW9uID0gV1RG
Ojptb3ZlKHN0ZEZ1bmN0aW9uKTsgfQorcHJpdmF0ZToKKyAgICBOYXRpdmVTdGRGdW5jdGlvbiBt
X3N0ZEZ1bmN0aW9uIHsgbnVsbHB0ciB9OworfTsKKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJ1
blN0ZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1N0ZEZ1bmN0aW9uKiBqc0Z1
bmN0aW9uID0ganNDYXN0PEpTU3RkRnVuY3Rpb24qPihleGVjLT5jYWxsZWUoKSk7CisgICAgQVNT
RVJUKGpzRnVuY3Rpb24pOworICAgIHJldHVybiBqc0Z1bmN0aW9uLT5jYWxsKGV4ZWMpOworfQor
CitKU0Z1bmN0aW9uKiBKU0Z1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBpbnQgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG5hbWUsIE5hdGl2ZVN0ZEZ1
bmN0aW9uIG5hdGl2ZVN0ZEZ1bmN0aW9uLCBJbnRyaW5zaWMgaW50cmluc2ljLCBOYXRpdmVGdW5j
dGlvbiBuYXRpdmVDb25zdHJ1Y3RvcikKK3sKKyAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRh
YmxlOworI2lmICFFTkFCTEUoSklUKQorICAgIFVOVVNFRF9QQVJBTShpbnRyaW5zaWMpOworI2Vs
c2UKKyAgICBpZiAoaW50cmluc2ljICE9IE5vSW50cmluc2ljICYmIHZtLmNhblVzZUpJVCgpKSB7
CisgICAgICAgIEFTU0VSVChuYXRpdmVDb25zdHJ1Y3RvciA9PSBjYWxsSG9zdEZ1bmN0aW9uQXND
b25zdHJ1Y3Rvcik7CisgICAgICAgIGV4ZWN1dGFibGUgPSB2bS5nZXRIb3N0RnVuY3Rpb24ocnVu
U3RkRnVuY3Rpb24sIGludHJpbnNpYyk7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICAgICAgZXhl
Y3V0YWJsZSA9IHZtLmdldEhvc3RGdW5jdGlvbihydW5TdGRGdW5jdGlvbiwgbmF0aXZlQ29uc3Ry
dWN0b3IpOworCisgICAgSlNTdGRGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxKU1N0ZEZ1bmN0aW9uPih2bS5oZWFwKSkgSlNTdGRGdW5jdGlvbih2bSwgZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uU3RydWN0dXJlKCkpOworICAgIC8vIENh
bid0IGRvIHRoaXMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgZ2V0SG9zdEZ1bmN0aW9u
IG1pZ2h0IGRvIGEgR0MgYWxsb2NhdGlvbi4KKyAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24o
dm0sIGV4ZWN1dGFibGUsIGxlbmd0aCwgbmFtZSk7CisKKyAgICBmdW5jdGlvbi0+c2V0RnVuY3Rp
b24oV1RGOjptb3ZlKG5hdGl2ZVN0ZEZ1bmN0aW9uKSk7CisgICAgcmV0dXJuIGZ1bmN0aW9uOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAppbmRleCA5YmQzZmUyNDE1MDA2MTFjZDk5NzU2ZTcxZmY1OTAwYTRkZmRlMDBj
Li5jMWRjYTYxMjFiM2VhZGRkNWJkZmViZDkwZTEwMDYxMDNmZDM4OTc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC00NSw2ICs0NSw4IEBAIGNsYXNz
IFNwZWN1bGF0aXZlSklUOwogY2xhc3MgSklUQ29tcGlsZXI7CiB9CiAKK3R5cGVkZWYgc3RkOjpm
dW5jdGlvbjxFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMKEV4ZWNTdGF0ZSopPiBOYXRpdmVT
dGRGdW5jdGlvbjsKKwogSlNfRVhQT1JUX1BSSVZBVEUgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqKTsKIAogSlNfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nIGdldENhbGN1bGF0ZWREaXNwbGF5TmFtZShDYWxsRnJhbWUqLCBK
U09iamVjdCopOwpAQCAtNTksNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NhbGxl
ZSBCYXNlOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0
ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgaW50IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBuYW1lLCBO
YXRpdmVGdW5jdGlvbiwgSW50cmluc2ljID0gTm9JbnRyaW5zaWMsIE5hdGl2ZUZ1bmN0aW9uIG5h
dGl2ZUNvbnN0cnVjdG9yID0gY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IpOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoVk0mLCBKU0dsb2JhbE9i
amVjdCosIGludCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgbmFtZSwgTmF0aXZlU3RkRnVuY3Rpb24s
IEludHJpbnNpYyA9IE5vSW50cmluc2ljLCBOYXRpdmVGdW5jdGlvbiBuYXRpdmVDb25zdHJ1Y3Rv
ciA9IGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9yKTsKIAogICAgIHN0YXRpYyBKU0Z1bmN0
aW9uKiBjcmVhdGUoVk0mIHZtLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIEpTU2Nv
cGUqIHNjb3BlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggZDhiMDY4MTE2M2Y3MTRjMWEyYjYzZTY1
ZjE2OWVhOWRhMDhlNjVkNC4uNmFjZWY5ZTNmNmQzMDAxNTYyOWNkMTJmZWYzOThmMjU3MGEyMDAw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVh
bUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0
cmVhbUN1c3RvbS5jcHAKQEAgLTgxLDEzICs4MSwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW0oRXhlY1N0YXRlKiBleGVjKQogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBqc0NvbnN0cnVj
dG9yLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAKICAgICBSZWY8UmVhZGFibGVTdHJlYW1K
U1NvdXJjZT4gc291cmNlID0gUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6Y3JlYXRlKGV4ZWMpOwot
ICAgIFJlZlB0cjxSZWFkYWJsZVN0cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBSZWFkYWJsZUpTU3Ry
ZWFtOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJlZjxSZWFkYWJsZVN0cmVhbUpT
U291cmNlPihzb3VyY2UuZ2V0KCkpKTsKKyAgICBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gcmVh
ZGFibGVTdHJlYW0gPSBSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPihzb3VyY2UuZ2V0KCkpKTsKIAogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKTsKICAgICBKU1JlYWRhYmxlU3RyZWFtKiBq
c1JlYWRhYmxlU3RyZWFtID0gSlNSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKEpTUmVhZGFibGVTdHJl
YW06OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1JlYWRhYmxlU3RyZWFtOjpj
cmVhdGVQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCkpLCBqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QpLCByZWFkYWJsZVN0cmVhbS5yZWxlYXNlTm9uTnVsbCgpKTsKIAot
ICAgIHNvdXJjZS0+c3RhcnQoZXhlYywganNSZWFkYWJsZVN0cmVhbSk7CisgICAgc291cmNlLT5z
dGFydChleGVjLCByZWFkYWJsZVN0cmVhbS5nZXQoKSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzUmVhZGFibGVTdHJlYW0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcAppbmRleCA4NzhhMDI4ZDc1MDlj
ODQ2NTEzYTdlMThiYWY5ZjczNDRhZWI1Njk2Li5mNTZhOGNjZjk0YmNiYzZhMDBkMTA4ZTJjNGMz
YzJlZWNmNjg0ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFk
YWJsZVN0cmVhbUpTU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcApAQCAtNjUsMjEgKzY1LDYgQEAgSlNWYWx1ZSBnZXRJ
bnRlcm5hbFNsb3RGcm9tT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBvYmplY3RWYWx1
ZSwgUHJpdmF0ZU4KICAgICByZXR1cm4gcHJvcGVydHlTbG90LmdldFZhbHVlKGV4ZWMsIHByb3Bl
cnR5TmFtZSk7CiB9CiAKLS8vIFRoaXMgc2xvdCBuYW1lIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEpT
UmVhZGFibGVTdHJlYW0gaW4gY3JlYXRlZCBKUyBmdW5jdGlvbnMgKGVucXVldWUsIGNsb3NlLi4u
KS4KLS8vIFRoaXMgYWxsb3dzIHJldHJpZXZpbmcgdGhlIGNvcnJlc3BvbmRpbmcgSlNSZWFkYWJs
ZVN0cmVhbSB3aGVuIGV4ZWN1dGluZyB0aGUgSlMgZnVuY3Rpb24uCi1zdGF0aWMgSlNDOjpQcml2
YXRlTmFtZSYgcmVhZGFibGVTdHJlYW1TbG90TmFtZSgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEpTQzo6UHJpdmF0ZU5hbWU+IHJlYWRhYmxlU3RyZWFtU2xvdE5hbWUoInJlYWRhYmxl
U3RyZWFtIik7Ci0gICAgcmV0dXJuIHJlYWRhYmxlU3RyZWFtU2xvdE5hbWU7Ci19Ci0KLXN0YXRp
YyBSZWFkYWJsZUpTU3RyZWFtJiBnZXRSZWFkYWJsZUpTU3RyZWFtKEV4ZWNTdGF0ZSogZXhlYykK
LXsKLSAgICBKU1JlYWRhYmxlU3RyZWFtKiBqc1JlYWRhYmxlU3RyZWFtID0ganNEeW5hbWljQ2Fz
dDxKU1JlYWRhYmxlU3RyZWFtKj4oZ2V0SW50ZXJuYWxTbG90RnJvbU9iamVjdChleGVjLCBleGVj
LT5jYWxsZWUoKSwgcmVhZGFibGVTdHJlYW1TbG90TmFtZSgpKSk7Ci0gICAgQVNTRVJUKGpzUmVh
ZGFibGVTdHJlYW0pOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWFkYWJsZUpTU3RyZWFtJj4o
anNSZWFkYWJsZVN0cmVhbS0+aW1wbCgpKTsKLX0KLQogc3RhdGljIGlubGluZSBKU1ZhbHVlIGdl
dFByb3BlcnR5RnJvbU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIGNv
bnN0IGNoYXIqIGlkZW50aWZpZXIpCiB7CiAgICAgcmV0dXJuIG9iamVjdC0+Z2V0KGV4ZWMsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgaWRlbnRpZmllcikpOwpAQCAtMTA1LDU5ICs5MCw1
MCBAQCBSZWFkYWJsZVN0cmVhbUpTU291cmNlOjpSZWFkYWJsZVN0cmVhbUpTU291cmNlKEpTQzo6
RXhlY1N0YXRlKiBleGVjKQogICAgIH0KIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZW5xdWV1ZVJlYWRhYmxlU3RyZWFtRnVuY3Rpb24oRXhlY1N0YXRlKikKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgSlNGdW5jdGlvbiogY3JlYXRlUmVhZGFibGVTdHJl
YW1FbnF1ZXVlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQogewotICAgIHJldHVybiBKU0Z1bmN0
aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLCAx
LCBTdHJpbmcoKSwgZW5xdWV1ZVJlYWRhYmxlU3RyZWFtRnVuY3Rpb24pOwotfQotCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjbG9zZVJlYWRhYmxlU3RyZWFtRnVuY3Rpb24o
RXhlY1N0YXRlKiBleGVjKQotewotICAgIGdldFJlYWRhYmxlSlNTdHJlYW0oZXhlYykuY2hhbmdl
U3RhdGVUb0Nsb3NlZCgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgTmF0aXZlU3RkRnVuY3Rpb24ganNGdW5jdGlvbiA9IFtdKEV4ZWNTdGF0ZSopIG11
dGFibGUgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH07CisgICAgcmV0dXJuIEpTRnVuY3Rpb246
OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCksIDEsIFN0
cmluZygpLCBqc0Z1bmN0aW9uKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0Z1bmN0aW9uKiBjcmVh
dGVSZWFkYWJsZVN0cmVhbUNsb3NlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQorc3RhdGljIGlu
bGluZSBKU0Z1bmN0aW9uKiBjcmVhdGVSZWFkYWJsZVN0cmVhbUNsb3NlRnVuY3Rpb24oRXhlY1N0
YXRlKiBleGVjLCBSZWFkYWJsZUpTU3RyZWFtKiBqc1N0cmVhbSkKIHsKLSAgICByZXR1cm4gSlNG
dW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3Qo
KSwgMCwgU3RyaW5nKCksIGNsb3NlUmVhZGFibGVTdHJlYW1GdW5jdGlvbik7Ci19Ci0KLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVycm9yUmVhZGFibGVTdHJlYW1GdW5jdGlv
bihFeGVjU3RhdGUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4g
cHJvdGVjdCA9IGpzU3RyZWFtOworICAgIE5hdGl2ZVN0ZEZ1bmN0aW9uIGpzRnVuY3Rpb24gPSBb
cHJvdGVjdF0oRXhlY1N0YXRlKikgbXV0YWJsZSB7CisgICAgICAgIHByb3RlY3QtPmNoYW5nZVN0
YXRlVG9DbG9zZWQoKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICB9OworICAgIHJldHVybiBKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwg
ZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLCAwLCBTdHJpbmcoKSwganNGdW5jdGlvbik7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgSlNGdW5jdGlvbiogY3JlYXRlUmVhZGFibGVTdHJlYW1FcnJv
ckZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICByZXR1cm4gSlNGdW5jdGlvbjo6Y3Jl
YXRlKGV4ZWMtPnZtKCksIGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSwgMSwgU3RyaW5n
KCksIGVycm9yUmVhZGFibGVTdHJlYW1GdW5jdGlvbik7CisgICAgTmF0aXZlU3RkRnVuY3Rpb24g
anNGdW5jdGlvbiA9IFtdKEV4ZWNTdGF0ZSopIG11dGFibGUgeworICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgIH07CisgICAgcmV0dXJuIEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGVjLT5j
YWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCksIDEsIFN0cmluZygpLCBqc0Z1bmN0aW9uKTsKIH0KIAog
dm9pZCBSZWFkYWJsZVN0cmVhbUpTU291cmNlOjpjcmVhdGVKU0Z1bmN0aW9ucyhFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgbV9lbnF1ZXVlRnVuY3Rpb24uc2V0KGV4ZWMtPnZtKCksIGNyZWF0ZVJl
YWRhYmxlU3RyZWFtRW5xdWV1ZUZ1bmN0aW9uKGV4ZWMpKTsKLSAgICBtX2Nsb3NlRnVuY3Rpb24u
c2V0KGV4ZWMtPnZtKCksIGNyZWF0ZVJlYWRhYmxlU3RyZWFtQ2xvc2VGdW5jdGlvbihleGVjKSk7
CisgICAgbV9jbG9zZUZ1bmN0aW9uLnNldChleGVjLT52bSgpLCBjcmVhdGVSZWFkYWJsZVN0cmVh
bUNsb3NlRnVuY3Rpb24oZXhlYywgbV9yZWFkYWJsZVN0cmVhbSkpOwogICAgIG1fZXJyb3JGdW5j
dGlvbi5zZXQoZXhlYy0+dm0oKSwgY3JlYXRlUmVhZGFibGVTdHJlYW1FcnJvckZ1bmN0aW9uKGV4
ZWMpKTsKLQotICAgIHNldEludGVybmFsU2xvdFRvT2JqZWN0KGV4ZWMsIG1fZW5xdWV1ZUZ1bmN0
aW9uLmdldCgpLCByZWFkYWJsZVN0cmVhbVNsb3ROYW1lKCksIG1fcmVhZGFibGVTdHJlYW0pOwot
ICAgIHNldEludGVybmFsU2xvdFRvT2JqZWN0KGV4ZWMsIG1fY2xvc2VGdW5jdGlvbi5nZXQoKSwg
cmVhZGFibGVTdHJlYW1TbG90TmFtZSgpLCBtX3JlYWRhYmxlU3RyZWFtKTsKLSAgICBzZXRJbnRl
cm5hbFNsb3RUb09iamVjdChleGVjLCBtX2Vycm9yRnVuY3Rpb24uZ2V0KCksIHJlYWRhYmxlU3Ry
ZWFtU2xvdE5hbWUoKSwgbV9yZWFkYWJsZVN0cmVhbSk7CiB9CiAKIHZvaWQgUmVhZGFibGVTdHJl
YW1KU1NvdXJjZTo6c3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKCkKIHsKLSAgICBSZWZQdHI8UmVh
ZGFibGVTdHJlYW0+IHN0cmVhbSA9ICZtX3JlYWRhYmxlU3RyZWFtLT5pbXBsKCk7CisgICAgUmVm
UHRyPFJlYWRhYmxlSlNTdHJlYW0+IHN0cmVhbSA9IG1fcmVhZGFibGVTdHJlYW07CiAgICAgc3Ry
ZWFtLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFtzdHJlYW1dKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKSB7CiAgICAgICAgIHN0cmVhbS0+c3RhcnQoKTsKICAgICB9KTsKIH0K
IAotdm9pZCBSZWFkYWJsZVN0cmVhbUpTU291cmNlOjpzdGFydChKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgSlNSZWFkYWJsZVN0cmVhbSogcmVhZGFibGVTdHJlYW0pCit2b2lkIFJlYWRhYmxlU3RyZWFt
SlNTb3VyY2U6OnN0YXJ0KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBSZWFkYWJsZUpTU3RyZWFtKiBy
ZWFkYWJsZVN0cmVhbSkKIHsKICAgICBtX3JlYWRhYmxlU3RyZWFtID0gcmVhZGFibGVTdHJlYW07
CiAgICAgaWYgKCFtX3NvdXJjZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oCmluZGV4IGIxMGYyMDdkNmYyNmZkNjhkYzc5YjU5
NDRiN2QzYTQyYzQ5MTY4OGMuLmUzYjUzOGRiOTFlZDJkZDdkOTVjZTE3MmMwMTdjOGEyOTY3MDVj
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFt
SlNTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVh
bUpTU291cmNlLmgKQEAgLTQ0LDIxICs0NCwyMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIEpTUmVhZGFibGVTdHJlYW07CitjbGFzcyBSZWFkYWJsZUpTU3RyZWFtOwogCiBjbGFz
cyBSZWFkYWJsZVN0cmVhbUpTU291cmNlOiBwdWJsaWMgUmVhZGFibGVTdHJlYW1Tb3VyY2Ugewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJjZT4gY3JlYXRlKEpT
Qzo6RXhlY1N0YXRlKik7CiAgICAgflJlYWRhYmxlU3RyZWFtSlNTb3VyY2UoKSB7IH0KIAotICAg
IHZvaWQgc3RhcnQoSlNDOjpFeGVjU3RhdGUqLCBKU1JlYWRhYmxlU3RyZWFtKik7CisgICAgdm9p
ZCBzdGFydChKU0M6OkV4ZWNTdGF0ZSosIFJlYWRhYmxlSlNTdHJlYW0qKTsKIAogcHJpdmF0ZToK
ICAgICBSZWFkYWJsZVN0cmVhbUpTU291cmNlKEpTQzo6RXhlY1N0YXRlKik7CiAgICAgdm9pZCBz
dGFydFJlYWRhYmxlU3RyZWFtQXN5bmMoKTsKICAgICB2b2lkIGNyZWF0ZUpTRnVuY3Rpb25zKEpT
Qzo6RXhlY1N0YXRlKik7CiAKLSAgICBKU1JlYWRhYmxlU3RyZWFtKiBtX3JlYWRhYmxlU3RyZWFt
IHsgbnVsbHB0ciB9OworICAgIFJlYWRhYmxlSlNTdHJlYW0qIG1fcmVhZGFibGVTdHJlYW0geyBu
dWxscHRyIH07CiAKICAgICAvLyBPYmplY3QgcGFzc2VkIHRvIGNvbnN0cnVjdG9yLgogICAgIEpT
Qzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+IG1fc291cmNlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>