<?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>188698</bug_id>
          
          <creation_ts>2018-08-17 05:23:49 -0700</creation_ts>
          <short_desc>[GLIB] Add API to throw exceptions using printf formatted strings</short_desc>
          <delta_ts>2018-08-20 16:53:23 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>188695</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1451083</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-17 05:23:49 -0700</bug_when>
    <thetext>jsc_context_throw_printf() and jsc_context_throw_with_name_printf()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451084</commentid>
    <comment_count>1</comment_count>
      <attachid>347357</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-17 05:27:07 -0700</bug_when>
    <thetext>Created attachment 347357
Patch

This won&apos;t apply because it depends on patch attached to bug #188695</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451086</commentid>
    <comment_count>2</comment_count>
      <attachid>347359</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-17 05:35:11 -0700</bug_when>
    <thetext>Created attachment 347359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451102</commentid>
    <comment_count>3</comment_count>
      <attachid>347359</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-08-17 06:51:47 -0700</bug_when>
    <thetext>Comment on attachment 347359
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451542</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-20 00:00:46 -0700</bug_when>
    <thetext>Committed r235024: &lt;https://trac.webkit.org/changeset/235024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451833</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-20 16:53:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/43534498&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347357</attachid>
            <date>2018-08-17 05:27:07 -0700</date>
            <delta_ts>2018-08-17 05:35:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>jsc-throw-printf.diff</filename>
            <type>text/plain</type>
            <size>16869</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcAppbmRleCBm
