<?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>56876</bug_id>
          
          <creation_ts>2011-03-22 16:03:36 -0700</creation_ts>
          <short_desc>WK2 Icon DB: Expand IconDatabaseClient interface and move it to the main thread</short_desc>
          <delta_ts>2011-03-22 16:30:04 -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>371762</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-22 16:03:36 -0700</bug_when>
    <thetext>WK2 Icon DB: Expand IconDatabaseClient interface and move it to the main thread

This is blocking https://bugs.webkit.org/show_bug.cgi?id=56425 IconDatabase for WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371765</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-22 16:06:40 -0700</bug_when>
    <thetext>The expansion of the client interface is inspired by Patch #3 in https://bugs.webkit.org/show_bug.cgi?id=56425 and is laying the groundwork for future use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371776</commentid>
    <comment_count>2</comment_count>
      <attachid>86533</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-22 16:15:45 -0700</bug_when>
    <thetext>Created attachment 86533
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371782</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-22 16:18:54 -0700</bug_when>
    <thetext>Attachment 86533 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/WebCore/loader/icon/IconDatabase.cpp:88:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/loader/icon/IconDatabase.cpp:2123:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/loader/icon/IconDatabase.cpp:2147:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/loader/icon/IconDatabase.cpp:2171:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 4 in 10 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>371791</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-22 16:25:41 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Attachment 86533 [details] did not pass style-queue:
