<?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>79259</bug_id>
          
          <creation_ts>2012-02-22 10:50:45 -0800</creation_ts>
          <short_desc>Move FILE_SYSTEM code out of DOMWindow and into the fileapi folder</short_desc>
          <delta_ts>2012-02-23 20:57:02 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79327</blocked>
    
    <blocked>78440</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>ericu</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>562141</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-22 10:50:45 -0800</bug_when>
    <thetext>Move FILE_SYSTEM code out of DOMWindow and into the fileapi folder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562142</commentid>
    <comment_count>1</comment_count>
      <attachid>128247</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-22 10:52:28 -0800</bug_when>
    <thetext>Created attachment 128247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562213</commentid>
    <comment_count>2</comment_count>
      <attachid>128247</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-22 12:00:59 -0800</bug_when>
    <thetext>Comment on attachment 128247
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562221</commentid>
    <comment_count>3</comment_count>
      <attachid>128247</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2012-02-22 12:05:58 -0800</bug_when>
    <thetext>Comment on attachment 128247
Patch

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

Nice!  We should do WorkerContext too.

&gt; Source/WebCore/fileapi/DOMWindowFileSystem.idl:23
&gt; +        Conditional=WEB_AUDIO,

WEB_AUDIO?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562227</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-22 12:13:25 -0800</bug_when>
    <thetext>&gt; WEB_AUDIO?

Darn copy/paste!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562228</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-22 12:14:39 -0800</bug_when>
    <thetext>&gt; Nice!  We should do WorkerContext too.

Yep.  Here&apos;s the spreadsheet with all the planned changes, if you&apos;re curious:

https://docs.google.com/spreadsheet/ccc?key=0AppchfQ5mBrEdFlodHlLb0prdEd1ZEZyUHdCbEpoc2c&amp;userstoinvite=abarth@google.com#gid=0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562427</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-22 15:07:01 -0800</bug_when>
    <thetext>Committed r108556: &lt;http://trac.webkit.org/changeset/108556&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128247</attachid>
            <date>2012-02-22 10:52:28 -0800</date>
            <delta_ts>2012-02-22 12:05:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79259-20120222105227.patch</filename>
            <type>text/plain</type>
            <size>20505</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODUyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAyLTIyICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBGSUxFX1NZU1RFTSBjb2Rl