OWRlZjY2YTU2MC4uZTIxYzU2NTkyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L2dsaWIvSlNDQ29udGV4dC5jcHAKQEAgLTY0Myw2ICs2NDMsMjUgQEAgdm9pZCBqc2NfY29udGV4
dF90aHJvdyhKU0NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2UpCiAg
ICAgY29udGV4dC0+cHJpdi0+ZXhjZXB0aW9uID0gYWRvcHRHUmVmKGpzY19leGNlcHRpb25fbmV3
KGNvbnRleHQsIGVycm9yTWVzc2FnZSkpOwogfQogCisvKioKKyAqIGpzY19jb250ZXh0X3Rocm93
X3ByaW50ZjoKKyAqIEBjb250ZXh0OiBhICNKU0NDb250ZXh0CisgKiBAZm9ybWF0OiB0aGUgc3Ry
aW5nIGZvcm1hdAorICogQC4uLjogdGhlIHBhcmFtZXRlcnMgdG8gaW5zZXJ0IGludG8gdGhlIGZv
cm1hdCBzdHJpbmcKKyAqCisgKiBUaHJvdyBhbiBleGNlcHRpb24gdG8gQGNvbnRleHQgdXNpbmcg
dGhlIGdpdmVuIGZvcm1hdHRlZCBzdHJpbmcgYXMgZXJyb3IgbWVzc2FnZS4KKyAqIFRoZSBjcmVh
dGVkICNKU0NFeGNlcHRpb24gY2FuIGJlIHJldHJpZXZlZCB3aXRoIGpzY19jb250ZXh0X2dldF9l
eGNlcHRpb24oKS4KKyAqLwordm9pZCBqc2NfY29udGV4dF90aHJvd19wcmludGYoSlNDQ29udGV4
dCogY29udGV4dCwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChKU0NfSVNfQ09OVEVYVChjb250ZXh0KSk7CisKKyAgICB2YV9saXN0IGFyZ3M7CisgICAg
dmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKyAgICBjb250ZXh0LT5wcml2LT5leGNlcHRpb24gPSBh
ZG9wdEdSZWYoanNjX2V4Y2VwdGlvbl9uZXdfdnByaW50Zihjb250ZXh0LCBmb3JtYXQsIGFyZ3Mp
KTsKKyAgICB2YV9lbmQoYXJncyk7Cit9CisKIC8qKgogICoganNjX2NvbnRleHRfdGhyb3dfd2l0
aF9uYW1lOgogICogQGNvbnRleHQ6IGEgI0pTQ0NvbnRleHQKQEAgLTY2MCw2ICs2NzksMjYgQEAg
dm9pZCBqc2NfY29udGV4dF90aHJvd193aXRoX25hbWUoSlNDQ29udGV4dCogY29udGV4dCwgY29u
c3QgY2hhciogZXJyb3JOYW1lLCBjb24KICAgICBjb250ZXh0LT5wcml2LT5leGNlcHRpb24gPSBh
ZG9wdEdSZWYoanNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lKGNvbnRleHQsIGVycm9yTmFtZSwg
ZXJyb3JNZXNzYWdlKSk7CiB9CiAKKy8qKgorICoganNjX2NvbnRleHRfdGhyb3dfd2l0aF9uYW1l
X3ByaW50ZjoKKyAqIEBjb250ZXh0OiBhICNKU0NDb250ZXh0CisgKiBAZXJyb3JfbmFtZTogdGhl
IGVycm9yIG5hbWUKKyAqIEBmb3JtYXQ6IHRoZSBzdHJpbmcgZm9ybWF0CisgKiBALi4uOiB0aGUg
cGFyYW1ldGVycyB0byBpbnNlcnQgaW50byB0aGUgZm9ybWF0IHN0cmluZworICoKKyAqIFRocm93
IGFuIGV4Y2VwdGlvbiB0byBAY29udGV4dCB1c2luZyB0aGUgZ2l2ZW4gZXJyb3IgbmFtZSBhbmQg
dGhlIGZvcm1hdHRlZCBzdHJpbmcgYXMgZXJyb3IgbWVzc2FnZS4KKyAqIFRoZSBjcmVhdGVkICNK
U0NFeGNlcHRpb24gY2FuIGJlIHJldHJpZXZlZCB3aXRoIGpzY19jb250ZXh0X2dldF9leGNlcHRp
b24oKS4KKyAqLwordm9pZCBqc2NfY29udGV4dF90aHJvd193aXRoX25hbWVfcHJpbnRmKEpTQ0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGVycm9yTmFtZSwgY29uc3QgY2hhciogZm9ybWF0
LCAuLi4pCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChKU0NfSVNfQ09OVEVYVChjb250ZXh0KSk7
CisKKyAgICB2YV9saXN0IGFyZ3M7CisgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKyAgICBj
b250ZXh0LT5wcml2LT5leGNlcHRpb24gPSBhZG9wdEdSZWYoanNjX2V4Y2VwdGlvbl9uZXdfd2l0
aF9uYW1lX3ZwcmludGYoY29udGV4dCwgZXJyb3JOYW1lLCBmb3JtYXQsIGFyZ3MpKTsKKyAgICB2
YV9lbmQoYXJncyk7Cit9CisKIC8qKgogICoganNjX2NvbnRleHRfdGhyb3dfZXhjZXB0aW9uOgog
ICogQGNvbnRleHQ6IGEgI0pTQ0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDQ29udGV4dC5oCmluZGV4IDg5OWFjMjZhNDc3Li5lNDY0OTRlMzg0OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5oCkBAIC05NywxMSArOTcsMjIg
QEAgSlNDX0FQSSB2b2lkCiBqc2NfY29udGV4dF90aHJvdyAgICAgICAgICAgICAgICAgICAgKEpT
Q0NvbnRleHQgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICplcnJvcl9tZXNzYWdlKTsKIAorSlNDX0FQSSB2
b2lkCitqc2NfY29udGV4dF90aHJvd19wcmludGYgICAgICAgICAgICAgKEpTQ0NvbnRleHQgICAg
ICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciAgICAgICAgICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC4uLikgR19HTlVDX1BSSU5URiAoMiwgMyk7CisKIEpTQ19BUEkgdm9pZAoganNjX2Nv
bnRleHRfdGhyb3dfd2l0aF9uYW1lICAgICAgICAgIChKU0NDb250ZXh0ICAgICAgICAgKmNvbnRl
eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAg
ICAgICAqZXJyb3JfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciAgICAgICAgICplcnJvcl9tZXNzYWdlKTsKIAorSlNDX0FQSSB2b2lkCitqc2Nf
Y29udGV4dF90aHJvd193aXRoX25hbWVfcHJpbnRmICAgKEpTQ0NvbnRleHQgICAgICAgICAqY29u
dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAg
ICAgICAgICplcnJvcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICAgICAgICAgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLi4uKSBHX0dOVUNfUFJJTlRGICgzLCA0KTsKKwogSlNDX0FQSSB2b2lkCiBq
c2NfY29udGV4dF90aHJvd19leGNlcHRpb24gICAgICAgICAgKEpTQ0NvbnRleHQgICAgICAgICAq
Y29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNDRXhjZXB0
aW9uICAgICAgICpleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9nbGliL0pTQ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDRXhjZXB0aW9uLmNwcAppbmRleCAwOTIyMjc5YzA5My4uNjQzNjdlZTRlYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTUmV0YWlu
UHRyLmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5lcy5oIgorI2luY2x1ZGUgPGdsaWIvZ3ByaW50
Zi5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xp
Yi9XVEZHVHlwZS5oPgogCkBAIC0xMzIsNiArMTMzLDQ4IEBAIEpTQ0V4Y2VwdGlvbioganNjX2V4
Y2VwdGlvbl9uZXcoSlNDQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hhciogbWVzc2FnZSkKICAg
ICByZXR1cm4ganNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lKGNvbnRleHQsIG51bGxwdHIsIG1l
c3NhZ2UpOwogfQogCisvKioKKyAqIGpzY19leGNlcHRpb25fbmV3X3ByaW50ZjoKKyAqIEBjb250
ZXh0OiBhICNKU0NDb250ZXh0CisgKiBAZm9ybWF0OiB0aGUgc3RyaW5nIGZvcm1hdAorICogQC4u
LjogdGhlIHBhcmFtZXRlcnMgdG8gaW5zZXJ0IGludG8gdGhlIGZvcm1hdCBzdHJpbmcKKyAqCisg
KiBDcmVhdGUgYSBuZXcgI0pTQ0V4Y2VwdGlvbiBpbiBAY29udGV4dCB1c2luZyBhIGZvcm1hdHRl
ZCBzdHJpbmcKKyAqIGZvciB0aGUgbWVzc2FnZS4KKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IGEgbmV3ICNKU0NFeGNlcHRpb24uCisgKi8KK0pTQ0V4Y2VwdGlvbioganNjX2V4Y2Vw
dGlvbl9uZXdfcHJpbnRmKEpTQ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGZvcm1hdCwg
Li4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKyAgICB2YV9zdGFydChhcmdzLCBmb3JtYXQpOwor
ICAgIGF1dG8qIGV4Y2VwdGlvbiA9IGpzY19leGNlcHRpb25fbmV3X3ZwcmludGYoY29udGV4dCwg
Zm9ybWF0LCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7CisKKyAgICByZXR1cm4gZXhjZXB0aW9u
OworfQorCisvKioKKyAqIGpzY19leGNlcHRpb25fbmV3X3ZwcmludGY6CisgKiBAY29udGV4dDog
YSAjSlNDQ29udGV4dAorICogQGZvcm1hdDogdGhlIHN0cmluZyBmb3JtYXQKKyAqIEBhcmdzOiB0
aGUgcGFyYW1ldGVycyB0byBpbnNlcnQgaW50byB0aGUgZm9ybWF0IHN0cmluZworICoKKyAqIENy
ZWF0ZSBhIG5ldyAjSlNDRXhjZXB0aW9uIGluIEBjb250ZXh0IHVzaW5nIGEgZm9ybWF0dGVkIHN0
cmluZworICogZm9yIHRoZSBtZXNzYWdlLiBUaGlzIGlzIHNpbWlsYXIgdG8ganNjX2V4Y2VwdGlv
bl9uZXdfcHJpbnRmKCkKKyAqIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgdG8gdGhlIGZvcm1h
dCBzdHJpbmcgYXJlIHBhc3NlZCBhcyBhIHZhX2xpc3QuCisgKgorICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBhIG5ldyAjSlNDRXhjZXB0aW9uLgorICovCitKU0NFeGNlcHRpb24qIGpzY19l
eGNlcHRpb25fbmV3X3ZwcmludGYoSlNDQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hhciogZm9y
bWF0LCB2YV9saXN0IGFyZ3MpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX0NP
TlRFWFQoY29udGV4dCksIG51bGxwdHIpOworCisgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBidWZm
ZXI7CisgICAgZ192YXNwcmludGYoJmJ1ZmZlci5vdXRQdHIoKSwgZm9ybWF0LCBhcmdzKTsKKyAg
ICByZXR1cm4ganNjX2V4Y2VwdGlvbl9uZXcoY29udGV4dCwgYnVmZmVyLmdldCgpKTsKK30KKwog
LyoqCiAgKiBqc2NfZXhjZXB0aW9uX25ld193aXRoX25hbWU6CiAgKiBAY29udGV4dDogYSAjSlND
Q29udGV4dApAQCAtMTYzLDYgKzIwNiw1MCBAQCBKU0NFeGNlcHRpb24qIGpzY19leGNlcHRpb25f
bmV3X3dpdGhfbmFtZShKU0NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBuYW1lLAogICAg
IHJldHVybiBleGNlcHRpb24ubGVha1JlZigpOwogfQogCisvKioKKyAqIGpzY19leGNlcHRpb25f
bmV3X3dpdGhfbmFtZV9wcmludGY6CisgKiBAY29udGV4dDogYSAjSlNDQ29udGV4dAorICogQG5h
bWU6IHRoZSBlcnJvciBuYW1lCisgKiBAZm9ybWF0OiB0aGUgc3RyaW5nIGZvcm1hdAorICogQC4u
LjogdGhlIHBhcmFtZXRlcnMgdG8gaW5zZXJ0IGludG8gdGhlIGZvcm1hdCBzdHJpbmcKKyAqCisg
KiBDcmVhdGUgYSBuZXcgI0pTQ0V4Y2VwdGlvbiBpbiBAY29udGV4dCB3aXRoIEBuYW1lIGFuZCB1
c2luZyBhIGZvcm1hdHRlZCBzdHJpbmcKKyAqIGZvciB0aGUgbWVzc2FnZS4KKyAqCisgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IGEgbmV3ICNKU0NFeGNlcHRpb24uCisgKi8KK0pTQ0V4Y2Vw
dGlvbioganNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lX3ByaW50ZihKU0NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKK3sKKyAgICB2
YV9saXN0IGFyZ3M7CisgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKyAgICBhdXRvKiBleGNl
cHRpb24gPSBqc2NfZXhjZXB0aW9uX25ld193aXRoX25hbWVfdnByaW50Zihjb250ZXh0LCBuYW1l
LCBmb3JtYXQsIGFyZ3MpOworICAgIHZhX2VuZChhcmdzKTsKKworICAgIHJldHVybiBleGNlcHRp
b247Cit9CisKKy8qKgorICoganNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lX3ZwcmludGY6Cisg
KiBAY29udGV4dDogYSAjSlNDQ29udGV4dAorICogQG5hbWU6IHRoZSBlcnJvciBuYW1lCisgKiBA
Zm9ybWF0OiB0aGUgc3RyaW5nIGZvcm1hdAorICogQGFyZ3M6IHRoZSBwYXJhbWV0ZXJzIHRvIGlu
c2VydCBpbnRvIHRoZSBmb3JtYXQgc3RyaW5nCisgKgorICogQ3JlYXRlIGEgbmV3ICNKU0NFeGNl
cHRpb24gaW4gQGNvbnRleHQgd2l0aCBAbmFtZSBhbmQgdXNpbmcgYSBmb3JtYXR0ZWQgc3RyaW5n
CisgKiBmb3IgdGhlIG1lc3NhZ2UuIFRoaXMgaXMgc2ltaWxhciB0byBqc2NfZXhjZXB0aW9uX25l
d193aXRoX25hbWVfcHJpbnRmKCkKKyAqIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgdG8gdGhl
IGZvcm1hdCBzdHJpbmcgYXJlIHBhc3NlZCBhcyBhIHZhX2xpc3QuCisgKgorICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBhIG5ldyAjSlNDRXhjZXB0aW9uLgorICovCitKU0NFeGNlcHRpb24q
IGpzY19leGNlcHRpb25fbmV3X3dpdGhfbmFtZV92cHJpbnRmKEpTQ0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEpTQ19JU19DT05URVhUKGNvbnRleHQpLCBudWxscHRy
KTsKKworICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gYnVmZmVyOworICAgIGdfdmFzcHJpbnRmKCZi
dWZmZXIub3V0UHRyKCksIGZvcm1hdCwgYXJncyk7CisgICAgcmV0dXJuIGpzY19leGNlcHRpb25f
bmV3X3dpdGhfbmFtZShjb250ZXh0LCBuYW1lLCBidWZmZXIuZ2V0KCkpOworfQorCiAvKioKICAq
IGpzY19leGNlcHRpb25fZ2V0X25hbWU6CiAgKiBAZXhjZXB0aW9uOiBhICNKU0NFeGNlcHRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uaAppbmRleCA0
YzA1N2VlNzNlNy4uMjZjZjBlMDdhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L2dsaWIvSlNDRXhjZXB0aW9uLmgKQEAgLTY1LDExICs2NSwzMyBAQCBKU0NfQVBJIEpTQ0V4Y2Vw
dGlvbiAqCiBqc2NfZXhjZXB0aW9uX25ldyAgICAgICAgICAgICAgICAgICAoSlNDQ29udGV4dCAg
ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgICAqbWVzc2FnZSk7CiAKK0pTQ19BUEkgSlNDRXhjZXB0aW9uICoKK2pzY19leGNlcHRpb25f
bmV3X3ByaW50ZiAgICAgICAgICAgIChKU0NDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICpmb3JtYXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSBHX0dOVUNfUFJJTlRGICgyLCAzKTsK
KworSlNDX0FQSSBKU0NFeGNlcHRpb24gKgoranNjX2V4Y2VwdGlvbl9uZXdfdnByaW50ZiAgICAg
ICAgICAgKEpTQ0NvbnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YV9saXN0ICAgICAgIGFyZ3MpIEdfR05VQ19QUklOVEYoMiwgMCk7CisK
IEpTQ19BUEkgSlNDRXhjZXB0aW9uICoKIGpzY19leGNlcHRpb25fbmV3X3dpdGhfbmFtZSAgICAg
ICAgIChKU0NDb250ZXh0ICAgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAgICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgICAqbWVzc2FnZSk7CiAKK0pTQ19BUEkgSlNDRXhjZXB0aW9u
ICoKK2pzY19leGNlcHRpb25fbmV3X3dpdGhfbmFtZV9wcmludGYgIChKU0NDb250ZXh0ICAgKmNv
bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAg
ICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy
ICAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikgR19H
TlVDX1BSSU5URiAoMywgNCk7CisKK0pTQ19BUEkgSlNDRXhjZXB0aW9uICoKK2pzY19leGNlcHRp
b25fbmV3X3dpdGhfbmFtZV92cHJpbnRmIChKU0NDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICpuYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAqZm9ybWF0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgICAgICAgYXJncykgR19H
TlVDX1BSSU5URiAoMywgMCk7CisKIEpTQ19BUEkgY29uc3QgY2hhciAqCiBqc2NfZXhjZXB0aW9u
X2dldF9uYW1lICAgICAgICAgICAgICAoSlNDRXhjZXB0aW9uICpleGNlcHRpb24pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvZG9jcy9qc2MtZ2xpYi00LjAt
c2VjdGlvbnMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL2RvY3MvanNjLWds
aWItNC4wLXNlY3Rpb25zLnR4dAppbmRleCBmOGM1YThhYWVhNC4uZGFkNTI1YWU3NWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9kb2NzL2pzYy1nbGliLTQuMC1z
ZWN0aW9ucy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL2RvY3MvanNj
LWdsaWItNC4wLXNlY3Rpb25zLnR4dApAQCAtMzMsNyArMzMsOSBAQCBqc2NfY29udGV4dF9uZXdf
d2l0aF92aXJ0dWFsX21hY2hpbmUKIGpzY19jb250ZXh0X2dldF92aXJ0dWFsX21hY2hpbmUKIGpz
Y19jb250ZXh0X2dldF9leGNlcHRpb24KIGpzY19jb250ZXh0X3Rocm93Citqc2NfY29udGV4dF90
aHJvd19wcmludGYKIGpzY19jb250ZXh0X3Rocm93X3dpdGhfbmFtZQoranNjX2NvbnRleHRfdGhy
b3dfd2l0aF9uYW1lX3ByaW50ZgoganNjX2NvbnRleHRfdGhyb3dfZXhjZXB0aW9uCiBqc2NfY29u
dGV4dF9jbGVhcl9leGNlcHRpb24KIGpzY19jb250ZXh0X3B1c2hfZXhjZXB0aW9uX2hhbmRsZXIK
QEAgLTE1Miw3ICsxNTQsMTEgQEAganNjX3dlYWtfdmFsdWVfZ2V0X3R5cGUKIDxUSVRMRT5KU0NF
eGNlcHRpb248L1RJVExFPgogSlNDRXhjZXB0aW9uCiBqc2NfZXhjZXB0aW9uX25ldworanNjX2V4
Y2VwdGlvbl9uZXdfcHJpbnRmCitqc2NfZXhjZXB0aW9uX25ld192cHJpbnRmCiBqc2NfZXhjZXB0
aW9uX25ld193aXRoX25hbWUKK2pzY19leGNlcHRpb25fbmV3X3dpdGhfbmFtZV9wcmludGYKK2pz
Y19leGNlcHRpb25fbmV3X3dpdGhfbmFtZV92cHJpbnRmCiBqc2NfZXhjZXB0aW9uX2dldF9uYW1l
CiBqc2NfZXhjZXB0aW9uX2dldF9tZXNzYWdlCiBqc2NfZXhjZXB0aW9uX2dldF9saW5lX251bWJl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzRmYjQ3MjMyZTIuLjU0MDI0NTllZWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0wOC0xNyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJd
IEFkZCBBUEkgdG8gdGhyb3cgZXhjZXB0aW9ucyB1c2luZyBwcmludGYgZm9ybWF0dGVkIHN0cmlu
Z3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODY5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBq
c2NfY29udGV4dF90aHJvd19wcmludGYoKSBhbmQganNjX2NvbnRleHRfdGhyb3dfd2l0aF9uYW1l
X3ByaW50ZigpLiBBbHNvIGFkZCBuZXcgcHVibGljIGNvbnN0cnVjdG9ycyBvZgorICAgICAgICBK
U0NFeGNlcHRpb24gdXNpbmcgcHJpbnRmIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgKiBB
UEkvZ2xpYi9KU0NDb250ZXh0LmNwcDoKKyAgICAgICAgKGpzY19jb250ZXh0X3Rocm93X3ByaW50
Zik6CisgICAgICAgIChqc2NfY29udGV4dF90aHJvd193aXRoX25hbWVfcHJpbnRmKToKKyAgICAg
ICAgKiBBUEkvZ2xpYi9KU0NDb250ZXh0Lmg6CisgICAgICAgICogQVBJL2dsaWIvSlNDRXhjZXB0
aW9uLmNwcDoKKyAgICAgICAgKGpzY19leGNlcHRpb25fbmV3X3ByaW50Zik6CisgICAgICAgIChq
c2NfZXhjZXB0aW9uX25ld192cHJpbnRmKToKKyAgICAgICAgKGpzY19leGNlcHRpb25fbmV3X3dp
dGhfbmFtZV9wcmludGYpOgorICAgICAgICAoanNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lX3Zw
cmludGYpOgorICAgICAgICAqIEFQSS9nbGliL0pTQ0V4Y2VwdGlvbi5oOgorICAgICAgICAqIEFQ
SS9nbGliL2RvY3MvanNjLWdsaWItNC4wLXNlY3Rpb25zLnR4dDoKKwogMjAxOC0wOC0xNyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJd
IENvbXBsZXRlIHRoZSBKU0NFeGNlcHRpb24gQVBJCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWMwMmQyMjczMTIuLjk0MTY1YzZiODQ2IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTgtMDgtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHTElCXSBBZGQgQVBJIHRvIHRocm93IGV4Y2VwdGlvbnMgdXNpbmcg
cHJpbnRmIGZvcm1hdHRlZCBzdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODg2OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgY2FzZXMgdG8gdGVzdCB0aGUgbmV3IEFQSS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvZ2xpYi9UZXN0SlNDLmNwcDoK
KyAgICAgICAgKGNyZWF0ZUZvcm1hdHRlZEVycm9yKToKKyAgICAgICAgKGNyZWF0ZUN1c3RvbUZv
cm1hdHRlZEVycm9yKToKKyAgICAgICAgKHRlc3RKU0NFeGNlcHRpb25zKToKKwogMjAxOC0wOC0x
NyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dMSUJdIENvbXBsZXRlIHRoZSBKU0NFeGNlcHRpb24gQVBJCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL2dsaWIvVGVzdEpTQy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL2dsaWIvVGVzdEpTQy5jcHAKaW5k
ZXggODI1Y2IzNzllZmMuLmM2MzU2Y2I2NTI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL2dsaWIvVGVzdEpTQy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL1Rlc3RKU0MuY3BwCkBAIC0yNDk1
LDYgKzI0OTUsMTYgQEAgc3RhdGljIHZvaWQgY3JlYXRlQ3VzdG9tRXJyb3IoKQogICAgIGpzY19j
b250ZXh0X3Rocm93X3dpdGhfbmFtZShqc2NfY29udGV4dF9nZXRfY3VycmVudCgpLCAiQ3VzdG9t
QVBJRXJyb3IiLCAiQVBJIGN1c3RvbSBleGNlcHRpb24iKTsKIH0KIAorc3RhdGljIHZvaWQgY3Jl
YXRlRm9ybWF0dGVkRXJyb3IoY29uc3QgY2hhciogZGV0YWlscykKK3sKKyAgICBqc2NfY29udGV4
dF90aHJvd19wcmludGYoanNjX2NvbnRleHRfZ2V0X2N1cnJlbnQoKSwgIkFQSSBleGNlcHRpb246
ICVzIiwgZGV0YWlscyk7Cit9CisKK3N0YXRpYyB2b2lkIGNyZWF0ZUN1c3RvbUZvcm1hdHRlZEVy
cm9yKGNvbnN0IGNoYXIqIGRldGFpbHMpCit7CisgICAganNjX2NvbnRleHRfdGhyb3dfd2l0aF9u
YW1lX3ByaW50Zihqc2NfY29udGV4dF9nZXRfY3VycmVudCgpLCAiQ3VzdG9tRm9ybWF0dGVkQVBJ
RXJyb3IiLCAiQVBJIGN1c3RvbSBleGNlcHRpb246ICVzIiwgZGV0YWlscyk7Cit9CisKIHN0YXRp
YyB2b2lkIHRlc3RKU0NFeGNlcHRpb25zKCkKIHsKICAgICB7CkBAIC0yNjUzLDYgKzI2NjMsNjgg
QEAgc3RhdGljIHZvaWQgdGVzdEpTQ0V4Y2VwdGlvbnMoKQogICAgICAgICBnX2Fzc2VydF9udWxs
KGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4dC5nZXQoKSkpOwogICAgIH0KIAorICAg
IHsKKyAgICAgICAgTGVha0NoZWNrZXIgY2hlY2tlcjsKKyAgICAgICAgR1JlZlB0cjxKU0NDb250
ZXh0PiBjb250ZXh0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X25ldygpKTsKKyAgICAgICAgY2hl
Y2tlci53YXRjaChjb250ZXh0LmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfZmFsc2UoanNjX2Nv
bnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKSk7CisKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gZnVuY3Rpb24gPSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19mdW5jdGlvbihjb250
ZXh0LmdldCgpLCAiY3JlYXRlRm9ybWF0dGVkRXJyb3IiLCBHX0NBTExCQUNLKGNyZWF0ZUZvcm1h
dHRlZEVycm9yKSwgbnVsbHB0ciwgbnVsbHB0ciwgR19UWVBFX05PTkUsIDEsIEdfVFlQRV9TVFJJ
TkcpKTsKKyAgICAgICAgY2hlY2tlci53YXRjaChmdW5jdGlvbi5nZXQoKSk7CisgICAgICAgIGpz
Y19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAiY3JlYXRlRm9ybWF0dGVkRXJyb3Ii
LCBmdW5jdGlvbi5nZXQoKSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0g
YWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJ2YXIgcmVzdWx0
OyBjcmVhdGVGb3JtYXR0ZWRFcnJvcignZXJyb3IgZGV0YWlscycpOyByZXN1bHQgPSAnTm8gZXhj
ZXB0aW9uJzsiLCAtMSkpOworICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7Cisg
ICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkp
KTsKKyAgICAgICAgYXV0byogZXhjZXB0aW9uID0ganNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihj
b250ZXh0LmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShKU0NfSVNfRVhDRVBUSU9OKGV4
Y2VwdGlvbikpOworICAgICAgICBjaGVja2VyLndhdGNoKGV4Y2VwdGlvbik7CisgICAgICAgIGdf
YXNzZXJ0X2NtcHN0cihqc2NfZXhjZXB0aW9uX2dldF9uYW1lKGV4Y2VwdGlvbiksID09LCAiRXJy
b3IiKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKGpzY19leGNlcHRpb25fZ2V0X21lc3NhZ2Uo
ZXhjZXB0aW9uKSwgPT0sICJBUEkgZXhjZXB0aW9uOiBlcnJvciBkZXRhaWxzIik7CisgICAgICAg
IGdfYXNzZXJ0X2NtcHVpbnQoanNjX2V4Y2VwdGlvbl9nZXRfbGluZV9udW1iZXIoZXhjZXB0aW9u
KSwgPT0sIDEpOworICAgICAgICBnX2Fzc2VydF9jbXB1aW50KGpzY19leGNlcHRpb25fZ2V0X2Nv
bHVtbl9udW1iZXIoZXhjZXB0aW9uKSwgPT0sIDMzKTsKKyAgICAgICAgZ19hc3NlcnRfbnVsbChq
c2NfZXhjZXB0aW9uX2dldF9zb3VyY2VfdXJpKGV4Y2VwdGlvbikpOworICAgICAgICBnX2Fzc2Vy
dF9jbXBzdHIoanNjX2V4Y2VwdGlvbl9nZXRfYmFja190cmFjZV9zdHJpbmcoZXhjZXB0aW9uKSwg
PT0sICJjcmVhdGVGb3JtYXR0ZWRFcnJvckBbbmF0aXZlIGNvZGVdXG5nbG9iYWwgY29kZSIpOwor
ICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGVycm9yU3RyaW5nKGpzY19leGNlcHRpb25fdG9fc3Ry
aW5nKGV4Y2VwdGlvbikpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIoZXJyb3JTdHJpbmcuZ2V0
KCksID09LCAiRXJyb3I6IEFQSSBleGNlcHRpb246IGVycm9yIGRldGFpbHMiKTsKKyAgICAgICAg
R1VuaXF1ZVB0cjxjaGFyPiByZXBvcnRTdHJpbmcoanNjX2V4Y2VwdGlvbl9yZXBvcnQoZXhjZXB0
aW9uKSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihyZXBvcnRTdHJpbmcuZ2V0KCksID09LCAi
OjE6MzMgRXJyb3I6IEFQSSBleGNlcHRpb246IGVycm9yIGRldGFpbHNcbiAgY3JlYXRlRm9ybWF0
dGVkRXJyb3JAW25hdGl2ZSBjb2RlXVxuICBnbG9iYWwgY29kZVxuIik7CisKKyAgICAgICAganNj
X2NvbnRleHRfY2xlYXJfZXhjZXB0aW9uKGNvbnRleHQuZ2V0KCkpOworICAgICAgICBnX2Fzc2Vy
dF9udWxsKGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4dC5nZXQoKSkpOworICAgIH0K
KworICAgIHsKKyAgICAgICAgTGVha0NoZWNrZXIgY2hlY2tlcjsKKyAgICAgICAgR1JlZlB0cjxK
U0NDb250ZXh0PiBjb250ZXh0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X25ldygpKTsKKyAgICAg
ICAgY2hlY2tlci53YXRjaChjb250ZXh0LmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfZmFsc2Uo
anNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKSk7CisKKyAgICAgICAgR1Jl
ZlB0cjxKU0NWYWx1ZT4gZnVuY3Rpb24gPSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19mdW5jdGlv
bihjb250ZXh0LmdldCgpLCAiY3JlYXRlQ3VzdG9tRm9ybWF0dGVkRXJyb3IiLCBHX0NBTExCQUNL
KGNyZWF0ZUN1c3RvbUZvcm1hdHRlZEVycm9yKSwgbnVsbHB0ciwgbnVsbHB0ciwgR19UWVBFX05P
TkUsIDEsIEdfVFlQRV9TVFJJTkcpKTsKKyAgICAgICAgY2hlY2tlci53YXRjaChmdW5jdGlvbi5n
ZXQoKSk7CisgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAiY3Jl
YXRlQ3VzdG9tRm9ybWF0dGVkRXJyb3IiLCBmdW5jdGlvbi5nZXQoKSk7CisKKyAgICAgICAgR1Jl
ZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJ2YXIgcmVzdWx0OyBjcmVhdGVDdXN0b21Gb3JtYXR0ZWRFcnJvcignZXJy
b3IgZGV0YWlscycpOyByZXN1bHQgPSAnTm8gZXhjZXB0aW9uJzsiLCAtMSkpOworICAgICAgICBj
aGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3Zh
bHVlX2lzX3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsKKyAgICAgICAgYXV0byogZXhjZXB0aW9u
ID0ganNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKTsKKyAgICAgICAgZ19h
c3NlcnRfdHJ1ZShKU0NfSVNfRVhDRVBUSU9OKGV4Y2VwdGlvbikpOworICAgICAgICBjaGVja2Vy
LndhdGNoKGV4Y2VwdGlvbik7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihqc2NfZXhjZXB0aW9u
X2dldF9uYW1lKGV4Y2VwdGlvbiksID09LCAiQ3VzdG9tRm9ybWF0dGVkQVBJRXJyb3IiKTsKKyAg
ICAgICAgZ19hc3NlcnRfY21wc3RyKGpzY19leGNlcHRpb25fZ2V0X21lc3NhZ2UoZXhjZXB0aW9u
KSwgPT0sICJBUEkgY3VzdG9tIGV4Y2VwdGlvbjogZXJyb3IgZGV0YWlscyIpOworICAgICAgICBn
X2Fzc2VydF9jbXB1aW50KGpzY19leGNlcHRpb25fZ2V0X2xpbmVfbnVtYmVyKGV4Y2VwdGlvbiks
ID09LCAxKTsKKyAgICAgICAgZ19hc3NlcnRfY21wdWludChqc2NfZXhjZXB0aW9uX2dldF9jb2x1
bW5fbnVtYmVyKGV4Y2VwdGlvbiksID09LCAzOSk7CisgICAgICAgIGdfYXNzZXJ0X251bGwoanNj
X2V4Y2VwdGlvbl9nZXRfc291cmNlX3VyaShleGNlcHRpb24pKTsKKyAgICAgICAgZ19hc3NlcnRf
Y21wc3RyKGpzY19leGNlcHRpb25fZ2V0X2JhY2tfdHJhY2Vfc3RyaW5nKGV4Y2VwdGlvbiksID09
LCAiY3JlYXRlQ3VzdG9tRm9ybWF0dGVkRXJyb3JAW25hdGl2ZSBjb2RlXVxuZ2xvYmFsIGNvZGUi
KTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBlcnJvclN0cmluZyhqc2NfZXhjZXB0aW9uX3Rv
X3N0cmluZyhleGNlcHRpb24pKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKGVycm9yU3RyaW5n
LmdldCgpLCA9PSwgIkN1c3RvbUZvcm1hdHRlZEFQSUVycm9yOiBBUEkgY3VzdG9tIGV4Y2VwdGlv
bjogZXJyb3IgZGV0YWlscyIpOworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHJlcG9ydFN0cmlu
Zyhqc2NfZXhjZXB0aW9uX3JlcG9ydChleGNlcHRpb24pKTsKKyAgICAgICAgZ19hc3NlcnRfY21w
c3RyKHJlcG9ydFN0cmluZy5nZXQoKSwgPT0sICI6MTozOSBDdXN0b21Gb3JtYXR0ZWRBUElFcnJv
cjogQVBJIGN1c3RvbSBleGNlcHRpb246IGVycm9yIGRldGFpbHNcbiAgY3JlYXRlQ3VzdG9tRm9y
bWF0dGVkRXJyb3JAW25hdGl2ZSBjb2RlXVxuICBnbG9iYWwgY29kZVxuIik7CisKKyAgICAgICAg
anNjX2NvbnRleHRfY2xlYXJfZXhjZXB0aW9uKGNvbnRleHQuZ2V0KCkpOworICAgICAgICBnX2Fz
c2VydF9udWxsKGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4dC5nZXQoKSkpOworICAg
IH0KKwogICAgIHsKICAgICAgICAgTGVha0NoZWNrZXIgY2hlY2tlcjsKICAgICAgICAgR1JlZlB0
cjxKU0NDb250ZXh0PiBjb250ZXh0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X25ldygpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347359</attachid>
            <date>2018-08-17 05:35:11 -0700</date>
            <delta_ts>2018-08-17 07:28:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>jsc-throw-printf.diff</filename>
            <type>text/plain</type>
            <size>16867</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcAppbmRleCBm
