<?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>18676</bug_id>
          
          <creation_ts>2008-04-22 00:33:06 -0700</creation_ts>
          <short_desc>Plug-In API Proposal: Enable plugins to receive response body when an HTTP error occurs</short_desc>
          <delta_ts>2013-07-21 21:30:16 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimcho Balev">dbalev</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>marc.ordinasillopis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>78516</commentid>
    <comment_count>0</comment_count>
    <who name="Dimcho Balev">dbalev</who>
    <bug_when>2008-04-22 00:33:06 -0700</bug_when>
    <thetext>Many flash developers have continuously asked Adobe for several HTTP related changes in the flash player. They really need:

1. Access to the HTTP status code
2. Access to the HTTP response headers
3. Access to the HTTP body even when the http request is unsuccessful

Response headers and status codes (1 &amp; 2) are already available (in up-to-date browsers) via the NPStream struct passed to NPP_NewStream.

The only missing part is the HTTP bodies (3) on failed http requests.

I have filed similar bug for Firefox:

https://bugzilla.mozilla.org/show_bug.cgi?id=347805

The difference between FireFox and Safari is that on http error Safari still sends NPN_NewStream to the plugin and it is possible to retrieve the http status code. As with Firefox, Safari does not send NPP_Write and thus prevents the plugin of receiving the http body.


Here is the proposal that should solve this issue while remaining compatible with older code:

In the cases of http errors the browser should asks the plugin if it is interested in receiving the body of failed request - it should  call NPP_GetValue with new enum called NPPVpluginWantsHTTPFailStreams = 17. If the plugin does not understand what the browser is asking or if the plugin is not interested everything will work as before. In the other case the browser should send NPP_NewStream, NPP_WriteReady, NPP_Write, and NPP_DestroyStream as it does for urls that return 200 OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78517</commentid>
    <comment_count>1</comment_count>
      <attachid>20745</attachid>
    <who name="Dimcho Balev">dbalev</who>
    <bug_when>2008-04-22 00:39:59 -0700</bug_when>
    <thetext>Created attachment 20745
First crude patch (mac only)

This is my first patch. I realize that it is Mac only and will break the windows build. I am also no sure if it modifies the right classes. I just wanted to have something concrete that will help having more focused  discussions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78597</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-04-22 17:03:32 -0700</bug_when>
    <thetext>The approach looks good and should work well on both Windows and Mac.

The patch does violate the Web Kit style guidelines described on http://webkit.org/coding/coding-style.html but other than that I think it is a great idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81896</commentid>
    <comment_count>3</comment_count>
      <attachid>21423</attachid>
    <who name="Dimcho Balev">dbalev</who>
    <bug_when>2008-05-29 16:50:52 -0700</bug_when>
    <thetext>Created attachment 21423
Updated the patch with new constant name and value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85999</commentid>
    <comment_count>4</comment_count>
      <attachid>22298</attachid>
    <who name="Dimcho Balev">dbalev</who>
    <bug_when>2008-07-15 18:59:25 -0700</bug_when>
    <thetext>Created attachment 22298
Fixed a bug about missing http status line. Added Windows/Linux code

- This patch includes the corresponding code for Windows/Linux that was absent from the previous patches (they updated the Mac version only).
- I also added a fix for windows specific bug about missing http status line from the http headers that webkit passes to the plugins.
- Some minor format changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87194</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-07-28 12:21:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/6106578&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87195</commentid>
    <comment_count>6</comment_count>
      <attachid>22298</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-07-28 12:24:47 -0700</bug_when>
    <thetext>Comment on attachment 22298
Fixed a bug about missing http status line. Added Windows/Linux code

Looks great. I&apos;ve committed it with a few tweaks. I haven&apos;t committed the Windows parts but that&apos;s next. 

