<?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>57058</bug_id>
          
          <creation_ts>2011-03-24 15:13:12 -0700</creation_ts>
          <short_desc>Hookup the UIProcess WebIconDatabase to a WebCore::IconDatabase as its implementation</short_desc>
          <delta_ts>2011-03-24 16:58:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56425</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>373130</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-24 15:13:12 -0700</bug_when>
    <thetext>Hookup the UIProcess WebIconDatabase to a WebCore::IconDatabase as its implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373137</commentid>
    <comment_count>1</comment_count>
      <attachid>86846</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-24 15:18:54 -0700</bug_when>
    <thetext>Created attachment 86846
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373139</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-24 15:22:31 -0700</bug_when>
    <thetext>Attachment 86846 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/UIProcess/WebContext.h:161:  The parameter name &quot;path&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/WebIconDatabase.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373140</commentid>
    <comment_count>3</comment_count>
      <attachid>86846</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-03-24 15:25:32 -0700</bug_when>
    <thetext>Comment on attachment 86846
Patch v1

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

&gt; Source/WebKit2/UIProcess/WebIconDatabase.cpp:62
&gt; +        LOG_ERROR(&quot;Icon database is already open, can only have its path set once.&quot;);

This error log could be worded better.

&gt; Source/WebKit2/UIProcess/WebIconDatabase.cpp:74
&gt; +    if (!m_iconDatabaseImpl-&gt;open(WebCore::directoryName(path), WebCore::pathGetFileName(path))) {
&gt; +        LOG_ERROR(&quot;Unable to open WebKit2 icon database on disk&quot;);
&gt; +        m_iconDatabaseImpl.clear();
&gt; +        WebCore::setGlobalIconDatabase(0);
&gt; +    }
&gt; +    WebCore::setGlobalIconDatabase(m_iconDatabaseImpl.get());

I think a using namespace WebCore; at the top would make this nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373205</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-24 16:58:50 -0700</bug_when>
    <thetext>r81920</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86846</attachid>
            <date>2011-03-24 15:18:54 -0700</date>
            <delta_ts>2011-03-24 15:25:32 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20693</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxOTA1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMtMjQgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NzA1OAorICAgICAgICBIb29rdXAgdGhlIFVJUHJvY2VzcyBXZWJJY29uRGF0YWJhc2UgdG8g
