<?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>94683</bug_id>
          
          <creation_ts>2012-08-22 02:07:20 -0700</creation_ts>
          <short_desc>[GTK] Preferred languages and spellchecker APIs are not consistent in WebKit2</short_desc>
          <delta_ts>2012-08-22 06:33:56 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alex</cc>
    
    <cc>gustavo</cc>
    
    <cc>mario</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>701696</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-08-22 02:07:20 -0700</bug_when>
    <thetext>API to get/set spellchecking languages, uses a string containing a list of languages separated by commas. We are splitting the list into a vector to update the enchant dictionaries, and building a comma separated string from enchant dictionaries to return the list of languages. On the other hand, set_preferred_languages receives a GList of string with the language identifiers. It would be more convenient to use  a GStrv in both cases (we avoid unnecessary split/join in spellchecker case), and would result in a more consistent API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701700</commentid>
    <comment_count>1</comment_count>
      <attachid>159886</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-08-22 02:15:20 -0700</bug_when>
    <thetext>Created attachment 159886
Patch

This is an api break so it would be great to land it before the release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701701</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 02:16:29 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701715</commentid>
    <comment_count>3</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-08-22 02:56:00 -0700</bug_when>
    <thetext>As the author of the previous version of this API, I must say I agree with this change and that the current patch looks good to me too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701837</commentid>
    <comment_count>4</comment_count>
      <attachid>159886</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2012-08-22 06:23:35 -0700</bug_when>
    <thetext>Comment on attachment 159886
Patch

LGTM!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701847</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-08-22 06:33:56 -0700</bug_when>
    <thetext>Committed r126298: &lt;http://trac.webkit.org/changeset/126298&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159886</attachid>
            <date>2012-08-22 02:15:20 -0700</date>
            <delta_ts>2012-08-22 06:23:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-languages-api.diff</filename>
            <type>text/plain</type>
            <size>21282</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NTFhMjc3Li4zMjM1YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMDgtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIFByZWZlcnJlZCBsYW5ndWFnZXMgYW5kIHNwZWxsY2hlY2tlciBB