OWRlZjY2YTU2MC4uZTIxYzU2NTkyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L2dsaWIvSlNDQ29udGV4dC5jcHAKQEAgLTY0Myw2ICs2NDMsMjUgQEAgdm9pZCBqc2NfY29udGV4
dF90aHJvdyhKU0NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2UpCiAg
ICAgY29udGV4dC0+cHJpdi0+ZXhjZXB0aW9uID0gYWRvcHRHUmVmKGpzY19leGNlcHRpb25fbmV3
KGNvbnRleHQsIGVycm9yTWVzc2FnZSkpOwogfQogCisvKioKKyAqIGpzY19jb250ZXh0X3Rocm93
X3ByaW50ZjoKKyAqIEBjb250ZXh0OiBhICNKU0NDb250ZXh0CisgKiBAZm9ybWF0OiB0aGUgc3Ry
aW5nIGZvcm1hdAorICogQC4uLjogdGhlIHBhcmFtZXRlcnMgdG8gaW5zZXJ0IGludG8gdGhlIGZv
cm1hdCBzdHJpbmcKKyAqCisgKiBUaHJvdyBhbiBleGNlcHRpb24gdG8gQGNvbnRleHQgdXNpbmcg
dGhlIGdpdmVuIGZvcm1hdHRlZCBzdHJpbmcgYXMgZXJyb3IgbWVzc2FnZS4KKyAqIFRoZSBjcmVh
dGVkICNKU0NFeGNlcHRpb24gY2FuIGJlIHJldHJpZXZlZCB3aXRoIGpzY19jb250ZXh0X2dldF9l
eGNlcHRpb24oKS4KKyAqLwordm9pZCBqc2NfY29udGV4dF90aHJvd19wcmludGYoSlNDQ29udGV4
dCogY29udGV4dCwgY29uc3QgY2hhciogZm9ybWF0LCAuLi4pCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChKU0NfSVNfQ09OVEVYVChjb250ZXh0KSk7CisKKyAgICB2YV9saXN0IGFyZ3M7CisgICAg
dmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKyAgICBjb250ZXh0LT5wcml2LT5leGNlcHRpb24gPSBh
ZG9wdEdSZWYoanNjX2V4Y2VwdGlvbl9uZXdfdnByaW50Zihjb250ZXh0LCBmb3JtYXQsIGFyZ3Mp
KTsKKyAgICB2YV9lbmQoYXJncyk7Cit9CisKIC8qKgogICoganNjX2NvbnRleHRfdGhyb3dfd2l0
aF9uYW1lOgogICogQGNvbnRleHQ6IGEgI0pTQ0NvbnRleHQKQEAgLTY2MCw2ICs2NzksMjYgQEAg
dm9pZCBqc2NfY29udGV4dF90aHJvd193aXRoX25hbWUoSlNDQ29udGV4dCogY29udGV4dCwgY29u
c3QgY2hhciogZXJyb3JOYW1lLCBjb24KICAgICBjb250ZXh0LT5wcml2LT5leGNlcHRpb24gPSBh
ZG9wdEdSZWYoanNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lKGNvbnRleHQsIGVycm9yTmFtZSwg
ZXJyb3JNZXNzYWdlKSk7CiB9CiAKKy8qKgorICoganNjX2NvbnRleHRfdGhyb3dfd2l0aF9uYW1l
X3ByaW50ZjoKKyAqIEBjb250ZXh0OiBhICNKU0NDb250ZXh0CisgKiBAZXJyb3JfbmFtZTogdGhl
IGVycm9yIG5hbWUKKyAqIEBmb3JtYXQ6IHRoZSBzdHJpbmcgZm9ybWF0CisgKiBALi4uOiB0aGUg
cGFyYW1ldGVycyB0byBpbnNlcnQgaW50byB0aGUgZm9ybWF0IHN0cmluZworICoKKyAqIFRocm93
IGFuIGV4Y2VwdGlvbiB0byBAY29udGV4dCB1c2luZyB0aGUgZ2l2ZW4gZXJyb3IgbmFtZSBhbmQg
dGhlIGZvcm1hdHRlZCBzdHJpbmcgYXMgZXJyb3IgbWVzc2FnZS4KKyAqIFRoZSBjcmVhdGVkICNK
U0NFeGNlcHRpb24gY2FuIGJlIHJldHJpZXZlZCB3aXRoIGpzY19jb250ZXh0X2dldF9leGNlcHRp
b24oKS4KKyAqLwordm9pZCBqc2NfY29udGV4dF90aHJvd193aXRoX25hbWVfcHJpbnRmKEpTQ0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGVycm9yTmFtZSwgY29uc3QgY2hhciogZm9ybWF0
LCAuLi4pCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChKU0NfSVNfQ09OVEVYVChjb250ZXh0KSk7
CisKKyAgICB2YV9saXN0IGFyZ3M7CisgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKyAgICBj
b250ZXh0LT5wcml2LT5leGNlcHRpb24gPSBhZG9wdEdSZWYoanNjX2V4Y2VwdGlvbl9uZXdfd2l0
aF9uYW1lX3ZwcmludGYoY29udGV4dCwgZXJyb3JOYW1lLCBmb3JtYXQsIGFyZ3MpKTsKKyAgICB2
YV9lbmQoYXJncyk7Cit9CisKIC8qKgogICoganNjX2NvbnRleHRfdGhyb3dfZXhjZXB0aW9uOgog
ICogQGNvbnRleHQ6IGEgI0pTQ0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDQ29udGV4dC5oCmluZGV4IDg5OWFjMjZhNDc3Li5lNDY0OTRlMzg0OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5oCkBAIC05NywxMSArOTcsMjIg
QEAgSlNDX0FQSSB2b2lkCiBqc2NfY29udGV4dF90aHJvdyAgICAgICAgICAgICAgICAgICAgKEpT
Q0NvbnRleHQgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICplcnJvcl9tZXNzYWdlKTsKIAorSlNDX0FQSSB2
b2lkCitqc2NfY29udGV4dF90aHJvd19wcmludGYgICAgICAgICAgICAgKEpTQ0NvbnRleHQgICAg
ICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciAgICAgICAgICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC4uLikgR19HTlVDX1BSSU5URiAoMiwgMyk7CisKIEpTQ19BUEkgdm9pZAoganNjX2Nv
bnRleHRfdGhyb3dfd2l0aF9uYW1lICAgICAgICAgIChKU0NDb250ZXh0ICAgICAgICAgKmNvbnRl
eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAg
ICAgICAqZXJyb3JfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciAgICAgICAgICplcnJvcl9tZXNzYWdlKTsKIAorSlNDX0FQSSB2b2lkCitqc2Nf
Y29udGV4dF90aHJvd193aXRoX25hbWVfcHJpbnRmICAgKEpTQ0NvbnRleHQgICAgICAgICAqY29u
dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAg
ICAgICAgICplcnJvcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICAgICAgICAgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLi4uKSBHX0dOVUNfUFJJTlRGICgzLCA0KTsKKwogSlNDX0FQSSB2b2lkCiBq
c2NfY29udGV4dF90aHJvd19leGNlcHRpb24gICAgICAgICAgKEpTQ0NvbnRleHQgICAgICAgICAq
Y29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNDRXhjZXB0
aW9uICAgICAgICpleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9nbGliL0pTQ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDRXhjZXB0aW9uLmNwcAppbmRleCAyODE5ZjFhZGRiMi4uYjY4ODhmMDNiNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTUmV0YWlu
UHRyLmgiCiAjaW5jbHVkZSAiU3Ryb25nSW5saW5lcy5oIgorI2luY2x1ZGUgPGdsaWIvZ3ByaW50
Zi5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xp
Yi9XVEZHVHlwZS5oPgogCkBAIC0xMzIsNiArMTMzLDQ4IEBAIEpTQ0V4Y2VwdGlvbioganNjX2V4
Y2VwdGlvbl9uZXcoSlNDQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hhciogbWVzc2FnZSkKICAg
ICByZXR1cm4ganNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lKGNvbnRleHQsIG51bGxwdHIsIG1l
c3NhZ2UpOwogfQogCisvKioKKyAqIGpzY19leGNlcHRpb25fbmV3X3ByaW50ZjoKKyAqIEBjb250
ZXh0OiBhICNKU0NDb250ZXh0CisgKiBAZm9ybWF0OiB0aGUgc3RyaW5nIGZvcm1hdAorICogQC4u
LjogdGhlIHBhcmFtZXRlcnMgdG8gaW5zZXJ0IGludG8gdGhlIGZvcm1hdCBzdHJpbmcKKyAqCisg
KiBDcmVhdGUgYSBuZXcgI0pTQ0V4Y2VwdGlvbiBpbiBAY29udGV4dCB1c2luZyBhIGZvcm1hdHRl
ZCBzdHJpbmcKKyAqIGZvciB0aGUgbWVzc2FnZS4KKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IGEgbmV3ICNKU0NFeGNlcHRpb24uCisgKi8KK0pTQ0V4Y2VwdGlvbioganNjX2V4Y2Vw
dGlvbl9uZXdfcHJpbnRmKEpTQ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGZvcm1hdCwg
Li4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKyAgICB2YV9zdGFydChhcmdzLCBmb3JtYXQpOwor
ICAgIGF1dG8qIGV4Y2VwdGlvbiA9IGpzY19leGNlcHRpb25fbmV3X3ZwcmludGYoY29udGV4dCwg
Zm9ybWF0LCBhcmdzKTsKKyAgICB2YV9lbmQoYXJncyk7CisKKyAgICByZXR1cm4gZXhjZXB0aW9u
OworfQorCisvKioKKyAqIGpzY19leGNlcHRpb25fbmV3X3ZwcmludGY6CisgKiBAY29udGV4dDog
YSAjSlNDQ29udGV4dAorICogQGZvcm1hdDogdGhlIHN0cmluZyBmb3JtYXQKKyAqIEBhcmdzOiB0
aGUgcGFyYW1ldGVycyB0byBpbnNlcnQgaW50byB0aGUgZm9ybWF0IHN0cmluZworICoKKyAqIENy
ZWF0ZSBhIG5ldyAjSlNDRXhjZXB0aW9uIGluIEBjb250ZXh0IHVzaW5nIGEgZm9ybWF0dGVkIHN0
cmluZworICogZm9yIHRoZSBtZXNzYWdlLiBUaGlzIGlzIHNpbWlsYXIgdG8ganNjX2V4Y2VwdGlv
bl9uZXdfcHJpbnRmKCkKKyAqIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgdG8gdGhlIGZvcm1h
dCBzdHJpbmcgYXJlIHBhc3NlZCBhcyBhIHZhX2xpc3QuCisgKgorICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBhIG5ldyAjSlNDRXhjZXB0aW9uLgorICovCitKU0NFeGNlcHRpb24qIGpzY19l
eGNlcHRpb25fbmV3X3ZwcmludGYoSlNDQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hhciogZm9y
bWF0LCB2YV9saXN0IGFyZ3MpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX0NP
TlRFWFQoY29udGV4dCksIG51bGxwdHIpOworCisgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBidWZm
ZXI7CisgICAgZ192YXNwcmludGYoJmJ1ZmZlci5vdXRQdHIoKSwgZm9ybWF0LCBhcmdzKTsKKyAg
ICByZXR1cm4ganNjX2V4Y2VwdGlvbl9uZXcoY29udGV4dCwgYnVmZmVyLmdldCgpKTsKK30KKwog
LyoqCiAgKiBqc2NfZXhjZXB0aW9uX25ld193aXRoX25hbWU6CiAgKiBAY29udGV4dDogYSAjSlND
Q29udGV4dApAQCAtMTYzLDYgKzIwNiw1MCBAQCBKU0NFeGNlcHRpb24qIGpzY19leGNlcHRpb25f
bmV3X3dpdGhfbmFtZShKU0NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBuYW1lLAogICAg
IHJldHVybiBleGNlcHRpb24ubGVha1JlZigpOwogfQogCisvKioKKyAqIGpzY19leGNlcHRpb25f
bmV3X3dpdGhfbmFtZV9wcmludGY6CisgKiBAY29udGV4dDogYSAjSlNDQ29udGV4dAorICogQG5h
bWU6IHRoZSBlcnJvciBuYW1lCisgKiBAZm9ybWF0OiB0aGUgc3RyaW5nIGZvcm1hdAorICogQC4u
LjogdGhlIHBhcmFtZXRlcnMgdG8gaW5zZXJ0IGludG8gdGhlIGZvcm1hdCBzdHJpbmcKKyAqCisg
KiBDcmVhdGUgYSBuZXcgI0pTQ0V4Y2VwdGlvbiBpbiBAY29udGV4dCB3aXRoIEBuYW1lIGFuZCB1
c2luZyBhIGZvcm1hdHRlZCBzdHJpbmcKKyAqIGZvciB0aGUgbWVzc2FnZS4KKyAqCisgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IGEgbmV3ICNKU0NFeGNlcHRpb24uCisgKi8KK0pTQ0V4Y2Vw
dGlvbioganNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lX3ByaW50ZihKU0NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKK3sKKyAgICB2
YV9saXN0IGFyZ3M7CisgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKKyAgICBhdXRvKiBleGNl
cHRpb24gPSBqc2NfZXhjZXB0aW9uX25ld193aXRoX25hbWVfdnByaW50Zihjb250ZXh0LCBuYW1l
LCBmb3JtYXQsIGFyZ3MpOworICAgIHZhX2VuZChhcmdzKTsKKworICAgIHJldHVybiBleGNlcHRp
b247Cit9CisKKy8qKgorICoganNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lX3ZwcmludGY6Cisg
KiBAY29udGV4dDogYSAjSlNDQ29udGV4dAorICogQG5hbWU6IHRoZSBlcnJvciBuYW1lCisgKiBA
Zm9ybWF0OiB0aGUgc3RyaW5nIGZvcm1hdAorICogQGFyZ3M6IHRoZSBwYXJhbWV0ZXJzIHRvIGlu
c2VydCBpbnRvIHRoZSBmb3JtYXQgc3RyaW5nCisgKgorICogQ3JlYXRlIGEgbmV3ICNKU0NFeGNl
cHRpb24gaW4gQGNvbnRleHQgd2l0aCBAbmFtZSBhbmQgdXNpbmcgYSBmb3JtYXR0ZWQgc3RyaW5n
CisgKiBmb3IgdGhlIG1lc3NhZ2UuIFRoaXMgaXMgc2ltaWxhciB0byBqc2NfZXhjZXB0aW9uX25l
d193aXRoX25hbWVfcHJpbnRmKCkKKyAqIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgdG8gdGhl
IGZvcm1hdCBzdHJpbmcgYXJlIHBhc3NlZCBhcyBhIHZhX2xpc3QuCisgKgorICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBhIG5ldyAjSlNDRXhjZXB0aW9uLgorICovCitKU0NFeGNlcHRpb24q
IGpzY19leGNlcHRpb25fbmV3X3dpdGhfbmFtZV92cHJpbnRmKEpTQ0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdzKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKEpTQ19JU19DT05URVhUKGNvbnRleHQpLCBudWxscHRy
KTsKKworICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gYnVmZmVyOworICAgIGdfdmFzcHJpbnRmKCZi
dWZmZXIub3V0UHRyKCksIGZvcm1hdCwgYXJncyk7CisgICAgcmV0dXJuIGpzY19leGNlcHRpb25f
bmV3X3dpdGhfbmFtZShjb250ZXh0LCBuYW1lLCBidWZmZXIuZ2V0KCkpOworfQorCiAvKioKICAq
IGpzY19leGNlcHRpb25fZ2V0X25hbWU6CiAgKiBAZXhjZXB0aW9uOiBhICNKU0NFeGNlcHRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uaAppbmRleCBi
NzFiMjA3YTk5OC4uNmRhYjY0MDdiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvZ2xpYi9KU0NFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L2dsaWIvSlNDRXhjZXB0aW9uLmgKQEAgLTY1LDExICs2NSwzMyBAQCBKU0NfQVBJIEpTQ0V4Y2Vw
dGlvbiAqCiBqc2NfZXhjZXB0aW9uX25ldyAgICAgICAgICAgICAgICAgICAoSlNDQ29udGV4dCAg
ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgICAqbWVzc2FnZSk7CiAKK0pTQ19BUEkgSlNDRXhjZXB0aW9uICoKK2pzY19leGNlcHRpb25f
bmV3X3ByaW50ZiAgICAgICAgICAgIChKU0NDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICpmb3JtYXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSBHX0dOVUNfUFJJTlRGICgyLCAzKTsK
KworSlNDX0FQSSBKU0NFeGNlcHRpb24gKgoranNjX2V4Y2VwdGlvbl9uZXdfdnByaW50ZiAgICAg
ICAgICAgKEpTQ0NvbnRleHQgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YV9saXN0ICAgICAgIGFyZ3MpIEdfR05VQ19QUklOVEYoMiwgMCk7CisK
IEpTQ19BUEkgSlNDRXhjZXB0aW9uICoKIGpzY19leGNlcHRpb25fbmV3X3dpdGhfbmFtZSAgICAg
ICAgIChKU0NDb250ZXh0ICAgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAgICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgICAqbWVzc2FnZSk7CiAKK0pTQ19BUEkgSlNDRXhjZXB0aW9u
ICoKK2pzY19leGNlcHRpb25fbmV3X3dpdGhfbmFtZV9wcmludGYgIChKU0NDb250ZXh0ICAgKmNv
bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAg
ICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy
ICAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikgR19H
TlVDX1BSSU5URiAoMywgNCk7CisKK0pTQ19BUEkgSlNDRXhjZXB0aW9uICoKK2pzY19leGNlcHRp
b25fbmV3X3dpdGhfbmFtZV92cHJpbnRmIChKU0NDb250ZXh0ICAgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICpuYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAqZm9ybWF0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2xpc3QgICAgICAgYXJncykgR19H
TlVDX1BSSU5URiAoMywgMCk7CisKIEpTQ19BUEkgY29uc3QgY2hhciAqCiBqc2NfZXhjZXB0aW9u
X2dldF9uYW1lICAgICAgICAgICAgICAoSlNDRXhjZXB0aW9uICpleGNlcHRpb24pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvZG9jcy9qc2MtZ2xpYi00LjAt
c2VjdGlvbnMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL2RvY3MvanNjLWds
aWItNC4wLXNlY3Rpb25zLnR4dAppbmRleCBmZGZmMWY2Y2RjMS4uYWRkNjgyYTQ4MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9kb2NzL2pzYy1nbGliLTQuMC1z
ZWN0aW9ucy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL2RvY3MvanNj
LWdsaWItNC4wLXNlY3Rpb25zLnR4dApAQCAtMzMsNyArMzMsOSBAQCBqc2NfY29udGV4dF9uZXdf
d2l0aF92aXJ0dWFsX21hY2hpbmUKIGpzY19jb250ZXh0X2dldF92aXJ0dWFsX21hY2hpbmUKIGpz
Y19jb250ZXh0X2dldF9leGNlcHRpb24KIGpzY19jb250ZXh0X3Rocm93Citqc2NfY29udGV4dF90
aHJvd19wcmludGYKIGpzY19jb250ZXh0X3Rocm93X3dpdGhfbmFtZQoranNjX2NvbnRleHRfdGhy
b3dfd2l0aF9uYW1lX3ByaW50ZgoganNjX2NvbnRleHRfdGhyb3dfZXhjZXB0aW9uCiBqc2NfY29u
dGV4dF9jbGVhcl9leGNlcHRpb24KIGpzY19jb250ZXh0X3B1c2hfZXhjZXB0aW9uX2hhbmRsZXIK
QEAgLTE1Miw3ICsxNTQsMTEgQEAganNjX3dlYWtfdmFsdWVfZ2V0X3R5cGUKIDxUSVRMRT5KU0NF
eGNlcHRpb248L1RJVExFPgogSlNDRXhjZXB0aW9uCiBqc2NfZXhjZXB0aW9uX25ldworanNjX2V4
Y2VwdGlvbl9uZXdfcHJpbnRmCitqc2NfZXhjZXB0aW9uX25ld192cHJpbnRmCiBqc2NfZXhjZXB0
aW9uX25ld193aXRoX25hbWUKK2pzY19leGNlcHRpb25fbmV3X3dpdGhfbmFtZV9wcmludGYKK2pz
Y19leGNlcHRpb25fbmV3X3dpdGhfbmFtZV92cHJpbnRmCiBqc2NfZXhjZXB0aW9uX2dldF9uYW1l
CiBqc2NfZXhjZXB0aW9uX2dldF9tZXNzYWdlCiBqc2NfZXhjZXB0aW9uX2dldF9saW5lX251bWJl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggN2UxMDBmZTA5YzIuLmJhMTFlMzMyYmMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0wOC0xNyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dMSUJd
IEFkZCBBUEkgdG8gdGhyb3cgZXhjZXB0aW9ucyB1c2luZyBwcmludGYgZm9ybWF0dGVkIHN0cmlu
Z3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODY5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBq
c2NfY29udGV4dF90aHJvd19wcmludGYoKSBhbmQganNjX2NvbnRleHRfdGhyb3dfd2l0aF9uYW1l
X3ByaW50ZigpLiBBbHNvIGFkZCBuZXcgcHVibGljIGNvbnN0cnVjdG9ycyBvZgorICAgICAgICBK
U0NFeGNlcHRpb24gdXNpbmcgcHJpbnRmIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgKiBB
UEkvZ2xpYi9KU0NDb250ZXh0LmNwcDoKKyAgICAgICAgKGpzY19jb250ZXh0X3Rocm93X3ByaW50
Zik6CisgICAgICAgIChqc2NfY29udGV4dF90aHJvd193aXRoX25hbWVfcHJpbnRmKToKKyAgICAg
ICAgKiBBUEkvZ2xpYi9KU0NDb250ZXh0Lmg6CisgICAgICAgICogQVBJL2dsaWIvSlNDRXhjZXB0
aW9uLmNwcDoKKyAgICAgICAgKGpzY19leGNlcHRpb25fbmV3X3ByaW50Zik6CisgICAgICAgIChq
c2NfZXhjZXB0aW9uX25ld192cHJpbnRmKToKKyAgICAgICAgKGpzY19leGNlcHRpb25fbmV3X3dp
dGhfbmFtZV9wcmludGYpOgorICAgICAgICAoanNjX2V4Y2VwdGlvbl9uZXdfd2l0aF9uYW1lX3Zw
cmludGYpOgorICAgICAgICAqIEFQSS9nbGliL0pTQ0V4Y2VwdGlvbi5oOgorICAgICAgICAqIEFQ
SS9nbGliL2RvY3MvanNjLWdsaWItNC4wLXNlY3Rpb25zLnR4dDoKKwogMjAxOC0wOC0xNyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJd
IENvbXBsZXRlIHRoZSBKU0NFeGNlcHRpb24gQVBJCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWMwMmQyMjczMTIuLjk0MTY1YzZiODQ2IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTgtMDgtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHTElCXSBBZGQgQVBJIHRvIHRocm93IGV4Y2VwdGlvbnMgdXNpbmcg
cHJpbnRmIGZvcm1hdHRlZCBzdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODg2OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgY2FzZXMgdG8gdGVzdCB0aGUgbmV3IEFQSS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvZ2xpYi9UZXN0SlNDLmNwcDoK
KyAgICAgICAgKGNyZWF0ZUZvcm1hdHRlZEVycm9yKToKKyAgICAgICAgKGNyZWF0ZUN1c3RvbUZv
cm1hdHRlZEVycm9yKToKKyAgICAgICAgKHRlc3RKU0NFeGNlcHRpb25zKToKKwogMjAxOC0wOC0x
NyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dMSUJdIENvbXBsZXRlIHRoZSBKU0NFeGNlcHRpb24gQVBJCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL2dsaWIvVGVzdEpTQy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL2dsaWIvVGVzdEpTQy5jcHAKaW5k
ZXggODhhY2FjMTMzMjAuLmY3ZmE2YWFjZGMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL2dsaWIvVGVzdEpTQy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL1Rlc3RKU0MuY3BwCkBAIC0yNDk1
LDYgKzI0OTUsMTYgQEAgc3RhdGljIHZvaWQgY3JlYXRlQ3VzdG9tRXJyb3IoKQogICAgIGpzY19j
b250ZXh0X3Rocm93X3dpdGhfbmFtZShqc2NfY29udGV4dF9nZXRfY3VycmVudCgpLCAiQ3VzdG9t
QVBJRXJyb3IiLCAiQVBJIGN1c3RvbSBleGNlcHRpb24iKTsKIH0KIAorc3RhdGljIHZvaWQgY3Jl
YXRlRm9ybWF0dGVkRXJyb3IoY29uc3QgY2hhciogZGV0YWlscykKK3sKKyAgICBqc2NfY29udGV4
dF90aHJvd19wcmludGYoanNjX2NvbnRleHRfZ2V0X2N1cnJlbnQoKSwgIkFQSSBleGNlcHRpb246
ICVzIiwgZGV0YWlscyk7Cit9CisKK3N0YXRpYyB2b2lkIGNyZWF0ZUN1c3RvbUZvcm1hdHRlZEVy
cm9yKGNvbnN0IGNoYXIqIGRldGFpbHMpCit7CisgICAganNjX2NvbnRleHRfdGhyb3dfd2l0aF9u
YW1lX3ByaW50Zihqc2NfY29udGV4dF9nZXRfY3VycmVudCgpLCAiQ3VzdG9tRm9ybWF0dGVkQVBJ
RXJyb3IiLCAiQVBJIGN1c3RvbSBleGNlcHRpb246ICVzIiwgZGV0YWlscyk7Cit9CisKIHN0YXRp
YyB2b2lkIHRlc3RKU0NFeGNlcHRpb25zKCkKIHsKICAgICB7CkBAIC0yNjUzLDYgKzI2NjMsNjgg
QEAgc3RhdGljIHZvaWQgdGVzdEpTQ0V4Y2VwdGlvbnMoKQogICAgICAgICBnX2Fzc2VydF9udWxs
KGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4dC5nZXQoKSkpOwogICAgIH0KIAorICAg
IHsKKyAgICAgICAgTGVha0NoZWNrZXIgY2hlY2tlcjsKKyAgICAgICAgR1JlZlB0cjxKU0NDb250
ZXh0PiBjb250ZXh0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X25ldygpKTsKKyAgICAgICAgY2hl
Y2tlci53YXRjaChjb250ZXh0LmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfZmFsc2UoanNjX2Nv
bnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKSk7CisKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gZnVuY3Rpb24gPSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19mdW5jdGlvbihjb250
ZXh0LmdldCgpLCAiY3JlYXRlRm9ybWF0dGVkRXJyb3IiLCBHX0NBTExCQUNLKGNyZWF0ZUZvcm1h
dHRlZEVycm9yKSwgbnVsbHB0ciwgbnVsbHB0ciwgR19UWVBFX05PTkUsIDEsIEdfVFlQRV9TVFJJ
TkcpKTsKKyAgICAgICAgY2hlY2tlci53YXRjaChmdW5jdGlvbi5nZXQoKSk7CisgICAgICAgIGpz
Y19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAiY3JlYXRlRm9ybWF0dGVkRXJyb3Ii
LCBmdW5jdGlvbi5nZXQoKSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0g
YWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJ2YXIgcmVzdWx0
OyBjcmVhdGVGb3JtYXR0ZWRFcnJvcignZXJyb3IgZGV0YWlscycpOyByZXN1bHQgPSAnTm8gZXhj
ZXB0aW9uJzsiLCAtMSkpOworICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7Cisg
ICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkp
KTsKKyAgICAgICAgYXV0byogZXhjZXB0aW9uID0ganNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihj
b250ZXh0LmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShKU0NfSVNfRVhDRVBUSU9OKGV4
Y2VwdGlvbikpOworICAgICAgICBjaGVja2VyLndhdGNoKGV4Y2VwdGlvbik7CisgICAgICAgIGdf
YXNzZXJ0X2NtcHN0cihqc2NfZXhjZXB0aW9uX2dldF9uYW1lKGV4Y2VwdGlvbiksID09LCAiRXJy
b3IiKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKGpzY19leGNlcHRpb25fZ2V0X21lc3NhZ2Uo
ZXhjZXB0aW9uKSwgPT0sICJBUEkgZXhjZXB0aW9uOiBlcnJvciBkZXRhaWxzIik7CisgICAgICAg
IGdfYXNzZXJ0X2NtcHVpbnQoanNjX2V4Y2VwdGlvbl9nZXRfbGluZV9udW1iZXIoZXhjZXB0aW9u
KSwgPT0sIDEpOworICAgICAgICBnX2Fzc2VydF9jbXB1aW50KGpzY19leGNlcHRpb25fZ2V0X2Nv
bHVtbl9udW1iZXIoZXhjZXB0aW9uKSwgPT0sIDMzKTsKKyAgICAgICAgZ19hc3NlcnRfbnVsbChq
c2NfZXhjZXB0aW9uX2dldF9zb3VyY2VfdXJpKGV4Y2VwdGlvbikpOworICAgICAgICBnX2Fzc2Vy
dF9jbXBzdHIoanNjX2V4Y2VwdGlvbl9nZXRfYmFja3RyYWNlX3N0cmluZyhleGNlcHRpb24pLCA9
PSwgImNyZWF0ZUZvcm1hdHRlZEVycm9yQFtuYXRpdmUgY29kZV1cbmdsb2JhbCBjb2RlIik7Cisg
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZXJyb3JTdHJpbmcoanNjX2V4Y2VwdGlvbl90b19zdHJp
bmcoZXhjZXB0aW9uKSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihlcnJvclN0cmluZy5nZXQo
KSwgPT0sICJFcnJvcjogQVBJIGV4Y2VwdGlvbjogZXJyb3IgZGV0YWlscyIpOworICAgICAgICBH
VW5pcXVlUHRyPGNoYXI+IHJlcG9ydFN0cmluZyhqc2NfZXhjZXB0aW9uX3JlcG9ydChleGNlcHRp
b24pKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHJlcG9ydFN0cmluZy5nZXQoKSwgPT0sICI6
MTozMyBFcnJvcjogQVBJIGV4Y2VwdGlvbjogZXJyb3IgZGV0YWlsc1xuICBjcmVhdGVGb3JtYXR0
ZWRFcnJvckBbbmF0aXZlIGNvZGVdXG4gIGdsb2JhbCBjb2RlXG4iKTsKKworICAgICAgICBqc2Nf
Y29udGV4dF9jbGVhcl9leGNlcHRpb24oY29udGV4dC5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0
X251bGwoanNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKSk7CisgICAgfQor
CisgICAgeworICAgICAgICBMZWFrQ2hlY2tlciBjaGVja2VyOworICAgICAgICBHUmVmUHRyPEpT
Q0NvbnRleHQ+IGNvbnRleHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfbmV3KCkpOworICAgICAg
ICBjaGVja2VyLndhdGNoKGNvbnRleHQuZ2V0KCkpOworICAgICAgICBnX2Fzc2VydF9mYWxzZShq
c2NfY29udGV4dF9nZXRfZXhjZXB0aW9uKGNvbnRleHQuZ2V0KCkpKTsKKworICAgICAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiBmdW5jdGlvbiA9IGFkb3B0R1JlZihqc2NfdmFsdWVfbmV3X2Z1bmN0aW9u
KGNvbnRleHQuZ2V0KCksICJjcmVhdGVDdXN0b21Gb3JtYXR0ZWRFcnJvciIsIEdfQ0FMTEJBQ0so
Y3JlYXRlQ3VzdG9tRm9ybWF0dGVkRXJyb3IpLCBudWxscHRyLCBudWxscHRyLCBHX1RZUEVfTk9O
RSwgMSwgR19UWVBFX1NUUklORykpOworICAgICAgICBjaGVja2VyLndhdGNoKGZ1bmN0aW9uLmdl
dCgpKTsKKyAgICAgICAganNjX2NvbnRleHRfc2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCksICJjcmVh
dGVDdXN0b21Gb3JtYXR0ZWRFcnJvciIsIGZ1bmN0aW9uLmdldCgpKTsKKworICAgICAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgInZhciByZXN1bHQ7IGNyZWF0ZUN1c3RvbUZvcm1hdHRlZEVycm9yKCdlcnJv
ciBkZXRhaWxzJyk7IHJlc3VsdCA9ICdObyBleGNlcHRpb24nOyIsIC0xKSk7CisgICAgICAgIGNo
ZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFs
dWVfaXNfdW5kZWZpbmVkKHJlc3VsdC5nZXQoKSkpOworICAgICAgICBhdXRvKiBleGNlcHRpb24g
PSBqc2NfY29udGV4dF9nZXRfZXhjZXB0aW9uKGNvbnRleHQuZ2V0KCkpOworICAgICAgICBnX2Fz
c2VydF90cnVlKEpTQ19JU19FWENFUFRJT04oZXhjZXB0aW9uKSk7CisgICAgICAgIGNoZWNrZXIu
d2F0Y2goZXhjZXB0aW9uKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKGpzY19leGNlcHRpb25f
Z2V0X25hbWUoZXhjZXB0aW9uKSwgPT0sICJDdXN0b21Gb3JtYXR0ZWRBUElFcnJvciIpOworICAg
ICAgICBnX2Fzc2VydF9jbXBzdHIoanNjX2V4Y2VwdGlvbl9nZXRfbWVzc2FnZShleGNlcHRpb24p
LCA9PSwgIkFQSSBjdXN0b20gZXhjZXB0aW9uOiBlcnJvciBkZXRhaWxzIik7CisgICAgICAgIGdf
YXNzZXJ0X2NtcHVpbnQoanNjX2V4Y2VwdGlvbl9nZXRfbGluZV9udW1iZXIoZXhjZXB0aW9uKSwg
PT0sIDEpOworICAgICAgICBnX2Fzc2VydF9jbXB1aW50KGpzY19leGNlcHRpb25fZ2V0X2NvbHVt
bl9udW1iZXIoZXhjZXB0aW9uKSwgPT0sIDM5KTsKKyAgICAgICAgZ19hc3NlcnRfbnVsbChqc2Nf
ZXhjZXB0aW9uX2dldF9zb3VyY2VfdXJpKGV4Y2VwdGlvbikpOworICAgICAgICBnX2Fzc2VydF9j
bXBzdHIoanNjX2V4Y2VwdGlvbl9nZXRfYmFja3RyYWNlX3N0cmluZyhleGNlcHRpb24pLCA9PSwg
ImNyZWF0ZUN1c3RvbUZvcm1hdHRlZEVycm9yQFtuYXRpdmUgY29kZV1cbmdsb2JhbCBjb2RlIik7
CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZXJyb3JTdHJpbmcoanNjX2V4Y2VwdGlvbl90b19z
dHJpbmcoZXhjZXB0aW9uKSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihlcnJvclN0cmluZy5n
ZXQoKSwgPT0sICJDdXN0b21Gb3JtYXR0ZWRBUElFcnJvcjogQVBJIGN1c3RvbSBleGNlcHRpb246
IGVycm9yIGRldGFpbHMiKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXBvcnRTdHJpbmco
anNjX2V4Y2VwdGlvbl9yZXBvcnQoZXhjZXB0aW9uKSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0
cihyZXBvcnRTdHJpbmcuZ2V0KCksID09LCAiOjE6MzkgQ3VzdG9tRm9ybWF0dGVkQVBJRXJyb3I6
IEFQSSBjdXN0b20gZXhjZXB0aW9uOiBlcnJvciBkZXRhaWxzXG4gIGNyZWF0ZUN1c3RvbUZvcm1h
dHRlZEVycm9yQFtuYXRpdmUgY29kZV1cbiAgZ2xvYmFsIGNvZGVcbiIpOworCisgICAgICAgIGpz
Y19jb250ZXh0X2NsZWFyX2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKTsKKyAgICAgICAgZ19hc3Nl
cnRfbnVsbChqc2NfY29udGV4dF9nZXRfZXhjZXB0aW9uKGNvbnRleHQuZ2V0KCkpKTsKKyAgICB9
CisKICAgICB7CiAgICAgICAgIExlYWtDaGVja2VyIGNoZWNrZXI7CiAgICAgICAgIEdSZWZQdHI8
SlNDQ29udGV4dD4gY29udGV4dCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9uZXcoKSk7Cg==
</data>
<flag name="review"
          id="365157"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>