&gt; 
&gt; 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
&gt; 
&gt; Source/WebCore/loader/icon/IconDatabase.cpp:88:  This { should be at the end of the previous line  [whitespace/braces] [4]
&gt; Source/WebCore/loader/icon/IconDatabase.cpp:2123:  This { should be at the end of the previous line  [whitespace/braces] [4]
&gt; Source/WebCore/loader/icon/IconDatabase.cpp:2147:  This { should be at the end of the previous line  [whitespace/braces] [4]
&gt; Source/WebCore/loader/icon/IconDatabase.cpp:2171:  This { should be at the end of the previous line  [whitespace/braces] [4]
&gt; Total errors found: 4 in 10 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

All style errors fixed locally for the landing, once I get a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371793</commentid>
    <comment_count>5</comment_count>
      <attachid>86533</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-03-22 16:28:12 -0700</bug_when>
    <thetext>Comment on attachment 86533
Patch v1

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

&gt;&gt; Source/WebCore/loader/icon/IconDatabase.cpp:88
&gt;&gt; +{
&gt; 
&gt; This { should be at the end of the previous line  [whitespace/braces] [4]

I agree with the mighty style bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371799</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-22 16:30:04 -0700</bug_when>
    <thetext>r81719</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86533</attachid>
            <date>2011-03-22 16:15:45 -0700</date>
            <delta_ts>2011-03-22 16:28:12 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>19013</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNzEyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDggQEAKKzIwMTEtMDMtMjIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQ4MzExPiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2ODc2CisgICAgICAgIFdLMiBJY29uIERC
OiBFeHBhbmQgSWNvbkRhdGFiYXNlQ2xpZW50IGludGVyZmFjZSBhbmQgbW92ZSBpdCB0byB0aGUg
bWFpbiB0aHJlYWQKKworICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHA6Cisg
ICAgICAgIEFkZCBhIGR1bW15IGNsaWVudCBpbXBsZW1lbnRhdGlvbiBmb3Igbm9uLU1hYywgbm9u
LVdpbiBwb3J0czoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRJY29uRGF0YWJhc2VDbGllbnQ6
OnBlcmZvcm1JbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdEljb25EYXRhYmFzZUNs
aWVudDo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RGVm
YXVsdEljb25EYXRhYmFzZUNsaWVudDo6ZGlkSW1wb3J0SWNvbkRhdGFGb3JQYWdlVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRlZmF1bHRJY29uRGF0YWJhc2VDbGllbnQ6OmRpZENoYW5nZUljb25G
b3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRJY29uRGF0YWJhc2VDbGllbnQ6
OmRpZFJlbW92ZUFsbEljb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRJY29uRGF0YWJh
c2VDbGllbnQ6OmRpZEZpbmlzaFVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0
Q2xpZW50KToKKworICAgICAgICBFaXRoZXIgY2FsbCB0aGUgY2xpZW50IGRpcmVjdGx5IHdoZW4g
b24gdGhlIG1haW4gdGhyZWFkLCBvciB1c2UgdGhlIGRpc3BhdGNoIGZ1bmN0aW9ucyBiZWxvdwor
ICAgICAgICBpZiBvbiB0aGUgYmFja2dyb3VuZCB0aHJlYWQ6CisgICAgICAgIChXZWJDb3JlOjpJ
Y29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJDb3JlOjpJ
Y29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Oklj
b25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0
YWJhc2U6OnJlYWRGcm9tRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNl
OjpyZW1vdmVBbGxJY29uc09uVGhyZWFkKToKKworICAgICAgICBBZGQgYSB2ZXJ5IHRhcmdldGVk
IFdvcmtJdGVtIGludGVyZmFjZSBmb3IgZGlzcGF0Y2hpbmcgY2xpZW50IGNhbGxzIG9uIHRoZSBt
YWluIHRocmVhZDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaWVudFdvcmtJdGVtOjpDbGllbnRXb3Jr
SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDbGllbnRXb3JrSXRlbTo6fkNsaWVudFdvcmtJdGVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkltcG9ydGVkSWNvblVSTEZvclBhZ2VVUkxXb3JrSXRlbTo6
SW1wb3J0ZWRJY29uVVJMRm9yUGFnZVVSTFdvcmtJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
cG9ydGVkSWNvblVSTEZvclBhZ2VVUkxXb3JrSXRlbTo6fkltcG9ydGVkSWNvblVSTEZvclBhZ2VV
UkxXb3JrSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpJbXBvcnRlZEljb25VUkxGb3JQYWdlVVJM
V29ya0l0ZW06OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFdlYkNvcmU6OkltcG9ydGVkSWNvbkRh
dGFGb3JQYWdlVVJMV29ya0l0ZW06OkltcG9ydGVkSWNvbkRhdGFGb3JQYWdlVVJMV29ya0l0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6SW1wb3J0ZWRJY29uRGF0YUZvclBhZ2VVUkxXb3JrSXRlbTo6
fkltcG9ydGVkSWNvbkRhdGFGb3JQYWdlVVJMV29ya0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
SW1wb3J0ZWRJY29uRGF0YUZvclBhZ2VVUkxXb3JrSXRlbTo6cGVyZm9ybVdvcmspOgorICAgICAg
ICAoV2ViQ29yZTo6UmVtb3ZlZEFsbEljb25zV29ya0l0ZW06OlJlbW92ZWRBbGxJY29uc1dvcmtJ
dGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZWRBbGxJY29uc1dvcmtJdGVtOjpwZXJmb3Jt
V29yayk6CisgICAgICAgIChXZWJDb3JlOjpwZXJmb3JtV29ya0l0ZW0pOgorCisgICAgICAgIFVz
ZSB0aGUgY2xpZW50IFdvcmtJdGVtIGludGVyZmFjZSB0byBwZXJmb3JtIHRoZXNlIGNhbGxiYWNr
cyBvbiB0aGUgbWFpbiB0aHJlYWQ6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmRp
c3BhdGNoRGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkxPbk1haW5UaHJlYWQpOgorICAgICAgICAo
V2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkaXNwYXRjaERpZEltcG9ydEljb25EYXRhRm9yUGFnZVVS
TE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmRpc3BhdGNo
RGlkUmVtb3ZlQWxsSWNvbnNPbk1haW5UaHJlYWQpOgorICAgICAgICAqIGxvYWRlci9pY29uL0lj
b25EYXRhYmFzZS5oOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZUNsaWVudC5o
OgorCiAyMDExLTAzLTIyICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCShyZXZpc2lvbiA4MTcwNykKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg0LDkgKzg0LDIwIEBAIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9nZ2luZyhjb25zdCBTdHJpbmcK
IH0KICNlbmRpZgogCitjbGFzcyBEZWZhdWx0SWNvbkRhdGFiYXNlQ2xpZW50IDogcHVibGljIElj
b25EYXRhYmFzZUNsaWVudAoreworcHVibGljOgorICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtSW1w
b3J0KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJM
Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSB7IH0gCisgICAgdmlydHVhbCB2b2lkIGRpZEltcG9y
dEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlbW92ZUFsbEljb25zKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFVS
TEltcG9ydCgpIHsgfQorfTsKKwogc3RhdGljIEljb25EYXRhYmFzZUNsaWVudCogZGVmYXVsdENs
aWVudCgpIAogewotICAgIHN0YXRpYyBJY29uRGF0YWJhc2VDbGllbnQqIGRlZmF1bHRDbGllbnQg
PSBuZXcgSWNvbkRhdGFiYXNlQ2xpZW50KCk7CisgICAgc3RhdGljIEljb25EYXRhYmFzZUNsaWVu
dCogZGVmYXVsdENsaWVudCA9IG5ldyBEZWZhdWx0SWNvbkRhdGFiYXNlQ2xpZW50KCk7CiAgICAg
cmV0dXJuIGRlZmF1bHRDbGllbnQ7CiB9CiAKQEAgLTU1MCw3ICs1NjEsNyBAQCB2b2lkIEljb25E
YXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMCiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBhZ2VVUkxzLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBMT0coSWNvbkRh
dGFiYXNlLCAiRGlzcGF0Y2hpbmcgbm90aWZpY2F0aW9uIHRoYXQgcmV0YWluaW5nIHBhZ2VVUkwg
JXMgaGFzIGEgbmV3IGljb24iLCB1cmxGb3JMb2dnaW5nKHBhZ2VVUkxzW2ldKS5hc2NpaSgpLmRh
dGEoKSk7Ci0gICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRBZGRJY29uRm9yUGFnZVVS
TChwYWdlVVJMc1tpXSk7CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlSWNvbkZvclBh
Z2VVUkwocGFnZVVSTHNbaV0pOwogCiAgICAgICAgICAgICBwb29sLmN5Y2xlKCk7CiAgICAgICAg
IH0KQEAgLTYyMiw3ICs2MzMsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c2V0SWNvblVSTEZvclBh
Z2VVUkwoCiAgICAgICAgIAogICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAiRGlzcGF0Y2hpbmcg
bm90aWZpY2F0aW9uIHRoYXQgd2UgY2hhbmdlZCBhbiBpY29uIG1hcHBpbmcgZm9yIHVybCAlcyIs
IHVybEZvckxvZ2dpbmcocGFnZVVSTCkuYXNjaWkoKS5kYXRhKCkpOwogICAgICAgICBBdXRvZHJh
aW5lZFBvb2wgcG9vbDsKLSAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkQWRkSWNvbkZvclBh
Z2VVUkwocGFnZVVSTCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VJY29uRm9yUGFnZVVS
TChwYWdlVVJMKTsKICAgICB9CiB9CiAKQEAgLTEyNDIsNyArMTI1Myw3IEBAIHZvaWQgSWNvbkRh
dGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAgICAgewogICAgICAgICAgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fcGVuZGluZ1JlYWRpbmdMb2NrKTsKICAgICAgICAgICAgIGlmIChtX3Bh
Z2VVUkxzUGVuZGluZ0ltcG9ydC5jb250YWlucyhwYWdlVVJMKSkgewotICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5kaXNwYXRjaERpZEFkZEljb25Gb3JQYWdlVVJMKHBhZ2VVUkwpOworICAgICAg
ICAgICAgICAgIGRpc3BhdGNoRGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkxPbk1haW5UaHJlYWQo
cGFnZVVSTCk7CiAgICAgICAgICAgICAgICAgbV9wYWdlVVJMc1BlbmRpbmdJbXBvcnQucmVtb3Zl
KHBhZ2VVUkwpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgcG9vbC5jeWNsZSgpOwpA
QCAtMTMxNiw3ICsxMzI3LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQo
KQogICAgIC8vIE5vdyB0aGF0IHdlIGRvbid0IGhvbGQgYW55IGxvY2tzLCBwZXJmb3JtIHRoZSBh
Y3R1YWwgbm90aWZpY2F0aW9ucwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB1cmxzVG9O
b3RpZnkuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk5vdGlmeWlu
ZyBpY29uIGluZm8ga25vd24gZm9yIHBhZ2VVUkwgJXMiLCB1cmxzVG9Ob3RpZnlbaV0uYXNjaWko
KS5kYXRhKCkpOwotICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRBZGRJY29uRm9yUGFnZVVS
TCh1cmxzVG9Ob3RpZnlbaV0pOworICAgICAgICBkaXNwYXRjaERpZEltcG9ydEljb25VUkxGb3JQ
YWdlVVJMT25NYWluVGhyZWFkKHVybHNUb05vdGlmeVtpXSk7CiAgICAgICAgIGlmIChzaG91bGRT
dG9wVGhyZWFkQWN0aXZpdHkoKSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTUyNSw3ICsx
NTM2LDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6OnJlYWRGcm9tRGF0YWJhc2UoKQogICAgICAgICBI
YXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGVuZCA9IHVybHNUb05vdGlmeS5lbmQoKTsKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpdGVyYXRpb24gPSAwOyBpdGVyICE9IGVuZDsgKytpdGVyLCArK2l0
ZXJhdGlvbikgewogICAgICAgICAgICAgTE9HKEljb25EYXRhYmFzZSwgIk5vdGlmeWluZyBpY29u
IHJlY2VpdmVkIGZvciBwYWdlVVJMICVzIiwgdXJsRm9yTG9nZ2luZygqaXRlcikuYXNjaWkoKS5k
YXRhKCkpOwotICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkQWRkSWNvbkZvclBhZ2VV
UkwoKml0ZXIpOworICAgICAgICAgICAgZGlzcGF0Y2hEaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VV
UkxPbk1haW5UaHJlYWQoKml0ZXIpOwogICAgICAgICAgICAgaWYgKHNob3VsZFN0b3BUaHJlYWRB
Y3Rpdml0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBkaWRBbnlXb3JrOwogICAgICAgICAg
ICAgCkBAIC0xNzIzLDcgKzE3MzQsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cmVtb3ZlQWxsSWNv
bnNPblRocmVhCiAgICAgY3JlYXRlRGF0YWJhc2VUYWJsZXMobV9zeW5jREIpOwogICAgIAogICAg
IExPRyhJY29uRGF0YWJhc2UsICJEaXNwYXRjaGluZyBub3RpZmljYXRpb24gdGhhdCB3ZSByZW1v
dmVkIGFsbCBpY29ucyIpOwotICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZFJlbW92ZUFsbEljb25z
KCk7ICAgIAorICAgIGRpc3BhdGNoRGlkUmVtb3ZlQWxsSWNvbnNPbk1haW5UaHJlYWQoKTsgICAg
CiB9CiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpkZWxldGVBbGxQcmVwYXJlZFN0YXRlbWVudHMoKQpA
QCAtMjA5Niw2ICsyMTA3LDExMyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c2V0V2FzRXhjbHVkZWRG
cm9tQmFjCiAgICAgU1FMaXRlU3RhdGVtZW50KG1fc3luY0RCLCAiSU5TRVJUIElOVE8gSWNvbkRh
dGFiYXNlSW5mbyAoa2V5LCB2YWx1ZSkgVkFMVUVTICgnRXhjbHVkZWRGcm9tQmFja3VwJywgMSki
KS5leGVjdXRlQ29tbWFuZCgpOwogfQogCitjbGFzcyBDbGllbnRXb3JrSXRlbSB7CitwdWJsaWM6
CisgICAgQ2xpZW50V29ya0l0ZW0oSWNvbkRhdGFiYXNlQ2xpZW50KiBjbGllbnQpCisgICAgICAg
IDogbV9jbGllbnQoY2xpZW50KQorICAgIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtV29y
aygpID0gMDsKKyAgICB2aXJ0dWFsIH5DbGllbnRXb3JrSXRlbSgpIHsgfQorCitwcm90ZWN0ZWQ6
CisgICAgSWNvbkRhdGFiYXNlQ2xpZW50KiBtX2NsaWVudDsKK307CisKK2NsYXNzIEltcG9ydGVk
SWNvblVSTEZvclBhZ2VVUkxXb3JrSXRlbSA6IHB1YmxpYyBDbGllbnRXb3JrSXRlbQoreworcHVi
bGljOgorICAgIEltcG9ydGVkSWNvblVSTEZvclBhZ2VVUkxXb3JrSXRlbShJY29uRGF0YWJhc2VD
bGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBwYWdlVVJMKQorICAgICAgICA6IENsaWVudFdv
cmtJdGVtKGNsaWVudCkKKyAgICAgICAgLCBtX3BhZ2VVUkwobmV3IFN0cmluZyhwYWdlVVJMLnRo
cmVhZHNhZmVDb3B5KCkpKQorICAgIHsgfQorICAgIAorICAgIHZpcnR1YWwgfkltcG9ydGVkSWNv
blVSTEZvclBhZ2VVUkxXb3JrSXRlbSgpCisgICAgeworICAgICAgICBkZWxldGUgbV9wYWdlVVJM
OworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtV29yaygpCisgICAgeworICAgICAg
ICBBU1NFUlQobV9jbGllbnQpOworICAgICAgICBtX2NsaWVudC0+ZGlkSW1wb3J0SWNvblVSTEZv
clBhZ2VVUkwoKm1fcGFnZVVSTCk7CisgICAgICAgIG1fY2xpZW50ID0gMDsKKyAgICB9CisgICAg
Citwcml2YXRlOgorICAgIFN0cmluZyogbV9wYWdlVVJMOworfTsKKworY2xhc3MgSW1wb3J0ZWRJ
Y29uRGF0YUZvclBhZ2VVUkxXb3JrSXRlbSA6IHB1YmxpYyBDbGllbnRXb3JrSXRlbQoreworcHVi
bGljOgorICAgIEltcG9ydGVkSWNvbkRhdGFGb3JQYWdlVVJMV29ya0l0ZW0oSWNvbkRhdGFiYXNl
Q2xpZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKKyAgICAgICAgOiBDbGllbnRX
b3JrSXRlbShjbGllbnQpCisgICAgICAgICwgbV9wYWdlVVJMKG5ldyBTdHJpbmcocGFnZVVSTC50
aHJlYWRzYWZlQ29weSgpKSkKKyAgICB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIH5JbXBvcnRlZElj
b25EYXRhRm9yUGFnZVVSTFdvcmtJdGVtKCkKKyAgICB7CisgICAgICAgIGRlbGV0ZSBtX3BhZ2VV
Ukw7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1Xb3JrKCkKKyAgICB7CisgICAg
ICAgIEFTU0VSVChtX2NsaWVudCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRJbXBvcnRJY29uRGF0
YUZvclBhZ2VVUkwoKm1fcGFnZVVSTCk7CisgICAgICAgIG1fY2xpZW50ID0gMDsKKyAgICB9Cisg
ICAgCitwcml2YXRlOgorICAgIFN0cmluZyogbV9wYWdlVVJMOworfTsKKworY2xhc3MgUmVtb3Zl
ZEFsbEljb25zV29ya0l0ZW0gOiBwdWJsaWMgQ2xpZW50V29ya0l0ZW0KK3sKK3B1YmxpYzoKKyAg
ICBSZW1vdmVkQWxsSWNvbnNXb3JrSXRlbShJY29uRGF0YWJhc2VDbGllbnQqIGNsaWVudCkKKyAg
ICAgICAgOiBDbGllbnRXb3JrSXRlbShjbGllbnQpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgcGVyZm9ybVdvcmsoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKKyAgICAg
ICAgbV9jbGllbnQtPmRpZFJlbW92ZUFsbEljb25zKCk7CisgICAgICAgIG1fY2xpZW50ID0gMDsK
KyAgICB9Cit9OworCitzdGF0aWMgdm9pZCBwZXJmb3JtV29ya0l0ZW0odm9pZCogY29udGV4dCkK
K3sKKyAgICBDbGllbnRXb3JrSXRlbSogaXRlbSA9IHN0YXRpY19jYXN0PENsaWVudFdvcmtJdGVt
Kj4oY29udGV4dCk7CisgICAgaXRlbS0+cGVyZm9ybVdvcmsoKTsKKyAgICBkZWxldGUgaXRlbTsK
K30KKwordm9pZCBJY29uRGF0YWJhc2U6OmRpc3BhdGNoRGlkSW1wb3J0SWNvblVSTEZvclBhZ2VV
UkxPbk1haW5UaHJlYWQoY29uc3QgU3RyaW5nJiBwYWdlVVJMKQoreworICAgIEFTU0VSVF9JQ09O
X1NZTkNfVEhSRUFEKCk7CisKKyAgICBJbXBvcnRlZEljb25VUkxGb3JQYWdlVVJMV29ya0l0ZW0q
IHdvcmsgPSBuZXcgSW1wb3J0ZWRJY29uVVJMRm9yUGFnZVVSTFdvcmtJdGVtKG1fY2xpZW50LCBw
YWdlVVJMKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKHBlcmZvcm1Xb3JrSXRlbSwgd29yayk7Cit9
CisKK3ZvaWQgSWNvbkRhdGFiYXNlOjpkaXNwYXRjaERpZEltcG9ydEljb25EYXRhRm9yUGFnZVVS
TE9uTWFpblRocmVhZChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCit7CisgICAgQVNTRVJUX0lDT05f
U1lOQ19USFJFQUQoKTsKKworICAgIEltcG9ydGVkSWNvbkRhdGFGb3JQYWdlVVJMV29ya0l0ZW0q
IHdvcmsgPSBuZXcgSW1wb3J0ZWRJY29uRGF0YUZvclBhZ2VVUkxXb3JrSXRlbShtX2NsaWVudCwg
cGFnZVVSTCk7CisgICAgY2FsbE9uTWFpblRocmVhZChwZXJmb3JtV29ya0l0ZW0sIHdvcmspOwor
fQorCit2b2lkIEljb25EYXRhYmFzZTo6ZGlzcGF0Y2hEaWRSZW1vdmVBbGxJY29uc09uTWFpblRo
cmVhZCgpCit7CisgICAgQVNTRVJUX0lDT05fU1lOQ19USFJFQUQoKTsKKworICAgIFJlbW92ZWRB
bGxJY29uc1dvcmtJdGVtKiB3b3JrID0gbmV3IFJlbW92ZWRBbGxJY29uc1dvcmtJdGVtKG1fY2xp
ZW50KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKHBlcmZvcm1Xb3JrSXRlbSwgd29yayk7Cit9CisK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElDT05EQVRBQkFT
RSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCShyZXZp
c2lvbiA4MTcwNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNiArMjEzLDExIEBAIHByaXZhdGU6ICAgIAogICAgIHZv
aWQgcmVtb3ZlSWNvbkZyb21TUUxEYXRhYmFzZShjb25zdCBTdHJpbmcmIGljb25VUkwpOwogICAg
IHZvaWQgd3JpdGVJY29uU25hcHNob3RUb1NRTERhdGFiYXNlKGNvbnN0IEljb25TbmFwc2hvdCYp
OyAgICAKICAgICAKKyAgICAvLyBNZXRob2RzIHRvIGRpc3BhdGNoIGNsaWVudCBjYWxsYmFja3Mg
b24gdGhlIG1haW4gdGhyZWFkCisgICAgdm9pZCBkaXNwYXRjaERpZEltcG9ydEljb25VUkxGb3JQ
YWdlVVJMT25NYWluVGhyZWFkKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlzcGF0Y2hEaWRJ
bXBvcnRJY29uRGF0YUZvclBhZ2VVUkxPbk1haW5UaHJlYWQoY29uc3QgU3RyaW5nJik7CisgICAg
dm9pZCBkaXNwYXRjaERpZFJlbW92ZUFsbEljb25zT25NYWluVGhyZWFkKCk7CisgICAgCiAgICAg
Ly8gVGhlIGNsaWVudCBpcyBzZXQgYnkgdGhlIG1haW4gdGhyZWFkIGJlZm9yZSB0aGUgdGhyZWFk
IHN0YXJ0cywgYW5kIGZyb20gdGhlbiBvbiBpcyBvbmx5IHVzZWQgYnkgdGhlIHN5bmMgdGhyZWFk
CiAgICAgSWNvbkRhdGFiYXNlQ2xpZW50KiBtX2NsaWVudDsKICAgICAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUNsaWVudC5oCShyZXZpc2lvbiA4
MTcwNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZUNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcs
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMiwyMCArMzIsMjAgQEAKICNpbmNsdWRlIDx3dGYvRmFzdEFsbG9j
QmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+Ci0KLS8vIEFsbCBvZiB0aGVzZSBjbGllbnQgbWV0aG9kcyB3aWxsIGJlIGNhbGxlZCBm
cm9tIGEgbm9uLW1haW4gdGhyZWFkCi0vLyBUYWtlIGFwcHJvcHJpYXRlIG1lYXN1cmVzCiAgCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEljb25EYXRhYmFzZUNsaWVudCB7Ci0gICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSWNvbkRhdGFiYXNlQ2xpZW50KTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgSWNvbkRh
dGFiYXNlQ2xpZW50KCkgeyB9CiAgICAgdmlydHVhbCB+SWNvbkRhdGFiYXNlQ2xpZW50KCkgeyB9
Ci0gICAgdmlydHVhbCBib29sIHBlcmZvcm1JbXBvcnQoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVtb3ZlQWxsSWNvbnMoKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRBZGRJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIC8qcGFnZVVS
TCovKSB7IH0KKworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtSW1wb3J0KCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJp
bmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUljb25Gb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlQWxsSWNvbnMoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFVSTEltcG9ydCgpID0gMDsKIH07CiAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlIApJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gODE3MTIp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyMiBAQAorMjAxMS0wMy0yMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg2NDgzMTE+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTY4NzYKKyAgICAgICAgV0syIEljb24gREI6IEV4cGFuZCBJY29uRGF0YWJhc2VDbGllbnQg
aW50ZXJmYWNlIGFuZCBtb3ZlIGl0IHRvIHRoZSBtYWluIHRocmVhZAorCisgICAgICAgIE5vdGUg
dGhhdCB3aGlsZSB0aGUgbmV3IGNsaWVudCBjYWxscyBhbHdheXMgY29tZSB0aHJvdWdoIG9uIHRo
ZSBtYWluIHRocmVhZCwgb3VyIG1lY2hhbmlzbXMgdG8KKyAgICAgICAgcm91dGUgZGlzcGF0Y2hl
cyB0byB0aGUgbWFpbiB0aHJlYWQgYXJlIHN0aWxsIHZhbGlkIGFuZCB3aWxsIHN0aWxsIHdvcmsu
CisKKyAgICAgICAgVXBkYXRlIHRvIHRoZSBuZXcgSWNvbkRhdGFiYXNlQ2xpZW50IGludGVyZmFj
ZToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQubW06CisgICAgICAg
IChXZWJJY29uRGF0YWJhc2VDbGllbnQ6OmRpZFJlbW92ZUFsbEljb25zKToKKyAgICAgICAgKFdl
Ykljb25EYXRhYmFzZUNsaWVudDo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAg
ICAoV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwpOgor
ICAgICAgICAoV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTCk6
CisgICAgICAgIChXZWJJY29uRGF0YWJhc2VDbGllbnQ6OmRpZEZpbmlzaFVSTEltcG9ydCk6CisK
IDIwMTEtMDMtMjIgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQuaAkocmV2
aXNpb24gODE3MDcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29u
RGF0YWJhc2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOSBAQAogY2xhc3Mg
V2ViSWNvbkRhdGFiYXNlQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Okljb25EYXRhYmFzZUNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHBlcmZvcm1JbXBvcnQoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZW1vdmVBbGxJY29ucygpOwotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZEFkZEljb25Gb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlQWxsSWNvbnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2
b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7CisgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaFVSTEltcG9ydCgpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQu
bW0JKHJldmlzaW9uIDgxNzA3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViSWNvbkRhdGFiYXNlQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxNCArNDEsMTQg
QEAgYm9vbCBXZWJJY29uRGF0YWJhc2VDbGllbnQ6OnBlcmZvcm1JbXBvcgogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaXNwYXRjaERpZFJlbW92
ZUFsbEljb25zKCkKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRSZW1vdmVBbGxJY29u
cygpCiB7CiAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29s
IGFsbG9jXSBpbml0XTsKICAgICBbW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2Vd
IF9zZW5kRGlkUmVtb3ZlQWxsSWNvbnNOb3RpZmljYXRpb25dOwogICAgIFtwb29sIGRyYWluXTsK
IH0KIAotdm9pZCBXZWJJY29uRGF0YWJhc2VDbGllbnQ6OmRpc3BhdGNoRGlkQWRkSWNvbkZvclBh
Z2VVUkwoY29uc3QgV1RGOjpTdHJpbmcmIHBhZ2VVUkwpCit2b2lkIFdlYkljb25EYXRhYmFzZUNs
aWVudDo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMKQog
ewogICAgIC8vIFRoaXMgaXMgYSBxdWljayBub3RpZmljYXRpb24gdGhhdCBpcyBsaWtlbHkgdG8g
ZmlyZSBpbiBhIHJhcGlkbHkgaXRlcmF0aW5nIGxvb3AKICAgICAvLyBUaGVyZWZvcmUgd2UgbGV0
IFdlYkNvcmUgaGFuZGxlIGF1dG9yZWxlYXNlIGJ5IGRyYWluaW5nIGl0cyBwb29sICJmcm9tIHRp
bWUgdG8gdGltZSIKQEAgLTU2LDQgKzU2LDE5IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNlQ2xpZW50
OjpkaXNwYXRjaERpZEEKICAgICBbW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2Vd
IF9zZW5kTm90aWZpY2F0aW9uRm9yVVJMOnBhZ2VVUkxdOwogfQogCit2b2lkIFdlYkljb25EYXRh
YmFzZUNsaWVudDo6ZGlkSW1wb3J0SWNvbkRhdGFGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFn
ZVVSTCkKK3sKKyAgICAvLyBXZWJLaXQxIG9ubHkgaGFzIGEgc2luZ2xlICJpY29uIGRpZCBjaGFu
Z2UiIG5vdGlmaWNhdGlvbi4KKyAgICBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChwYWdlVVJM
KTsKK30KK3ZvaWQgV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVS
TChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCit7CisgICAgLy8gV2ViS2l0MSBvbmx5IGhhcyBhIHNp
bmdsZSAiaWNvbiBkaWQgY2hhbmdlIiBub3RpZmljYXRpb24uCisgICAgZGlkSW1wb3J0SWNvblVS
TEZvclBhZ2VVUkwocGFnZVVSTCk7Cit9CisKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlQ2xpZW50Ojpk
aWRGaW5pc2hVUkxJbXBvcnQoKQoreworfQorCiAjZW5kaWYgLy8gRU5BQkxFKElDT05EQVRBQkFT
RSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxNzE0KQorKysgU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDMt
MjIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQ4MzExPiBh
bmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2ODc2CisgICAgICAg
IFdLMiBJY29uIERCOiBFeHBhbmQgSWNvbkRhdGFiYXNlQ2xpZW50IGludGVyZmFjZSBhbmQgbW92
ZSBpdCB0byB0aGUgbWFpbiB0aHJlYWQKKworICAgICAgICBOb3RlIHRoYXQgd2hpbGUgdGhlIG5l
dyBjbGllbnQgY2FsbHMgYWx3YXlzIGNvbWUgdGhyb3VnaCBvbiB0aGUgbWFpbiB0aHJlYWQsIG91
ciBtZWNoYW5pc21zIHRvCisgICAgICAgIHJvdXRlIGRpc3BhdGNoZXMgdG8gdGhlIG1haW4gdGhy
ZWFkIGFyZSBzdGlsbCB2YWxpZCBhbmQgd2lsbCBzdGlsbCB3b3JrLgorCisgICAgICAgIFVwZGF0
ZSB0byB0aGUgbmV3IEljb25EYXRhYmFzZUNsaWVudCBpbnRlcmZhY2U6CisgICAgICAgICogV2Vi
SWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkljb25EYXRhYmFzZTo6cGVyZm9ybUltcG9y
dCk6CisgICAgICAgIChXZWJJY29uRGF0YWJhc2U6OmRpZFJlbW92ZUFsbEljb25zKToKKyAgICAg
ICAgKFdlYkljb25EYXRhYmFzZTo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAg
ICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwpOgorICAgICAg
ICAoV2ViSWNvbkRhdGFiYXNlOjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChX
ZWJJY29uRGF0YWJhc2U6OmRpZEZpbmlzaFVSTEltcG9ydCk6CisgICAgICAgICogV2ViSWNvbkRh
dGFiYXNlLmg6CisKIDIwMTEtMDMtMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJJY29uRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkljb25EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDgxNzA3KQorKysgU291cmNlL1dlYktpdC93
aW4vV2ViSWNvbkRhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIyLDcgKzMyMiwxMyBA
QCBIQklUTUFQIFdlYkljb25EYXRhYmFzZTo6Z2V0T3JDcmVhdGVEZWZhCiAKIC8vIEljb25EYXRh
YmFzZUNsaWVudAogCi12b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlzcGF0Y2hEaWRSZW1vdmVBbGxJ
Y29ucygpCitib29sIFdlYkljb25EYXRhYmFzZTo6cGVyZm9ybUltcG9ydCgpCit7CisgICAgLy8g
V2luZG93cyBkb2Vzbid0IGRvIGFueSBvbGQtc3R5bGUgZGF0YWJhc2UgaW1wb3J0aW5nLgorICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkUmVtb3ZlQWxsSWNv
bnMoKQogewogICAgIC8vIFF1ZXVlaW5nIHRoZSBlbXB0eSBzdHJpbmcgaXMgYSBzcGVjaWFsIHdh
eSBvZiBzYXlpbmcgInRoaXMgcXVldWVkIG5vdGlmaWNhdGlvbiBpcyB0aGUgZGlkUmVtb3ZlQWxs
SWNvbnMgbm90aWZpY2F0aW9uIgogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX25vdGlmaWNhdGlv
bk11dGV4KTsKQEAgLTMzMCwxMyArMzM2LDI5IEBAIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaXNw
YXRjaERpZFJlbW92ZUEKICAgICBzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5KCk7CiB9CiAK
LXZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaXNwYXRjaERpZEFkZEljb25Gb3JQYWdlVVJMKGNvbnN0
IFN0cmluZyYgcGFnZVVSTCkKLXsgICAKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRJbXBvcnRJ
Y29uVVJMRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYgcGFnZVVSTCkKK3sKICAgICBNdXRl
eExvY2tlciBsb2NrZXIobV9ub3RpZmljYXRpb25NdXRleCk7CiAgICAgbV9ub3RpZmljYXRpb25R
dWV1ZS5hcHBlbmQocGFnZVVSTC50aHJlYWRzYWZlQ29weSgpKTsKICAgICBzY2hlZHVsZU5vdGlm
aWNhdGlvbkRlbGl2ZXJ5KCk7CiB9CiAKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpkaWRJbXBvcnRJ
Y29uRGF0YUZvclBhZ2VVUkwoY29uc3QgV1RGOjpTdHJpbmcmIHBhZ2VVUkwpCit7CisgICAgLy8g
V2ViS2l0MSBvbmx5IGhhcyBhIHNpbmdsZSAiaWNvbiBkaWQgY2hhbmdlIiBub3RpZmljYXRpb24u
CisgICAgZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwocGFnZVVSTCk7Cit9CisKK3ZvaWQgV2Vi
SWNvbkRhdGFiYXNlOjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYg
cGFnZVVSTCkKK3sKKyAgICAvLyBXZWJLaXQxIG9ubHkgaGFzIGEgc2luZ2xlICJpY29uIGRpZCBj
aGFuZ2UiIG5vdGlmaWNhdGlvbi4KKyAgICBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChwYWdl
VVJMKTsKK30KKwordm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZEZpbmlzaFVSTEltcG9ydCgpCit7
Cit9CisKIHZvaWQgV2ViSWNvbkRhdGFiYXNlOjpzY2hlZHVsZU5vdGlmaWNhdGlvbkRlbGl2ZXJ5
KCkKIHsKICAgICAvLyBDYWxsZXIgb2YgdGhpcyBtZXRob2QgbXVzdCBob2xkIHRoZSBtX25vdGlm
aWNhdGlvblF1ZXVlIGxvY2sKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFz
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCShy
ZXZpc2lvbiA4MTcwNykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkljb25EYXRhYmFzZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDcsOCArMTA3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgLyogW3Jl
dHZhbF1bb3V0XSAqLyBCT09MKiByZXN1bHQpOwogCiAgICAgLy8gSWNvbkRhdGFiYXNlQ2xpZW50
Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVtb3ZlQWxsSWNvbnMoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRBZGRJY29uRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYp
OworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtSW1wb3J0KCk7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlbW92ZUFsbEljb25zKCk7CisgICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25VUkxGb3JQ
YWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydElj
b25EYXRhRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VJY29uRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hVUkxJbXBvcnQoKTsKIAogICAgIHN0YXRpYyBCU1RSIGljb25EYXRhYmFz
ZURpZEFkZEljb25Ob3RpZmljYXRpb24oKTsKICAgICBzdGF0aWMgQlNUUiBpY29uRGF0YWJhc2VE
aWRSZW1vdmVBbGxJY29uc05vdGlmaWNhdGlvbigpOwo=
</data>
<flag name="review"
          id="78821"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="78822"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>