IG91dCBvZiBET01XaW5kb3cgYW5kIGludG8gdGhlIGZpbGVhcGkgZm9sZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTI1OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgcGFydCBv
ZiBvdXIgb25nb2luZyBlZmZvcnQgdG8gcmVtb3ZlIGlmZGVmcyBmcm9tIGNvZGUKKyAgICAgICAg
Y2xhc3Nlcy4gIFRoZSBGSUxFX1NZU1RFTSBjb2RlIGluIERPTVdpbmRvdyBkb2Vzbid0IHJlYWxs
eSBoYXZlIGFueQorICAgICAgICBuZWNlc3NhcnkgY29ubmVjdGlvbiB0byBET01XaW5kb3cuICBE
T01XaW5kb3cgaXMganVzdCB0aGUgY29udGV4dAorICAgICAgICBvYmplY3QgdGhhdCB0aGUgQVBJ
IGhhbmdzIG9mZiBvZi4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBGSUxFX1NZU1RF
TSBjb2RlIGludG8gdGhlIGZpbGVhcGkgZm9sZGVyIHVzaW5nCisgICAgICAgIFtTdXBwbGVtZW50
YWxdLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBmaWxlYXBpL0RPTVdpbmRvd0ZpbGVTeXN0ZW0uY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RmlsZVN5c3Rl
bTo6RE9NV2luZG93RmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dGaWxl
U3lzdGVtOjp+RE9NV2luZG93RmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dGaWxlU3lzdGVtOjp3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3dGaWxlU3lzdGVtOjp3ZWJraXRSZXNvbHZlTG9jYWxGaWxlU3lzdGVtVVJMKToK
KyAgICAgICAgKiBmaWxlYXBpL0RPTVdpbmRvd0ZpbGVTeXN0ZW0uaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvd0ZpbGVTeXN0ZW0pOgorICAgICAgICAqIGZp
bGVhcGkvRE9NV2luZG93RmlsZVN5c3RlbS5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICog
cGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEyLTAyLTIyICBEYW5hIEphbnNlbnMgIDxkYW5ha2pA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gTmV3IENDT2NjbHVzaW9uVHJhY2tl
ciBjbGFzcyB3aXRoIHRlc3RzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTA4
NTEwKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTE2MDEsNiArMTYwMSw3IEBAIGlmIChFTkFCTEVfRklMRV9TWVNURU0pCiAgICAgICAgIGZpbGVh
cGkvRE9NRmlsZVN5c3RlbS5jcHAKICAgICAgICAgZmlsZWFwaS9ET01GaWxlU3lzdGVtQmFzZS5j
cHAKICAgICAgICAgZmlsZWFwaS9ET01GaWxlU3lzdGVtU3luYy5jcHAKKyAgICAgICAgZmlsZWFw
aS9ET01XaW5kb3dGaWxlU3lzdGVtLmNwcAogICAgICAgICBmaWxlYXBpL0VudHJ5LmNwcAogICAg
ICAgICBmaWxlYXBpL0VudHJ5QXJyYXkuY3BwCiAgICAgICAgIGZpbGVhcGkvRW50cnlBcnJheVN5
bmMuY3BwCkBAIC0xNjIyLDYgKzE2MjMsNyBAQCBpZiAoRU5BQkxFX0ZJTEVfU1lTVEVNKQogICAg
ICAgICBmaWxlYXBpL0RpcmVjdG9yeVJlYWRlclN5bmMuaWRsCiAgICAgICAgIGZpbGVhcGkvRE9N
RmlsZVN5c3RlbS5pZGwKICAgICAgICAgZmlsZWFwaS9ET01GaWxlU3lzdGVtU3luYy5pZGwKKyAg
ICAgICAgZmlsZWFwaS9ET01XaW5kb3dGaWxlU3lzdGVtLmlkbAogICAgICAgICBmaWxlYXBpL0Vu
dHJpZXNDYWxsYmFjay5pZGwKICAgICAgICAgZmlsZWFwaS9FbnRyeS5pZGwKICAgICAgICAgZmls
ZWFwaS9FbnRyeVN5bmMuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJl
dmlzaW9uIDEwODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdv
cmtpbmcgY29weSkKQEAgLTE1OCw2ICsxNTgsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9maWxlYXBpL0Jsb2IuaWRsIFwKICAgICAkKFdlYkNvcmUpL2ZpbGVhcGkvRE9NRmls
ZVN5c3RlbS5pZGwgXAogICAgICQoV2ViQ29yZSkvZmlsZWFwaS9ET01GaWxlU3lzdGVtU3luYy5p
ZGwgXAorICAgICQoV2ViQ29yZSkvZmlsZWFwaS9ET01XaW5kb3dGaWxlU3lzdGVtLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9maWxlYXBpL0RpcmVjdG9yeUVudHJ5LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9maWxlYXBpL0RpcmVjdG9yeUVudHJ5U3luYy5pZGwgXAogICAgICQoV2ViQ29yZSkvZmlsZWFw
aS9EaXJlY3RvcnlSZWFkZXIuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJ
KHJldmlzaW9uIDEwODUxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQko
d29ya2luZyBjb3B5KQpAQCAtMTg5LDYgKzE4OSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAg
JCRQV0QvZmlsZWFwaS9EaXJlY3RvcnlSZWFkZXJTeW5jLmlkbCBcCiAgICAgJCRQV0QvZmlsZWFw
aS9ET01GaWxlU3lzdGVtLmlkbCBcCiAgICAgJCRQV0QvZmlsZWFwaS9ET01GaWxlU3lzdGVtU3lu
Yy5pZGwgXAorICAgICQkUFdEL2ZpbGVhcGkvRE9NV2luZG93RmlsZVN5c3RlbS5pZGwgXAogICAg
ICQkUFdEL2ZpbGVhcGkvRW50cmllc0NhbGxiYWNrLmlkbCBcCiAgICAgJCRQV0QvZmlsZWFwaS9F
bnRyeS5pZGwgXAogICAgICQkUFdEL2ZpbGVhcGkvRW50cnlBcnJheS5pZGwgXApJbmRleDogU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDg1MTApCisrKyBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xODczLDYgKzE4NzMs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmls
ZVN5c3RlbUJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtU3lu
Yy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3RlbVN5bmMuaCBcCisJ
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01XaW5kb3dGaWxlU3lzdGVtLmNwcCBcCisJU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9ET01XaW5kb3dGaWxlU3lzdGVtLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRW50cmllc0NhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50
cnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5LmggXApAQCAtNDgzMyw2ICs0
ODM1LDcgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIGRvbV9iaW5kaW5nX2lkbHMgKz0g
XAogCSQoV2ViQ29yZSkvZmlsZWFwaS9ET01GaWxlU3lzdGVtLmlkbCBcCiAJJChXZWJDb3JlKS9m
aWxlYXBpL0RPTUZpbGVTeXN0ZW1TeW5jLmlkbCBcCisJJChXZWJDb3JlKS9maWxlYXBpL0RPTVdp
bmRvd0ZpbGVTeXN0ZW0uaWRsIFwKIAkkKFdlYkNvcmUpL2ZpbGVhcGkvRGlyZWN0b3J5RW50cnku
aWRsIFwKIAkkKFdlYkNvcmUpL2ZpbGVhcGkvRGlyZWN0b3J5RW50cnlTeW5jLmlkbCBcCiAJJChX
ZWJDb3JlKS9maWxlYXBpL0RpcmVjdG9yeVJlYWRlci5pZGwgXApJbmRleDogU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShy
ZXZpc2lvbiAxMDg1MTApCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNv
cHkpCkBAIC02NTYsNiArNjU2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZmlsZWFwaS9ET01GaWxl
U3lzdGVtLmNwcCBcCiAgICAgZmlsZWFwaS9ET01GaWxlU3lzdGVtQmFzZS5jcHAgXAogICAgIGZp
bGVhcGkvRE9NRmlsZVN5c3RlbVN5bmMuY3BwIFwKKyAgICBmaWxlYXBpL0RPTVdpbmRvd0ZpbGVT
eXN0ZW0uY3BwIFwKICAgICBmaWxlYXBpL0RpcmVjdG9yeUVudHJ5LmNwcCBcCiAgICAgZmlsZWFw
aS9EaXJlY3RvcnlFbnRyeVN5bmMuY3BwIFwKICAgICBmaWxlYXBpL0RpcmVjdG9yeVJlYWRlci5j
cHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA4NTEwKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC04MzIsNiArODMyLDcgQEAKICAg
ICAgICAgICAgICdmaWxlYXBpL0RpcmVjdG9yeVJlYWRlclN5bmMuaWRsJywKICAgICAgICAgICAg
ICdmaWxlYXBpL0RPTUZpbGVTeXN0ZW0uaWRsJywKICAgICAgICAgICAgICdmaWxlYXBpL0RPTUZp
bGVTeXN0ZW1TeW5jLmlkbCcsCisgICAgICAgICAgICAnZmlsZWFwaS9ET01XaW5kb3dGaWxlU3lz
dGVtLmlkbCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9FbnRyaWVzQ2FsbGJhY2suaWRsJywKICAg
ICAgICAgICAgICdmaWxlYXBpL0VudHJ5LmlkbCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9FbnRy
eUFycmF5LmlkbCcsCkBAIC0yMjMyLDYgKzIyMzMsOCBAQAogICAgICAgICAgICAgJ2ZpbGVhcGkv
RE9NRmlsZVN5c3RlbUJhc2UuaCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9ET01GaWxlU3lzdGVt
U3luYy5jcHAnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvRE9NRmlsZVN5c3RlbVN5bmMuaCcsCisg
ICAgICAgICAgICAnZmlsZWFwaS9ET01XaW5kb3dGaWxlU3lzdGVtLmNwcCcsCisgICAgICAgICAg
ICAnZmlsZWFwaS9ET01XaW5kb3dGaWxlU3lzdGVtLmgnLAogICAgICAgICAgICAgJ2ZpbGVhcGkv
RGlyZWN0b3J5RW50cnkuY3BwJywKICAgICAgICAgICAgICdmaWxlYXBpL0RpcmVjdG9yeUVudHJ5
LmgnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvRGlyZWN0b3J5RW50cnlTeW5jLmNwcCcsCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTVdpbmRvd0ZpbGVTeXN0ZW0uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NV2luZG93RmlsZVN5c3RlbS5jcHAJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTVdpbmRvd0ZpbGVTeXN0ZW0u
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQor
ICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVdpbmRvd0ZpbGVTeXN0ZW0uaCIKKworI2lmIEVO
QUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIkFzeW5jRmlsZVN5c3RlbS5oIgorI2luY2x1
ZGUgIkRPTUZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkVudHJ5Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJFcnJvckNh
bGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZUVycm9yLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUNh
bGxiYWNrLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIkxv
Y2FsRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworRE9NV2luZG93RmlsZVN5c3RlbTo6RE9NV2luZG93RmlsZVN5c3RlbSgp
Cit7Cit9CisKK0RPTVdpbmRvd0ZpbGVTeXN0ZW06On5ET01XaW5kb3dGaWxlU3lzdGVtKCkKK3sK
K30KKwordm9pZCBET01XaW5kb3dGaWxlU3lzdGVtOjp3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbShE
T01XaW5kb3cqIHdpbmRvdywgaW50IHR5cGUsIGxvbmcgbG9uZyBzaXplLCBQYXNzUmVmUHRyPEZp
bGVTeXN0ZW1DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJh
Y2s+IGVycm9yQ2FsbGJhY2spCit7CisgICAgaWYgKCF3aW5kb3ctPmlzQ3VycmVudGx5RGlzcGxh
eWVkSW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSB3aW5kb3ctPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKCFBc3luY0ZpbGVTeXN0ZW06OmlzQXZhaWxhYmxlKCkgfHwgIWRvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpLT5jYW5BY2Nlc3NGaWxlU3lzdGVtKCkpIHsKKyAgICAgICAgRE9N
RmlsZVN5c3RlbTo6c2NoZWR1bGVDYWxsYmFjayhkb2N1bWVudCwgZXJyb3JDYWxsYmFjaywgRmls
ZUVycm9yOjpjcmVhdGUoRmlsZUVycm9yOjpTRUNVUklUWV9FUlIpKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSBmaWxlU3lzdGVtVHlwZSA9IHN0
YXRpY19jYXN0PEFzeW5jRmlsZVN5c3RlbTo6VHlwZT4odHlwZSk7CisgICAgaWYgKCFBc3luY0Zp
bGVTeXN0ZW06OmlzVmFsaWRUeXBlKGZpbGVTeXN0ZW1UeXBlKSkgeworICAgICAgICBET01GaWxl
U3lzdGVtOjpzY2hlZHVsZUNhbGxiYWNrKGRvY3VtZW50LCBlcnJvckNhbGxiYWNrLCBGaWxlRXJy
b3I6OmNyZWF0ZShGaWxlRXJyb3I6OklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUikpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgTG9jYWxGaWxlU3lzdGVtOjpsb2NhbEZpbGVTeXN0ZW0o
KS5yZXF1ZXN0RmlsZVN5c3RlbShkb2N1bWVudCwgZmlsZVN5c3RlbVR5cGUsIHNpemUsIEZpbGVT
eXN0ZW1DYWxsYmFja3M6OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIGRv
Y3VtZW50KSwgZmFsc2UpOworfQorCit2b2lkIERPTVdpbmRvd0ZpbGVTeXN0ZW06OndlYmtpdFJl
c29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwoRE9NV2luZG93KiB3aW5kb3csIGNvbnN0IFN0cmluZyYg
dXJsLCBQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0
cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQoreworICAgIGlmICghd2luZG93LT5pc0N1
cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gd2luZG93LT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiA9IGRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpOworICAgIEtVUkwgY29tcGxldGVkVVJMID0gZG9jdW1l
bnQtPmNvbXBsZXRlVVJMKHVybCk7CisgICAgaWYgKCFBc3luY0ZpbGVTeXN0ZW06OmlzQXZhaWxh
YmxlKCkgfHwgIXNlY3VyaXR5T3JpZ2luLT5jYW5BY2Nlc3NGaWxlU3lzdGVtKCkgfHwgIXNlY3Vy
aXR5T3JpZ2luLT5jYW5SZXF1ZXN0KGNvbXBsZXRlZFVSTCkpIHsKKyAgICAgICAgRE9NRmlsZVN5
c3RlbTo6c2NoZWR1bGVDYWxsYmFjayhkb2N1bWVudCwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9y
OjpjcmVhdGUoRmlsZUVycm9yOjpTRUNVUklUWV9FUlIpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlOworICAgIFN0cmluZyBmaWxlUGF0
aDsKKyAgICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkgfHwgIUFzeW5jRmlsZVN5c3RlbTo6
Y3JhY2tGaWxlU3lzdGVtVVJMKGNvbXBsZXRlZFVSTCwgdHlwZSwgZmlsZVBhdGgpKSB7CisgICAg
ICAgIERPTUZpbGVTeXN0ZW06OnNjaGVkdWxlQ2FsbGJhY2soZG9jdW1lbnQsIGVycm9yQ2FsbGJh
Y2ssIEZpbGVFcnJvcjo6Y3JlYXRlKEZpbGVFcnJvcjo6RU5DT0RJTkdfRVJSKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBMb2NhbEZpbGVTeXN0ZW06OmxvY2FsRmlsZVN5c3RlbSgp
LnJlYWRGaWxlU3lzdGVtKGRvY3VtZW50LCB0eXBlLCBSZXNvbHZlVVJJQ2FsbGJhY2tzOjpjcmVh
dGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBkb2N1bWVudCwgZmlsZVBhdGgpKTsK
K30KKworQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihET01XaW5kb3c6OlRFTVBPUkFS
WSkgPT0gc3RhdGljX2Nhc3Q8aW50PihBc3luY0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSksIGVudW1f
bWlzbWF0Y2gpOworQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihET01XaW5kb3c6OlBF
UlNJU1RFTlQpID09IHN0YXRpY19jYXN0PGludD4oQXN5bmNGaWxlU3lzdGVtOjpQZXJzaXN0ZW50
KSwgZW51bV9taXNtYXRjaCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShGSUxFX1NZU1RFTSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NV2lu
ZG93RmlsZVN5c3RlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9N
V2luZG93RmlsZVN5c3RlbS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9ET01XaW5kb3dGaWxlU3lzdGVtLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFN
QUdFLgorICovCisKKyNpZm5kZWYgRE9NV2luZG93RmlsZVN5c3RlbV9oCisjZGVmaW5lIERPTVdp
bmRvd0ZpbGVTeXN0ZW1faAorCisjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7CitjbGFzcyBFbnRyeUNhbGxiYWNr
OworY2xhc3MgRXJyb3JDYWxsYmFjazsKK2NsYXNzIEZpbGVTeXN0ZW1DYWxsYmFjazsKKworY2xh
c3MgRE9NV2luZG93RmlsZVN5c3RlbSB7CitwdWJsaWM6CisKKyAgICBzdGF0aWMgdm9pZCB3ZWJr
aXRSZXF1ZXN0RmlsZVN5c3RlbShET01XaW5kb3cqLCBpbnQgdHlwZSwgbG9uZyBsb25nIHNpemUs
IFBhc3NSZWZQdHI8RmlsZVN5c3RlbUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNr
Pik7CisgICAgc3RhdGljIHZvaWQgd2Via2l0UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTChET01X
aW5kb3cqLCBjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+LCBQYXNzUmVm
UHRyPEVycm9yQ2FsbGJhY2s+KTsKKworcHJpdmF0ZToKKyAgICBET01XaW5kb3dGaWxlU3lzdGVt
KCk7CisgICAgfkRPTVdpbmRvd0ZpbGVTeXN0ZW0oKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2VuZGlmIC8vIERPTVdp
bmRvd0ZpbGVTeXN0ZW1faApJbmRleDogU291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01XaW5kb3dG
aWxlU3lzdGVtLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTVdp
bmRvd0ZpbGVTeXN0ZW0uaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9ET01XaW5kb3dGaWxlU3lzdGVtLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
Cittb2R1bGUgd2luZG93IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFs
PVdFQl9BVURJTywKKyAgICAgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdworICAgIF0gRE9NV2lu
ZG93RmlsZVN5c3RlbSB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFTVBPUkFSWSA9
IDA7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBFUlNJU1RFTlQgPSAxOworCisgICAg
ICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmlsZVN5c3RlbV0gdm9pZCB3ZWJraXRSZXF1ZXN0Rmls
ZVN5c3RlbShpbiB1bnNpZ25lZCBzaG9ydCB0eXBlLCBpbiBsb25nIGxvbmcgc2l6ZSwKKyAgICAg
ICAgICAgICAgICBpbiBbQ2FsbGJhY2tdIEZpbGVTeXN0ZW1DYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2ssIGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7
CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmlsZVN5c3RlbV0gdm9pZCB3ZWJraXRSZXNv
bHZlTG9jYWxGaWxlU3lzdGVtVVJMKGluIERPTVN0cmluZyB1cmwsCisgICAgICAgICAgICAgICAg
aW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGlu
IFtDYWxsYmFjaywgT3B0aW9uYWxdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAg
fTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMTA4NTEw
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDIsMTcgKzEwMiw2IEBACiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKLSNpbmNs
dWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJET01GaWxlU3lzdGVtLmgiCi0jaW5j
bHVkZSAiRW50cnlDYWxsYmFjay5oIgotI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2suaCIKLSNpbmNs
dWRlICJGaWxlRXJyb3IuaCIKLSNpbmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2suaCIKLSNpbmNs
dWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiTG9jYWxGaWxlU3lzdGVtLmgi
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICNpbmNsdWRl
ICJSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIgogI2VuZGlmCkBAIC03NTMsNjEgKzc0
Miw2IEBAIHZvaWQgRE9NV2luZG93OjpzZXRJREJGYWN0b3J5KFBhc3NSZWZQdHIKIH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQotdm9pZCBET01XaW5kb3c6OndlYmtpdFJlcXVl
c3RGaWxlU3lzdGVtKGludCB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgUGFzc1JlZlB0cjxGaWxlU3lz
dGVtQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBl
cnJvckNhbGxiYWNrKQotewotICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3Vt
ZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFB
c3luY0ZpbGVTeXN0ZW06OmlzQXZhaWxhYmxlKCkgfHwgIWRvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpLT5jYW5BY2Nlc3NGaWxlU3lzdGVtKCkpIHsKLSAgICAgICAgRE9NRmlsZVN5c3RlbTo6c2No
ZWR1bGVDYWxsYmFjayhkb2N1bWVudCwgZXJyb3JDYWxsYmFjaywgRmlsZUVycm9yOjpjcmVhdGUo
RmlsZUVycm9yOjpTRUNVUklUWV9FUlIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IEFzeW5jRmlsZVN5c3RlbTo6VHlwZSBmaWxlU3lzdGVtVHlwZSA9IHN0YXRpY19jYXN0PEFzeW5j
RmlsZVN5c3RlbTo6VHlwZT4odHlwZSk7Ci0gICAgaWYgKCFBc3luY0ZpbGVTeXN0ZW06OmlzVmFs
aWRUeXBlKGZpbGVTeXN0ZW1UeXBlKSkgewotICAgICAgICBET01GaWxlU3lzdGVtOjpzY2hlZHVs
ZUNhbGxiYWNrKGRvY3VtZW50LCBlcnJvckNhbGxiYWNrLCBGaWxlRXJyb3I6OmNyZWF0ZShGaWxl
RXJyb3I6OklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUikpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgTG9jYWxGaWxlU3lzdGVtOjpsb2NhbEZpbGVTeXN0ZW0oKS5yZXF1ZXN0RmlsZVN5
c3RlbShkb2N1bWVudCwgZmlsZVN5c3RlbVR5cGUsIHNpemUsIEZpbGVTeXN0ZW1DYWxsYmFja3M6
OmNyZWF0ZShzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIGRvY3VtZW50KSwgZmFsc2Up
OwotfQotCi12b2lkIERPTVdpbmRvdzo6d2Via2l0UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTChj
b25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJh
Y2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKLXsKLSAgICBpZiAo
IWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiA9
IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwotICAgIEtVUkwgY29tcGxldGVkVVJMID0gZG9j
dW1lbnQtPmNvbXBsZXRlVVJMKHVybCk7Ci0gICAgaWYgKCFBc3luY0ZpbGVTeXN0ZW06OmlzQXZh
aWxhYmxlKCkgfHwgIXNlY3VyaXR5T3JpZ2luLT5jYW5BY2Nlc3NGaWxlU3lzdGVtKCkgfHwgIXNl
Y3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KGNvbXBsZXRlZFVSTCkpIHsKLSAgICAgICAgRE9NRmls
ZVN5c3RlbTo6c2NoZWR1bGVDYWxsYmFjayhkb2N1bWVudCwgZXJyb3JDYWxsYmFjaywgRmlsZUVy
cm9yOjpjcmVhdGUoRmlsZUVycm9yOjpTRUNVUklUWV9FUlIpKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIEFzeW5jRmlsZVN5c3RlbTo6VHlwZSB0eXBlOwotICAgIFN0cmluZyBmaWxl
UGF0aDsKLSAgICBpZiAoIWNvbXBsZXRlZFVSTC5pc1ZhbGlkKCkgfHwgIUFzeW5jRmlsZVN5c3Rl
bTo6Y3JhY2tGaWxlU3lzdGVtVVJMKGNvbXBsZXRlZFVSTCwgdHlwZSwgZmlsZVBhdGgpKSB7Ci0g
ICAgICAgIERPTUZpbGVTeXN0ZW06OnNjaGVkdWxlQ2FsbGJhY2soZG9jdW1lbnQsIGVycm9yQ2Fs
bGJhY2ssIEZpbGVFcnJvcjo6Y3JlYXRlKEZpbGVFcnJvcjo6RU5DT0RJTkdfRVJSKSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBMb2NhbEZpbGVTeXN0ZW06OmxvY2FsRmlsZVN5c3Rl
bSgpLnJlYWRGaWxlU3lzdGVtKGRvY3VtZW50LCB0eXBlLCBSZXNvbHZlVVJJQ2FsbGJhY2tzOjpj
cmVhdGUoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBkb2N1bWVudCwgZmlsZVBhdGgp
KTsKLX0KLQotQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihET01XaW5kb3c6OlRFTVBP
UkFSWSkgPT0gc3RhdGljX2Nhc3Q8aW50PihBc3luY0ZpbGVTeXN0ZW06OlRlbXBvcmFyeSksIGVu
dW1fbWlzbWF0Y2gpOwotQ09NUElMRV9BU1NFUlQoc3RhdGljX2Nhc3Q8aW50PihET01XaW5kb3c6
OlBFUlNJU1RFTlQpID09IHN0YXRpY19jYXN0PGludD4oQXN5bmNGaWxlU3lzdGVtOjpQZXJzaXN0
ZW50KSwgZW51bV9taXNtYXRjaCk7Ci0KLSNlbmRpZgotCiB2b2lkIERPTVdpbmRvdzo6cG9zdE1l
c3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQ
b3J0KiBwb3J0LCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2Us
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIE1lc3NhZ2VQb3J0QXJyYXkgcG9ydHM7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDEwODUxMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEwICs0Niw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEYXRhYmFzZUNhbGxiYWNrOwogICAgIGNsYXNz
IERvY3VtZW50OwogICAgIGNsYXNzIEVsZW1lbnQ7Ci0gICAgY2xhc3MgRW50cnlDYWxsYmFjazsK
LSAgICBjbGFzcyBFcnJvckNhbGxiYWNrOwogICAgIGNsYXNzIEV2ZW50TGlzdGVuZXI7Ci0gICAg
Y2xhc3MgRmlsZVN5c3RlbUNhbGxiYWNrOwogICAgIGNsYXNzIEZsb2F0UmVjdDsKICAgICBjbGFz
cyBGcmFtZTsKICAgICBjbGFzcyBIaXN0b3J5OwpAQCAtMzU4LDEyICszNTUsMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKICAgICAgICAgLy8gVGhleSBh
cmUgcGxhY2VkIGhlcmUgYW5kIGluIGFsbCBjYXBpdGFsIGxldHRlcnMgc28gdGhleSBjYW4gYmUg
Y2hlY2tlZCBhZ2FpbnN0IHRoZSBjb25zdGFudHMgaW4gdGhlCiAgICAgICAgIC8vIElETCBhdCBj
b21waWxlIHRpbWUuCisgICAgICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIGNvbnN0YW50cyB0byBE
T01XaW5kb3dGaWxlU3lzdGVtLgogICAgICAgICBlbnVtIEZpbGVTeXN0ZW1UeXBlIHsKICAgICAg
ICAgICAgIFRFTVBPUkFSWSwKICAgICAgICAgICAgIFBFUlNJU1RFTlQsCiAgICAgICAgIH07Ci0g
ICAgICAgIHZvaWQgd2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0oaW50IHR5cGUsIGxvbmcgbG9uZyBz
aXplLCBQYXNzUmVmUHRyPEZpbGVTeXN0ZW1DYWxsYmFjaz4sIFBhc3NSZWZQdHI8RXJyb3JDYWxs
YmFjaz4pOwotICAgICAgICB2b2lkIHdlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwoY29u
c3QgU3RyaW5nJiwgUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNh
bGxiYWNrPik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMTA4NTEwKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsMTIgKzE3Myw2IEBA
IG1vZHVsZSB3aW5kb3cgewogI2lmIGRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpICYmIEVO
QUJMRV9OT1RJRklDQVRJT05TCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVk
QXRSdW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKICNlbmRp
ZgotI2lmIGRlZmluZWQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAmJiBFTkFCTEVfRklMRV9TWVNURU0K
LSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVEVNUE9SQVJZID0gMDsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgUEVSU0lTVEVOVCA9IDE7Ci0gICAgICAgIFtWOEVuYWJsZWRBdFJ1
bnRpbWU9RmlsZVN5c3RlbV0gdm9pZCB3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbShpbiB1bnNpZ25l
ZCBzaG9ydCB0eXBlLCBpbiBsb25nIGxvbmcgc2l6ZSwgaW4gW0NhbGxiYWNrXSBGaWxlU3lzdGVt
Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBFcnJvckNh
bGxiYWNrIGVycm9yQ2FsbGJhY2spOwotICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lPUZpbGVT
eXN0ZW1dIHZvaWQgd2Via2l0UmVzb2x2ZUxvY2FsRmlsZVN5c3RlbVVSTChpbiBET01TdHJpbmcg
dXJsLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFj
aywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsK
LSNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSAmJiBFTkFC
TEVfT1JJRU5UQVRJT05fRVZFTlRTCiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBv
cmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21lIGV4YW1wbGVzIGFyZToK
</data>
<flag name="review"
          id="130556"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>