YSBXZWJDb3JlOjpJY29uRGF0YWJhc2UgYXMgaXRzIGltcGxlbWVudGF0aW9uCisKKyAgICAgICAg
KiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwpOiBPbmx5IGFkZCB0aGUg
RG9jdW1lbnRMb2FkZXIgdG8gdGhlIHNldCBpZiBpdCdzIG5vbi16ZXJvLgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlOjpJY29uRGF0YWJhc2UpOiBBZGQgbW9yZSBsb2dnaW5nLgorICAg
ICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KTogRGlzcGF0Y2gg
dGhlICJkaWRGaW5pc2hVUkxJbXBvcnQiIGNsaWVudCBjYWxsYmFjayB1c2luZyB0aGUgZm9sbG93
aW5nIDMgbWV0aG9kcy4KKyAgICAgICAgKFdlYkNvcmU6OkZpbmlzaGVkVVJMSW1wb3J0OjpGaW5p
c2hlZFVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpGaW5pc2hlZFVSTEltcG9ydDo6cGVy
Zm9ybVdvcmspOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkaXNwYXRjaERpZEZp
bmlzaFVSTEltcG9ydE9uTWFpblRocmVhZCk6CisKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29u
RGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6Y3JlYXRlKTogRXhw
b3NlIGEgUGFzc093blB0cjw+IGNyZWF0b3IuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoK
KwogMjAxMS0wMy0yNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZp
c2lvbiA4MTg5NCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjIsNiArMjYyLDcgQEAgX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2UyNXNldFBy
aXZhdGVCcgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2UyN2NoZWNrSW50ZWdyaXR5QmVmb3Jl
T3BlbmluZ0V2CiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTVjbG9zZUV2CiBfX1pON1dlYkNv
cmUxMkljb25EYXRhYmFzZTlzZXRDbGllbnRFUE5TXzE4SWNvbkRhdGFiYXNlQ2xpZW50RQorX19a
TjdXZWJDb3JlMTJJY29uRGF0YWJhc2VDMUV2CiBfX1pON1dlYkNvcmUxMlBvcHVwTWVudU1hY0Mx
RVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTJwYWdl
UHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDEzbnVt
YmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNfOUZsb2F0U2l6ZUUKQEAgLTI4OCw2ICsyODksNyBA
QCBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlcjEyY3JlYXRlTlNEYXRhCiBfX1pON1dlYkNvcmUx
MlNoYXJlZEJ1ZmZlcjI0Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXI2YXBwZW5kRVBLY2oKIF9fWk43V2ViQ29yZTEyU2hh
cmVkQnVmZmVyQzFFUEtjaQorX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXJDMUVQS2hpCiBfX1pO
N1dlYkNvcmUxMlNoYXJlZEJ1ZmZlckMxRXYKIF9fWk43V2ViQ29yZTEyU2hhcmVkQnVmZmVyRDFF
dgogX19aTjdXZWJDb3JlMTJTcGVsbENoZWNrZXI4ZGlkQ2hlY2tFaVJLTjNXVEY2VmVjdG9ySU5T
XzE5U3BlbGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKQEAgLTMyMSw2ICszMjMsNyBAQCBfX1pON1dl
YkNvcmUxM1Jlc291cmNlRXJyb3JDMUVQN05TRXJyb3IKIF9fWk43V2ViQ29yZTEzUmVzb3VyY2VF
cnJvckMxRVA5X19DRkVycm9yCiBfX1pON1dlYkNvcmUxM1R5cGluZ0NvbW1hbmQzOWluc2VydFBh
cmFncmFwaFNlcGFyYXRvckluUXVvdGVkQ29udGVudEVQTlNfOERvY3VtZW50RQogX19aTjdXZWJD
b3JlMTNjcmVhdGVXcmFwcGVyRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmpl
Y3RFUE5TXzROb2RlRQorX19aTjdXZWJDb3JlMTNkaXJlY3RvcnlOYW1lRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTN0b0RldmljZVNwYWNlRVJLTlNfOUZsb2F0UmVjdEVQOE5TV2luZG93
CiBfX1pON1dlYkNvcmUxM3RvSFRNTEVsZW1lbnRFUE5TXzIxRm9ybUFzc29jaWF0ZWRFbGVtZW50
RQogX19aTjdXZWJDb3JlMTN0b0pTRE9NV2luZG93RU4zSlNDN0pTVmFsdWVFCkBAIC00MTcsNiAr
NDIwLDcgQEAgX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3I1d2lkdGhFUktOMwogX19aTjdX
ZWJDb3JlMTVWaXNpYmxlUG9zaXRpb25DMUVSS05TXzhQb3NpdGlvbkVOU185RUFmZmluaXR5RQog
X19aTjdXZWJDb3JlMTVkZWZhdWx0TGFuZ3VhZ2VFdgogX19aTjdXZWJDb3JlMTVsb2NhbGl6ZWRT
dHJpbmdFUEtjCitfX1pON1dlYkNvcmUxNXBhdGhHZXRGaWxlTmFtZUVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTE1cmVwb3J0RXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1Zh
bHVlRQogX19aTjdXZWJDb3JlMTV2aXNpdGVkTGlua0hhc2hFUEt0agogX19aTjdXZWJDb3JlMTZB
YnN0cmFjdERhdGFiYXNlMTRzZXRJc0F2YWlsYWJsZUViCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDgxODk0KQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjYyLDcgKzY2Miw4IEBAIEljb25Mb2FkRGVjaXNpb24gSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm8K
ICAgICAvLyBPdGhlcndpc2UgLSBzaW5jZSB3ZSByZWZ1c2UgdG8gcGVyZm9ybSBJL08gb24gdGhl
IG1haW4gdGhyZWFkIHRvIGZpbmQgb3V0IGZvciBzdXJlIC0gd2UgcmV0dXJuIHRoZSBhbnN3ZXIg
dGhhdCBzYXlzCiAgICAgLy8gIllvdSBtaWdodCBiZSBhc2tlZCB0byBsb2FkIHRoaXMgbGF0ZXIs
IHNvIGZsYWcgdGhhdCIKICAgICBMT0coSWNvbkRhdGFiYXNlLCAiRG9uJ3Qga25vdyBpZiB3ZSBz
aG91bGQgbG9hZCAlcyBvciBub3QgLSBhZGRpbmcgJXAgdG8gdGhlIHNldCBvZiBkb2N1bWVudCBs
b2FkZXJzIHdhaXRpbmcgb24gYSBkZWNpc2lvbiIsIGljb25VUkwuYXNjaWkoKS5kYXRhKCksIG5v
dGlmaWNhdGlvbkRvY3VtZW50TG9hZGVyKTsKLSAgICBtX2xvYWRlcnNQZW5kaW5nRGVjaXNpb24u
YWRkKG5vdGlmaWNhdGlvbkRvY3VtZW50TG9hZGVyKTsgICAgCisgICAgaWYgKG5vdGlmaWNhdGlv
bkRvY3VtZW50TG9hZGVyKQorICAgICAgICBtX2xvYWRlcnNQZW5kaW5nRGVjaXNpb24uYWRkKG5v
dGlmaWNhdGlvbkRvY3VtZW50TG9hZGVyKTsgICAgCiAKICAgICByZXR1cm4gSWNvbkxvYWRVbmtu
b3duOwogfQpAQCAtNzcwLDYgKzc3MSw3IEBAIEljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNlKCkK
ICAgICAsIG1faW1wb3J0ZWQoZmFsc2UpCiAgICAgLCBtX2lzSW1wb3J0ZWRTZXQoZmFsc2UpCiB7
CisgICAgTE9HKEljb25EYXRhYmFzZSwgIkNyZWF0aW5nIEljb25EYXRhYmFzZSAlcCIsIHRoaXMp
OwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiB9CiAKQEAgLTEyODcsNyArMTI4OSw2IEBA
IHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAvLyBMb29wIHRocm91
Z2ggdGhlIHVybHMgcGVuZGluZyBpbXBvcnQKICAgICAvLyBSZW1vdmUgdW5yZXRhaW5lZCBvbmVz
IGlmIGRhdGFiYXNlIGNsZWFudXAgaXMgYWxsb3dlZAogICAgIC8vIEtlZXAgYSBzZXQgb2Ygb25l
cyB0aGF0IGFyZSByZXRhaW5lZCBhbmQgcGVuZGluZyBub3RpZmljYXRpb24KLSAgICAKICAgICB7
CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKICAgICAgICAg
CkBAIC0xMzMzLDYgKzEzMzQsOSBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9y
dCgpCiAgICAgICAgIHBvb2wuY3ljbGUoKTsKICAgICB9CiAgICAgCisgICAgLy8gTm90aWZ5IHRo
ZSBjbGllbnQgdGhhdCB0aGUgVVJMIGltcG9ydCBpcyBjb21wbGV0ZSBpbiBjYXNlIGl0J3MgbWFu
YWdpbmcgaXRzIG93biBwZW5kaW5nIG5vdGlmaWNhdGlvbnMuCisgICAgZGlzcGF0Y2hEaWRGaW5p
c2hVUkxJbXBvcnRPbk1haW5UaHJlYWQoKTsKKyAgICAKICAgICAvLyBOb3RpZnkgYWxsIERvY3Vt
ZW50TG9hZGVycyB0aGF0IHdlcmUgd2FpdGluZyBmb3IgYW4gaWNvbiBsb2FkIGRlY2lzaW9uIG9u
IHRoZSBtYWluIHRocmVhZAogICAgIGNhbGxPbk1haW5UaHJlYWQobm90aWZ5UGVuZGluZ0xvYWRE
ZWNpc2lvbnNPbk1haW5UaHJlYWQsIHRoaXMpOwogfQpAQCAtMjE3OCw2ICsyMTgyLDIwIEBAIHB1
YmxpYzoKICAgICB9CiB9OwogCitjbGFzcyBGaW5pc2hlZFVSTEltcG9ydCA6IHB1YmxpYyBDbGll
bnRXb3JrSXRlbSB7CitwdWJsaWM6CisgICAgRmluaXNoZWRVUkxJbXBvcnQoSWNvbkRhdGFiYXNl
Q2xpZW50KiBjbGllbnQpCisgICAgICAgIDogQ2xpZW50V29ya0l0ZW0oY2xpZW50KQorICAgIHsg
fQorCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1Xb3JrKCkKKyAgICB7CisgICAgICAgIEFTU0VS
VChtX2NsaWVudCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRGaW5pc2hVUkxJbXBvcnQoKTsKKyAg
ICAgICAgbV9jbGllbnQgPSAwOworICAgIH0KK307CisKIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3Jr
SXRlbSh2b2lkKiBjb250ZXh0KQogewogICAgIENsaWVudFdvcmtJdGVtKiBpdGVtID0gc3RhdGlj
X2Nhc3Q8Q2xpZW50V29ya0l0ZW0qPihjb250ZXh0KTsKQEAgLTIyMDksNiArMjIyNywxNCBAQCB2
b2lkIEljb25EYXRhYmFzZTo6ZGlzcGF0Y2hEaWRSZW1vdmVBbGxJCiAgICAgY2FsbE9uTWFpblRo
cmVhZChwZXJmb3JtV29ya0l0ZW0sIHdvcmspOwogfQogCit2b2lkIEljb25EYXRhYmFzZTo6ZGlz
cGF0Y2hEaWRGaW5pc2hVUkxJbXBvcnRPbk1haW5UaHJlYWQoKQoreworICAgIEFTU0VSVF9JQ09O
X1NZTkNfVEhSRUFEKCk7CisKKyAgICBGaW5pc2hlZFVSTEltcG9ydCogd29yayA9IG5ldyBGaW5p
c2hlZFVSTEltcG9ydChtX2NsaWVudCk7CisgICAgY2FsbE9uTWFpblRocmVhZChwZXJmb3JtV29y
a0l0ZW0sIHdvcmspOworfQorCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9uIDgxODk0KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTczLDYgKzczLDkgQEAgY2xhc3MgSWNvbkRhdGFiYXNlIDogcHVibGljIEljb25EYXRh
YmFzZQogICAgIAogLy8gKioqIE1haW4gVGhyZWFkIE9ubHkgKioqCiBwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8SWNvbkRhdGFiYXNlPiBjcmVhdGUoKSB7IHJldHVybiBuZXcgSWNvbkRh
dGFiYXNlOyB9CisgICAgfkljb25EYXRhYmFzZSgpOworCiAgICAgdmlydHVhbCB2b2lkIHNldENs
aWVudChJY29uRGF0YWJhc2VDbGllbnQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBvcGVuKGNvbnN0
IFN0cmluZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKQEAgLTExMiw3ICsx
MTUsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSWNvbkRhdGFiYXNlKCk7Ci0gICAgfklj
b25EYXRhYmFzZSgpOwogICAgIGZyaWVuZCBJY29uRGF0YWJhc2VCYXNlJiBpY29uRGF0YWJhc2Uo
KTsKIAogICAgIHN0YXRpYyB2b2lkIG5vdGlmeVBlbmRpbmdMb2FkRGVjaXNpb25zT25NYWluVGhy
ZWFkKHZvaWQqKTsKQEAgLTIxOSw2ICsyMjEsNyBAQCBwcml2YXRlOiAgICAKICAgICB2b2lkIGRp
c3BhdGNoRGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkxPbk1haW5UaHJlYWQoY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBkaXNwYXRjaERpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTE9uTWFpblRo
cmVhZChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVtb3ZlQWxsSWNvbnNP
bk1haW5UaHJlYWQoKTsKKyAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoVVJMSW1wb3J0T25NYWlu
VGhyZWFkKCk7CiAgICAgCiAgICAgLy8gVGhlIGNsaWVudCBpcyBzZXQgYnkgdGhlIG1haW4gdGhy
ZWFkIGJlZm9yZSB0aGUgdGhyZWFkIHN0YXJ0cywgYW5kIGZyb20gdGhlbiBvbiBpcyBvbmx5IHVz
ZWQgYnkgdGhlIHN5bmMgdGhyZWFkCiAgICAgSWNvbkRhdGFiYXNlQ2xpZW50KiBtX2NsaWVudDsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxOTA1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDMtMjQgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NzA1OAorICAgICAgICBIb29rdXAgdGhlIFVJUHJvY2VzcyBXZWJJY29uRGF0YWJhc2UgdG8g
YSBXZWJDb3JlOjpJY29uRGF0YWJhc2UgYXMgaXRzIGltcGxlbWVudGF0aW9uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSWNv
bkRhdGFiYXNlOjpXZWJJY29uRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0
YWJhc2U6OnNldERhdGFiYXNlUGF0aCk6IENyZWF0ZSBhIG5ldyBXZWJDb3JlOjpJY29uRGF0YWJh
c2UgYW5kIG9wZW4gaXQgdG8gdGhpcyBwYXRoLgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0
YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKTogQWN0dWFsbHkgcmV0YWluIHRoZSB1cmwsIHVz
aW5nIHRoZSBpbXBsLgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2U6OnJlbGVhc2VJ
Y29uRm9yUGFnZVVSTCk6IEFjdHVhbGx5IHJlbGVhc2UgdGhlIHVybCwgdXNpbmcgdGhlIGltcGwu
CisgICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFzZTo6c2V0SWNvblVSTEZvclBhZ2VVUkwp
OiBBY3R1YWxseSBzZXQgdGhlIHVybCwgdXNpbmcgdGhlIGltcGwuCisgICAgICAgIChXZWJLaXQ6
OldlYkljb25EYXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMKTogQWN0dWFsbHkgc2V0IHRo
ZSBkYXRhLCB1c2luZyB0aGUgaW1wbC4KKyAgICAgICAgKFdlYktpdDo6V2ViSWNvbkRhdGFiYXNl
OjpnZXRMb2FkRGVjaXNpb25Gb3JJY29uVVJMKTogQWN0dWFsbHkgYXNrIGZvciBhIGxvYWQgZGVj
aXNpb24gdG8gY2FsbCBiYWNrIHdpdGguCisgICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFz
ZTo6cGVyZm9ybUltcG9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFzZTo6ZGlk
SW1wb3J0SWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJh
c2U6OmRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTCk6CisgICAgICAgIChXZWJLaXQ6OldlYklj
b25EYXRhYmFzZTo6ZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJY29uRGF0YWJhc2U6OmRpZFJlbW92ZUFsbEljb25zKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SWNvbkRhdGFiYXNlOjpkaWRGaW5pc2hVUkxJbXBvcnQpOiBOb3RpZnkgYWxsIHRoZSBwZW5kaW5n
IGNhbGxiYWNrcyB3aGF0IHRoZWlyIGxvYWQgZGVjaXNpb25zCisgICAgICAgICAgYXJlIG5vdyB0
aGF0IHRoZXkncmUgYXZhaWxhYmxlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuaDoKKworICAgICAgICBBZGQgYW4gSWNvbkRhdGFiYXNlIGxvZ2dpbmcgY2hhbm5lbDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6
ZUxvZ0NoYW5uZWxzSWZOZWNlc3NhcnkpOgorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoK
KworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6c2V0SWNvbkRhdGFiYXNlUGF0aCk6IFBhc3MgdGhlIG5ldyBwYXRoIG9uIHRv
IHRoZSBXZWJJY29uRGF0YWJhc2UsIHBvc3NpYmx5CisgICAgICAgICAgb3BlbmluZyBpdC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorCiAyMDExLTAzLTI0ICBBZGFtIFJvYmVu
ICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBTcGxpdCBNYWMtc3BlY2lmaWMgcGFydHMg
b2YgTGF5ZXJUcmVlSG9zdENBIGludG8gTGF5ZXJUcmVlSG9zdENBTWFjLm1tCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcAkocmV2aXNpb24gODE4OTQpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBA
QCBXVEZMb2dDaGFubmVsIExvZ1Nlc3Npb25TdGF0ZSA9IHsgMHgwMDAwCiBXVEZMb2dDaGFubmVs
IExvZ0NvbnRleHRNZW51ICA9IHsgMHgwMDAwMDAwMiwgIldlYktpdDJMb2dMZXZlbCIsIFdURkxv
Z0NoYW5uZWxPZmYgfTsKIFdURkxvZ0NoYW5uZWwgTG9nVGV4dElucHV0ICAgID0geyAweDAwMDAw
MDA0LCAiV2ViS2l0MkxvZ0xldmVsIiwgV1RGTG9nQ2hhbm5lbE9mZiB9OwogV1RGTG9nQ2hhbm5l
bCBMb2dWaWV3ICAgICAgICAgPSB7IDB4MDAwMDAwMDgsICJXZWJLaXQyTG9nTGV2ZWwiLCBXVEZM
b2dDaGFubmVsT2ZmIH07CitXVEZMb2dDaGFubmVsIExvZ0ljb25EYXRhYmFzZSA9IHsgMHgwMDAw
MDAxMCwgIldlYktpdDJMb2dMZXZlbCIsIFdURkxvZ0NoYW5uZWxPZmYgfTsKIAogI2lmICFQTEFU
Rk9STShNQUMpCiB2b2lkIGluaXRpYWxpemVMb2dDaGFubmVsKFdURkxvZ0NoYW5uZWwqIGNoYW5u
ZWwpCkBAIC01MCw2ICs1MSw3IEBAIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkoKQogICAgIGhhdmVJbml0aWFsaXplZExvZ0NoYW5uZWxzID0gdHJ1ZTsKIAogICAgIGluaXRp
YWxpemVMb2dDaGFubmVsKCZMb2dDb250ZXh0TWVudSk7CisgICAgaW5pdGlhbGl6ZUxvZ0NoYW5u
ZWwoJkxvZ0ljb25EYXRhYmFzZSk7CiAgICAgaW5pdGlhbGl6ZUxvZ0NoYW5uZWwoJkxvZ1Nlc3Np
b25TdGF0ZSk7CiAgICAgaW5pdGlhbGl6ZUxvZ0NoYW5uZWwoJkxvZ1RleHRJbnB1dCk7CiAgICAg
aW5pdGlhbGl6ZUxvZ0NoYW5uZWwoJkxvZ1ZpZXcpOwpJbmRleDogU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vTG9nZ2luZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xv
Z2dpbmcuaAkocmV2aXNpb24gODE4OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dn
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBleHRlcm4gV1RGTG9nQ2hhbm5lbCBMb2dDb250ZXh0TWVudTsKK2V4dGVybiBXVEZMb2dD
aGFubmVsIExvZ0ljb25EYXRhYmFzZTsKIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ1Nlc3Npb25T
dGF0ZTsKIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ1RleHRJbnB1dDsKIGV4dGVybiBXVEZMb2dD
aGFubmVsIExvZ1ZpZXc7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCShyZXZpc2lvbiA4MTg5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSwxMiBAQCBTdHJpbmcgV2ViQ29u
dGV4dDo6ZGF0YWJhc2VEaXJlY3RvcnkoKSBjCiAgICAgcmV0dXJuIHBsYXRmb3JtRGVmYXVsdERh
dGFiYXNlRGlyZWN0b3J5KCk7CiB9CiAKK3ZvaWQgV2ViQ29udGV4dDo6c2V0SWNvbkRhdGFiYXNl
UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgbV9vdmVycmlkZUljb25EYXRhYmFzZVBh
dGggPSBwYXRoOworICAgIG1faWNvbkRhdGFiYXNlLT5zZXREYXRhYmFzZVBhdGgocGF0aCk7Cit9
CisKIFN0cmluZyBXZWJDb250ZXh0OjppY29uRGF0YWJhc2VQYXRoKCkgY29uc3QKIHsKICAgICBp
ZiAoIW1fb3ZlcnJpZGVJY29uRGF0YWJhc2VQYXRoLmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24gODE4OTQpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdGF0aXN0aWNzJiBzdGF0aXN0aWNzKCk7CiAKICAg
ICB2b2lkIHNldERhdGFiYXNlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgZGlyKSB7IG1fb3ZlcnJp
ZGVEYXRhYmFzZURpcmVjdG9yeSA9IGRpcjsgfQotICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlUGF0
aChjb25zdCBTdHJpbmcmIHBhdGgpIHsgbV9vdmVycmlkZUljb25EYXRhYmFzZVBhdGggPSBwYXRo
OyB9CisgICAgdm9pZCBzZXRJY29uRGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAg
ICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBkaXIpIHsgbV9v
dmVycmlkZUxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IGRpcjsgfQogCiAgICAgdm9pZCBlbnN1cmVX
ZWJQcm9jZXNzKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFi
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRh
dGFiYXNlLmNwcAkocmV2aXNpb24gODE4OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSWNvbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsMTIgQEAKICNp
bmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUg
IldlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW0uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ljb25EYXRhYmFzZUJhc2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ0LDYgKzQ4LDcgQEAgV2ViSWNvbkRhdGFiYXNl
Ojp+V2ViSWNvbkRhdGFiYXNlKCkKIAogV2ViSWNvbkRhdGFiYXNlOjpXZWJJY29uRGF0YWJhc2Uo
V2ViQ29udGV4dCogY29udGV4dCkKICAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0KQorICAgICwg
bV91cmxJbXBvcnRDb21wbGV0ZWQoZmFsc2UpCiB7CiB9CiAKQEAgLTUxLDIwICs1Niw1MyBAQCB2
b2lkIFdlYkljb25EYXRhYmFzZTo6aW52YWxpZGF0ZSgpCiB7CiB9CiAKLXZvaWQgV2ViSWNvbkRh
dGFiYXNlOjpyZXRhaW5JY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKQordm9pZCBXZWJJY29u
RGF0YWJhc2U6OnNldERhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7CisgICAgaWYg
KG1faWNvbkRhdGFiYXNlSW1wbCAmJiBtX2ljb25EYXRhYmFzZUltcGwtPmlzT3BlbigpKSB7Cisg
ICAgICAgIExPR19FUlJPUigiSWNvbiBkYXRhYmFzZSBpcyBhbHJlYWR5IG9wZW4sIGNhbiBvbmx5
IGhhdmUgaXRzIHBhdGggc2V0IG9uY2UuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2ljb25EYXRhYmFzZUltcGwgPSAgV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpjcmVhdGUoKTsK
KyAgICBtX2ljb25EYXRhYmFzZUltcGwtPnNldENsaWVudCh0aGlzKTsKKyAgICBtX2ljb25EYXRh
YmFzZUltcGwtPnNldEVuYWJsZWQodHJ1ZSk7CisgICAgaWYgKCFtX2ljb25EYXRhYmFzZUltcGwt
Pm9wZW4oV2ViQ29yZTo6ZGlyZWN0b3J5TmFtZShwYXRoKSwgV2ViQ29yZTo6cGF0aEdldEZpbGVO
YW1lKHBhdGgpKSkgeworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBvcGVuIFdlYktpdDIg
aWNvbiBkYXRhYmFzZSBvbiBkaXNrIik7CisgICAgICAgIG1faWNvbkRhdGFiYXNlSW1wbC5jbGVh
cigpOworICAgICAgICBXZWJDb3JlOjpzZXRHbG9iYWxJY29uRGF0YWJhc2UoMCk7CisgICAgfQor
ICAgIFdlYkNvcmU6OnNldEdsb2JhbEljb25EYXRhYmFzZShtX2ljb25EYXRhYmFzZUltcGwuZ2V0
KCkpOworfQorCit2b2lkIFdlYkljb25EYXRhYmFzZTo6cmV0YWluSWNvbkZvclBhZ2VVUkwoY29u
c3QgU3RyaW5nJiBwYWdlVVJMKQoreworICAgIExPRyhJY29uRGF0YWJhc2UsICJXSzIgVUlQcm9j
ZXNzIHJldGFpbmluZyBpY29uIGZvciBwYWdlIFVSTCAlcyIsIHBhZ2VVUkwuYXNjaWkoKS5kYXRh
KCkpOworICAgIGlmIChtX2ljb25EYXRhYmFzZUltcGwpCisgICAgICAgIG1faWNvbkRhdGFiYXNl
SW1wbC0+cmV0YWluSWNvbkZvclBhZ2VVUkwocGFnZVVSTCk7CiB9CiAKLXZvaWQgV2ViSWNvbkRh
dGFiYXNlOjpyZWxlYXNlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikKK3ZvaWQgV2ViSWNv
bkRhdGFiYXNlOjpyZWxlYXNlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMKQog
eworICAgIExPRyhJY29uRGF0YWJhc2UsICJXSzIgVUlQcm9jZXNzIHJlbGVhc2luZyBpY29uIGZv
ciBwYWdlIFVSTCAlcyIsIHBhZ2VVUkwuYXNjaWkoKS5kYXRhKCkpOworICAgIGlmIChtX2ljb25E
YXRhYmFzZUltcGwpCisgICAgICAgIG1faWNvbkRhdGFiYXNlSW1wbC0+cmVsZWFzZUljb25Gb3JQ
YWdlVVJMKHBhZ2VVUkwpOwogfQogCi12b2lkIFdlYkljb25EYXRhYmFzZTo6c2V0SWNvblVSTEZv
clBhZ2VVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgV2ViSWNvbkRhdGFi
YXNlOjpzZXRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0
cmluZyYgcGFnZVVSTCkKIHsKKyAgICBMT0coSWNvbkRhdGFiYXNlLCAiV0syIFVJUHJvY2VzcyBz
ZXR0aW5nIGljb24gVVJMICVzIGZvciBwYWdlIFVSTCAlcyIsIGljb25VUkwuYXNjaWkoKS5kYXRh
KCksIHBhZ2VVUkwuYXNjaWkoKS5kYXRhKCkpOworICAgIGlmIChtX2ljb25EYXRhYmFzZUltcGwp
CisgICAgICAgIG1faWNvbkRhdGFiYXNlSW1wbC0+c2V0SWNvblVSTEZvclBhZ2VVUkwoaWNvblVS
TCwgcGFnZVVSTCk7CiB9CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvcklj
b25VUkwoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYpCit2b2lk
IFdlYkljb25EYXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMKGNvbnN0IENvcmVJUEM6OkRh
dGFSZWZlcmVuY2UmIGljb25EYXRhLCBjb25zdCBTdHJpbmcmIGljb25VUkwpCiB7CisgICAgTE9H
KEljb25EYXRhYmFzZSwgIldLMiBVSVByb2Nlc3Mgc2V0dGluZyBpY29uIGRhdGEgKCVpIGJ5dGVz
KSBmb3IgcGFnZSBVUkwgJXMiLCAoaW50KWljb25EYXRhLnNpemUoKSwgaWNvblVSTC5hc2NpaSgp
LmRhdGEoKSk7CisgICAgaWYgKCFtX2ljb25EYXRhYmFzZUltcGwpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKGljb25EYXRhLmRhdGEoKSwgaWNvbkRhdGEuc2l6ZSgpKTsKKyAg
ICBtX2ljb25EYXRhYmFzZUltcGwtPnNldEljb25EYXRhRm9ySWNvblVSTChidWZmZXIucmVsZWFz
ZSgpLCBpY29uVVJMKTsKIH0KIAogdm9pZCBXZWJJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNv
bkRhdGFGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIGlj
b25EYXRhKQpAQCAtODksMTIgKzEyNyw4MSBAQCB2b2lkIFdlYkljb25EYXRhYmFzZTo6c3luY2hy
b25vdXNMb2FkRGVjCiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpnZXRMb2FkRGVjaXNpb25Gb3JJ
Y29uVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKKyAg
ICBMT0coSWNvbkRhdGFiYXNlLCAiV0syIFVJUHJvY2VzcyBnZXR0aW5nIGxvYWQgZGVjaXNpb24g
Zm9yIGljb24gVVJMICVzIHdpdGggY2FsbGJhY2sgSUQgJWxsaSIsIGljb25VUkwuYXNjaWkoKS5k
YXRhKCksIGNhbGxiYWNrSUQpOworCisgICAgaWYgKCFtX3dlYkNvbnRleHQpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghbV9pY29uRGF0YWJhc2VJbXBsIHx8ICFtX2ljb25EYXRhYmFzZUlt
cGwtPmlzT3BlbigpIHx8IGljb25VUkwuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fd2ViQ29udGV4
dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2VQcm94eTo6UmVjZWl2
ZWRJY29uTG9hZERlY2lzaW9uKHN0YXRpY19jYXN0PGludD4oV2ViQ29yZTo6SWNvbkxvYWRObyks
IGNhbGxiYWNrSUQpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICAvLyBJ
ZiB0aGUgZGVjaXNpb24gaGFzbid0IGJlZW4gcmVhZCBmcm9tIGRpc2sgeWV0LCBzZXQgdGhpcyB1
cmwgYW5kIGNhbGxiYWNrIElEIGFzaWRlIHRvIGJlIG5vdGlmZWQgbGF0ZXIKKyAgICBXZWJDb3Jl
OjpJY29uTG9hZERlY2lzaW9uIGRlY2lzaW9uID0gbV9pY29uRGF0YWJhc2VJbXBsLT5zeW5jaHJv
bm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoaWNvblVSTCwgMCk7CisgICAgaWYgKGRlY2lzaW9u
ID09IFdlYkNvcmU6Okljb25Mb2FkVW5rbm93bikgeworICAgICAgICAvLyBXZSBzaG91bGQgbmV2
ZXIgZ2V0IGFuIHVua25vd24gbG9hZCBkZWNpc2lvbiBhZnRlciB0aGUgVVJMIGltcG9ydCBoYXMg
Y29tcGxldGVkLgorICAgICAgICBBU1NFUlQoIW1fdXJsSW1wb3J0Q29tcGxldGVkKTsKKyAgICAg
ICAgCisgICAgICAgIG1fcGVuZGluZ0xvYWREZWNpc2lvblVSTE1hcC5zZXQoY2FsbGJhY2tJRCwg
aWNvblVSTCk7CisgICAgICAgIHJldHVybjsgICAgCisgICAgfQorICAgIAorICAgIG1fd2ViQ29u
dGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJY29uRGF0YWJhc2VQcm94eTo6UmVj
ZWl2ZWRJY29uTG9hZERlY2lzaW9uKChpbnQpZGVjaXNpb24sIGNhbGxiYWNrSUQpLCAwKTsKK30K
KworLy8gV2ViQ29yZTo6SWNvbkRhdGFiYXNlQ2xpZW50Citib29sIFdlYkljb25EYXRhYmFzZTo6
cGVyZm9ybUltcG9ydCgpCit7CisgICAgLy8gV2ViS2l0MiBpY29uIGRhdGFiYXNlIGRvZXNuJ3Qg
Y3VycmVudGx5IHN1cHBvcnQgaW1wb3J0aW5nIGFueSBvbGQgaWNvbiBkYXRhYmFzZSBmb3JtYXRz
LgorICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkSW1wb3J0
SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBTZW5kIGEgV0syIGNs
aWVudCBub3RpZmljYXRpb24gb3V0IGhlcmUuCit9CisKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpk
aWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBTZW5k
IGEgV0syIGNsaWVudCBub3RpZmljYXRpb24gb3V0IGhlcmUuCit9CisKK3ZvaWQgV2ViSWNvbkRh
dGFiYXNlOjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKQoreworICAgIC8v
IFNlbmQgYSBXSzIgY2xpZW50IG5vdGlmaWNhdGlvbiBvdXQgaGVyZS4KK30KKwordm9pZCBXZWJJ
Y29uRGF0YWJhc2U6OmRpZFJlbW92ZUFsbEljb25zKCkKK3sKKyAgICAvLyBTZW5kIGEgV0syIGNs
aWVudCBub3RpZmljYXRpb24gb3V0IGhlcmUuCit9CisKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpk
aWRGaW5pc2hVUkxJbXBvcnQoKQorewogICAgIGlmICghbV93ZWJDb250ZXh0KQogICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgQVNTRVJUKCFtX3VybEltcG9ydENvbXBsZXRlZCk7CisKKyAgICBM
T0coSWNvbkRhdGFiYXNlLCAiV0syIFVJUHJvY2VzcyBVUkwgaW1wb3J0IGNvbXBsZXRlLCBub3Rp
ZnlpbmcgYWxsICVpIHBlbmRpbmcgcGFnZSBVUkwgbG9hZCBkZWNpc2lvbnMiLCBtX3BlbmRpbmdM
b2FkRGVjaXNpb25VUkxNYXAuc2l6ZSgpKTsKIAotICAgIC8vIEZJWE1FOiBIb29rdXAgdG8gdGhl
IHJlYWwgSWNvbkRhdGFiYXNlIGltcGxlbWVudGF0aW9uLgorICAgIEhhc2hNYXA8dWludDY0X3Qs
IFN0cmluZz46Oml0ZXJhdG9yIGkgPSBtX3BlbmRpbmdMb2FkRGVjaXNpb25VUkxNYXAuYmVnaW4o
KTsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBTdHJpbmc+OjppdGVyYXRvciBlbmQgPSBtX3BlbmRp
bmdMb2FkRGVjaXNpb25VUkxNYXAuZW5kKCk7CisgICAgCisgICAgZm9yICg7IGkgIT0gZW5kOyAr
K2kpIHsKKyAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIldLMiBVSVByb2Nlc3MgcGVyZm9ybWlu
ZyBkZWxheWVkIGNhbGxiYWNrIG9uIGNhbGxiYWNrIElEICVpIGZvciBwYWdlIHVybCAlcyIsIChp
bnQpaS0+Zmlyc3QsIGktPnNlY29uZC5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIFdlYkNvcmU6
Okljb25Mb2FkRGVjaXNpb24gZGVjaXNpb24gPSBtX2ljb25EYXRhYmFzZUltcGwtPnN5bmNocm9u
b3VzTG9hZERlY2lzaW9uRm9ySWNvblVSTChpLT5zZWNvbmQsIDApOworCisgICAgICAgIC8vIERl
Y2lzaW9ucyBzaG91bGQgbmV2ZXIgYmUgdW5rbm93biBhZnRlciB0aGUgaW5pdGFsIGltcG9ydCBp
cyBjb21wbGV0ZQorICAgICAgICBBU1NFUlQoZGVjaXNpb24gIT0gV2ViQ29yZTo6SWNvbkxvYWRV
bmtub3duKTsKKworICAgICAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdl
czo6V2ViSWNvbkRhdGFiYXNlUHJveHk6OlJlY2VpdmVkSWNvbkxvYWREZWNpc2lvbihzdGF0aWNf
Y2FzdDxpbnQ+KGRlY2lzaW9uKSwgaS0+Zmlyc3QpLCAwKTsKKyAgICB9CisgICAgCisgICAgbV9w
ZW5kaW5nTG9hZERlY2lzaW9uVVJMTWFwLmNsZWFyKCk7CiAgICAgCi0gICAgbV93ZWJDb250ZXh0
LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkljb25EYXRhYmFzZVByb3h5OjpSZWNlaXZl
ZEljb25Mb2FkRGVjaXNpb24oc3RhdGljX2Nhc3Q8aW50PihXZWJDb3JlOjpJY29uTG9hZE5vKSwg
Y2FsbGJhY2tJRCksIDApOworICAgIG1fdXJsSW1wb3J0Q29tcGxldGVkID0gdHJ1ZTsKIH0KIAog
dm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlcikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSWNvbkRhdGFiYXNlLmgJKHJldmlzaW9uIDgxODk0KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTIg
QEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL0ljb25EYXRhYmFzZUJhc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lj
b25EYXRhYmFzZUNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNl
IENvcmVJUEMgewogY2xhc3MgQXJndW1lbnREZWNvZGVyOwpAQCAtNDEsMTEgKzQyLDE1IEBAIGNs
YXNzIERhdGFSZWZlcmVuY2U7CiBjbGFzcyBNZXNzYWdlSUQ7CiB9CiAKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIEljb25EYXRhYmFzZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFdlYkNvbnRleHQ7CiAKLWNsYXNzIFdlYkljb25EYXRhYmFzZSA6IHB1YmxpYyBBUElPYmpl
Y3QgeworY2xhc3MgV2ViSWNvbkRhdGFiYXNlIDogcHVibGljIEFQSU9iamVjdCwgcHVibGljIFdl
YkNvcmU6Okljb25EYXRhYmFzZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5
cGUgQVBJVHlwZSA9IFR5cGVJY29uRGF0YWJhc2U7CiAKQEAgLTU0LDYgKzU5LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1f
d2ViQ29udGV4dCA9IDA7IH0KKyAgICB2b2lkIHNldERhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcm
KTsKIAogICAgIHZvaWQgcmV0YWluSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCByZWxlYXNlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CkBAIC02Nyw2ICs3Mywx
NCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uVVJMKGNv
bnN0IFN0cmluZyYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCisgICAgLy8gV2ViQ29yZTo6SWNv
bkRhdGFiYXNlQ2xpZW50CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1JbXBvcnQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5n
Jik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUFsbEljb25zKCk7CisgICAgdmlydHVhbCB2
b2lkIGRpZEZpbmlzaFVSTEltcG9ydCgpOworICAgIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CiAgICAgQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKik7CiAKQEAgLTc5
LDYgKzkzLDExIEBAIHByaXZhdGU6CiAgICAgQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBkaWRSZWNl
aXZlU3luY1dlYkljb25EYXRhYmFzZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJ
UEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKik7CiAKICAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CisgICAgCisgICAg
T3duUHRyPFdlYkNvcmU6Okljb25EYXRhYmFzZT4gbV9pY29uRGF0YWJhc2VJbXBsOworICAgIGJv
b2wgbV91cmxJbXBvcnRDb21wbGV0ZWQ7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgU3RyaW5nPiBt
X3BlbmRpbmdMb2FkRGVjaXNpb25VUkxNYXA7CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAo=
</data>
<flag name="review"
          id="79203"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>