<?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>72258</bug_id>
          
          <creation_ts>2011-11-14 05:03:35 -0800</creation_ts>
          <short_desc>[GTK] Implement download support in WebKit2</short_desc>
          <delta_ts>2011-11-15 08:25:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501808</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-11-14 05:03:35 -0800</bug_when>
    <thetext>It&apos;s currently unimplemented in WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501812</commentid>
    <comment_count>1</comment_count>
      <attachid>114921</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-11-14 05:09:02 -0800</bug_when>
    <thetext>Created attachment 114921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502046</commentid>
    <comment_count>2</comment_count>
      <attachid>114921</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-14 10:17:29 -0800</bug_when>
    <thetext>Comment on attachment 114921
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=114921&amp;action=review

Looks good, but I&apos;m not sure the changes in Source/WebKit/gtk/webkit/webkitdownload.cpp are necessary...

&gt; Source/WebKit/gtk/webkit/webkitdownload.cpp:476
&gt; +        webkitDownloadEmitError(download, downloadDestinationError(core(priv-&gt;networkResponse), error-&gt;message));

It It seems like this code is just using the ResourceError to carry the message and the error code to webkitDownloadEmitError. Why not just pass the error code and the message directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502686</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-11-14 23:50:12 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 114921 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114921&amp;action=review
&gt; 
&gt; Looks good, but I&apos;m not sure the changes in Source/WebKit/gtk/webkit/webkitdownload.cpp are necessary...

No, they are not necessary, but since I moved the download errors to WebCore, I think wk1 should use them, so that we avoid having the same translatable strings in two different places.

&gt; &gt; Source/WebKit/gtk/webkit/webkitdownload.cpp:476
&gt; &gt; +        webkitDownloadEmitError(download, downloadDestinationError(core(priv-&gt;networkResponse), error-&gt;message));
&gt; 
&gt; It It seems like this code is just using the ResourceError to carry the message and the error code to webkitDownloadEmitError. Why not just pass the error code and the message directly?

In this case it would be possible, because DestinationError is built with the message, but for other errors we need the ResourceError to get the message from it, for example:

webkitDownloadEmitError(download, downloadCancelledByUserError(core(priv-&gt;networkResponse)));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502924</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-11-15 08:25:14 -0800</bug_when>
    <thetext>Committed r100284: &lt;http://trac.webkit.org/changeset/100284&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114921</attachid>
            <date>2011-11-14 05:09:02 -0800</date>
            <delta_ts>2011-11-14 10:17:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-downloads.diff</filename>
            <type>text/plain</type>
            <size>14899</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMGFjM2RlLi44MThhNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAg
QEAKIDIwMTEtMTEtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBkb3dubG9hZCBzdXBwb3J0IGluIFdlYktpdDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjU4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbW1v
biBkb3dubG9hZCBlcnJvcnMgdG8gRXJyb3JzR3RrLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L0Vycm9yc0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb3dubG9hZE5ldHdvcmtFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpkb3dubG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvd25sb2FkRGVzdGluYXRpb25FcnJvcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0Vycm9yc0d0ay5oOgorCisyMDExLTExLTE0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLiBGaXggbWFrZSBkaXN0
Y2hlY2sgYnVpbGQuCiAKICAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGQgbWlzc2lu
ZyBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2ZjBkZDUxLi5lNDEyN2RkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTEtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBkb3dubG9h
ZCBzdXBwb3J0IGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcyMjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXNlIGVycm9ycyBmcm9tIFdlYkNvcmUgdG8gZW1pdCB0aGUgZXJyb3Igc2ln
bmFscy4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6CisgICAgICAgICh3
ZWJraXREb3dubG9hZEVtaXRFcnJvcik6IEhlbHBlciBmdW5jdGlvbiB0aGF0IGVtaXRzIHRoZSBl
cnJvcgorICAgICAgICBzaWduYWwgZm9yIHRoZSBnaXZlbiBSZXNvdXJjZUVycm9yLgorICAgICAg
ICAod2Via2l0X2Rvd25sb2FkX29wZW5fc3RyZWFtX2Zvcl91cmkpOiBVc2Ugd2Via2l0RG93bmxv
YWRFbWl0RXJyb3IoKS4KKyAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9jYW5jZWwpOiBEaXR0by4K
KyAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9zZXRfZGVzdGluYXRpb25fdXJpKTogRGl0dG8uCisg
ICAgICAgICh3ZWJraXRfZG93bmxvYWRfcmVjZWl2ZWRfZGF0YSk6IERpdHRvLgorICAgICAgICAo
d2Via2l0X2Rvd25sb2FkX2Vycm9yKTogRGl0dG8uCisKIDIwMTEtMTEtMDkgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW0RSVF0gd2luZG93
IGludGVybmFscyBvYmplY3QgaXMgbm90IHJlc2V0IGFmdGVyIGVhY2ggdGVzdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDk5M2QzMzAuLjIxMDYyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMS0x
MS0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS10gSW1wbGVtZW50IGRvd25sb2FkIHN1cHBvcnQgaW4gV2ViS2l0MgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3du
bG9hZFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZENsaWVudDo6RG93bmxvYWRD
bGllbnQpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZENsaWVudDo6ZG93bmxvYWRGYWlsZWQp
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZENsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWRDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpEb3dubG9hZENsaWVudDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkQ2xpZW50Ojp3YXNCbG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRDbGllbnQ6
OmNhbm5vdFNob3dVUkwpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnQpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZDo6c3RhcnRXaXRoSGFuZGxlKToKKyAgICAgICAgKFdlYktp
dDo6RG93bmxvYWQ6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpwbGF0Zm9y
bUludmFsaWRhdGUpOgorCiAyMDExLTExLTE0ICBaYWxhbiBCdWp0YXMgIDx6YnVqdGFzQGdtYWls
LmNvbT4KIAogICAgICAgICBCdWlsZCBicmVha3Mgd2l0aCAtLW5vLWphdmFzY3JpcHQtZGVidWdn
ZXIgLS1uby1pbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9FcnJvcnNHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5j
cHAKaW5kZXggMDJmOWI2My4uODFjYThmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0Vycm9yc0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0Vycm9yc0d0ay5jcHAKQEAgLTY5LDQgKzY5LDIyIEBAIFJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgXygiUGx1Z2luIHdp
bGwgaGFuZGxlIGxvYWQiKSk7CiB9CiAKK1Jlc291cmNlRXJyb3IgZG93bmxvYWROZXR3b3JrRXJy
b3IoY29uc3QgUmVzb3VyY2VFcnJvciYgbmV0d29ya0Vycm9yKQoreworICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JOZXR3b3JrLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtFcnJvci5mYWlsaW5nVVJMKCksIG5ldHdvcmtF
cnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKK30KKworUmVzb3VyY2VFcnJvciBkb3dubG9h
ZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQor
eworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2Fk
RXJyb3JDYW5jZWxsZWRCeVVzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uu
dXJsKCkuc3RyaW5nKCksIF8oIlVzZXIgY2FuY2VsbGVkIHRoZSBkb3dubG9hZCIpKTsKK30KKwor
UmVzb3VyY2VFcnJvciBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIERvd25sb2FkRXJyb3JEZXN0aW5h
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwg
ZXJyb3JNZXNzYWdlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0Vycm9yc0d0ay5oCmluZGV4IDcwMGE3NzAuLjdhOTEwNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9FcnJvcnNHdGsuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvRXJyb3JzR3RrLmgKQEAgLTIwLDYgKzIwLDggQEAKICNpZm5k
ZWYgRXJyb3JzR3RrX2gKICNkZWZpbmUgRXJyb3JzR3RrX2gKIAorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VFcnJvcjsK
QEAgLTI5LDYgKzMxLDcgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNvbnN0IGNoYXIqIGNv
bnN0IGVycm9yRG9tYWluTmV0d29yayA9ICJXZWJLaXROZXR3b3JrRXJyb3IiOwogY29uc3QgY2hh
ciogY29uc3QgZXJyb3JEb21haW5Qb2xpY3kgPSAiV2ViS2l0UG9saWN5RXJyb3IiOwogY29uc3Qg
Y2hhciogY29uc3QgZXJyb3JEb21haW5QbHVnaW4gPSAiV2ViS2l0UGx1Z2luRXJyb3IiOworY29u
c3QgY2hhciogY29uc3QgZXJyb3JEb21haW5Eb3dubG9hZCA9ICJXZWJLaXREb3dubG9hZEVycm9y
IjsKIAogZW51bSBOZXR3b3JrRXJyb3IgewogICAgIE5ldHdvcmtFcnJvckZhaWxlZCA9IDM5OSwK
QEAgLTU2LDYgKzU5LDEyIEBAIGVudW0gUGx1Z2luRXJyb3IgewogICAgIFBsdWdpbkVycm9yV2ls
bEhhbmRsZUxvYWQgPSAyMDQKIH07CiAKK2VudW0gRG93bmxvYWRFcnJvciB7CisgICAgRG93bmxv
YWRFcnJvck5ldHdvcmsgPSA0OTksCisgICAgRG93bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlciA9
IDQwMCwKKyAgICBEb3dubG9hZEVycm9yRGVzdGluYXRpb24gPSA0MDEKK307CisKIFJlc291cmNl
RXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiBSZXNvdXJjZUVy
cm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKIFJlc291cmNlRXJyb3Ig
Y2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwpAQCAtNjMsNiArNzIs
OSBAQCBSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0Jik7CiBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9y
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKIFJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlz
dEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKIFJlc291cmNlRXJyb3IgcGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CitSZXNvdXJjZUVycm9y
IGRvd25sb2FkTmV0d29ya0Vycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKK1Jlc291cmNlRXJy
b3IgZG93bmxvYWRDYW5jZWxsZWRCeVVzZXJFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CitSZXNvdXJjZUVycm9yIGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4IGYyZDcwNmYuLjBjZGU3NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcApAQCAtMjEs
NiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIndlYmtpdGRvd25sb2Fk
LmgiCiAKKyNpbmNsdWRlICJFcnJvcnNHdGsuaCIKICNpbmNsdWRlICJHUmVmUHRyLmgiCiAjaW5j
bHVkZSAiTm9uY29weWFibGUuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAtNDM1
LDYgKzQzNiwyNyBAQCBXZWJLaXREb3dubG9hZCogd2Via2l0X2Rvd25sb2FkX25ld193aXRoX2hh
bmRsZShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgVwogICAgIHJldHVybiBkb3dubG9h
ZDsKIH0KIAorc3RhdGljIHZvaWQgd2Via2l0RG93bmxvYWRFbWl0RXJyb3IoV2ViS2l0RG93bmxv
YWQqIGRvd25sb2FkLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBXZWJLaXRE
b3dubG9hZEVycm9yIGVycm9yQ29kZTsKKyAgICBzd2l0Y2ggKGVycm9yLmVycm9yQ29kZSgpKSB7
CisgICAgY2FzZSBEb3dubG9hZEVycm9yTmV0d29yazoKKyAgICAgICAgZXJyb3JDb2RlID0gV0VC
S0lUX0RPV05MT0FEX0VSUk9SX05FVFdPUks7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRG93
bmxvYWRFcnJvckNhbmNlbGxlZEJ5VXNlcjoKKyAgICAgICAgZXJyb3JDb2RlID0gV0VCS0lUX0RP
V05MT0FEX0VSUk9SX0NBTkNFTExFRF9CWV9VU0VSOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbjoKKyAgICAgICAgZXJyb3JDb2RlID0gV0VCS0lUX0RP
V05MT0FEX0VSUk9SX0RFU1RJTkFUSU9OOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgIH0KKworICAgIGdib29sZWFuIGhh
bmRsZWQ7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGRvd25sb2FkLCAiZXJyb3IiLCAwLCBl
cnJvckNvZGUsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSwgJmhh
bmRsZWQpOworfQorCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2Rvd25sb2FkX29wZW5fc3RyZWFt
X2Zvcl91cmkoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBjb25zdCBnY2hhciogdXJpLCBnYm9v
bGVhbiBhcHBlbmQ9RkFMU0UpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXJpLCBGQUxT
RSk7CkBAIC00NTEsOCArNDczLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb3dubG9hZF9v
cGVuX3N0cmVhbV9mb3JfdXJpKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCwgY28KICAgICBnX29i
amVjdF91bnJlZihmaWxlKTsKIAogICAgIGlmIChlcnJvcikgewotICAgICAgICBnYm9vbGVhbiBo
YW5kbGVkOwotICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoZG93bmxvYWQsICJlcnJvciIs
IDAsIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ERVNUSU5BVElPTiwgZXJyb3ItPm1lc3NhZ2UsICZo
YW5kbGVkKTsKKyAgICAgICAgd2Via2l0RG93bmxvYWRFbWl0RXJyb3IoZG93bmxvYWQsIGRvd25s
b2FkRGVzdGluYXRpb25FcnJvcihjb3JlKHByaXYtPm5ldHdvcmtSZXNwb25zZSksIGVycm9yLT5t
ZXNzYWdlKSk7CiAgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CiAgICAgICAgIHJldHVybiBG
QUxTRTsKICAgICB9CkBAIC01MzAsOSArNTUxLDcgQEAgdm9pZCB3ZWJraXRfZG93bmxvYWRfY2Fu
Y2VsKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKICAgICAgICAgcHJpdi0+cmVzb3VyY2VIYW5k
bGUtPmNhbmNlbCgpOwogCiAgICAgd2Via2l0X2Rvd25sb2FkX3NldF9zdGF0dXMoZG93bmxvYWQs
IFdFQktJVF9ET1dOTE9BRF9TVEFUVVNfQ0FOQ0VMTEVEKTsKLQotICAgIGdib29sZWFuIGhhbmRs
ZWQ7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGRvd25sb2FkLCAiZXJyb3IiLCAwLCBXRUJL
SVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVIsIF8oIlVzZXIgY2FuY2VsbGVkIHRo
ZSBkb3dubG9hZCIpLCAmaGFuZGxlZCk7CisgICAgd2Via2l0RG93bmxvYWRFbWl0RXJyb3IoZG93
bmxvYWQsIGRvd25sb2FkQ2FuY2VsbGVkQnlVc2VyRXJyb3IoY29yZShwcml2LT5uZXR3b3JrUmVz
cG9uc2UpKSk7CiB9CiAKIC8qKgpAQCAtNjk2LDggKzcxNSw3IEBAIHZvaWQgd2Via2l0X2Rvd25s
b2FkX3NldF9kZXN0aW5hdGlvbl91cmkoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBjb25zdCBn
Y2hhcioKICAgICAgICAgcHJpdi0+ZGVzdGluYXRpb25VUkkgPSBnX3N0cmR1cChkZXN0aW5hdGlv
bl91cmkpOwogCiAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgZ2Jvb2xlYW4gaGFu
ZGxlZDsKLSAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShkb3dubG9hZCwgImVycm9y
IiwgMCwgV0VCS0lUX0RPV05MT0FEX0VSUk9SX0RFU1RJTkFUSU9OLCBlcnJvci0+bWVzc2FnZSwg
JmhhbmRsZWQpOworICAgICAgICAgICAgd2Via2l0RG93bmxvYWRFbWl0RXJyb3IoZG93bmxvYWQs
IGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb3JlKHByaXYtPm5ldHdvcmtSZXNwb25zZSksIGVy
cm9yLT5tZXNzYWdlKSk7CiAgICAgICAgICAgICBnX2Vycm9yX2ZyZWUoZXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC04NTYsOCArODc0LDcgQEAgc3RhdGljIHZvaWQg
d2Via2l0X2Rvd25sb2FkX3JlY2VpdmVkX2RhdGEoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBj
b25zdCBnY2hhcioKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGxlbmd0aCwg
JmJ5dGVzX3dyaXR0ZW4sIE5VTEwsICZlcnJvcik7CiAKICAgICBpZiAoZXJyb3IpIHsKLSAgICAg
ICAgZ2Jvb2xlYW4gaGFuZGxlZDsKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGRvd25s
b2FkLCAiZXJyb3IiLCAwLCBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04sIGVycm9y
LT5tZXNzYWdlLCAmaGFuZGxlZCk7CisgICAgICAgIHdlYmtpdERvd25sb2FkRW1pdEVycm9yKGRv
d25sb2FkLCBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29yZShwcml2LT5uZXR3b3JrUmVzcG9u
c2UpLCBlcnJvci0+bWVzc2FnZSkpOwogICAgICAgICBnX2Vycm9yX2ZyZWUoZXJyb3IpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtOTEyLDkgKzkyOSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9kb3dubG9hZF9lcnJvcihXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNl
RXJyb3ImCiAKICAgICBnX3RpbWVyX3N0b3AocHJpdi0+dGltZXIpOwogICAgIHdlYmtpdF9kb3du
bG9hZF9zZXRfc3RhdHVzKGRvd25sb2FkLCBXRUJLSVRfRE9XTkxPQURfU1RBVFVTX0VSUk9SKTsK
LQotICAgIGdib29sZWFuIGhhbmRsZWQ7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGRvd25s
b2FkLCAiZXJyb3IiLCAwLCBXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSywgZXJyb3IubG9j
YWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpLCAmaGFuZGxlZCk7CisgICAgd2Via2l0
RG93bmxvYWRFbWl0RXJyb3IoZG93bmxvYWQsIGRvd25sb2FkTmV0d29ya0Vycm9yKGVycm9yKSk7
CiB9CiAKIERvd25sb2FkQ2xpZW50OjpEb3dubG9hZENsaWVudChXZWJLaXREb3dubG9hZCogZG93
bmxvYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
aAppbmRleCBjMDY2ZTJmLi43ZTcxYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkLmgKQEAgLTM4LDYgKzM4LDExIEBAIE9CSkNfQ0xBU1MgTlNV
UkxEb3dubG9hZDsKIE9CSkNfQ0xBU1MgV0tEb3dubG9hZEFzRGVsZWdhdGU7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgorI2VuZGlmCisKICNpZiBV
U0UoQ0ZORVRXT1JLKQogI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTERvd25sb2FkUHJpdi5oPgog
I2VuZGlmCkBAIC0xMzcsNiArMTQyLDEwIEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oUVQpCiAg
ICAgUXRGaWxlRG93bmxvYWRlciogbV9xdERvd25sb2FkZXI7CiAjZW5kaWYKKyNpZiBQTEFURk9S
TShHVEspCisgICAgT3duUHRyPFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50PiBtX2Rvd25s
b2FkQ2xpZW50OworICAgIFJlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZT4gbV9yZXNvdXJj
ZUhhbmRsZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291
cC5jcHAKaW5kZXggYTIyODkxNi4uMjM5MzIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Eb3dubG9hZHMvc291cC9Eb3dubG9hZFNvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcApAQCAtMjcs
MzAgKzI3LDEzMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRvd25sb2FkLmgi
CiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNH
dGsuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8Z2lv
L2dpby5oPgorI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CisjaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgRG93bmxvYWRDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VI
YW5kbGVDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERvd25sb2FkQ2xpZW50KTsK
K3B1YmxpYzoKKyAgICBEb3dubG9hZENsaWVudChEb3dubG9hZCogZG93bmxvYWQpCisgICAgICAg
IDogbV9kb3dubG9hZChkb3dubG9hZCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBkb3dubG9h
ZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKKyAgICB7CisgICAgICAgIG1fZG93
bmxvYWQtPmRpZEZhaWwoZXJyb3IsIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoKSk7CisgICAgfQor
CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKKyAgICB7CisgICAgICAgIFN0cmluZyBzdWdnZXN0ZWRG
aWxlbmFtZSA9IHJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCk7CisgICAgICAgIGlmIChzdWdn
ZXN0ZWRGaWxlbmFtZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIEtVUkwgdXJsID0gcmVzcG9u
c2UudXJsKCk7CisgICAgICAgICAgICB1cmwuc2V0UXVlcnkoU3RyaW5nKCkpOworICAgICAgICAg
ICAgdXJsLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOworICAgICAgICAgICAgc3VnZ2VzdGVk
RmlsZW5hbWUgPSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXModXJsLmxhc3RQYXRoQ29tcG9uZW50
KCkpOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvdmVyd3JpdGU7CisgICAgICAgIFN0cmlu
ZyBmaWxlbmFtZSA9IG1fZG93bmxvYWQtPmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lKHN1Z2dlc3RlZEZpbGVuYW1lLnV0ZjgoKS5kYXRhKCksIG92ZXJ3cml0ZSk7CisgICAg
ICAgIGlmIChmaWxlbmFtZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGRvd25sb2FkRmFpbGVk
KGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihyZXNwb25zZSwgXygiQ2Fubm90IGRldGVybWluZSBk
ZXN0aW5hdGlvbiBmaWxlbmFtZSIpKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBHUmVmUHRyPEdGaWxlPiBmaWxlKGdfZmlsZV9uZXdfZm9yX3BhdGgoZmlsZW5h
bWUudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CisgICAg
ICAgIG1fb3V0cHV0U3RyZWFtID0gYWRvcHRHUmVmKGdfZmlsZV9yZXBsYWNlKGZpbGUuZ2V0KCks
IDAsIFRSVUUsIEdfRklMRV9DUkVBVEVfTk9ORSwgMCwgJmVycm9yLm91dFB0cigpKSk7CisgICAg
ICAgIGlmICghbV9vdXRwdXRTdHJlYW0pIHsKKyAgICAgICAgICAgIGRvd25sb2FkRmFpbGVkKGRv
d25sb2FkRGVzdGluYXRpb25FcnJvcihyZXNwb25zZSwgZXJyb3ItPm1lc3NhZ2UpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1fcmVzcG9uc2UgPSBhZG9wdEdS
ZWYocmVzcG9uc2UudG9Tb3VwTWVzc2FnZSgpKTsKKyAgICAgICAgbV9kb3dubG9hZC0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRh
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgaW50IC8qZW5j
b2RlZERhdGFMZW5ndGgqLykKKyAgICB7CisgICAgICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAg
ICAgICAgR093blB0cjxHRXJyb3I+IGVycm9yOworICAgICAgICBnX291dHB1dF9zdHJlYW1fd3Jp
dGVfYWxsKEdfT1VUUFVUX1NUUkVBTShtX291dHB1dFN0cmVhbS5nZXQoKSksIGRhdGEsIGxlbmd0
aCwgJmJ5dGVzV3JpdHRlbiwgMCwgJmVycm9yLm91dFB0cigpKTsKKyAgICAgICAgaWYgKGVycm9y
KSB7CisgICAgICAgICAgICBkb3dubG9hZEZhaWxlZChkb3dubG9hZERlc3RpbmF0aW9uRXJyb3Io
UmVzb3VyY2VSZXNwb25zZShtX3Jlc3BvbnNlLmdldCgpKSwgZXJyb3ItPm1lc3NhZ2UpKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2Rvd25sb2FkLT5kaWRSZWNl
aXZlRGF0YShieXRlc1dyaXR0ZW4pOworICAgIH0KKworICAgIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKKyAgICB7CisgICAgICAgIG1fb3V0cHV0U3RyZWFt
ID0gMDsKKyAgICAgICAgbV9kb3dubG9hZC0+ZGlkRmluaXNoKCk7CisgICAgfQorCisgICAgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCisg
ICAgeworICAgICAgICBkb3dubG9hZEZhaWxlZChkb3dubG9hZE5ldHdvcmtFcnJvcihlcnJvcikp
OworICAgIH0KKworICAgIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopCisgICAgewor
ICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KKworICAgIHZvaWQgY2Fubm90U2hvd1VS
TChSZXNvdXJjZUhhbmRsZSopCisgICAgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IH0KKworICAgIERvd25sb2FkKiBtX2Rvd25sb2FkOworICAgIEdSZWZQdHI8R0ZpbGVPdXRwdXRT
dHJlYW0+IG1fb3V0cHV0U3RyZWFtOworICAgIEdSZWZQdHI8U291cE1lc3NhZ2U+IG1fcmVzcG9u
c2U7Cit9OworCiB2b2lkIERvd25sb2FkOjpzdGFydChXZWJQYWdlKiBpbml0aWF0aW5nV2ViUGFn
ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChtX2Rvd25sb2FkQ2xpZW50
KTsKKyAgICBBU1NFUlQobV9yZXNvdXJjZUhhbmRsZSk7CisgICAgbV9kb3dubG9hZENsaWVudCA9
IGFkb3B0UHRyKG5ldyBEb3dubG9hZENsaWVudCh0aGlzKSk7CisgICAgbV9yZXNvdXJjZUhhbmRs
ZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoMCwgbV9yZXF1ZXN0LCBtX2Rvd25sb2FkQ2xpZW50
LmdldCgpLCBmYWxzZSwgZmFsc2UpOworICAgIGRpZFN0YXJ0KCk7CiB9CiAKLXZvaWQgRG93bmxv
YWQ6OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0aWF0aW5nUGFnZSwgUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGluaXRpYWxSZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJikKK3ZvaWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShXZWJQYWdlKiBpbml0
aWF0aW5nUGFnZSwgUmVzb3VyY2VIYW5kbGUqIHJlc291cmNlSGFuZGxlLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIGluaXRpYWxSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVChtX2Rvd25sb2FkQ2xpZW50KTsKKyAgICBB
U1NFUlQobV9yZXNvdXJjZUhhbmRsZSk7CisgICAgbV9kb3dubG9hZENsaWVudCA9IGFkb3B0UHRy
KG5ldyBEb3dubG9hZENsaWVudCh0aGlzKSk7CisgICAgcmVzb3VyY2VIYW5kbGUtPnNldENsaWVu
dChtX2Rvd25sb2FkQ2xpZW50LmdldCgpKTsKKyAgICBtX3Jlc291cmNlSGFuZGxlID0gcmVzb3Vy
Y2VIYW5kbGU7CisgICAgZGlkU3RhcnQoKTsKIH0KIAogdm9pZCBEb3dubG9hZDo6Y2FuY2VsKCkK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICghbV9yZXNvdXJjZUhhbmRsZSkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fcmVzb3VyY2VIYW5kbGUtPmNhbmNlbCgpOworICAgIGRpZENh
bmNlbChDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKCkpOwogfQogCiB2b2lkIERvd25sb2FkOjpwbGF0
Zm9ybUludmFsaWRhdGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9kb3dubG9h
ZENsaWVudC5yZWxlYXNlKCk7CisgICAgbV9yZXNvdXJjZUhhbmRsZSA9IDA7CiB9CiAKIHZvaWQg
RG93bmxvYWQ6OmRpZERlY2lkZURlc3RpbmF0aW9uKGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb24s
IGJvb2wgYWxsb3dPdmVyd3JpdGUpCg==
</data>
<flag name="review"
          id="113697"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>