<?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>55793</bug_id>
          
          <creation_ts>2011-03-04 14:45:19 -0800</creation_ts>
          <short_desc>Add WKPageValidateCommand()</short_desc>
          <delta_ts>2011-03-04 16:59:17 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeff Miller">jeffm</reporter>
          <assigned_to name="Jeff Miller">jeffm</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>362709</commentid>
    <comment_count>0</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-03-04 14:45:19 -0800</bug_when>
    <thetext>Add WKPageValidateCommand()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362734</commentid>
    <comment_count>1</comment_count>
      <attachid>84808</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-03-04 15:08:28 -0800</bug_when>
    <thetext>Created attachment 84808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362767</commentid>
    <comment_count>2</comment_count>
      <attachid>84808</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-04 15:58:19 -0800</bug_when>
    <thetext>Comment on attachment 84808
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:378
&gt; +typedef void (*WKPageValidateCommandCallback)(WKStringRef command, bool isEnabled, int state, WKErrorRef, void*);
&gt; +WK_EXPORT void WKPageValidateCommand(WKPageRef page, WKStringRef command, void* context, WKPageValidateCommandCallback callback);

It’s not clear what “state” is; probably needs a comment. Also, the void* probably needs an argument name to make clear it is the context pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362808</commentid>
    <comment_count>3</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-03-04 16:59:17 -0800</bug_when>
    <thetext>Committed http://trac.webkit.org/changeset/80394</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84808</attachid>
            <date>2011-03-04 15:08:28 -0800</date>
            <delta_ts>2011-03-04 15:58:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55793-20110304150827.patch</filename>
            <type>text/plain</type>
            <size>21646</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwMzc4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDMtMDQgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBXS1BhZ2VWYWxpZGF0ZUNvbW1hbmQoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU3OTMKKyAgICAgICAgCisgICAg