(I didn&apos;t commit the header changes. Could you please file a new bug for that?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87225</commentid>
    <comment_count>7</comment_count>
    <who name="Dimcho Balev">dbalev</who>
    <bug_when>2008-07-28 14:59:34 -0700</bug_when>
    <thetext>Logged a separate bug for the missing status line on windows: Bug 20202</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87235</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-07-28 17:38:32 -0700</bug_when>
    <thetext>Committed revision 35417.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20745</attachid>
            <date>2008-04-22 00:39:59 -0700</date>
            <delta_ts>2008-05-29 16:51:09 -0700</delta_ts>
            <desc>First crude patch (mac only)</desc>
            <filename>my_first_patch.txt</filename>
            <type>text/plain</type>
            <size>5734</size>
            <attacher name="Dimcho Balev">dbalev</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlk
Z2UvbnBhcGkuaAkocmV2aXNpb24gMzIzNjMpCisrKyBXZWJDb3JlL2JyaWRnZS9ucGFwaS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMzIsNiArMzMyLDkgQEAgdHlwZWRlZiBlbnVtIHsKICAgICAgKiBO
UE5fTWVtQWxsb2MoKSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBzdHJpbmcgZGF0YS4KICAg
ICAgKi8KICAgICBOUFBWZm9ybVZhbHVlID0gMTYsICAgIC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBX
ZWJLaXQgKi8KKworCU5QUFZwbHVnaW5XYW50c0ZhaWxIVFRQU3RyZWFtcyA9IDE3LAkKKwogI2lm
ZGVmIFhQX01BQ09TWAogICAgIC8qIFVzZWQgZm9yIG5lZ290aWF0aW5nIGRyYXdpbmcgbW9kZWxz
ICovCiAgICAgTlBQVnBsdWdpbkRyYXdpbmdNb2RlbCA9IDEwMDAKSW5kZXg6IFdlYkNvcmUvbG9h
ZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAJKHJldmlzaW9uIDMyMzYzKQor
KysgV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Niw4ICs3NiwxNCBAQCB2b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
OjpkaWRSZWNlCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYg
KHJlc3BvbnNlLmlzSFRUUCgpICYmIChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpIDwgMTAwIHx8
IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSkKLSAgICAgICAgZGlkQ2FuY2VsKGZy
YW1lTG9hZGVyKCktPmZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSkpOworICAgIGlmIChy
ZXNwb25zZS5pc0hUVFAoKSkKKwl7CisJCWlmICghbV9jbGllbnQtPlBsdWdpbldhbnRzRmFpbGVk
U3RyZWFtKCkpCisJCXsKKwkJCWlmICgocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA8IDEwMCB8
fCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkpCisJCQkJZGlkQ2FuY2VsKGZyYW1l
TG9hZGVyKCktPmZpbGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSkpOworCQl9CisJfQogfQog
CiB2b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxvbmcgbGVuZ3RoUmVjZWl2ZWQsIGJvb2wgYWxs
QXRPbmNlKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5oCShyZXZpc2lvbiAzMjM2MykKKysrIFdlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsKE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIqKSB7IH0KKyAgICAgICAgdmlydHVhbCBib29sIFBsdWdpbldh
bnRzRmFpbGVkU3RyZWFtKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB9OwogCiAgICAgY2xhc3Mg
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIgOiBwdWJsaWMgUmVzb3VyY2VMb2FkZXIgewpJbmRl
eDogV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblN0cmVhbS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5TdHJlYW0u
aAkocmV2aXNpb24gMzIzNjMpCisrKyBXZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBl
UGx1Z2luU3RyZWFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAKICAgICBOUFBf
V3JpdGVSZWFkeVByb2NQdHIgTlBQX1dyaXRlUmVhZHk7CiAgICAgTlBQX1dyaXRlUHJvY1B0ciBO
UFBfV3JpdGU7CiAgICAgTlBQX1VSTE5vdGlmeVByb2NQdHIgTlBQX1VSTE5vdGlmeTsKKyAgICBO
UFBfR2V0VmFsdWVQcm9jUHRyIE5QUF9HZXRWYWx1ZTsKIH0KIAogKyAoTlBQKW93bmVyRm9yU3Ry
ZWFtOihOUFN0cmVhbSAqKXN0cmVhbTsKQEAgLTkwLDUgKzkxLDYgQEAKIC8vIFRoaXMgbWV0aG9k
IGlzIG92ZXJyaWRlbiBieSBzdWJjbGFzc2VzLgogLSAodm9pZCljYW5jZWxMb2FkV2l0aEVycm9y
OihOU0Vycm9yICopZXJyb3I7CiAKKy0gKEJPT0wpIFBsdWdpbldhbnRzRmFpbGVkU3RyZWFtOyAK
IEBlbmQKICNlbmRpZgpJbmRleDogV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBs
dWdpblN0cmVhbS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5l
dHNjYXBlUGx1Z2luU3RyZWFtLm1tCShyZXZpc2lvbiAzMjM2MykKKysrIFdlYktpdC9tYWMvUGx1
Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0JKHdvcmtpbmcgY29weSkKQEAgLTIw
Niw2ICsyMDYsNyBAQCBzdGF0aWMgU3RyZWFtTWFwJiBzdHJlYW1zKCkKICAgICAgICAgTlBQX1N0
cmVhbUFzRmlsZSA9IFtwbHVnaW5QYWNrYWdlIE5QUF9TdHJlYW1Bc0ZpbGVdOwogICAgICAgICBO
UFBfRGVzdHJveVN0cmVhbSA9IFtwbHVnaW5QYWNrYWdlIE5QUF9EZXN0cm95U3RyZWFtXTsKICAg
ICAgICAgTlBQX1VSTE5vdGlmeSA9IFtwbHVnaW5QYWNrYWdlIE5QUF9VUkxOb3RpZnldOworICAg
ICAgICBOUFBfR2V0VmFsdWUgPSBbcGx1Z2luUGFja2FnZSBOUFBfR2V0VmFsdWVdOwkJCiAgICAg
fSBlbHNlIHsKICAgICAgICAgV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyAqdmlldyA9IHBsdWdp
blZpZXc7CiAKQEAgLTIxNiw2ICsyMTcsNyBAQCBzdGF0aWMgU3RyZWFtTWFwJiBzdHJlYW1zKCkK
ICAgICAgICAgTlBQX1N0cmVhbUFzRmlsZSA9IE5VTEw7CiAgICAgICAgIE5QUF9EZXN0cm95U3Ry
ZWFtID0gTlVMTDsKICAgICAgICAgTlBQX1VSTE5vdGlmeSA9IE5VTEw7CisgICAgICAgIE5QUF9H
ZXRWYWx1ZSA9IE5VTEw7CiAgICAgICAgIHBsdWdpblZpZXcgPSBuaWw7CiAKICAgICAgICAgW3Zp
ZXcgZGlzY29ubmVjdFN0cmVhbTpzZWxmXTsKQEAgLTM1NSw2ICszNTcsMjMgQEAgc3RhdGljIFN0
cmVhbU1hcCYgc3RyZWFtcygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczp0aGVI
ZWFkZXJzXTsKIH0KIAorLSAoQk9PTCkgUGx1Z2luV2FudHNGYWlsZWRTdHJlYW0KK3sKKyAgICBC
T09MIHJlc3VsdCA9IEZBTFNFOworICAgIAorICAgIGlmKE5QUF9HZXRWYWx1ZSkgCisgICAgeyAg
IAorICAgICAgICBOUE9iamVjdCAqdmFsdWUgPSBOVUxMOworICAgICAgICBOUEVycm9yIGVycm9y
OyAgICAgICAgCisgICAgICAgICAKKyAgICAgICAgZXJyb3IgPSBOUFBfR2V0VmFsdWUocGx1Z2lu
LCBOUFBWcGx1Z2luV2FudHNGYWlsSFRUUFN0cmVhbXMsICZ2YWx1ZSk7CisJCQorCQlyZXN1bHQg
PSAodmFsdWUgIT0gTlVMTCk7CisgICAgfQorICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9Cisg
CiAtICh2b2lkKV9kZXN0cm95U3RyZWFtCiB7CiAgICAgaWYgKGlzVGVybWluYXRlZCkKSW5kZXg6
IFdlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnSW5TdHJlYW1Mb2FkZXJEZWxlZ2F0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnSW5TdHJlYW1Mb2FkZXJEZWxlZ2F0
ZS5oCShyZXZpc2lvbiAzMjM2MykKKysrIFdlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnSW5TdHJl
YW1Mb2FkZXJEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw0ICs0Myw1IEBACiAtICh2
b2lkKXJlY2VpdmVkRGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZvaWQpZmluaXNoZWRMb2FkaW5n
OwogCistIChCT09MKSBQbHVnaW5XYW50c0ZhaWxlZFN0cmVhbTsKIEBlbmQKSW5kZXg6IFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDMyMzYzKQorKysgV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoV2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIqLCBjb25zdCBj
aGFyKiwgaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJDb3JlOjpOZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlciopOworICAgIHZpcnR1YWwgYm9vbCBQbHVnaW5XYW50c0ZhaWxlZFN0cmVhbSgpOwog
CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxQbHVnSW5TdHJlYW1Mb2FkZXJEZWxlZ2F0ZT4gbV9z
dHJlYW07CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDMy
MzYzKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTUsMyArNTUsMTAgQEAgdm9pZCBX
ZWJOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudAogICAgIFttX3N0cmVhbS5nZXQoKSBm
aW5pc2hlZExvYWRpbmddOwogICAgIG1fc3RyZWFtID0gMDsKIH0KKworYm9vbCBXZWJOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudDo6UGx1Z2luV2FudHNGYWlsZWRTdHJlYW0oKSAKK3sg
CisgICAgYm9vbCByZXN1bHQgPSBbbV9zdHJlYW0uZ2V0KCkgUGx1Z2luV2FudHNGYWlsZWRTdHJl
YW1dOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21423</attachid>
            <date>2008-05-29 16:50:52 -0700</date>
            <delta_ts>2008-07-15 18:59:25 -0700</delta_ts>
            <desc>Updated the patch with new constant name and value</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>5911</size>
            <attacher name="Dimcho Balev">dbalev</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlk
Z2UvbnBhcGkuaAkocmV2aXNpb24gMzIzNjMpCisrKyBXZWJDb3JlL2JyaWRnZS9ucGFwaS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMzIsNiArMzMyLDE0IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgICog
TlBOX01lbUFsbG9jKCkgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgc3RyaW5nIGRhdGEuCiAg
ICAgICovCiAgICAgTlBQVmZvcm1WYWx1ZSA9IDE2LCAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4g
V2ViS2l0ICovCisJCisJTlBQVnBsdWdpblVybFJlcXVlc3RzRGlzcGxheWVkQm9vbCA9IDE3LAor
CQorCS8qIENoZWNrcyBpZiB0aGUgcGx1Z2luIGlzIGludGVyZXN0ZWQgaW4gcmVjZWl2aW5nIHRo
ZSBodHRwIGJvZHkgb2YKKwkgKiBmYWlsZWQgaHR0cCByZXF1ZXN0cyAoaHR0cCBzdGF0dXMgIT0g
MjAwKS4KKwkgKi8KKwlOUFBWcGx1Z2luV2FudHNBbGxOZXR3b3JrU3RyZWFtcyA9IDE4LAkKKwkK
ICNpZmRlZiBYUF9NQUNPU1gKICAgICAvKiBVc2VkIGZvciBuZWdvdGlhdGluZyBkcmF3aW5nIG1v
ZGVscyAqLwogICAgIE5QUFZwbHVnaW5EcmF3aW5nTW9kZWwgPSAxMDAwCkluZGV4OiBXZWJDb3Jl
L2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCShyZXZpc2lvbiAzMjM2
MykKKysrIFdlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzYsOCArNzYsMTQgQEAgdm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlcjo6ZGlkUmVjZQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChyZXNwb25zZS5pc0hUVFAoKSAmJiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA8IDEw
MCB8fCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkpCi0gICAgICAgIGRpZENhbmNl
bChmcmFtZUxvYWRlcigpLT5maWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKKyAgICBp
ZiAocmVzcG9uc2UuaXNIVFRQKCkpCisJeworCQlpZiAoIW1fY2xpZW50LT5QbHVnaW5XYW50c0Zh
aWxlZFN0cmVhbSgpKQorCQl7CisJCQlpZiAoKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPCAx
MDAgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApKQorCQkJCWRpZENhbmNlbChm
cmFtZUxvYWRlcigpLT5maWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKKwkJfQorCX0K
IH0KIAogdm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29u
c3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGxlbmd0aFJlY2VpdmVkLCBib29s
IGFsbEF0T25jZSkKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuaAkocmV2aXNpb24gMzIzNjMpCisrKyBXZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKE5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyKiwgY29uc3QgY2hhciosIGludCkgPSAwOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbChOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciosIGNvbnN0IFJlc291
cmNlRXJyb3ImKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKikgeyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBQbHVn
aW5XYW50c0ZhaWxlZFN0cmVhbSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgfTsKIAogICAgIGNs
YXNzIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyIDogcHVibGljIFJlc291cmNlTG9hZGVyIHsK
SW5kZXg6IFdlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luU3Ry
ZWFtLmgJKHJldmlzaW9uIDMyMzYzKQorKysgV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBACiAgICAg
TlBQX1dyaXRlUmVhZHlQcm9jUHRyIE5QUF9Xcml0ZVJlYWR5OwogICAgIE5QUF9Xcml0ZVByb2NQ
dHIgTlBQX1dyaXRlOwogICAgIE5QUF9VUkxOb3RpZnlQcm9jUHRyIE5QUF9VUkxOb3RpZnk7Cisg
ICAgTlBQX0dldFZhbHVlUHJvY1B0ciBOUFBfR2V0VmFsdWU7CiB9CiAKICsgKE5QUClvd25lckZv
clN0cmVhbTooTlBTdHJlYW0gKilzdHJlYW07CkBAIC05MCw1ICs5MSw2IEBACiAvLyBUaGlzIG1l
dGhvZCBpcyBvdmVycmlkZW4gYnkgc3ViY2xhc3Nlcy4KIC0gKHZvaWQpY2FuY2VsTG9hZFdpdGhF
cnJvcjooTlNFcnJvciAqKWVycm9yOwogCistIChCT09MKSBQbHVnaW5XYW50c0ZhaWxlZFN0cmVh
bTsgCiBAZW5kCiAjZW5kaWYKSW5kZXg6IFdlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2Nh
cGVQbHVnaW5TdHJlYW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJh
c2VOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQkocmV2aXNpb24gMzIzNjMpCisrKyBXZWJLaXQvbWFj
L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDYsNiArMjA2LDcgQEAgc3RhdGljIFN0cmVhbU1hcCYgc3RyZWFtcygpCiAgICAgICAgIE5Q
UF9TdHJlYW1Bc0ZpbGUgPSBbcGx1Z2luUGFja2FnZSBOUFBfU3RyZWFtQXNGaWxlXTsKICAgICAg
ICAgTlBQX0Rlc3Ryb3lTdHJlYW0gPSBbcGx1Z2luUGFja2FnZSBOUFBfRGVzdHJveVN0cmVhbV07
CiAgICAgICAgIE5QUF9VUkxOb3RpZnkgPSBbcGx1Z2luUGFja2FnZSBOUFBfVVJMTm90aWZ5XTsK
KyAgICAgICAgTlBQX0dldFZhbHVlID0gW3BsdWdpblBhY2thZ2UgTlBQX0dldFZhbHVlXTsJCQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIFdlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgKnZpZXcgPSBw
bHVnaW5WaWV3OwogCkBAIC0yMTYsNiArMjE3LDcgQEAgc3RhdGljIFN0cmVhbU1hcCYgc3RyZWFt
cygpCiAgICAgICAgIE5QUF9TdHJlYW1Bc0ZpbGUgPSBOVUxMOwogICAgICAgICBOUFBfRGVzdHJv
eVN0cmVhbSA9IE5VTEw7CiAgICAgICAgIE5QUF9VUkxOb3RpZnkgPSBOVUxMOworICAgICAgICBO
UFBfR2V0VmFsdWUgPSBOVUxMOwogICAgICAgICBwbHVnaW5WaWV3ID0gbmlsOwogCiAgICAgICAg
IFt2aWV3IGRpc2Nvbm5lY3RTdHJlYW06c2VsZl07CkBAIC0zNTUsNiArMzU3LDIzIEBAIHN0YXRp
YyBTdHJlYW1NYXAmIHN0cmVhbXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6
dGhlSGVhZGVyc107CiB9CiAKKy0gKEJPT0wpIFBsdWdpbldhbnRzRmFpbGVkU3RyZWFtCit7Cisg
ICAgQk9PTCByZXN1bHQgPSBGQUxTRTsKKyAgICAKKyAgICBpZihOUFBfR2V0VmFsdWUpIAorICAg
IHsgICAKKyAgICAgICAgTlBPYmplY3QgKnZhbHVlID0gTlVMTDsKKyAgICAgICAgTlBFcnJvciBl
cnJvcjsgICAgICAgIAorICAgICAgICAgCisgICAgICAgIGVycm9yID0gTlBQX0dldFZhbHVlKHBs
dWdpbiwgTlBQVnBsdWdpbldhbnRzQWxsTmV0d29ya1N0cmVhbXMsICZ2YWx1ZSk7CisJCQorCQly
ZXN1bHQgPSAodmFsdWUgIT0gTlVMTCk7CisgICAgfQorICAgIAorICAgIHJldHVybiByZXN1bHQ7
Cit9CisgCiAtICh2b2lkKV9kZXN0cm95U3RyZWFtCiB7CiAgICAgaWYgKGlzVGVybWluYXRlZCkK
SW5kZXg6IFdlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnSW5TdHJlYW1Mb2FkZXJEZWxlZ2F0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnSW5TdHJlYW1Mb2FkZXJE
ZWxlZ2F0ZS5oCShyZXZpc2lvbiAzMjM2MykKKysrIFdlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVn
SW5TdHJlYW1Mb2FkZXJEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw0ICs0Myw1IEBA
CiAtICh2b2lkKXJlY2VpdmVkRGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZvaWQpZmluaXNoZWRM
b2FkaW5nOwogCistIChCT09MKSBQbHVnaW5XYW50c0ZhaWxlZFN0cmVhbTsKIEBlbmQKSW5kZXg6
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJD
bGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDMyMzYzKQorKysgV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGEoV2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIqLCBj
b25zdCBjaGFyKiwgaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJDb3JlOjpOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlciopOworICAgIHZpcnR1YWwgYm9vbCBQbHVnaW5XYW50c0ZhaWxlZFN0cmVh
bSgpOwogCiBwcml2YXRlOgogICAgIFJldGFpblB0cjxQbHVnSW5TdHJlYW1Mb2FkZXJEZWxlZ2F0
ZT4gbV9zdHJlYW07CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJDbGllbnQubW0JKHJldmlz
aW9uIDMyMzYzKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTUsMyArNTUsMTAgQEAg
dm9pZCBXZWJOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudAogICAgIFttX3N0cmVhbS5n
ZXQoKSBmaW5pc2hlZExvYWRpbmddOwogICAgIG1fc3RyZWFtID0gMDsKIH0KKworYm9vbCBXZWJO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudDo6UGx1Z2luV2FudHNGYWlsZWRTdHJlYW0o
KSAKK3sgCisgICAgYm9vbCByZXN1bHQgPSBbbV9zdHJlYW0uZ2V0KCkgUGx1Z2luV2FudHNGYWls
ZWRTdHJlYW1dOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22298</attachid>
            <date>2008-07-15 18:59:25 -0700</date>
            <delta_ts>2008-07-28 12:24:47 -0700</delta_ts>
            <desc>Fixed a bug about missing http status line. Added Windows/Linux code</desc>
            <filename>http_status_codes_patch_04.txt</filename>
            <type>text/plain</type>
            <size>10737</size>
            <attacher name="Dimcho Balev">dbalev</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYnJpZGdlL25wYXBpLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlk
Z2UvbnBhcGkuaAkocmV2aXNpb24gMzI0NTEpCisrKyBXZWJDb3JlL2JyaWRnZS9ucGFwaS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMzIsNiArMzMyLDE0IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgICog
TlBOX01lbUFsbG9jKCkgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgc3RyaW5nIGRhdGEuCiAg
ICAgICovCiAgICAgTlBQVmZvcm1WYWx1ZSA9IDE2LCAgICAvKiBOb3QgaW1wbGVtZW50ZWQgaW4g
V2ViS2l0ICovCisKKyAgICBOUFBWcGx1Z2luVXJsUmVxdWVzdHNEaXNwbGF5ZWRCb29sID0gMTcs
IC8qIE5vdCBpbXBsZW1lbnRlZCBpbiBXZWJLaXQgKi8KKworICAgIC8qIENoZWNrcyBpZiB0aGUg
cGx1Z2luIGlzIGludGVyZXN0ZWQgaW4gcmVjZWl2aW5nIHRoZSBodHRwIGJvZHkgb2YKKyAgICAg
KiBmYWlsZWQgaHR0cCByZXF1ZXN0cyAoaHR0cCBzdGF0dXMgIT0gMjAwKS4KKyAgICAgKi8KKyAg
ICBOUFBWcGx1Z2luV2FudHNBbGxOZXR3b3JrU3RyZWFtcyA9IDE4LAorCiAjaWZkZWYgWFBfTUFD
T1NYCiAgICAgLyogVXNlZCBmb3IgbmVnb3RpYXRpbmcgZHJhd2luZyBtb2RlbHMgKi8KICAgICBO
UFBWcGx1Z2luRHJhd2luZ01vZGVsID0gMTAwMApJbmRleDogV2ViQ29yZS9sb2FkZXIvTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAkocmV2aXNpb24gMzI0NTEpCisrKyBXZWJDb3Jl
L2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTc2LDggKzc2LDE0IEBAIHZvaWQgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2UK
ICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocmVzcG9uc2Uu
aXNIVFRQKCkgJiYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPCAxMDAgfHwgcmVzcG9uc2Uu
aHR0cFN0YXR1c0NvZGUoKSA+PSA0MDApKQotICAgICAgICBkaWRDYW5jZWwoZnJhbWVMb2FkZXIo
KS0+ZmlsZURvZXNOb3RFeGlzdEVycm9yKHJlc3BvbnNlKSk7CisgICAgaWYgKHJlc3BvbnNlLmlz
SFRUUCgpKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2NsaWVudC0+UGx1Z2luV2FudHNGYWlsZWRT
dHJlYW0oKSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKChyZXNwb25zZS5odHRwU3RhdHVz
Q29kZSgpIDwgMTAwIHx8IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwKSkKKyAgICAg
ICAgICAgICAgICBkaWRDYW5jZWwoZnJhbWVMb2FkZXIoKS0+ZmlsZURvZXNOb3RFeGlzdEVycm9y
KHJlc3BvbnNlKSk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgs
IGxvbmcgbG9uZyBsZW5ndGhSZWNlaXZlZCwgYm9vbCBhbGxBdE9uY2UpCkluZGV4OiBXZWJDb3Jl
L2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgJKHJldmlzaW9uIDMyNDUxKQor
KysgV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMzksNiArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciosIGNvbnN0
IGNoYXIqLCBpbnQpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoTmV0c2NhcGVQ
bHVnSW5TdHJlYW1Mb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciop
IHsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgUGx1Z2luV2FudHNGYWlsZWRTdHJlYW0oKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIH07CiAKICAgICBjbGFzcyBOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlciA6IHB1YmxpYyBSZXNvdXJjZUxvYWRlciB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcAkocmV2aXNpb24g
MzI0NTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZUNG
TmV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEsMTAgKzkxLDE2IEBAIHZvaWQgUmVzb3VyY2VS
ZXNwb25zZTo6cGxhdGZvcm1MYXp5SW5pdCgKICAgICAgICAgbV9odHRwU3RhdHVzQ29kZSA9IENG
SFRUUE1lc3NhZ2VHZXRSZXNwb25zZVN0YXR1c0NvZGUoaHR0cFJlc3BvbnNlKTsKIAogICAgICAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN0YXR1c0xpbmUoQWRvcHRDRiwgQ0ZIVFRQTWVzc2Fn
ZUNvcHlSZXNwb25zZVN0YXR1c0xpbmUoaHR0cFJlc3BvbnNlKSk7CisgICAgICAgIFN0cmluZyB2
ZXJzaW9uVGV4dChzdGF0dXNMaW5lLmdldCgpKTsKICAgICAgICAgU3RyaW5nIHN0YXR1c1RleHQo
c3RhdHVzTGluZS5nZXQoKSk7CiAgICAgICAgIGludCBzcGFjZVBvcyA9IHN0YXR1c1RleHQuZmlu
ZCgiICIpOwogICAgICAgICBpZiAoc3BhY2VQb3MgIT0gLTEpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHZlcnNpb25UZXh0ID0gdmVyc2lvblRleHQuc3Vic3RyaW5nKDAsIHNwYWNlUG9zKTsKICAg
ICAgICAgICAgIHN0YXR1c1RleHQgPSBzdGF0dXNUZXh0LnN1YnN0cmluZyhzcGFjZVBvcyArIDEp
OworICAgICAgICAgICAgLy8gYWRkIHRoZSBzdGF0dXMgbGluZSBtYW51YWxseSBzaW5jZSBDRkhU
VFBNZXNzYWdlQ29weUFsbEhlYWRlckZpZWxkcyBkb2VzIG5vdCByZXR1cm4gaXQKKyAgICAgICAg
ICAgIG1faHR0cEhlYWRlckZpZWxkcy5zZXQodmVyc2lvblRleHQsIHN0YXR1c1RleHQpOyAKKyAg
ICAgICAgfQogICAgICAgICBtX2h0dHBTdGF0dXNUZXh0ID0gc3RhdHVzVGV4dDsKIAogICAgICAg
ICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBoZWFkZXJzKEFkb3B0Q0YsIENGSFRUUE1lc3Nh
Z2VDb3B5QWxsSGVhZGVyRmllbGRzKGh0dHBSZXNwb25zZSkpOwpJbmRleDogV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blN0cmVhbS5jcHAJKHJldmlzaW9uIDMyNDUxKQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpblN0
cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCwyMSArMTM0LDQyIEBAIHZvaWQgUGx1Z2lu
U3RyZWFtOjpzdGFydFN0cmVhbSgpCiAgICAgICAgIG1fc3RyZWFtLnVybCA9IHN0cmR1cChkZWNv
ZGVVUkxFc2NhcGVTZXF1ZW5jZXMocmVzcG9uc2VVUkwuc3RyaW5nKCkpLnV0ZjgoKS5kYXRhKCkp
OwogICAgIGVsc2UKICAgICAgICAgbV9zdHJlYW0udXJsID0gc3RyZHVwKHJlc3BvbnNlVVJMLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIAorCiAgICAgQ1N0cmluZyBtaW1lVHlwZVN0ciA9
IG1fcmVzb3VyY2VSZXNwb25zZS5taW1lVHlwZSgpLnV0ZjgoKTsKLSAgICAKKwogICAgIGxvbmcg
bG9uZyBleHBlY3RlZENvbnRlbnRMZW5ndGggPSBtX3Jlc291cmNlUmVzcG9uc2UuZXhwZWN0ZWRD
b250ZW50TGVuZ3RoKCk7CiAKICAgICBpZiAobV9yZXNvdXJjZVJlc3BvbnNlLmlzSFRUUCgpKSB7
CiAgICAgICAgIFZlY3RvcjxVQ2hhcj4gc3RyaW5nQnVpbGRlcjsKICAgICAgICAgU3RyaW5nIHNl
cGFyYXRvcigiOiAiKTsKKyAgICAgICAgU3RyaW5nIHdoaXRlU3BhY2UoIiAiKTsKIAorICAgICAg
ICBIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBiZWdpbiA9IG1fcmVzb3VyY2VSZXNwb25z
ZS5odHRwSGVhZGVyRmllbGRzKCkuYmVnaW4oKTsKICAgICAgICAgSFRUUEhlYWRlck1hcDo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gbV9yZXNvdXJjZVJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKS5l
bmQoKTsKLSAgICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1f
cmVzb3VyY2VSZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7Ci0gICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpdC0+Zmlyc3QuY2hhcmFj
dGVycygpLCBpdC0+Zmlyc3QubGVuZ3RoKCkpOwotICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQoc2VwYXJhdG9yLmNoYXJhY3RlcnMoKSwgc2VwYXJhdG9yLmxlbmd0aCgpKTsKLSAgICAg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGl0LT5zZWNvbmQuY2hhcmFjdGVycygpLCBpdC0+
c2Vjb25kLmxlbmd0aCgpKTsKLSAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKChVQ2hh
ciknXG4nKTsKKyAgICAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBiZWdp
bjsKKyAgICAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3Igc2tpcCA9IGVuZDsKKwor
ICAgICAgICAvLyBNYWtlIHN1cmUgdG8gcHV0IHRoZSBzdGF0dXMgbGluZSBpbiB0aGUgYmVnaW5u
aW5nIG9mIGFsbCBoZWFkZXJzIGJlY2F1c2Ugc29tZSBwbHVnaW5zIAorICAgICAgICAvLyBsaWtl
IEZsYXNoIFBsYXllciBleHBlY3QgaXQgdG8gYmUgdGhlcmUKKyAgICAgICAgZm9yICg7IGl0ICE9
IGVuZDsgKytpdCkgeworICAgICAgICAgICAgaWYgKGl0LT5maXJzdC5maW5kKCJIVFRQLyIpID49
IDApIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpdC0+Zmlyc3QuY2hh
cmFjdGVycygpLCBpdC0+Zmlyc3QubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKHdoaXRlU3BhY2UuY2hhcmFjdGVycygpLCB3aGl0ZVNwYWNlLmxlbmd0aCgp
KTsKKyAgICAgICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpdC0+c2Vjb25kLmNoYXJh
Y3RlcnMoKSwgaXQtPnNlY29uZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQoKFVDaGFyKSdcbicpOworICAgICAgICAgICAgICAgIHNraXAgPSBpdDsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IC8vIE5vdyBhZGQgcmVzdCBvZiB0aGUgaGVhZGVycworICAgICAgICBmb3IgKGl0ID0gYmVnaW47
IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgaWYgKGl0ICE9IHNraXApIHsKKyAgICAg
ICAgICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpdC0+Zmlyc3QuY2hhcmFjdGVycygpLCBp
dC0+Zmlyc3QubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
KHNlcGFyYXRvci5jaGFyYWN0ZXJzKCksIHNlcGFyYXRvci5sZW5ndGgoKSk7CisgICAgICAgICAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaXQtPnNlY29uZC5jaGFyYWN0ZXJzKCksIGl0LT5z
ZWNvbmQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKChV
Q2hhciknXG4nKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIG1faGVhZGVy
cyA9IFN0cmluZzo6YWRvcHQoc3RyaW5nQnVpbGRlcikudXRmOCgpOwpAQCAtNDQ5LDQgKzQ3MCwx
NyBAQCB2b2lkIFBsdWdpblN0cmVhbTo6ZGlkRmluaXNoTG9hZGluZyhOZXRzCiAgICAgbV9sb2Fk
ZXIgPSAwOwogfQogCisKK2Jvb2wgUGx1Z2luU3RyZWFtOjpQbHVnaW5XYW50c0ZhaWxlZFN0cmVh
bSgpCit7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBOUE9iamVjdCAqdmFsdWUgPSBO
VUxMOwkKKworICAgIE5QRXJyb3IgbnBFcnIgPSBtX3BsdWdpbkZ1bmNzLT5nZXR2YWx1ZShtX2lu
c3RhbmNlLCBOUFBWcGx1Z2luV2FudHNBbGxOZXR3b3JrU3RyZWFtcywgJnZhbHVlKTsKKworICAg
IHJlc3VsdCA9ICh2YWx1ZSAhPSBOVUxMKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0K
SW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5TdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsdWdpbnMvUGx1Z2luU3RyZWFtLmgJKHJldmlzaW9uIDMyNDUxKQorKysgV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw2ICs3Miw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKiwgY29uc3QgY2hhciosIGludCk7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRGYWlsKE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKiwgY29uc3QgUmVz
b3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlciopOworICAgICAgICB2aXJ0dWFsIGJvb2wgUGx1Z2luV2Fu
dHNGYWlsZWRTdHJlYW0oKTsKKwogCiAgICAgICAgIHZvaWQgc2VuZEphdmFTY3JpcHRTdHJlYW0o
Y29uc3QgS1VSTCYgcmVxdWVzdFVSTCwgY29uc3QgQ1N0cmluZyYgcmVzdWx0U3RyaW5nKTsKICAg
ICAgICAgdm9pZCBjYW5jZWxBbmREZXN0cm95U3RyZWFtKE5QUmVhc29uKTsKSW5kZXg6IFdlYktp
dC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luU3RyZWFtLmgJKHJldmlz
aW9uIDMyNDUxKQorKysgV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblN0
cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBACiAgICAgTlBQX1dyaXRlUmVh
ZHlQcm9jUHRyIE5QUF9Xcml0ZVJlYWR5OwogICAgIE5QUF9Xcml0ZVByb2NQdHIgTlBQX1dyaXRl
OwogICAgIE5QUF9VUkxOb3RpZnlQcm9jUHRyIE5QUF9VUkxOb3RpZnk7CisgICAgTlBQX0dldFZh
bHVlUHJvY1B0ciBOUFBfR2V0VmFsdWU7CiB9CiAKICsgKE5QUClvd25lckZvclN0cmVhbTooTlBT
dHJlYW0gKilzdHJlYW07CkBAIC05MCw1ICs5MSw2IEBACiAvLyBUaGlzIG1ldGhvZCBpcyBvdmVy
cmlkZW4gYnkgc3ViY2xhc3Nlcy4KIC0gKHZvaWQpY2FuY2VsTG9hZFdpdGhFcnJvcjooTlNFcnJv
ciAqKWVycm9yOwogCistIChCT09MKSBQbHVnaW5XYW50c0ZhaWxlZFN0cmVhbTsgCiBAZW5kCiAj
ZW5kaWYKSW5kZXg6IFdlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5TdHJl
YW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBs
dWdpblN0cmVhbS5tbQkocmV2aXNpb24gMzI0NTEpCisrKyBXZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNiArMjA2
LDcgQEAgc3RhdGljIFN0cmVhbU1hcCYgc3RyZWFtcygpCiAgICAgICAgIE5QUF9TdHJlYW1Bc0Zp
bGUgPSBbcGx1Z2luUGFja2FnZSBOUFBfU3RyZWFtQXNGaWxlXTsKICAgICAgICAgTlBQX0Rlc3Ry
b3lTdHJlYW0gPSBbcGx1Z2luUGFja2FnZSBOUFBfRGVzdHJveVN0cmVhbV07CiAgICAgICAgIE5Q
UF9VUkxOb3RpZnkgPSBbcGx1Z2luUGFja2FnZSBOUFBfVVJMTm90aWZ5XTsKKyAgICAgICAgTlBQ
X0dldFZhbHVlID0gW3BsdWdpblBhY2thZ2UgTlBQX0dldFZhbHVlXTsJCQogICAgIH0gZWxzZSB7
CiAgICAgICAgIFdlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgKnZpZXcgPSBwbHVnaW5WaWV3Owog
CkBAIC0yMTYsNiArMjE3LDcgQEAgc3RhdGljIFN0cmVhbU1hcCYgc3RyZWFtcygpCiAgICAgICAg
IE5QUF9TdHJlYW1Bc0ZpbGUgPSBOVUxMOwogICAgICAgICBOUFBfRGVzdHJveVN0cmVhbSA9IE5V
TEw7CiAgICAgICAgIE5QUF9VUkxOb3RpZnkgPSBOVUxMOworICAgICAgICBOUFBfR2V0VmFsdWUg
PSBOVUxMOwogICAgICAgICBwbHVnaW5WaWV3ID0gbmlsOwogCiAgICAgICAgIFt2aWV3IGRpc2Nv
bm5lY3RTdHJlYW06c2VsZl07CkBAIC0zNTUsNiArMzU3LDIzIEBAIHN0YXRpYyBTdHJlYW1NYXAm
IHN0cmVhbXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6dGhlSGVhZGVyc107
CiB9CiAKKy0gKEJPT0wpIFBsdWdpbldhbnRzRmFpbGVkU3RyZWFtCit7CisgICAgQk9PTCByZXN1
bHQgPSBGQUxTRTsKKyAgICAKKyAgICBpZihOUFBfR2V0VmFsdWUpIAorICAgIHsgICAKKyAgICAg
ICAgTlBPYmplY3QgKnZhbHVlID0gTlVMTDsKKyAgICAgICAgTlBFcnJvciBlcnJvcjsgICAgICAg
IAorCisgICAgICAgIGVycm9yID0gTlBQX0dldFZhbHVlKHBsdWdpbiwgTlBQVnBsdWdpbldhbnRz
RmFpbEhUVFBTdHJlYW1zLCAmdmFsdWUpOworCisgICAgICAgIHJlc3VsdCA9ICh2YWx1ZSAhPSBO
VUxMKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKyAKIC0gKHZvaWQpX2Rl
c3Ryb3lTdHJlYW0KIHsKICAgICBpZiAoaXNUZXJtaW5hdGVkKQpJbmRleDogV2ViS2l0L21hYy9Q
bHVnaW5zL1dlYlBsdWdJblN0cmVhbUxvYWRlckRlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYlBsdWdJblN0cmVhbUxvYWRlckRlbGVnYXRlLmgJKHJldmlzaW9u
IDMyNDUxKQorKysgV2ViS2l0L21hYy9QbHVnaW5zL1dlYlBsdWdJblN0cmVhbUxvYWRlckRlbGVn
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDQgKzQzLDUgQEAKIC0gKHZvaWQpcmVjZWl2ZWRE
YXRhOihOU0RhdGEgKilkYXRhOwogLSAodm9pZClmaW5pc2hlZExvYWRpbmc7CiAKKy0gKEJPT0wp
IFBsdWdpbldhbnRzRmFpbGVkU3RyZWFtOwogQGVuZApJbmRleDogV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXJDbGllbnQuaAkocmV2aXNpb24gMzI0NTEpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShX
ZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKik7Cisg
ICAgdmlydHVhbCBib29sIFBsdWdpbldhbnRzRmFpbGVkU3RyZWFtKCk7CiAKIHByaXZhdGU6CiAg
ICAgUmV0YWluUHRyPFBsdWdJblN0cmVhbUxvYWRlckRlbGVnYXRlPiBtX3N0cmVhbTsKSW5kZXg6
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJD
bGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudC5tbQkocmV2aXNpb24gMzI0NTEpCisrKyBXZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NSwzICs1NSwxMCBAQCB2b2lkIFdlYk5ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyQ2xpZW50CiAgICAgW21fc3RyZWFtLmdldCgpIGZpbmlzaGVkTG9hZGlu
Z107CiAgICAgbV9zdHJlYW0gPSAwOwogfQorCitib29sIFdlYk5ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyQ2xpZW50OjpQbHVnaW5XYW50c0ZhaWxlZFN0cmVhbSgpIAoreyAKKyAgICBib29sIHJl
c3VsdCA9IFttX3N0cmVhbS5nZXQoKSBQbHVnaW5XYW50c0ZhaWxlZFN0cmVhbV07CisgICAgCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30K
</data>
<flag name="review"
          id="9812"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>