UElzIGFyZSBub3QgY29uc2lzdGVudCBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDY4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIFZlY3RvcjxTdHJpbmc+IGluc3RlYWQgb2Yg
YSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nIHRvCisgICAgICAgIGdldC9zZXQgbGFuZ3VhZ2VzLgor
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNrZXJFbmNoYW50LmNwcDoKKyAg
ICAgICAgKFRleHRDaGVja2VyRW5jaGFudDo6dXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyk6
CisgICAgICAgIChUZXh0Q2hlY2tlckVuY2hhbnQ6OmdldFNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvZ3RrL1RleHRDaGVja2VyRW5jaGFudC5oOgorICAg
ICAgICAoVGV4dENoZWNrZXJFbmNoYW50KToKKwogMjAxMi0wOC0yMSAgS2VudGFybyBIYXJhICA8
aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBNb3ZlIFN0cmluZyByZWxhdGVk
IGNvZGUgaW4gVjhCaW5kaW5nIHRvIGEgc2VwYXJhdGUgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IDJlZjc5MTkuLjJhZDkxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
Mi0wOC0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dUS10gUHJlZmVycmVkIGxhbmd1YWdlcyBhbmQgc3BlbGxjaGVja2VyIEFQSXMgYXJl
IG5vdCBjb25zaXN0ZW50IGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk0NjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHA6
CisgICAgICAgICh1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKTogU3BsaXQgdGhlIGxhbmd1
YWdlcyBzdHJpbmcgdG8gcGFzcyBhCisgICAgICAgIFZlY3RvciB0byB1cGRhdGVTcGVsbENoZWNr
aW5nTGFuZ3VhZ2VzKCkuCisKIDIwMTItMDgtMjEgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0Bp
Z2FsaWEuY29tPgogICAgICAgICBbR3RrXSBObyBhY2Nlc3NpYmxlIGNhcmV0LW1vdmVkIGV2ZW50
cyBmb3VuZCBpbiBjZXJ0YWluIGNvbnRlbnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzZkNWQ0Ni4uYTgwNDhjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTIyICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBQcmVmZXJyZWQgbGFu
Z3VhZ2VzIGFuZCBzcGVsbGNoZWNrZXIgQVBJcyBhcmUgbm90IGNvbnNpc3RlbnQgaW4gV2ViS2l0
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ2ODMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Ug
c3BlbGwtY2hlY2tlciBhbmQgcHJlZmVycmVkIGxhbmd1YWdlcyBBUEkgdG8gdXNlIGEgR1N0cnYK
KyAgICAgICAgaW5zdGVhZCBvZiBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcgYW5kIEdMaXN0LiBU
aGlzIG1ha2VzIHRoZSBBUEkKKyAgICAgICAgbW9yZSBjb25zaXN0ZW50IGFuZCBjb252ZW5pZW50
IHRvIHVzZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFRleHRDaGVja2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdFRleHRDaGVja2VyOjpnZXRTcGVsbENoZWNraW5nTGFuZ3Vh
Z2VzKTogUmV0dXJuIGEKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gaW5zdGVhZCBvZiBhIFN0cmlu
Zy4KKyAgICAgICAgKFdlYktpdFRleHRDaGVja2VyOjpzZXRTcGVsbENoZWNraW5nTGFuZ3VhZ2Vz
KTogUmVjZWl2ZSBhCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGluc3RlYWQgb2YgYSBTdHJpbmcu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VGV4dENoZWNrZXIuaDoKKyAgICAg
ICAgKFdlYktpdFRleHRDaGVja2VyKTogVXNlIGEgR1B0ckFycmF5IHRvIGNhY2hlIGxhbmd1YWdl
cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKToK
KyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2Vz
KToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJlZmVycmVkX2xhbmd1YWdlcyk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKHRlc3RXZWJDb250ZXh0U3BlbGxDaGVja2VyKToKKyAgICAgICAgKHRlc3RXZWJDb250
ZXh0TGFuZ3VhZ2VzKToKKwogMjAxMi0wOC0yMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNjIx
Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDaGVj
a2VyRW5jaGFudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q2hl
Y2tlckVuY2hhbnQuY3BwCmluZGV4IGYzZjYwZTYuLjExYTNlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDaGVja2VyRW5jaGFudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNrZXJFbmNoYW50LmNwcApA
QCAtMTU1LDE0ICsxNTUsMTIgQEAgVmVjdG9yPFN0cmluZz4gVGV4dENoZWNrZXJFbmNoYW50Ojpn
ZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQpCiAgICAgcmV0dXJuIGd1ZXNzZXM7
CiB9CiAKLXZvaWQgVGV4dENoZWNrZXJFbmNoYW50Ojp1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3Vh
Z2VzKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VzKQordm9pZCBUZXh0Q2hlY2tlckVuY2hhbnQ6OnVw
ZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdl
cykKIHsKICAgICBWZWN0b3I8RW5jaGFudERpY3QqPiBzcGVsbERpY3Rpb25hcmllczsKIAogICAg
IGlmICghbGFuZ3VhZ2VzLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8U3RyaW5nPiBsYW5n
dWFnZXNWZWN0b3I7Ci0gICAgICAgIGxhbmd1YWdlcy5zcGxpdChzdGF0aWNfY2FzdDxVQ2hhcj4o
JywnKSwgbGFuZ3VhZ2VzVmVjdG9yKTsKLSAgICAgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IGxhbmd1YWdlc1ZlY3Rvci5iZWdpbigpOyBpdGVyICE9IGxhbmd1
YWdlc1ZlY3Rvci5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIGZvciAoVmVjdG9yPFN0cmluZz46
OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBsYW5ndWFnZXMuYmVnaW4oKTsgaXRlciAhPSBsYW5ndWFn
ZXMuZW5kKCk7ICsraXRlcikgewogICAgICAgICAgICAgQ1N0cmluZyBjdXJyZW50TGFuZ3VhZ2Ug
PSBpdGVyLT51dGY4KCk7CiAgICAgICAgICAgICBpZiAoZW5jaGFudF9icm9rZXJfZGljdF9leGlz
dHMobV9icm9rZXIsIGN1cnJlbnRMYW5ndWFnZS5kYXRhKCkpKSB7CiAgICAgICAgICAgICAgICAg
RW5jaGFudERpY3QqIGRpY3QgPSBlbmNoYW50X2Jyb2tlcl9yZXF1ZXN0X2RpY3QobV9icm9rZXIs
IGN1cnJlbnRMYW5ndWFnZS5kYXRhKCkpOwpAQCAtMTg4LDI0ICsxODYsMjEgQEAgdm9pZCBUZXh0
Q2hlY2tlckVuY2hhbnQ6OnVwZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMoY29uc3QgU3RyaW5n
JiBsYW5ndWFnZXMpCiAgICAgbV9lbmNoYW50RGljdGlvbmFyaWVzID0gc3BlbGxEaWN0aW9uYXJp
ZXM7CiB9CiAKLVN0cmluZyBUZXh0Q2hlY2tlckVuY2hhbnQ6OmdldFNwZWxsQ2hlY2tpbmdMYW5n
dWFnZXMoKQorVmVjdG9yPFN0cmluZz4gVGV4dENoZWNrZXJFbmNoYW50OjpnZXRTcGVsbENoZWNr
aW5nTGFuZ3VhZ2VzKCkKIHsKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CiAgICAgaWYg
KG1fZW5jaGFudERpY3Rpb25hcmllcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBTdHJpbmco
KTsKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlczsKIAogICAgIC8vIEdldCBhIFZlY3RvcjxDU3Ry
aW5nPiB3aXRoIHRoZSBsaXN0IG9mIGxhbmd1YWdlcyBpbiB1c2UuCiAgICAgVmVjdG9yPENTdHJp
bmc+IGN1cnJlbnREaWN0aW9uYXJpZXM7CiAgICAgZm9yIChWZWN0b3I8RW5jaGFudERpY3QqPjo6
Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fZW5jaGFudERpY3Rpb25hcmllcy5iZWdpbigpOyBpdGVy
ICE9IG1fZW5jaGFudERpY3Rpb25hcmllcy5lbmQoKTsgKytpdGVyKQogICAgICAgICBlbmNoYW50
X2RpY3RfZGVzY3JpYmUoKml0ZXIsIGVuY2hhbnREaWN0RGVzY3JpYmVDYWxsYmFjaywgJmN1cnJl
bnREaWN0aW9uYXJpZXMpOwogCi0gICAgLy8gQnVpbGQgdGhlIHJlc3VsdCBTdHJpbmc7Ci0gICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGZvciAoVmVjdG9yPENTdHJpbmc+Ojpjb25zdF9p
dGVyYXRvciBpdGVyID0gY3VycmVudERpY3Rpb25hcmllcy5iZWdpbigpOyBpdGVyICE9IGN1cnJl
bnREaWN0aW9uYXJpZXMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoaXRlciAhPSBjdXJy
ZW50RGljdGlvbmFyaWVzLmJlZ2luKCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCIp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGl0ZXItPmRhdGEoKSkp
OwotICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIGZvciAoVmVjdG9y
PENTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gY3VycmVudERpY3Rpb25hcmllcy5iZWdp
bigpOyBpdGVyICE9IGN1cnJlbnREaWN0aW9uYXJpZXMuZW5kKCk7ICsraXRlcikKKyAgICAgICAg
bGFuZ3VhZ2VzLmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGl0ZXItPmRhdGEoKSkpOworCisgICAg
cmV0dXJuIGxhbmd1YWdlczsKIH0KIAogdm9pZCBUZXh0Q2hlY2tlckVuY2hhbnQ6OmZyZWVFbmNo
YW50QnJva2VyRGljdGlvbmFyaWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvZ3RrL1RleHRDaGVja2VyRW5jaGFudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9ndGsvVGV4dENoZWNrZXJFbmNoYW50LmgKaW5kZXggZTdhOTgwOS4uMTc4MGI0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNrZXJF
bmNoYW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNr
ZXJFbmNoYW50LmgKQEAgLTQxLDggKzQxLDggQEAgcHVibGljOgogICAgIHZvaWQgbGVhcm5Xb3Jk
KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFN0
cmluZyYsIGludCYgbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50JiBtaXNzcGVsbGluZ0xlbmd0aCk7
CiAgICAgVmVjdG9yPFN0cmluZz4gZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJik7Ci0g
ICAgdm9pZCB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKGNvbnN0IFN0cmluZyYgbGFuZ3Vh
Z2VzKTsKLSAgICBTdHJpbmcgZ2V0U3BlbGxDaGVja2luZ0xhbmd1YWdlcygpOworICAgIHZvaWQg
dXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3Vh
Z2VzKTsKKyAgICBWZWN0b3I8U3RyaW5nPiBnZXRTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKCk7CiAK
IHByaXZhdGU6CiAgICAgVGV4dENoZWNrZXJFbmNoYW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAKaW5kZXggMDdk
MzRkMS4uODNiZTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcApAQCAtOTksNyArOTksMTAgQEAgc3RhdGljIGNo
YXIqKiBnZXRHdWVzc2VzRm9yV29yZChXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0
IGNoYXIqIHdvcmQsIGMKIHN0YXRpYyB2b2lkIHVwZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMo
V2ViS2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiBsYW5ndWFnZXMpCiB7CiAg
ICAgV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZhdGUqIHByaXYgPSBXRUJLSVRfU1BFTExf
Q0hFQ0tFUl9FTkNIQU5UKGNoZWNrZXIpLT5wcml2OwotICAgIHByaXYtPnRleHRDaGVja2VyRW5j
aGFudC0+dXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyhTdHJpbmc6OmZyb21VVEY4KGxhbmd1
YWdlcykpOworCisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzVmVjdG9yOworICAgIFN0cmlu
Zzo6ZnJvbVVURjgobGFuZ3VhZ2VzKS5zcGxpdChzdGF0aWNfY2FzdDxVQ2hhcj4oJywnKSwgbGFu
Z3VhZ2VzVmVjdG9yKTsKKyAgICBwcml2LT50ZXh0Q2hlY2tlckVuY2hhbnQtPnVwZGF0ZVNwZWxs
Q2hlY2tpbmdMYW5ndWFnZXMobGFuZ3VhZ2VzVmVjdG9yKTsKIH0KIAogc3RhdGljIGNoYXIqIGdl
dEF1dG9jb3JyZWN0U3VnZ2VzdGlvbnNGb3JNaXNzcGVsbGVkV29yZChXZWJLaXRTcGVsbENoZWNr
ZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIqIHdvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5jcHAKaW5kZXggNWFlNjJjNi4u
MzlmNDAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VGV4dENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFRleHRDaGVja2VyLmNwcApAQCAtMjksOCArMjksNiBAQAogI2lmIEVOQUJMRShTUEVM
TENIRUNLKQogCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKQEAgLTE0MCwxNSArMTM4LDI1IEBAIHZvaWQgV2ViS2l0VGV4dENoZWNrZXI6OnNl
dFNwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBXS1RleHRDaGVja2VyQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFuZ2VkKGVuYWJsZWQpOwogfQogCi1j
b25zdCBDU3RyaW5nJiBXZWJLaXRUZXh0Q2hlY2tlcjo6Z2V0U3BlbGxDaGVja2luZ0xhbmd1YWdl
cygpCitjb25zdCBjaGFyKiBjb25zdCogV2ViS2l0VGV4dENoZWNrZXI6OmdldFNwZWxsQ2hlY2tp
bmdMYW5ndWFnZXMoKQogewotICAgIFN0cmluZyBzcGVsbENoZWNraW5nTGFuZ3VhZ2VzID0gbV90
ZXh0Q2hlY2tlci0+Z2V0U3BlbGxDaGVja2luZ0xhbmd1YWdlcygpOwotICAgIG1fc3BlbGxDaGVj
a2luZ0xhbmd1YWdlcyA9IHNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMuaXNFbXB0eSgpID8gQ1N0cmlu
ZygpIDogc3BlbGxDaGVja2luZ0xhbmd1YWdlcy51dGY4KCk7Ci0gICAgcmV0dXJuIG1fc3BlbGxD
aGVja2luZ0xhbmd1YWdlczsKKyAgICBWZWN0b3I8U3RyaW5nPiBzcGVsbENoZWNraW5nTGFuZ3Vh
Z2VzID0gbV90ZXh0Q2hlY2tlci0+Z2V0U3BlbGxDaGVja2luZ0xhbmd1YWdlcygpOworICAgIGlm
IChzcGVsbENoZWNraW5nTGFuZ3VhZ2VzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBtX3NwZWxsQ2hlY2tpbmdMYW5ndWFnZXMgPSBhZG9wdEdSZWYoZ19wdHJfYXJyYXlfbmV3
X3dpdGhfZnJlZV9mdW5jKGdfZnJlZSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3Bl
bGxDaGVja2luZ0xhbmd1YWdlcy5zaXplKCk7ICsraSkKKyAgICAgICAgZ19wdHJfYXJyYXlfYWRk
KG1fc3BlbGxDaGVja2luZ0xhbmd1YWdlcy5nZXQoKSwgZ19zdHJkdXAoc3BlbGxDaGVja2luZ0xh
bmd1YWdlc1tpXS51dGY4KCkuZGF0YSgpKSk7CisgICAgZ19wdHJfYXJyYXlfYWRkKG1fc3BlbGxD
aGVja2luZ0xhbmd1YWdlcy5nZXQoKSwgMCk7CisKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKio+KG1fc3BlbGxDaGVja2luZ0xhbmd1YWdlcy0+cGRhdGEpOwogfQogCi12b2lkIFdl
YktpdFRleHRDaGVja2VyOjpzZXRTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKGNvbnN0IENTdHJpbmcm
IGxhbmd1YWdlcykKK3ZvaWQgV2ViS2l0VGV4dENoZWNrZXI6OnNldFNwZWxsQ2hlY2tpbmdMYW5n
dWFnZXMoY29uc3QgY2hhciogY29uc3QqIGxhbmd1YWdlcykKIHsKLSAgICBtX3RleHRDaGVja2Vy
LT51cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKFN0cmluZzo6ZnJvbVVURjgobGFuZ3VhZ2Vz
LmRhdGEoKSkpOworICAgIFZlY3RvcjxTdHJpbmc+IHNwZWxsQ2hlY2tpbmdMYW5ndWFnZXM7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGxhbmd1YWdlc1tpXTsgKytpKQorICAgICAgICBzcGVsbENo
ZWNraW5nTGFuZ3VhZ2VzLmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGxhbmd1YWdlc1tpXSkpOwor
ICAgIG1fdGV4dENoZWNrZXItPnVwZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMoc3BlbGxDaGVj
a2luZ0xhbmd1YWdlcyk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKFNQRUxMQ0hFQ0spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VGV4dENoZWNrZXIuaApp
bmRleCAzY2NhNTYyLi4xNWY3NjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFRleHRDaGVja2VyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIGNsYXNzIFdlYktpdFRleHRDaGVja2Vy
IHsKQEAgLTQ0LDE0ICs0NSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpZ25vcmVXb3JkKGNvbnN0
IFN0cmluZyYgd29yZCk7CiAKICAgICAvLyBUbyBiZSBjYWxsZWQgZnJvbSBXZWJLaXRXZWJDb250
ZXh0IG9ubHkuCi0gICAgY29uc3QgQ1N0cmluZyYgZ2V0U3BlbGxDaGVja2luZ0xhbmd1YWdlcygp
OwotICAgIHZvaWQgc2V0U3BlbGxDaGVja2luZ0xhbmd1YWdlcyhjb25zdCBDU3RyaW5nJiBzcGVs
bENoZWNraW5nTGFuZ3VhZ2VzKTsKKyAgICBjb25zdCBjaGFyKiBjb25zdCogZ2V0U3BlbGxDaGVj
a2luZ0xhbmd1YWdlcygpOworICAgIHZvaWQgc2V0U3BlbGxDaGVja2luZ0xhbmd1YWdlcyhjb25z
dCBjaGFyKiBjb25zdCogc3BlbGxDaGVja2luZ0xhbmd1YWdlcyk7CiAKIHByaXZhdGU6CiAgICAg
V2ViS2l0VGV4dENoZWNrZXIoKTsKIAogICAgIE93blB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tlckVu
Y2hhbnQ+IG1fdGV4dENoZWNrZXI7Ci0gICAgQ1N0cmluZyBtX3NwZWxsQ2hlY2tpbmdMYW5ndWFn
ZXM7CisgICAgR1JlZlB0cjxHUHRyQXJyYXk+IG1fc3BlbGxDaGVja2luZ0xhbmd1YWdlczsKICAg
ICBib29sIG1fc3BlbGxDaGVja2luZ0VuYWJsZWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDIxMTEz
M2YuLmU5MjMxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC00OTUsMjQgKzQ5NSwyMCBAQCB2b2lkIHdlYmtp
dF93ZWJfY29udGV4dF9zZXRfc3BlbGxfY2hlY2tpbmdfZW5hYmxlZChXZWJLaXRXZWJDb250ZXh0
KiBjb250ZXh0LCBnYgogICogQGNvbnRleHQ6IGEgI1dlYktpdFdlYkNvbnRleHQKICAqCiAgKiBH
ZXQgdGhlIHRoZSBsaXN0IG9mIHNwZWxsIGNoZWNraW5nIGxhbmd1YWdlcyBhc3NvY2lhdGVkIHdp
dGgKLSAqIEBjb250ZXh0IHNlcGFyYXRlZCBieSBjb21tYXMsIG9yICVOVUxMIGlmIG5vIGxhbmd1
YWdlcyBoYXZlIGJlZW4KLSAqIHByZXZpb3VzbHkgc2V0LgotCisgKiBAY29udGV4dCwgb3IgJU5V
TEwgaWYgbm8gbGFuZ3VhZ2VzIGhhdmUgYmVlbiBwcmV2aW91c2x5IHNldC4KKyAqCiAgKiBTZWUg
d2Via2l0X3dlYl9jb250ZXh0X3NldF9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMoKSBmb3IgbW9y
ZQogICogZGV0YWlscyBvbiB0aGUgZm9ybWF0IG9mIHRoZSBsYW5ndWFnZXMgaW4gdGhlIGxpc3Qu
CiAgKgotICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0
IG9mIGxhbmd1YWdlcyBpZgotICogYXZhaWxhYmxlLCBvciAlTlVMTCBvdGhlcndpc2UuCisgKiBS
ZXR1cm5zOiAoYXJyYXkgemVyby10ZXJtaW5hdGVkPTEpIChlbGVtZW50LXR5cGUgdXRmOCkgKHRy
YW5zZmVyIG5vbmUpOiBBICVOVUxMLXRlcm1pbmF0ZWQKKyAqICAgIGFycmF5IG9mIGxhbmd1YWdl
cyBpZiBhdmFpbGFibGUsIG9yICVOVUxMIG90aGVyd2lzZS4KICAqLwotY29uc3QgZ2NoYXIqIHdl
YmtpdF93ZWJfY29udGV4dF9nZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKFdlYktpdFdlYkNv
bnRleHQqIGNvbnRleHQpCitjb25zdCBnY2hhciogY29uc3QqIHdlYmtpdF93ZWJfY29udGV4dF9n
ZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQpCiB7
CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQp
LCAwKTsKIAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQotICAgIENTdHJpbmcgc3BlbGxDaGVja2lu
Z0xhbmd1YWdlcyA9IGNvbnRleHQtPnByaXYtPnRleHRDaGVja2VyLT5nZXRTcGVsbENoZWNraW5n
TGFuZ3VhZ2VzKCk7Ci0gICAgaWYgKHNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMuaXNOdWxsKCkpCi0g
ICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBzcGVsbENoZWNraW5nTGFuZ3VhZ2VzLmRhdGEo
KTsKKyAgICByZXR1cm4gY29udGV4dC0+cHJpdi0+dGV4dENoZWNrZXItPmdldFNwZWxsQ2hlY2tp
bmdMYW5ndWFnZXMoKTsKICNlbHNlCiAgICAgcmV0dXJuIDA7CiAjZW5kaWYKQEAgLTUyMSwxMSAr
NTE3LDEwIEBAIGNvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NwZWxsX2NoZWNr
aW5nX2xhbmd1YWdlcyhXZWJLaXRXZWJDb250ZXh0KiBjCiAvKioKICAqIHdlYmtpdF93ZWJfY29u
dGV4dF9zZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzOgogICogQGNvbnRleHQ6IGEgI1dlYktp
dFdlYkNvbnRleHQKLSAqIEBsYW5ndWFnZXM6IG5ldyBsaXN0IG9mIHNwZWxsIGNoZWNraW5nIGxh
bmd1YWdlcyBzZXBhcmF0ZWQgYnkKLSAqIGNvbW1hcworICogQGxhbmd1YWdlczogKGFycmF5IHpl
cm8tdGVybWluYXRlZD0xKSAodHJhbnNmZXIgbm9uZSk6IGEgJU5VTEwtdGVybWluYXRlZCBsaXN0
IG9mIHNwZWxsIGNoZWNraW5nIGxhbmd1YWdlcwogICoKICAqIFNldCB0aGUgbGlzdCBvZiBzcGVs
bCBjaGVja2luZyBsYW5ndWFnZXMgdG8gYmUgdXNlZCBmb3Igc3BlbGwKLSAqIGNoZWNraW5nLCBz
ZXBhcmF0ZWQgYnkgY29tbWFzLgorICogY2hlY2tpbmcuCiAgKgogICogVGhlIGxvY2FsZSBzdHJp
bmcgdHlwaWNhbGx5IGlzIGluIHRoZSBmb3JtIGxhbmdfQ09VTlRSWSwgd2hlcmUgbGFuZwogICog
aXMgYW4gSVNPLTYzOSBsYW5ndWFnZSBjb2RlLCBhbmQgQ09VTlRSWSBpcyBhbiBJU08tMzE2NiBj
b3VudHJ5IGNvZGUuCkBAIC01MzYsNyArNTMxLDcgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJf
Y29udGV4dF9nZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKFdlYktpdFdlYkNvbnRleHQqIGMK
ICAqIGxlYXN0IG9uY2UgaW4gb3JkZXIgdG8gcHJvcGVybHkgZW5hYmxlIHRoZSBzcGVsbCBjaGVj
a2luZyBmZWF0dXJlCiAgKiBpbiBXZWJLaXQuCiAgKi8KLXZvaWQgd2Via2l0X3dlYl9jb250ZXh0
X3NldF9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwg
Y29uc3QgZ2NoYXIqIGxhbmd1YWdlcykKK3ZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9zcGVs
bF9jaGVja2luZ19sYW5ndWFnZXMoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwgY29uc3QgZ2No
YXIqIGNvbnN0KiBsYW5ndWFnZXMpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
V0VCX0NPTlRFWFQoY29udGV4dCkpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwobGFuZ3VhZ2VzKTsK
QEAgLTU0OSwyMyArNTQ0LDIzIEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9zcGVsbF9j
aGVja2luZ19sYW5ndWFnZXMoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCwKIC8qKgogICogd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzOgogICogQGNvbnRleHQ6IGEg
I1dlYktpdFdlYkNvbnRleHQKLSAqIEBsYW5ndWFnZXM6IChlbGVtZW50LXR5cGUgdXRmOCk6IGEg
I0dMaXN0IG9mIGxhbmd1YWdlIGlkZW50aWZpZXJzCisgKiBAbGFuZ3VhZ2VzOiAoYWxsb3ctbm9u
ZSkgKGFycmF5IHplcm8tdGVybWluYXRlZD0xKSAoZWxlbWVudC10eXBlIHV0ZjgpICh0cmFuc2Zl
ciBub25lKTogYSAlTlVMTC10ZXJtaW5hdGVkIGxpc3Qgb2YgbGFuZ3VhZ2UgaWRlbnRpZmllcnMK
ICAqCiAgKiBTZXQgdGhlIGxpc3Qgb2YgcHJlZmVycmVkIGxhbmd1YWdlcywgc29ydGVkIGZyb20g
bW9zdCBkZXNpcmFibGUKICAqIHRvIGxlYXN0IGRlc2lyYWJsZS4gVGhlIGxpc3Qgd2lsbCBiZSB1
c2VkIHRvIGJ1aWxkIHRoZSAiQWNjZXB0LUxhbmd1YWdlIgogICogaGVhZGVyIHRoYXQgd2lsbCBi
ZSBpbmNsdWRlZCBpbiB0aGUgbmV0d29yayByZXF1ZXN0cyBzdGFydGVkIGJ5CiAgKiB0aGUgI1dl
YktpdFdlYkNvbnRleHQuCiAgKi8KLXZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcmVmZXJy
ZWRfbGFuZ3VhZ2VzKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIEdMaXN0KiBsYW5ndWFnZUxp
c3QpCit2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJlZmVycmVkX2xhbmd1YWdlcyhXZWJL
aXRXZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdCBnY2hhciogY29uc3QqIGxhbmd1YWdlTGlzdCkK
IHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7
CiAKLSAgICBpZiAoIWxhbmd1YWdlTGlzdCkKKyAgICBpZiAoIWxhbmd1YWdlTGlzdCB8fCAhZ19z
dHJ2X2xlbmd0aChjb25zdF9jYXN0PGNoYXIqKj4obGFuZ3VhZ2VMaXN0KSkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKLSAgICBmb3IgKEdMaXN0KiBp
dGVyID0gbGFuZ3VhZ2VMaXN0OyBpdGVyOyBpdGVyID0gZ19saXN0X25leHQoaXRlcikpCi0gICAg
ICAgIGxhbmd1YWdlcy5hcHBlbmQoU3RyaW5nOjpmcm9tVVRGOChzdGF0aWNfY2FzdDxjaGFyKj4o
aXRlci0+ZGF0YSkpLmxvd2VyKCkucmVwbGFjZSgiXyIsICItIikpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBsYW5ndWFnZUxpc3RbaV07ICsraSkKKyAgICAgICAgbGFuZ3VhZ2VzLmFwcGVuZChT
dHJpbmc6OmZyb21VVEY4KGxhbmd1YWdlTGlzdFtpXSkubG93ZXIoKS5yZXBsYWNlKCJfIiwgIi0i
KSk7CiAKICAgICBXZWJDb3JlOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMobGFuZ3Vh
Z2VzKTsKICAgICBXZWJDb3JlOjpsYW5ndWFnZURpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5oCmluZGV4IDNjOTdj
NzEuLmEyYmY1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJDb250ZXh0LmgKQEAgLTE0MCwxNiArMTQwLDE2IEBAIHdlYmtpdF93ZWJfY29u
dGV4dF9nZXRfc3BlbGxfY2hlY2tpbmdfZW5hYmxlZCAgICAgICAoV2ViS2l0V2ViQ29udGV4dAog
V0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2Vu
YWJsZWQgICAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVh
biAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCk7Ci1XRUJLSVRfQVBJIGNvbnN0IGdjaGFy
ICoKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIgKiBjb25zdCAqCiB3ZWJraXRfd2ViX2NvbnRleHRf
Z2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAg
ICAgICAgICpjb250ZXh0KTsKIAogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX2NvbnRleHRf
c2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyAgICAgKFdlYktpdFdlYkNvbnRleHQgICAgICAg
ICAgICAgICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgICAqbGFuZ3VhZ2VzKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgKiBjb25zdCAgICAgICAgICAgKmxhbmd1YWdlcyk7CiAKIFdFQktJVF9BUEkgdm9p
ZAogd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzICAgICAgICAgIChX
ZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpc3QgICAgICAgICAgICAgICAg
ICAgICAgICAgKmxhbmd1YWdlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICogY29uc3QgICAgICAgICAgICpsYW5ndWFn
ZXMpOwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXgg
MjdmNmE1NC4uN2M3MTIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMjEw
LDI2ICsyMTAsNDQgQEAgc3RhdGljIHZvaWQgdGVzdFdlYkNvbnRleHRTcGVsbENoZWNrZXIoVGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBXZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0
ID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0KCk7CiAKICAgICAvLyBDaGVjayB3aGF0
IGhhcHBlbnMgaWYgbm8gc3BlbGwgY2hlY2tpbmcgbGFuZ3VhZ2UgaGFzIGJlZW4gc2V0LgotICAg
IGNvbnN0IGdjaGFyKiBjdXJyZW50TGFuZ3VhZ2UgPSB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Nw
ZWxsX2NoZWNraW5nX2xhbmd1YWdlcyh3ZWJDb250ZXh0KTsKKyAgICBjb25zdCBnY2hhciogY29u
c3QqIGN1cnJlbnRMYW5ndWFnZSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc3BlbGxfY2hlY2tp
bmdfbGFuZ3VhZ2VzKHdlYkNvbnRleHQpOwogICAgIGdfYXNzZXJ0KCFjdXJyZW50TGFuZ3VhZ2Up
OwogCiAgICAgLy8gU2V0IHRoZSBsYW5ndWFnZSB0byBhIHNwZWNpZmljIG9uZS4KLSAgICB3ZWJr
aXRfd2ViX2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyh3ZWJDb250ZXh0LCAi
ZW5fVVMiKTsKKyAgICBHUmVmUHRyPEdQdHJBcnJheT4gbGFuZ3VhZ2VzID0gYWRvcHRHUmVmKGdf
cHRyX2FycmF5X25ldygpKTsKKyAgICBnX3B0cl9hcnJheV9hZGQobGFuZ3VhZ2VzLmdldCgpLCBj
b25zdF9jYXN0PGdwb2ludGVyPihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oImVuX1VTIikpKTsK
KyAgICBnX3B0cl9hcnJheV9hZGQobGFuZ3VhZ2VzLmdldCgpLCAwKTsKKyAgICB3ZWJraXRfd2Vi
X2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyh3ZWJDb250ZXh0LCByZWludGVy
cHJldF9jYXN0PGNvbnN0IGNoYXIqIGNvbnN0Kj4obGFuZ3VhZ2VzLT5wZGF0YSkpOwogICAgIGN1
cnJlbnRMYW5ndWFnZSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc3BlbGxfY2hlY2tpbmdfbGFu
Z3VhZ2VzKHdlYkNvbnRleHQpOwotICAgIGdfYXNzZXJ0X2NtcHN0cihjdXJyZW50TGFuZ3VhZ2Us
ID09LCAiZW5fVVMiKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KGdfc3Rydl9sZW5ndGgoY29uc3Rf
Y2FzdDxjaGFyKio+KGN1cnJlbnRMYW5ndWFnZSkpLCA9PSwgMSk7CisgICAgZ19hc3NlcnRfY21w
c3RyKGN1cnJlbnRMYW5ndWFnZVswXSwgPT0sICJlbl9VUyIpOwogCiAgICAgLy8gU2V0IHRoZSBs
YW5ndWFnZSBzdHJpbmcgdG8gbGlzdCBvZiB2YWxpZCBsYW5ndWFnZXMuCi0gICAgd2Via2l0X3dl
Yl9jb250ZXh0X3NldF9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMod2ViQ29udGV4dCwgImVuX0dC
LGVuX1VTIik7CisgICAgZ19wdHJfYXJyYXlfcmVtb3ZlX2luZGV4X2Zhc3QobGFuZ3VhZ2VzLmdl
dCgpLCBsYW5ndWFnZXMtPmxlbiAtIDEpOworICAgIGdfcHRyX2FycmF5X2FkZChsYW5ndWFnZXMu
Z2V0KCksIGNvbnN0X2Nhc3Q8Z3BvaW50ZXI+KHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPigiZW5f
R0IiKSkpOworICAgIGdfcHRyX2FycmF5X2FkZChsYW5ndWFnZXMuZ2V0KCksIDApOworICAgIHdl
YmtpdF93ZWJfY29udGV4dF9zZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKHdlYkNvbnRleHQs
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhciogY29uc3QqPihsYW5ndWFnZXMtPnBkYXRhKSk7
CiAgICAgY3VycmVudExhbmd1YWdlID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF9zcGVsbF9jaGVj
a2luZ19sYW5ndWFnZXMod2ViQ29udGV4dCk7Ci0gICAgZ19hc3NlcnRfY21wc3RyKGN1cnJlbnRM
YW5ndWFnZSwgPT0sICJlbl9HQixlbl9VUyIpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQoZ19zdHJ2
X2xlbmd0aChjb25zdF9jYXN0PGNoYXIqKj4oY3VycmVudExhbmd1YWdlKSksID09LCAyKTsKKyAg
ICBnX2Fzc2VydF9jbXBzdHIoY3VycmVudExhbmd1YWdlWzBdLCA9PSwgImVuX1VTIik7CisgICAg
Z19hc3NlcnRfY21wc3RyKGN1cnJlbnRMYW5ndWFnZVsxXSwgPT0sICJlbl9HQiIpOwogCiAgICAg
Ly8gVHJ5IHBhc3NpbmcgYSB3cm9uZyBsYW5ndWFnZSBhbG9uZyB3aXRoIGdvb2Qgb25lcy4KLSAg
ICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyh3ZWJDb250
ZXh0LCAiYmRfV1IsZW5fVVMsZW5fR0IiKTsKKyAgICBnX3B0cl9hcnJheV9yZW1vdmVfaW5kZXhf
ZmFzdChsYW5ndWFnZXMuZ2V0KCksIGxhbmd1YWdlcy0+bGVuIC0gMSk7CisgICAgZ19wdHJfYXJy
YXlfYWRkKGxhbmd1YWdlcy5nZXQoKSwgY29uc3RfY2FzdDxncG9pbnRlcj4oc3RhdGljX2Nhc3Q8
Y29uc3Qgdm9pZCo+KCJiZF9XUiIpKSk7CisgICAgZ19wdHJfYXJyYXlfYWRkKGxhbmd1YWdlcy5n
ZXQoKSwgMCk7CisgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9zcGVsbF9jaGVja2luZ19sYW5n
dWFnZXMod2ViQ29udGV4dCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKiBjb25zdCo+KGxh
bmd1YWdlcy0+cGRhdGEpKTsKICAgICBjdXJyZW50TGFuZ3VhZ2UgPSB3ZWJraXRfd2ViX2NvbnRl
eHRfZ2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyh3ZWJDb250ZXh0KTsKLSAgICBnX2Fzc2Vy
dF9jbXBzdHIoY3VycmVudExhbmd1YWdlLCA9PSwgImVuX1VTLGVuX0dCIik7CisgICAgZ19hc3Nl
cnRfY21wdWludChnX3N0cnZfbGVuZ3RoKGNvbnN0X2Nhc3Q8Y2hhcioqPihjdXJyZW50TGFuZ3Vh
Z2UpKSwgPT0sIDIpOworICAgIGdfYXNzZXJ0X2NtcHN0cihjdXJyZW50TGFuZ3VhZ2VbMF0sID09
LCAiZW5fVVMiKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIoY3VycmVudExhbmd1YWdlWzFdLCA9PSwg
ImVuX0dCIik7CiAKICAgICAvLyBUcnkgcGFzc2luZyBhIGxpc3Qgd2l0aCBvbmx5IHdyb25nIGxh
bmd1YWdlcy4KLSAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1
YWdlcyh3ZWJDb250ZXh0LCAiYmRfV1Isd3JfQkQiKTsKKyAgICBsYW5ndWFnZXMgPSBhZG9wdEdS
ZWYoZ19wdHJfYXJyYXlfbmV3KCkpOworICAgIGdfcHRyX2FycmF5X2FkZChsYW5ndWFnZXMuZ2V0
KCksIGNvbnN0X2Nhc3Q8Z3BvaW50ZXI+KHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPigiYmRfV1Ii
KSkpOworICAgIGdfcHRyX2FycmF5X2FkZChsYW5ndWFnZXMuZ2V0KCksIGNvbnN0X2Nhc3Q8Z3Bv
aW50ZXI+KHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPigid3JfQkQiKSkpOworICAgIGdfcHRyX2Fy
cmF5X2FkZChsYW5ndWFnZXMuZ2V0KCksIDApOworICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRf
c3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKHdlYkNvbnRleHQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhciogY29uc3QqPihsYW5ndWFnZXMtPnBkYXRhKSk7CiAgICAgY3VycmVudExhbmd1YWdl
ID0gd2Via2l0X3dlYl9jb250ZXh0X2dldF9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMod2ViQ29u
dGV4dCk7CiAgICAgZ19hc3NlcnQoIWN1cnJlbnRMYW5ndWFnZSk7CiAKQEAgLTI1MCwxMSArMjY4
LDEyIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJDb250ZXh0TGFuZ3VhZ2VzKFdlYlZpZXdUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X2NtcHVpbnQobWFpblJlc291cmNlRGF0
YVNpemUsID09LCBzdHJsZW4oZXhwZWN0ZWREZWZhdWx0TGFuZ3VhZ2UpKTsKICAgICBnX2Fzc2Vy
dCghc3RybmNtcChtYWluUmVzb3VyY2VEYXRhLCBleHBlY3RlZERlZmF1bHRMYW5ndWFnZSwgbWFp
blJlc291cmNlRGF0YVNpemUpKTsKIAotICAgIEdMaXN0KiBsYW5ndWFnZXMgPSBnX2xpc3RfcHJl
cGVuZCgwLCBjb25zdF9jYXN0PGdwb2ludGVyPihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oImRF
IikpKTsKLSAgICBsYW5ndWFnZXMgPSBnX2xpc3RfcHJlcGVuZChsYW5ndWFnZXMsIGNvbnN0X2Nh
c3Q8Z3BvaW50ZXI+KHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPigiRVNfZXMiKSkpOwotICAgIGxh
bmd1YWdlcyA9IGdfbGlzdF9wcmVwZW5kKGxhbmd1YWdlcywgY29uc3RfY2FzdDxncG9pbnRlcj4o
c3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KCJlbiIpKSk7Ci0gICAgd2Via2l0X3dlYl9jb250ZXh0
X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCgp
LCBsYW5ndWFnZXMpOwotICAgIGdfbGlzdF9mcmVlKGxhbmd1YWdlcyk7CisgICAgR1JlZlB0cjxH
UHRyQXJyYXk+IGxhbmd1YWdlcyA9IGFkb3B0R1JlZihnX3B0cl9hcnJheV9uZXcoKSk7CisgICAg
Z19wdHJfYXJyYXlfYWRkKGxhbmd1YWdlcy5nZXQoKSwgY29uc3RfY2FzdDxncG9pbnRlcj4oc3Rh
dGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KCJlbiIpKSk7CisgICAgZ19wdHJfYXJyYXlfYWRkKGxhbmd1
YWdlcy5nZXQoKSwgY29uc3RfY2FzdDxncG9pbnRlcj4oc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+
KCJFU19lcyIpKSk7CisgICAgZ19wdHJfYXJyYXlfYWRkKGxhbmd1YWdlcy5nZXQoKSwgY29uc3Rf
Y2FzdDxncG9pbnRlcj4oc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KCJkRSIpKSk7CisgICAgZ19w
dHJfYXJyYXlfYWRkKGxhbmd1YWdlcy5nZXQoKSwgMCk7CisgICAgd2Via2l0X3dlYl9jb250ZXh0
X3NldF9wcmVmZXJyZWRfbGFuZ3VhZ2VzKHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCgp
LCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqIGNvbnN0Kj4obGFuZ3VhZ2VzLT5wZGF0YSkp
OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4cGVjdGVkTGFuZ3VhZ2VzID0gImVuLCBlcy1l
cztxPTAuOTAsIGRlO3E9MC44MCI7CiAgICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklG
b3JQYXRoKCIvIikuZGF0YSgpKTsK
</data>
<flag name="review"
          id="170299"
          type_id="1"
          status="+"
          setter="alex"
    />
          </attachment>
      

    </bug>

</bugzilla>