ICAgIE9uIHRoZSBNYWMsIHZhbGlkYXRpb24gb2YgZWRpdCBtZW51IGNvbW1hbmRzIGlzIGhhbmRs
ZWQgd2l0aGluIFdlYktpdDIgaW4gV0tWaWV3Lm1tLgorICAgICAgICBIb3dldmVyLCBvbiBXaW5k
b3dzIHdlIG5lZWQgdG8gZG8gdGhpcyBpbiB0aGUgY2xpZW50LCBzbyBleHBvc2UgdGhpcyBmdW5j
dGlvbmFsaXR5CisgICAgICAgIGluIHRoZSBBUEkgdmlhIFdLUGFnZVZhbGlkYXRlQ29tbWFuZCgp
LgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlIHRoZSBNYWMgaW1wbGVtZW50YXRpb24gdG8gY2Fs
bCBXZWJQYWdlUHJveHk6OnZhbGlkYXRlQ29tbWFuZCgpIHdpdGggYSBjYWxsYmFjaworICAgICAg
ICB0byBtYXRjaCB0aGlzIG5ldyBBUEksIHNvIGl0IG5vIGxvbmdlciBoYXMgdG8gZ28gdGhyb3Vn
aCBQYWdlQ2xpZW50IHRvIGdldCBub3RpZmllZAorICAgICAgICB3aGVuIGEgY29tbWFuZCBpcyB2
YWxpZGF0ZWQuICBUaGlzIG1ha2VzIFBhZ2VDbGllbnQ6OnNldEVkaXRDb21tYW5kU3RhdGUoKSBv
YnNvbGV0ZSwKKyAgICAgICAgc28gSSByZW1vdmVkIHRoZSBzdHViIGltcGxlbWVudGF0aW9ucyBp
biBxdCBhbmQgZ3RrIGFzIHdlbGwuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcDoKKyAgICAgICAgKFdLUGFnZVZhbGlkYXRlQ29tbWFuZCk6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgV0tQYWdlVmFsaWRhdGVDb21tYW5kKCku
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaDogUmVtb3ZlZCBz
ZXRFZGl0Q29tbWFuZFN0YXRlKCkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNs
aWVudEltcGwubW06IFJlbW92ZWQgc2V0RWRpdENvbW1hbmRTdGF0ZSgpLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKHZhbGlkYXRlQ29tbWFuZENhbGxi
YWNrKTogQWRkZWQuCisgICAgICAgICgtW1dLVmlldyB2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVt
Ol0pOiBQYXNzIGNhbGxiYWNrIHRvIHZhbGlkYXRlQ29tbWFuZCgpLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHA6IFJlbW92ZWQgc2V0RWRpdENvbW1hbmRTdGF0ZSgpLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmg6IFJlbW92ZWQgc2V0RWRpdENv
bW1hbmRTdGF0ZSgpLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6IFJlbW92ZWQg
c2V0RWRpdENvbW1hbmRTdGF0ZSgpLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOiBSZW1vdmVkIGRpZFZhbGlkYXRlQ29tbWFuZCgpLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnZhbGlkYXRlQ29tbWFuZCk6IFRoaXMgbm93IHRha2VzIGEgY2FsbGJhY2suCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmFsaWRhdGVDb21tYW5kQ2FsbGJhY2spOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2gpOiBJ
bnZhbGlkYXRlIG1fdmFsaWRhdGVDb21tYW5kQ2FsbGJhY2tzLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDogUmVtb3ZlZCBkaWRWYWxpZGF0ZUNvbW1hbmQoKSwgdmFsaWRhdGVD
b21tYW5kKCkgbm93IHRha2VzIGEgY2FsbGJhY2suCisgICAgICAgIChXZWJLaXQ6OlZhbGlkYXRl
Q29tbWFuZENhbGxiYWNrOjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VmFsaWRh
dGVDb21tYW5kQ2FsbGJhY2s6On5WYWxpZGF0ZUNvbW1hbmRDYWxsYmFjayk6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjazo6cGVyZm9ybUNhbGxiYWNrV2l0
aFJldHVyblZhbHVlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlZhbGlkYXRlQ29tbWFuZENh
bGxiYWNrOjppbnZhbGlkYXRlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlZhbGlkYXRlQ29t
bWFuZENhbGxiYWNrOjpWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IFJlbW92ZWQgRGlkVmFsaWRhdGVD
b21tYW5kLCBhZGRlZCBWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjay4KKyAgICAgICAgKiBVSVByb2Nl
c3MvZ3RrL1dlYlZpZXcuY3BwOiBSZW1vdmVkIHNldEVkaXRDb21tYW5kU3RhdGUoKS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvZ3RrL1dlYlZpZXcuaDogUmVtb3ZlZCBzZXRFZGl0Q29tbWFuZFN0YXRl
KCkuCisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcDogUmVtb3ZlZCBzZXRFZGl0
Q29tbWFuZFN0YXRlKCkuCisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3Lmg6IFJlbW92
ZWQgc2V0RWRpdENvbW1hbmRTdGF0ZSgpLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmFsaWRhdGVDb21tYW5kKTog
VGhpcyBub3cgdGFrZXMgYSBjYWxsYmFja0lELgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6IHZhbGlkYXRlQ29tbWFuZCBub3cgdGFrZXMgYSBjYWxsYmFja0lELgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBWYWxpZGF0ZUNv
bW1hbmQgbm93IHRha2VzIGEgY2FsbGJhY2tJRC4KKwogMjAxMS0wMy0wNCAgSmVzc2llIEJlcmxp
biAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFj
aG93aWFrLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShyZXZpc2lv
biA4MDM3MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTk3LDcgKzk3LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJl
Z2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFn
ZVByb3h5OjpVbmRvT3JSZWRvKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENv
bW1hbmRzKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0Q29tbWFuZFN0YXRlKGNvbnN0
IFN0cmluZyYgY29tbWFuZE5hbWUsIGJvb2wgaXNFbmFibGVkLCBpbnQgc3RhdGUpID0gMDsKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlXZWJQcm9jZXNz
VG9rZW5SZWNlaXZlZChjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBpbnRlcmNlcHRLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
JiwgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmROYW1lLCB1aW50MzJf
dCBzZWxlY3Rpb25TdGFydCwgdWludDMyX3Qgc2VsZWN0aW9uRW5kLCBWZWN0b3I8V2ViQ29yZTo6
Q29tcG9zaXRpb25VbmRlcmxpbmU+JiB1bmRlcmxpbmVzKSA9IDA7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gODAzNzMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjEzLDExICs2MTMsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFdpbmRvd1Jlc2l6ZXJTaXpl
KAogICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0V2luZG93UmVzaXpl
clNpemUod2luZG93UmVzaXplclNpemUpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5Ojp2YWxpZGF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKK3ZvaWQgV2Vi
UGFnZVByb3h5Ojp2YWxpZGF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgUGFz
c1JlZlB0cjxWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjaz4gY2FsbGJhY2spCiB7Ci0gICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgaWYgKCFpc1ZhbGlkKCkpIHsKKyAgICAgICAgY2FsbGJhY2stPmludmFs
aWRhdGUoKTsKICAgICAgICAgcmV0dXJuOwotICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6VmFsaWRhdGVDb21tYW5kKGNvbW1hbmROYW1lKSwgbV9wYWdlSUQpOworICAgIH0K
KworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAg
IG1fdmFsaWRhdGVDb21tYW5kQ2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5nZXQo
KSk7CisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpWYWxpZGF0ZUNvbW1h
bmQoY29tbWFuZE5hbWUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAgICAgCiB2b2lkIFdl
YlBhZ2VQcm94eTo6ZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUp
CkBAIC0yMzQwLDExICsyMzQ1LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEN1cnNvcihjb25z
dCBXZWJDbwogICAgIG1fcGFnZUNsaWVudC0+c2V0Q3Vyc29yKGN1cnNvcik7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRWYWxpZGF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSwgYm9vbCBpc0VuYWJsZWQsIGludDMyX3Qgc3RhdGUpCi17Ci0gICAgbV9wYWdlQ2xpZW50LT5z
ZXRFZGl0Q29tbWFuZFN0YXRlKGNvbW1hbmROYW1lLCBpc0VuYWJsZWQsIHN0YXRlKTsKLX0KLQog
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVFdmVudCh1aW50MzJfdCBvcGFxdWVUeXBlLCBi
b29sIGhhbmRsZWQpCiB7CiAgICAgV2ViRXZlbnQ6OlR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PFdl
YkV2ZW50OjpUeXBlPihvcGFxdWVUeXBlKTsKQEAgLTI0NzIsNiArMjQ3MiwxNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y29tcHV0ZWRQYWdlc0NhbGxiYWNrCiAgICAgY2FsbGJhY2stPnBlcmZvcm1D
YWxsYmFja1dpdGhSZXR1cm5WYWx1ZShwYWdlUmVjdHMsIHRvdGFsU2NhbGVGYWN0b3JGb3JQcmlu
dGluZyk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojp2YWxpZGF0ZUNvbW1hbmRDYWxsYmFjayhj
b25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBib29sIGlzRW5hYmxlZCwgaW50IHN0YXRlLCB1aW50
NjRfdCBjYWxsYmFja0lEKQoreworICAgIFJlZlB0cjxWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjaz4g
Y2FsbGJhY2sgPSBtX3ZhbGlkYXRlQ29tbWFuZENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOwor
ICAgIGlmICghY2FsbGJhY2spIHsKKyAgICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3Nl
cnQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxi
YWNrV2l0aFJldHVyblZhbHVlKGNvbW1hbmROYW1lLmltcGwoKSwgaXNFbmFibGVkLCBzdGF0ZSk7
Cit9CisKICNpZiBQTEFURk9STShNQUMpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURp
Y3Rpb25hcnlMb29rdXAoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvKQogewpAQCAtMjU2OCw2ICsyNTc5LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaCgpCiAgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFw
KG1fc3RyaW5nQ2FsbGJhY2tzKTsKICAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9zY3JpcHRW
YWx1ZUNhbGxiYWNrcyk7CiAgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fY29tcHV0ZWRQYWdl
c0NhbGxiYWNrcyk7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fdmFsaWRhdGVDb21tYW5k
Q2FsbGJhY2tzKTsKIAogICAgIFZlY3RvcjxXZWJFZGl0Q29tbWFuZFByb3h5Kj4gZWRpdENvbW1h
bmRWZWN0b3I7CiAgICAgY29weVRvVmVjdG9yKG1fZWRpdENvbW1hbmRTZXQsIGVkaXRDb21tYW5k
VmVjdG9yKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJl
dmlzaW9uIDgwMzczKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDUxIEBAIGNsYXNzIFdlYkdlc3R1cmVFdmVu
dDsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLU3RyaW5nUmVmLCBTdHJpbmdJbXBsKj4gU3Ry
aW5nQ2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZVJlZiwgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKj4gU2NyaXB0VmFsdWVDYWxsYmFjazsK
IAorLy8gRklYTUU6IE1ha2UgYSB2ZXJzaW9uIG9mIENhbGxiYWNrQmFzZSB3aXRoIHRocmVlIGFy
Z3VtZW50cywgYW5kIGRlZmluZSBWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjayBhcyBhIHNwZWNpYWxp
emF0aW9uLgorY2xhc3MgVmFsaWRhdGVDb21tYW5kQ2FsbGJhY2sgOiBwdWJsaWMgQ2FsbGJhY2tC
YXNlIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIHZvaWQgKCpDYWxsYmFja0Z1bmN0aW9uKShXS1N0
cmluZ1JlZiwgYm9vbCwgaW50MzJfdCwgV0tFcnJvclJlZiwgdm9pZCopOworCisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8VmFsaWRhdGVDb21tYW5kQ2FsbGJhY2s+IGNyZWF0ZSh2b2lkKiBjb250ZXh0
LCBDYWxsYmFja0Z1bmN0aW9uIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjayhjb250ZXh0LCBjYWxsYmFjaykpOworICAg
IH0KKworICAgIHZpcnR1YWwgflZhbGlkYXRlQ29tbWFuZENhbGxiYWNrKCkKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghbV9jYWxsYmFjayk7CisgICAgfQorCisgICAgdm9pZCBwZXJmb3JtQ2FsbGJh
Y2tXaXRoUmV0dXJuVmFsdWUoU3RyaW5nSW1wbCogcmV0dXJuVmFsdWUxLCBib29sIHJldHVyblZh
bHVlMiwgaW50IHJldHVyblZhbHVlMykKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NhbGxiYWNr
KTsKKworICAgICAgICBtX2NhbGxiYWNrKHRvQVBJKHJldHVyblZhbHVlMSksIHJldHVyblZhbHVl
MiwgcmV0dXJuVmFsdWUzLCAwLCBjb250ZXh0KCkpOworCisgICAgICAgIG1fY2FsbGJhY2sgPSAw
OworICAgIH0KKyAgICAKKyAgICB2b2lkIGludmFsaWRhdGUoKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKG1fY2FsbGJhY2spOworCisgICAgICAgIFJlZlB0cjxXZWJFcnJvcj4gZXJyb3IgPSBXZWJF
cnJvcjo6Y3JlYXRlKCk7CisgICAgICAgIG1fY2FsbGJhY2soMCwgMCwgMCwgdG9BUEkoZXJyb3Iu
Z2V0KCkpLCBjb250ZXh0KCkpOworICAgICAgICAKKyAgICAgICAgbV9jYWxsYmFjayA9IDA7Cisg
ICAgfQorCitwcml2YXRlOgorCisgICAgVmFsaWRhdGVDb21tYW5kQ2FsbGJhY2sodm9pZCogY29u
dGV4dCwgQ2FsbGJhY2tGdW5jdGlvbiBjYWxsYmFjaykKKyAgICAgICAgOiBDYWxsYmFja0Jhc2Uo
Y29udGV4dCkKKyAgICAgICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgIHsKKyAgICB9CisK
KyAgICBDYWxsYmFja0Z1bmN0aW9uIG1fY2FsbGJhY2s7Cit9OworCiBjbGFzcyBXZWJQYWdlUHJv
eHkgOiBwdWJsaWMgQVBJT2JqZWN0LCBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQYWdlOwpAQCAt
MjAwLDcgKzI0NSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzVmlld1Zpc2libGUoKSBjb25zdCB7
IHJldHVybiBtX2lzVmlzaWJsZTsgfQogCiAgICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29u
c3QgU3RyaW5nJiBjb21tYW5kTmFtZSk7Ci0gICAgdm9pZCB2YWxpZGF0ZUNvbW1hbmQoY29uc3Qg
U3RyaW5nJiBjb21tYW5kTmFtZSk7CisgICAgdm9pZCB2YWxpZGF0ZUNvbW1hbmQoY29uc3QgU3Ry
aW5nJiBjb21tYW5kTmFtZSwgUGFzc1JlZlB0cjxWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjaz4pOwog
CiAgICAgY29uc3QgU2VsZWN0aW9uU3RhdGUmIHNlbGVjdGlvblN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zZWxlY3Rpb25TdGF0ZTsgfQogICAgIGJvb2wgY2FuRGVsZXRlKCkgY29uc3QgeyByZXR1
cm4gaGFzU2VsZWN0ZWRSYW5nZSgpICYmIGlzQ29udGVudEVkaXRhYmxlKCk7IH0KQEAgLTU2Nyw3
ICs2MTIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFrZUZvY3VzKGJvb2wgZGlyZWN0aW9uKTsK
ICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRDdXJzb3Io
Y29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7Ci0gICAgdm9pZCBkaWRWYWxpZGF0ZUNvbW1hbmQoY29u
c3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgYm9vbCBpc0VuYWJsZWQsIGludDMyX3Qgc3RhdGUpOwog
CiAgICAgdm9pZCBkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3BhcXVlVHlwZSwgYm9vbCBoYW5k
bGVkKTsKIApAQCAtNTc2LDYgKzYyMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdHJpbmdDYWxs
YmFjayhjb25zdCBTdHJpbmcmLCB1aW50NjRfdCk7CiAgICAgdm9pZCBzY3JpcHRWYWx1ZUNhbGxi
YWNrKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50NjRfdCk7CiAgICAgdm9pZCBj
b21wdXRlZFBhZ2VzQ2FsbGJhY2soY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiwgZG91
YmxlIHRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgdWludDY0X3QpOworICAgIHZvaWQgdmFs
aWRhdGVDb21tYW5kQ2FsbGJhY2soY29uc3QgU3RyaW5nJiwgYm9vbCwgaW50LCB1aW50NjRfdCk7
CiAKICAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCk7CiAgICAg
dm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCk7CkBAIC02
MjYsNiArNjcxLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3Ry
aW5nQ2FsbGJhY2s+ID4gbV9zdHJpbmdDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPFNjcmlwdFZhbHVlQ2FsbGJhY2s+ID4gbV9zY3JpcHRWYWx1ZUNhbGxiYWNrczsKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Q29tcHV0ZWRQYWdlc0NhbGxiYWNrPiA+IG1fY29t
cHV0ZWRQYWdlc0NhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VmFsaWRh
dGVDb21tYW5kQ2FsbGJhY2s+ID4gbV92YWxpZGF0ZUNvbW1hbmRDYWxsYmFja3M7CiAKICAgICBI
YXNoU2V0PFdlYkVkaXRDb21tYW5kUHJveHkqPiBtX2VkaXRDb21tYW5kU2V0OwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4J
KHJldmlzaW9uIDgwMzczKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgIE1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkKFdURjo6U3Ry
aW5nIG1pbWVUeXBlLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5nIHBsdWdpbnNQYWdlVVJM
KQogICAgIERpZENoYW5nZVZpZXdwb3J0RGF0YShXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyBh
cmd1bWVudHMpCiAgICAgRGlkUmVjZWl2ZUV2ZW50KHVpbnQzMl90IHR5cGUsIGJvb2wgaGFuZGxl
ZCkKLSAgICBEaWRWYWxpZGF0ZUNvbW1hbmQoV1RGOjpTdHJpbmcgY29tbWFuZE5hbWUsIGJvb2wg
aXNFbmFibGVkLCBpbnQzMl90IHN0YXRlKQogICAgIFNldEN1cnNvcihXZWJDb3JlOjpDdXJzb3Ig
Y3Vyc29yKQogICAgIFNldFN0YXR1c1RleHQoV1RGOjpTdHJpbmcgc3RhdHVzVGV4dCkKICAgICBT
ZXRUb29sVGlwKFdURjo6U3RyaW5nIHRvb2xUaXApCkBAIC0xMjAsNiArMTE5LDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTdHJpbmdDYWxsYmFjayhXVEY6OlN0cmluZyByZXN1
bHRTdHJpbmcsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgU2NyaXB0VmFsdWVDYWxsYmFjayhD
b3JlSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VsdERhdGEsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAg
ICAgQ29tcHV0ZWRQYWdlc0NhbGxiYWNrKFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiBwYWdlUmVj
dHMsIGRvdWJsZSB0b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCisgICAgVmFsaWRhdGVDb21tYW5kQ2FsbGJhY2soV1RGOjpTdHJpbmcgY29tbWFuZCwgYm9v
bCBpc0VuYWJsZWQsIGludDMyX3Qgc3RhdGUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKICAgICBW
aWV3U2NhbGVGYWN0b3JEaWRDaGFuZ2UoZG91YmxlIHNjYWxlRmFjdG9yKQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkocmV2aXNpb24gODAzNzMpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDkzLDYgKzQ5MywxMSBAQCBXS1BhZ2VEZWJ1Z1BhaW50RmxhZ3MgV0tQYWdlR2V0RGVi
dWdQYWluCiAgICAgcmV0dXJuIFdlYlBhZ2VQcm94eTo6ZGVidWdQYWludEZsYWdzKCk7CiB9CiAK
K3ZvaWQgV0tQYWdlVmFsaWRhdGVDb21tYW5kKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1Jl
ZiBjb21tYW5kLCB2b2lkKiBjb250ZXh0LCBXS1BhZ2VWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjayBj
YWxsYmFjaykKK3sKKyAgICB0b0ltcGwocGFnZVJlZiktPnZhbGlkYXRlQ29tbWFuZCh0b0ltcGwo
Y29tbWFuZCktPnN0cmluZygpLCBWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjazo6Y3JlYXRlKGNvbnRl
eHQsIGNhbGxiYWNrKSk7IAorfQorCiB2b2lkIFdLUGFnZUV4ZWN1dGVDb21tYW5kKFdLUGFnZVJl
ZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBjb21tYW5kKQogewogICAgIHRvSW1wbChwYWdlUmVmKS0+
ZXhlY3V0ZUVkaXRDb21tYW5kKHRvSW1wbChjb21tYW5kKS0+c3RyaW5nKCkpOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkocmV2aXNpb24gODAzNzMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3NCw2ICszNzQsOCBAQCBXS19FWFBPUlQgdm9pZCBXS1BhZ2VGb3JjZVJlcGFpbnQoV0tQYWdl
CiAgICAgIlJlZG8iCiAqLwogCit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VWYWxpZGF0ZUNvbW1hbmRD
YWxsYmFjaykoV0tTdHJpbmdSZWYgY29tbWFuZCwgYm9vbCBpc0VuYWJsZWQsIGludCBzdGF0ZSwg
V0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tQYWdlVmFsaWRhdGVDb21tYW5k
KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBjb21tYW5kLCB2b2lkKiBjb250ZXh0LCBXS1Bh
Z2VWYWxpZGF0ZUNvbW1hbmRDYWxsYmFjayBjYWxsYmFjayk7CiBXS19FWFBPUlQgdm9pZCBXS1Bh
Z2VFeGVjdXRlQ29tbWFuZChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgY29tbWFuZCk7CiAK
ICNpZmRlZiBfX2NwbHVzcGx1cwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4MDM3MykKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkK
QEAgLTY5LDcgKzY5LDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckVk
aXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6
VW5kb09yUmVkbyk7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEVkaXRDb21tYW5kU3RhdGUoY29uc3QgU3RyaW5nJiBjb21tYW5k
TmFtZSwgYm9vbCBpc0VuYWJsZWQsIGludCBzdGF0ZSk7CiAgICAgdmlydHVhbCB2b2lkIGludGVy
Y2VwdEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBWZWN0b3I8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZE5hbWUsIHVpbnQzMl90IHNlbGVjdGlv
blN0YXJ0LCB1aW50MzJfdCBzZWxlY3Rpb25FbmQsIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4mIHVuZGVybGluZXMpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREcmFnSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBpbWFnZVNpemUsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2Us
IGJvb2wgaXNMaW5rRHJhZyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCShyZXZpc2lvbiA4MDM3MykKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0yODEsMTEgKzI4MSw2IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxsRWRp
dENvbW1hbmQKICAgICBbW21fd2tWaWV3IHVuZG9NYW5hZ2VyXSByZW1vdmVBbGxBY3Rpb25zV2l0
aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCldOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpz
ZXRFZGl0Q29tbWFuZFN0YXRlKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGJvb2wgaXNFbmFi
bGVkLCBpbnQgbmV3U3RhdGUpCi17Ci0gICAgW21fd2tWaWV3IF9zZXRVc2VySW50ZXJmYWNlSXRl
bVN0YXRlOm5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcoY29tbWFuZE5hbWUpIGVuYWJsZWQ6aXNF
bmFibGVkIHN0YXRlOm5ld1N0YXRlXTsKLX0KLQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6aW50ZXJj
ZXB0S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQsIFZlY3RvcjxX
ZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kc0xpc3QsIHVpbnQzMl90IHNlbGVjdGlv
blN0YXJ0LCB1aW50MzJfdCBzZWxlY3Rpb25FbmQsIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4mIHVuZGVybGluZXMpCiB7CiAgICAgY29tbWFuZHNMaXN0ID0gW21fd2tWaWV3
IF9pbnRlcmNlcHRLZXlFdmVudDpldmVudC5uYXRpdmVFdmVudCgpXTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHJldmlzaW9uIDgwMzczKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01NzIsNiArNTcyLDE4IEBAIHN0YXRpYyBOU1Rvb2xiYXJJdGVtICp0b29sYmFySXRlbShp
ZCA8TlMKICAgICByZXR1cm4gKE5TVG9vbGJhckl0ZW0gKilpdGVtOwogfQogCitzdGF0aWMgdm9p
ZCB2YWxpZGF0ZUNvbW1hbmRDYWxsYmFjayhXS1N0cmluZ1JlZiBjb21tYW5kTmFtZSwgYm9vbCBp
c0VuYWJsZWQsIGludDMyX3Qgc3RhdGUsIFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqIGNvbnRleHQp
Cit7CisgICAgLy8gSWYgdGhlIHByb2Nlc3MgZXhpdHMgYmVmb3JlIHRoZSBjb21tYW5kIGNhbiBi
ZSB2YWxpZGF0ZWQsIHdlJ2xsIGJlIGNhbGxlZCBiYWNrIHdpdGggYW4gZXJyb3IuCisgICAgaWYg
KGVycm9yKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgV0tWaWV3KiB3a1ZpZXcgPSBzdGF0
aWNfY2FzdDxXS1ZpZXcqPihjb250ZXh0KTsKKyAgICBBU1NFUlQod2tWaWV3KTsKKyAgICAKKyAg
ICBbd2tWaWV3IF9zZXRVc2VySW50ZXJmYWNlSXRlbVN0YXRlOm5zU3RyaW5nRnJvbVdlYkNvcmVT
dHJpbmcodG9JbXBsKGNvbW1hbmROYW1lKS0+c3RyaW5nKCkpIGVuYWJsZWQ6aXNFbmFibGVkIHN0
YXRlOnN0YXRlXTsKK30KKwogLSAoQk9PTCl2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtOihpZCA8
TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4paXRlbQogewogICAgIFNFTCBhY3Rpb24gPSBb
aXRlbSBhY3Rpb25dOwpAQCAtNjY3LDcgKzY3OSw3IEBAIC0gKEJPT0wpdmFsaWRhdGVVc2VySW50
ZXJmYWNlSXRlbTooaWQgPE4KICAgICAgICAgLy8gSWYgd2UgYXJlIG5vdCBhbHJlYWR5IGF3YWl0
aW5nIHZhbGlkYXRpb24gZm9yIHRoaXMgY29tbWFuZCwgc3RhcnQgdGhlIGFzeW5jaHJvbm91cyB2
YWxpZGF0aW9uIHByb2Nlc3MuCiAgICAgICAgIC8vIEZJWE1FOiBUaGVvcmV0aWNhbGx5LCB0aGVy
ZSBpcyBhIHJhY2UgaGVyZTsgd2hlbiB3ZSBnZXQgdGhlIGFuc3dlciBpdCBtaWdodCBiZSBvbGQs
IGZyb20gYSBwcmV2aW91cyB0aW1lCiAgICAgICAgIC8vIHdlIGFza2VkIGZvciB0aGUgc2FtZSBj
b21tYW5kOyB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhlIGFuc3dlciBpcyBzdGlsbCB2YWxpZC4K
LSAgICAgICAgX2RhdGEtPl9wYWdlLT52YWxpZGF0ZUNvbW1hbmQoY29tbWFuZE5hbWUpOworICAg
ICAgICBfZGF0YS0+X3BhZ2UtPnZhbGlkYXRlQ29tbWFuZChjb21tYW5kTmFtZSwgVmFsaWRhdGVD
b21tYW5kQ2FsbGJhY2s6OmNyZWF0ZShzZWxmLCB2YWxpZGF0ZUNvbW1hbmRDYWxsYmFjaykpOwog
ICAgIH0KIAogICAgIC8vIFRyZWF0IGFzIGVuYWJsZWQgdW50aWwgd2UgZ2V0IHRoZSByZXN1bHQg
YmFjayBmcm9tIHRoZSB3ZWIgcHJvY2VzcyBhbmQgX3NldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGUg
aXMgY2FsbGVkLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwCShyZXZpc2lvbiA4MDM3MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdrcGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyOSwxMCArMzI5LDYgQEAgdm9pZCBR
V0tQYWdlUHJpdmF0ZTo6d2hlZWxFdmVudChRR3JhcGhpYwogICAgIHBhZ2UtPmhhbmRsZVdoZWVs
RXZlbnQod2hlZWxFdmVudCk7CiB9CiAKLXZvaWQgUVdLUGFnZVByaXZhdGU6OnNldEVkaXRDb21t
YW5kU3RhdGUoY29uc3QgV1RGOjpTdHJpbmcmLCBib29sLCBpbnQpCi17Ci19Ci0KIHZvaWQgUVdL
UGFnZVByaXZhdGU6OnVwZGF0ZUFjdGlvbihRV0tQYWdlOjpXZWJBY3Rpb24gYWN0aW9uKQogewog
I2lmZGVmIFFUX05PX0FDVElPTgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2twYWdlX3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3a3BhZ2VfcC5oCShyZXZpc2lvbiA4MDM3MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZV9wLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsxMDUsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVBY3Rpb24oUVdLUGFnZTo6V2ViQWN0aW9uIGFjdGlv
bik7CiAgICAgdm9pZCB1cGRhdGVOYXZpZ2F0aW9uQWN0aW9ucygpOwogICAgIHZvaWQgdXBkYXRl
RWRpdG9yQWN0aW9ucygpOwotICAgIHZvaWQgc2V0RWRpdENvbW1hbmRTdGF0ZShjb25zdCBXVEY6
OlN0cmluZyYsIGJvb2wsIGludCk7CiAKICAgICB2b2lkIF9xX3dlYkFjdGlvblRyaWdnZXJlZChi
b29sIGNoZWNrZWQpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZp
ZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViVmll
dy5jcHAJKHJldmlzaW9uIDgwMzczKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDExICsyMDksNiBAQCB2b2lkIFdlYlZp
ZXc6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFdlYlZpZXc6OnNldEVkaXRDb21tYW5kU3RhdGUoY29uc3QgU3RyaW5nJiwgYm9vbCwgaW50
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIEZsb2F0UmVjdCBXZWJWaWV3Ojpjb252
ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBGbG9hdFJlY3QmIHZpZXdSZWN0KQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcuaAko
cmV2aXNpb24gODAzNzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlZpZXcu
aAkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50
cyYpOwogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2Vi
RWRpdENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyk7CiAgICAgdmlydHVh
bCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVkaXRD
b21tYW5kU3RhdGUoY29uc3QgV1RGOjpTdHJpbmcmLCBib29sLCBpbnQpOwogICAgIHZpcnR1YWwg
V2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJT
cGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgZG9uZVdp
dGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCB3YXNFdmVudEhh
bmRsZWQpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCShy
ZXZpc2lvbiA4MDM3MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgwMCwxMCArODAwLDYgQEAgdm9pZCBXZWJWaWV3OjpjbGVh
ckFsbEVkaXRDb21tYW5kcygpCiB7CiB9CiAKLXZvaWQgV2ViVmlldzo6c2V0RWRpdENvbW1hbmRT
dGF0ZShjb25zdCBTdHJpbmcmLCBib29sLCBpbnQpCi17Ci19Ci0KIEZsb2F0UmVjdCBXZWJWaWV3
Ojpjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgcmV0
dXJuIHJlY3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAkocmV2
aXNpb24gODAzNzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ5LDcgKzE0OSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHNldFZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRz
Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJF
ZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKICAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdENv
bW1hbmRTdGF0ZShjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wsIGludCk7CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0Jik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNw
YWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0
aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sIHdhc0V2ZW50SGFu
ZGxlZCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCShyZXZpc2lvbiA4MDM3MykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgzLDcgKzk4Myw3IEBAIHZvaWQg
V2ViUGFnZTo6Z2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3QKIH0KICNlbmRpZgogCi12b2lkIFdl
YlBhZ2U6OnZhbGlkYXRlQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKQordm9pZCBX
ZWJQYWdlOjp2YWxpZGF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgdWludDY0
X3QgY2FsbGJhY2tJRCkKIHsKICAgICBib29sIGlzRW5hYmxlZCA9IGZhbHNlOwogICAgIGludDMy
X3Qgc3RhdGUgPSAwOwpAQCAtOTk0LDcgKzk5NCw3IEBAIHZvaWQgV2ViUGFnZTo6dmFsaWRhdGVD
b21tYW5kKGNvbnN0IFN0cmkKICAgICAgICAgaXNFbmFibGVkID0gY29tbWFuZC5pc1N1cHBvcnRl
ZCgpICYmIGNvbW1hbmQuaXNFbmFibGVkKCk7CiAgICAgfQogCi0gICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRWYWxpZGF0ZUNvbW1hbmQoY29tbWFuZE5hbWUsIGlzRW5hYmxlZCwg
c3RhdGUpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZhbGlkYXRlQ29tbWFu
ZENhbGxiYWNrKGNvbW1hbmROYW1lLCBpc0VuYWJsZWQsIHN0YXRlLCBjYWxsYmFja0lEKSk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6ZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFu
ZE5hbWUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgJKHJldmlzaW9uIDgwMzczKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDcgKzM4NSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXRJbml0aWFsRm9jdXMoYm9vbCk7CiAgICAgdm9pZCBzZXRXaW5kb3dSZXNpemVy
U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9pZCBzZXRJc0luV2luZG93KGJv
b2wpOwotICAgIHZvaWQgdmFsaWRhdGVDb21tYW5kKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
dmFsaWRhdGVDb21tYW5kKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90KTsKICAgICB2b2lkIGV4ZWN1
dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgbW91c2VFdmVudChjb25z
dCBXZWJNb3VzZUV2ZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODAzNzMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29y
a2luZyBjb3B5KQpAQCAtOTAsNyArOTAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIHsKICAgICBD
bG9zZSgpCiAgICAgVHJ5Q2xvc2UoKQogCi0gICAgVmFsaWRhdGVDb21tYW5kKFdURjo6U3RyaW5n
IG5hbWUpCisgICAgVmFsaWRhdGVDb21tYW5kKFdURjo6U3RyaW5nIG5hbWUsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCiAgICAgRXhlY3V0ZUVkaXRDb21tYW5kKFdURjo6U3RyaW5nIG5hbWUpCiAKICAg
ICBEaWRSZW1vdmVFZGl0Q29tbWFuZCh1aW50NjRfdCBjb21tYW5kSUQpCg==
</data>
<flag name="review"
          id="76843"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>