<?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>102259</bug_id>
          
          <creation_ts>2012-11-14 11:32:55 -0800</creation_ts>
          <short_desc>Move loading responsibility out of WebResourceLoadScheduler into a new WebResourceLoader</short_desc>
          <delta_ts>2012-11-14 15:59:52 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>98537</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>767111</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-14 11:32:55 -0800</bug_when>
    <thetext>Move loading responsibility out of WebResourceLoadScheduler into a new WebResourceLoader

Per the FIXME in WebResourceLoadScheduler.h, it&apos;s taken it too many responsibilities that don&apos;t belong to it.

We should make a WebResourceLoader that is an intermediary proxy between WebCore and the NetworkProcess.
- It will directly represent a single WebCore::ResourceLoader and be able to deliver loading callbacks to it
- It will be directly message-able from the NetworkProcess without going through the WebResourceLoadScheduler

I&apos;ll resolve this bug in 2 separate patches for ease of review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767125</commentid>
    <comment_count>1</comment_count>
      <attachid>174212</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-14 11:38:44 -0800</bug_when>
    <thetext>Created attachment 174212
Patch 1, v1

This gets a new class into the build.

After this lands I&apos;ll change the messaging to stop using WebResourceLoadScheduler and go directly to this new class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767137</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-14 11:44:22 -0800</bug_when>
    <thetext>Part 1 landed in http://trac.webkit.org/changeset/134640</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767315</commentid>
    <comment_count>3</comment_count>
      <attachid>174263</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-14 14:23:51 -0800</bug_when>
    <thetext>Created attachment 174263
Patch 2, v1

Switch the messaging model over to messaging WebResourceLoaders directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767403</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-14 15:59:52 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/134687</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174212</attachid>
            <date>2012-11-14 11:38:44 -0800</date>
            <delta_ts>2012-11-14 11:40:25 -0800</delta_ts>
            <desc>Patch 1, v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18096</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjODE5YjQ4Li5kZmE5YTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDMg
QEAKIDIwMTItMTEtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIFBhcnQgb2YgIk1vdmUgbG9hZGluZyByZXNwb25zaWJpbGl0eSBvdXQgb2YgV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyIGludG8gYSBuZXcgV2ViUmVzb3VyY2VMb2FkZXIiCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIyNTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIgaGFzIHRha2VuIG9uIHRvbyBtYW55IHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBzaG91bGRu
J3QgYmVsb25nIHRvIGl0LgorCisgICAgICAgIFdlIHNob3VsZCBjcmVhdGUgYSBXZWJSZXNvdXJj
ZUxvYWRlciB0aGF0IHdpbGwgZXZlbnR1YWxseSBhY3QgYXMgYW4gaW50ZXJtZWRpYXJ5IGJldHdl
ZW4KKyAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIgYW5kIE5ldHdvcmtSZXNvdXJjZUxv
YWRlci4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHByZXAtd29yazogSXQgYWRkcyBhIG5ldyBz
a2VsZXRvbiBjbGFzcyB0byB0aGUgV2ViUHJvY2Vzcy4KKworICAgICAgICAqIFdlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBBZGQgdGhlIG5ldyBXZWJSZXNvdXJj
ZUxvYWRlciBjbGFzcyB3aGljaCBpcyBhIHZlcnkgdGhpbiBza2VsZXRvbiBmb3Igbm93OgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OldlYlJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6On5XZWJSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6Y29yZUxvYWRlcik6CisKKyAgICAgICAgQWRhcHQg
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyIHRvIHVzZSB0aGlzIG5ldyBjbGFzcyB3aGVyZSBhcHBy
b3ByaWF0ZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpz
Y2hlZHVsZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6
OmFkZE1haW5SZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OnJlbW92ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVk
dWxlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6ZGlkRmFpbFJlc291cmNl
TG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5oOgorCisKKzIwMTItMTEtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgorCiAgICAgICAgIERlbGl2ZXIgZGF0YSBmcm9tIE5ldHdvcmtQcm9jZXNzIHRvIHJlc291cmNl
cyBwcm9ncmVzc2l2ZWx5LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAyMTcxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAwMGJmMDZkLi5lMjk2ZGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzAsNiArMzcw
LDggQEAKIAkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
MjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovOyB9
OwogCQk1MTA1QjBERDE2MkY3RTlEMDBFMjc3MDkgLyogTmV0d29ya1Byb2Nlc3NNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDVCMERC
MTYyRjdFOUQwMEUyNzcwOSAvKiBOZXR3b3JrUHJvY2Vzc01hbmFnZXIuY3BwICovOyB9OwogCQk1
MTA1QjBERTE2MkY3RTlEMDBFMjc3MDkgLyogTmV0d29ya1Byb2Nlc3NNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTA1QjBEQzE2MkY3RTlE
MDBFMjc3MDkgLyogTmV0d29ya1Byb2Nlc3NNYW5hZ2VyLmggKi87IH07CisJCTUxMEFGRkI5MTY1
NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBBRkZCNzE2NTQyMDQ4MDAxQkEwNUUgLyog
V2ViUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OworCQk1MTBBRkZCQTE2NTQyMDQ4MDAxQkEwNUUg
LyogV2ViUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMEFGRkI4MTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRl
ci5oICovOyB9OwogCQk1MTBDQzg0OTE2MTNDODVDMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3Mu
YXBwIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBD
QzgwRTE2MTNDNzk5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuYXBwICovOyB9OwogCQk1MTBD
Qzg0RjE2MTNDOTJDMDBEMDNFRDMgLyogTWFpbk1hY1Byb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcx
IC8qIE1haW5NYWNQcm9jZXNzLmNwcCAqLzsgfTsKIAkJNTEwRkJCOUExMjg4Qzk1RTAwQUZGREY0
IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRkJCOTgxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRl
eHRNZW51SXRlbURhdGEuY3BwICovOyB9OwpAQCAtMTU4Nyw2ICsxNTg5LDggQEAKIAkJNTEwNUIw
REIxNjJGN0U5RDAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc01hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1QjBEQzE2MkY3RTlEMDBFMjc3MDkgLyog
TmV0d29ya1Byb2Nlc3NNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTA1QjBGMzE2MzA4NzJFMDBFMjc3MDkgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTBBRkZCNzE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUmVzb3VyY2VM
b2FkZXIuY3BwOyBwYXRoID0gTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMEFGRkI4MTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNv
dXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSZXNvdXJj
ZUxvYWRlci5oOyBwYXRoID0gTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTBDQzdERDE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1By
b2Nlc3NNYWluTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TmV0d29ya1Byb2Nlc3NNYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTBDQzdERjE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3MuY3BwOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTBDQzdFMDE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3MuaDsgcGF0aCA9IE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zMDUyLDYgKzMwNTYsOCBAQAogCQkJCTUxRkIwOTAyMTYzQTNCMUMwMEVDMzI0QSAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNTFBQkY2NTYxNjM5MkYx
NTAwMTMyQTdBIC8qIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgKi8sCiAJCQkJNTFBQkY2
NTcxNjM5MkYxNTAwMTMyQTdBIC8qIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oICovLAorCQkJ
CTUxMEFGRkI3MTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5jcHAgKi8sCisJ
CQkJNTEwQUZGQjgxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmggKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IE5ldHdvcms7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
NDkwOCw2ICs0OTE0LDcgQEAKIAkJCQkxQUEzRDc2MjE2NTFCN0QzMDA4NzEzRDAgLyogUmVtb3Rl
TGF5ZXJUcmVlSG9zdE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUZEMThCNjE2NTFG
QkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MUNCQkExMDE2NTIxOUI2MDA1QkU4RkQgLyogTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMEFGRkJBMTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJS
ZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01ODU0LDYgKzU4NjEsNyBAQAogCQkJ
CTFBQTNENzYxMTY1MUI3RDMwMDg3MTNEMCAvKiBSZW1vdGVMYXllclRyZWVIb3N0TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkQxOEI1MTY1MUZCQUQwMERCRTFDRSAv
KiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFDQkJBMEYx
NjUyMTlCNjAwNUJFOEZEIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTUxMEFGRkI5MTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxv
YWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXgg
MWQ4N2FkMy4uYjg0YWQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1l
bnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRlci5oPgpAQCAtMTAzLDcgKzEwNCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBS
ZXNvCiAgICAgfQogICAgIAogICAgIHJlc291cmNlTG9hZGVyLT5zZXRJZGVudGlmaWVyKGlkZW50
aWZpZXIpOwotICAgIG1fcGVuZGluZ1Jlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgcmVz
b3VyY2VMb2FkZXIpOworICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBX
ZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIHJlc291cmNlTG9hZGVyKSk7CiAg
ICAgCiAgICAgbm90aWZ5RGlkU2NoZWR1bGVSZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VMb2FkZXIp
OwogfQpAQCAtMTIxLDcgKzEyMiw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjph
ZGRNYWluUmVzb3VyY2VMb2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlCiAKICAgICBy
ZXNvdXJjZUxvYWRlci0+c2V0SWRlbnRpZmllcihpZGVudGlmaWVyKTsKICAgICAKLSAgICBtX2Fj
dGl2ZVJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgcmVzb3VyY2VMb2FkZXIpOworICAg
IG1fY29yZVJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgcmVzb3VyY2VMb2FkZXIpOwog
fQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cmVtb3ZlKFJlc291cmNlTG9hZGVy
KiByZXNvdXJjZUxvYWRlcikKQEAgLTE0NCw5ICsxNDUsOSBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6cmVtb3ZlKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlcikKICAgICAv
LyBJZiBhIHJlc291cmNlIGxvYWQgd2FzIGFjdHVhbGx5IHN0YXJ0ZWQgd2l0aGluIHRoZSBOZXR3
b3JrUHJvY2VzcyB0aGVuIHRoZSBOZXR3b3JrUHJvY2VzcyBoYW5kbGVzIGNsZWFyaW5nIG91dCB0
aGUgaWRlbnRpZmllci4KICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlv
bigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpSZW1vdmVMb2FkSWRlbnRpZmllcihpZGVudGlmaWVyKSwgMCk7CiAgICAgCi0gICAg
QVNTRVJUKG1fcGVuZGluZ1Jlc291cmNlTG9hZGVycy5jb250YWlucyhpZGVudGlmaWVyKSB8fCBt
X2FjdGl2ZVJlc291cmNlTG9hZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9wZW5k
aW5nUmVzb3VyY2VMb2FkZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKLSAgICBtX2FjdGl2ZVJlc291
cmNlTG9hZGVycy5yZW1vdmUoaWRlbnRpZmllcik7CisgICAgQVNTRVJUKG1fd2ViUmVzb3VyY2VM
b2FkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpIHx8IG1fY29yZVJlc291cmNlTG9hZGVycy5jb250
YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMucmVtb3ZlKGlkZW50
aWZpZXIpOworICAgIG1fY29yZVJlc291cmNlTG9hZGVycy5yZW1vdmUoaWRlbnRpZmllcik7CiB9
CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpjcm9zc09yaWdpblJlZGlyZWN0UmVj
ZWl2ZWQoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBLVVJMJikKQEAgLTE4OSw3ICsxOTAsNyBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2V0U2VyaWFsTG9hZGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6d2lsbFNlbmRSZXF1
ZXN0KFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlKQogewotICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRlcj4gbG9hZGVyID0gbV9wZW5k
aW5nUmVzb3VyY2VMb2FkZXJzLmdldChpZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VM
b2FkZXI+IGxvYWRlciA9IG1fd2ViUmVzb3VyY2VMb2FkZXJzLmdldChpZGVudGlmaWVyKS0+Y29y
ZUxvYWRlcigpOwogICAgIEFTU0VSVChsb2FkZXIpOwogCiAgICAgTE9HKE5ldHdvcmssICIoV2Vi
UHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjp3aWxsU2VuZFJlcXVlc3QgdG8gJyVz
JyIsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkBAIC0xOTgsNyArMTk5
LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OndpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIKIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFJl
ZlB0cjxSZXNvdXJjZUxvYWRlcj4gbG9hZGVyID0gbV9wZW5kaW5nUmVzb3VyY2VMb2FkZXJzLmdl
dChpZGVudGlmaWVyKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IG1fd2Vi
UmVzb3VyY2VMb2FkZXJzLmdldChpZGVudGlmaWVyKS0+Y29yZUxvYWRlcigpOwogICAgIEFTU0VS
VChsb2FkZXIpOwogCiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UgZm9yICclcyciLCBsb2FkZXItPnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMjA3LDcgKzIwOCw3IEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciBpZGVudGlmCiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IGNoYXIqIGRhdGEs
IGludCBzaXplLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKIHsK
LSAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IG1fcGVuZGluZ1Jlc291cmNlTG9h
ZGVycy5nZXQoaWRlbnRpZmllcik7CisgICAgUmVmUHRyPFJlc291cmNlTG9hZGVyPiBsb2FkZXIg
PSBtX3dlYlJlc291cmNlTG9hZGVycy5nZXQoaWRlbnRpZmllciktPmNvcmVMb2FkZXIoKTsKICAg
ICBBU1NFUlQobG9hZGVyKTsKIAogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6ZGlkUmVjZWl2ZURhdGEgb2Ygc2l6ZSAlaSBmb3IgJyVzJyIs
IHNpemUsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkBAIC0yMTYsNyAr
MjE3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwKIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewotICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRl
cj4gbG9hZGVyID0gbV9wZW5kaW5nUmVzb3VyY2VMb2FkZXJzLmdldChpZGVudGlmaWVyKTsKKyAg
ICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IG1fd2ViUmVzb3VyY2VMb2FkZXJzLmdl
dChpZGVudGlmaWVyKS0+Y29yZUxvYWRlcigpOwogICAgIEFTU0VSVChsb2FkZXIpOwogCiAgICAg
TE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRG
aW5pc2hSZXNvdXJjZUxvYWQgZm9yICclcyciLCBsb2FkZXItPnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwpAQCAtMjI1LDcgKzIyNiw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVuCiAK
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUJ1ZmZlciYgYnVmZmVy
LCBkb3VibGUgZmluaXNoVGltZSkKIHsgICAgCi0gICAgUmVmUHRyPFJlc291cmNlTG9hZGVyPiBs
b2FkZXIgPSBtX3BlbmRpbmdSZXNvdXJjZUxvYWRlcnMuZ2V0KGlkZW50aWZpZXIpOworICAgIFJl
ZlB0cjxSZXNvdXJjZUxvYWRlcj4gbG9hZGVyID0gbV93ZWJSZXNvdXJjZUxvYWRlcnMuZ2V0KGlk
ZW50aWZpZXIpLT5jb3JlTG9hZGVyKCk7CiAgICAgQVNTRVJUKGxvYWRlcik7CiAKICAgICBMT0co
TmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmRpZFJlY2Vp
dmVSZXNvdXJjZSBmb3IgJyVzJyIsIGxvYWRlci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CkBAIC0yNDIsNyArMjQzLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmRp
ZFJlY2VpdmVSZXNvdXJjZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWYKIAogdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJv
cikKIHsKLSAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IG1fcGVuZGluZ1Jlc291
cmNlTG9hZGVycy5nZXQoaWRlbnRpZmllcik7CisgICAgUmVmUHRyPFJlc291cmNlTG9hZGVyPiBs
b2FkZXIgPSBtX3dlYlJlc291cmNlTG9hZGVycy5nZXQoaWRlbnRpZmllciktPmNvcmVMb2FkZXIo
KTsKICAgICBBU1NFUlQobG9hZGVyKTsKIAogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3Mp
IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCBmb3IgJyVzJyIs
IGxvYWRlci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmgKaW5kZXggNGQxZWIyYi4uMGM2OWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApA
QCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbjsKK2NsYXNzIFdlYlJlc291cmNlTG9hZGVyOwogdHlwZWRlZiB1aW50NjRf
dCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIgOiBwdWJsaWMgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU2NoZWR1bGVyIHsKQEAgLTY5LDkgKzcw
LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlTG9hZChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlciosIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5KTsKICAgICAKLSAg
ICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyPiA+IFJlc291cmNlTG9hZGVyTWFwOwotICAgIFJlc291cmNlTG9hZGVyTWFwIG1fcGVu
ZGluZ1Jlc291cmNlTG9hZGVyczsKLSAgICBSZXNvdXJjZUxvYWRlck1hcCBtX2FjdGl2ZVJlc291
cmNlTG9hZGVyczsKKyAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFJlZlB0cjxXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlcj4gPiBtX2NvcmVSZXNvdXJjZUxvYWRlcnM7CisgICAgSGFzaE1hcDx1bnNp
Z25lZCBsb25nLCBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXI+ID4gbV93ZWJSZXNvdXJjZUxvYWRl
cnM7CiAgICAgCiAgICAgdW5zaWduZWQgbV9zdXNwZW5kUGVuZGluZ1JlcXVlc3RzQ291bnQ7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ODQ1M2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkZXIuaCIKKworI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFz
c1JlZlB0cjxXZWJSZXNvdXJjZUxvYWRlcj4gV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShSZXNv
dXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkZXI+
IGNvcmVMb2FkZXIpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJSZXNvdXJjZUxvYWRl
cihpZGVudGlmaWVyLCBjb3JlTG9hZGVyKSk7Cit9CisKK1dlYlJlc291cmNlTG9hZGVyOjpXZWJS
ZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IGNvcmVMb2FkZXIpCisgICAgOiBtX3Jlc291cmNl
TG9hZElkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fY29yZUxvYWRlcihjb3JlTG9hZGVy
KQoreworfQorCitXZWJSZXNvdXJjZUxvYWRlcjo6fldlYlJlc291cmNlTG9hZGVyKCkKK3sKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmIzMGJj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViUmVzb3VyY2VMb2FkZXJfaAorI2RlZmluZSBXZWJSZXNvdXJjZUxvYWRlcl9oCisKKyNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VMb2FkZXI7Cit9CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CisKK2Ns
YXNzIFdlYlJlc291cmNlTG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUmVzb3VyY2VMb2Fk
ZXI+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJSZXNvdXJjZUxvYWRlcj4g
Y3JlYXRlKFJlc291cmNlTG9hZElkZW50aWZpZXIsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkZXI+KTsKKworICAgIH5XZWJSZXNvdXJjZUxvYWRlcigpOworCisgICAgV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXIqIGNvcmVMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2NvcmVMb2FkZXIu
Z2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBXZWJSZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPik7CisKKyAgICBS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyIG1fcmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IG1fY29yZUxvYWRlcjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2Vu
ZGlmIC8vIFdlYlJlc291cmNlTG9hZGVyX2gK
</data>
<flag name="review"
          id="189180"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174263</attachid>
            <date>2012-11-14 14:23:51 -0800</date>
            <delta_ts>2012-11-14 15:23:22 -0800</delta_ts>
            <desc>Patch 2, v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>35706</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3Njg4NWZhLi43ZDMxYTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTYg
QEAKIDIwMTItMTEtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIE1vdmUgbG9hZGluZyByZXNwb25zaWJpbGl0eSBvdXQgb2YgV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyIGludG8gYSBuZXcgV2ViUmVzb3VyY2VMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjI1OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBXZWJSZXNvdXJjZUxvYWRlciBt
ZXNzYWdlIGNsYXNzIHdoaWNoIGFsbG93cyBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgdG8gbWVzc2Fn
ZQorICAgICAgICBXZWJSZXNvdXJjZUxvYWRlcnMgZGlyZWN0bHkuCisKKyAgICAgICAgQ29uc29s
aWRhdGUgdGhlIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBhbmQgV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyIG1lc3NhZ2luZyByZXNwb25zaWJpbGl0aWVzCisgICAgICAgIGRpcmVjdGx5IGludG8g
V2ViUmVzb3VyY2VMb2FkZXIuCisKKyAgICAgICAgQnVpbGQtc3lzdGVtIGluZnJhc3RydWN0dXJl
IHN0dWZmOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlSUQuaDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKKyAgICAgICAgTWVzc2FnZSBkaXJlY3RseSB0byBXZWJSZXNvdXJjZUxv
YWRlciBpbnN0ZWFkIG9mIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6ZGVzdGluYXRpb25JRCk6CisKKyAgICAgICAgRm9yIG5vdyBoYW5k
bGUgdGhlIG9ubHkgcmVsZXZhbnQgbWVzc2FnZSBjbGFzcyB3aGljaCBpcyB0aGUgV2ViUmVzb3Vy
Y2VMb2FkZXIgY2xhc3M6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFsbG93IGFj
Y2VzcyB0byBXZWJSZXNvdXJjZUxvYWRlcnMgYnkgaWRlbnRpZmllcjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6d2ViUmVzb3VyY2VMb2FkZXJGb3JJZGVu
dGlmaWVyKToKKworICAgICAgICBEaXJlY3RseSBoYW5kbGUgcmVzb3VyY2UgbG9hZGluZyBtZXNz
YWdlcyBpbnN0ZWFkIG9mIGhhdmluZyBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIgZG8gaXQ6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW46CisKKzIw
MTItMTEtMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIEZp
eCB0aGUgUHJvZHVjdGlvbiBidWlsZCBhZnRlciByMTM0NjQwIGJyb2tlIGl0LgogCiAgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA0NjZhNTM4Li44YWY0NTU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTEwMSw2ICsxMDEsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAg
ICBXZWJQcm9jZXNzUHJveHkgXAogICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyIFwKICAgICBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5IFwKKyAgICBXZWJSZXNvdXJjZUxvYWRlciBcCiAj
CiAKIFNDUklQVFMgPSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBhYWE1YWNhLi44NzNiZjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAKQEAgLTMzLDExICszMywxMSBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
IlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VM
b2FkZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgpAQCAtNjQsNiArNjQsMTEgQEAgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp+
TmV0d29ya1Jlc291cmNlTG9hZGVyKCkKICAgICAgICAgbV9jb25uZWN0aW9uLT51bnJlZ2lzdGVy
T2JzZXJ2ZXIodGhpcyk7CiB9CiAKK0NvcmVJUEM6OkNvbm5lY3Rpb24qIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6Y29ubmVjdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi0+
Y29ubmVjdGlvbigpOworfQorCiBSZXNvdXJjZUxvYWRQcmlvcml0eSBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnByaW9yaXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9yZXF1ZXN0UGFyYW1ldGVy
cy5wcmlvcml0eSgpOwpAQCAtMTQ2LDcgKzE1MSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpjb25uZWN0aW9uVG9XZWJQcm9jZXNzRGlkQ2xvc2UoTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
CiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgLy8gRklY
TUUgKE5ldHdvcmtQcm9jZXNzKTogQ2FjaGUgdGhlIHJlc3BvbnNlLgotICAgIGNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OkRpZFJlY2VpdmVSZXNwb25zZShtX2lkZW50aWZpZXIsIHJlc3BvbnNlKSwg
MCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVSZXNw
b25zZShyZXNwb25zZSkpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBp
bnQgZW5jb2RlZERhdGFMZW5ndGgpCkBAIC0xNTUsMTQgKzE2MCwxNCBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFy
KiBkYXRhLCBpbgogICAgIC8vIFN1Y2ggYnVmZmVyaW5nIHdpbGwgbmVlZCB0byBiZSB0aHJlYWQg
c2FmZSwgYXMgdGhpcyBjYWxsYmFjayBpcyBoYXBwZW5pbmcgb24gYSBiYWNrZ3JvdW5kIHRocmVh
ZC4KICAgICAKICAgICBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2UocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0aCk7Ci0gICAgY29ubmVjdGlv
blRvV2ViUHJvY2VzcygpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZURhdGEobV9pZGVudGlmaWVyLCBkYXRhUmVmZXJlbmNl
LCBlbmNvZGVkRGF0YUxlbmd0aCwgZmFsc2UpLCAwKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJS
ZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2ZURhdGEoZGF0YVJlZmVyZW5jZSwgZW5jb2RlZERhdGFM
ZW5ndGgsIGZhbHNlKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgLy8g
RklYTUUgKE5ldHdvcmtQcm9jZXNzKTogRm9yIHRoZSBtZW1vcnkgY2FjaGUgd2UnbGwgbmVlZCB0
byB1cGRhdGUgdGhlIGZpbmlzaGVkIHN0YXR1cyBvZiB0aGUgY2FjaGVkIHJlc291cmNlIGhlcmUu
CiAgICAgLy8gU3VjaCBib29ra2VlcGluZyB3aWxsIG5lZWQgdG8gYmUgdGhyZWFkIHNhZmUsIGFz
IHRoaXMgY2FsbGJhY2sgaXMgaGFwcGVuaW5nIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCi0gICAg
Y29ubmVjdGlvblRvV2ViUHJvY2VzcygpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlkRmluaXNoUmVzb3VyY2VMb2FkKG1faWRlbnRpZmll
ciwgZmluaXNoVGltZSksIDApOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZGVy
OjpEaWRGaW5pc2hSZXNvdXJjZUxvYWQoZmluaXNoVGltZSkpOwogICAgIHNjaGVkdWxlU3RvcE9u
TWFpblRocmVhZCgpOwogfQogCkBAIC0xNzAsNyArMTc1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKIHsKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBGb3IgdGhlIG1lbW9yeSBj
YWNoZSB3ZSdsbCBuZWVkIHRvIHVwZGF0ZSB0aGUgZmluaXNoZWQgc3RhdHVzIG9mIHRoZSBjYWNo
ZWQgcmVzb3VyY2UgaGVyZS4KICAgICAvLyBTdWNoIGJvb2trZWVwaW5nIHdpbGwgbmVlZCB0byBi
ZSB0aHJlYWQgc2FmZSwgYXMgdGhpcyBjYWxsYmFjayBpcyBoYXBwZW5pbmcgb24gYSBiYWNrZ3Jv
dW5kIHRocmVhZC4KLSAgICBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKCktPmNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRGYWlsUmVzb3VyY2VM
b2FkKG1faWRlbnRpZmllciwgZXJyb3IpLCAwKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNv
dXJjZUxvYWRlcjo6RGlkRmFpbFJlc291cmNlTG9hZChlcnJvcikpOwogICAgIHNjaGVkdWxlU3Rv
cE9uTWFpblRocmVhZCgpOwogfQogCkBAIC0xOTgsMTAgKzIwMyw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJl
cXVlc3QmIHJlCiAKICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVdpbGxTZW5kUmVx
dWVzdElEKCk7CiAKLSAgICBpZiAoIWNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKS0+Y29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OldpbGxTZW5kUmVx
dWVzdChyZXF1ZXN0SUQsIG1faWRlbnRpZmllciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSks
IDApKSB7Ci0gICAgICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFdoYXQgc2hvdWxkIHdl
IGRvIGlmIHdlIGNhbid0IHNlbmQgdGhlIG1lc3NhZ2U/Ci0gICAgICAgIHJldHVybjsKLSAgICB9
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OldpbGxTZW5kUmVxdWVzdChy
ZXF1ZXN0SUQsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpKTsKICAgICAKICAgICBPd25QdHI8
UmVzb3VyY2VSZXF1ZXN0PiBuZXdSZXF1ZXN0ID0gcmVzcG9uc2VNYXAoKS53YWl0Rm9yUmVzcG9u
c2UocmVxdWVzdElEKTsKICAgICByZXF1ZXN0ID0gKm5ld1JlcXVlc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4
IGJmMjEzMmIuLjhmZjIyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQogCisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFu
ZGxlQ2xpZW50Lmg+CkBAIC00NCw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ7CiB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElk
ZW50aWZpZXI7CiAKLWNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4sIHB1YmxpYyBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc09ic2VydmVyLCBwdWJsaWMgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQgewor
Y2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Jl
c291cmNlTG9hZGVyPiwgcHVibGljIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzT2JzZXJ2
ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVudCwgcHVibGljIENvcmVJUEM6
Ok1lc3NhZ2VTZW5kZXI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGNyZWF0ZShjb25zdCBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycywgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKICAg
ICB7CkBAIC01Myw2ICs1NCwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgfk5ldHdvcmtSZXNvdXJj
ZUxvYWRlcigpOwogCisgICAgLy8gVXNlZCBieSBNZXNzYWdlU2VuZGVyLgorICAgIENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdDsKKyAgICB1aW50NjRfdCBkZXN0aW5hdGlv
bklEKCkgY29uc3QgeyByZXR1cm4gaWRlbnRpZmllcigpOyB9CisgICAgCiAgICAgdm9pZCBzdGFy
dCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NEaWRDbG9zZShO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKaW5kZXggMDE0ODZkNi4uYjQ4MmQ1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCkBAIC0xMTgsNiAr
MTE4LDcgQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogCiAgICAgLy8gTWVzc2FnZXMgc2VudCBieSB0
aGUgbmV0d29yayBwcm9jZXNzIHRvIGEgd2ViIHByb2Nlc3MuCiAgICAgTWVzc2FnZUNsYXNzTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLAorICAgIE1lc3NhZ2VDbGFzc1dlYlJlc291cmNlTG9hZGVy
LAogICAgIAogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSX1BST0NFU1MpCiAgICAgLy8gTWVzc2Fn
ZXMgc2VudCBieSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgc2hhcmVkIHdvcmtlciBwcm9jZXNzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGUyOTZkYTYuLjk4MzQ5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxNSw2ICs1MTUsOCBAQAogCQk1MUREOUYyODE2
MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFERDlGMjYxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFERDlGMjkxNjM2N0RBMjAwMTU3OEU5IC8q
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxREQ5RjI3MTYzNjdEQTIwMDE1NzhFOSAv
KiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CiAJCTUxRUZD
MUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJENTQxNTIxMTE4
NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTFGMDYwRTAxNjU0MzE3RjAwRjMy
ODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjA2MERFMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJS
ZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87IH07CisJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgx
QiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUIg
LyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MUZBMkQ3
NDE1MjEyREYxMDBDMUJBMEIgLyogSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJENUMx
NTIxMUE1MDAwQzFCQTBCIC8qIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCAq
LzsgfTsKIAkJNTFGQTJENzcxNTIxMkUyNjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0
ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRkEyRDc1MTUyMTJFMUUwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5j
cHAgKi87IH07CiAJCTUxRkIwOEZGMTYzOURFMUEwMEVDMzI0QSAvKiBXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFBQkY2NTYxNjM5MkYxNTAwMTMyQTdBIC8qIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAgKi87IH07CkBAIC0xNTkxLDYgKzE1OTMsNyBAQAogCQk1MTA1QjBGMzE2MzA4NzJFMDBFMjc3
MDkgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBBRkZC
NzE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUmVzb3VyY2VMb2FkZXIuY3BwOyBwYXRoID0gTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMEFGRkI4MTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSZXNvdXJjZUxvYWRlci5oOyBwYXRoID0gTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTBBRkZDRTE2NTQyQ0JEMDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTBDQzdERDE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3NNYWluTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NNYWluTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBDQzdERjE2MTM4RTI5MDBEMDNF
RDMgLyogTmV0d29ya1Byb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTmV0d29ya1Byb2Nlc3MuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBDQzdFMDE2MTM4RTI5
MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTmV0d29ya1Byb2Nlc3MuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzQzLDYgKzE3NDYsOCBAQAog
CQk1MUQxMzA1NzEzODJGMTA1MDAzNTFFREQgLyogV2ViUHJvY2Vzc1Byb3h5TWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHJvY2Vzc1Byb3h5TWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUREOUYyNjE2MzY3REEyMDAxNTc4RTkg
LyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MUREOUYyNzE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxRjA2MEREMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRjA2MERFMTY1NDMxNzUw
MEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRkEyRDVBMTUyMTFBMUUwMEMx
QkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUZBMkQ1QzE1MjExQTUwMDBDMUJBMEIgLyog
SW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA1OCw2ICszMDYzLDcgQEAKIAkJCQk1MUFC
RjY1NzE2MzkyRjE1MDAxMzJBN0EgLyogV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggKi8sCiAJ
CQkJNTEwQUZGQjcxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCAqLywK
IAkJCQk1MTBBRkZCODE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuaCAqLywK
KwkJCQk1MTBBRkZDRTE2NTQyQ0JEMDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIubWVzc2Fn
ZXMuaW4gKi8sCiAJCQkpOwogCQkJbmFtZSA9IE5ldHdvcms7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtNDI3MSw2ICs0Mjc3LDggQEAKIAkJCQkzMzM2NzY1MjEzMEM5RUNBMDA2QzlE
RTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCTMzMzY3NjUz
MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLywKIAkJCQkzMzM2NzY1NDEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJNTFGMDYwREQxNjU0MzE3NTAw
RjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1
MUYwNjBERTE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICov
LAogCQkJKTsKIAkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJCXBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyOwpAQCAtNDkxNSw2ICs0OTIzLDcgQEAKIAkJCQk1MUZEMThCNjE2NTFG
QkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MUNCQkExMDE2NTIxOUI2MDA1QkU4RkQgLyogTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMEFGRkJBMTY1NDIwNDgwMDFCQTA1RSAvKiBXZWJS
ZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTFGMDYwRTAxNjU0MzE3RjAwRjMy
ODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTg2
Miw2ICs1ODcxLDcgQEAKIAkJCQk1MUZEMThCNTE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQ0JCQTBGMTY1MjE5QjYwMDVC
RThGRCAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MTBBRkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8qIFdlYlJlc291cmNl
TG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcAppbmRleCA0ZjNkYWU3Li5kNjg0NzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcApAQCAtNTEsMTAgKzUxLDEzIEBAIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6fk5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
cikKIHsKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbj4oKSkgewotICAgICAgICBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOworICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VMb2FkZXI+KCkp
IHsKKyAgICAgICAgaWYgKFdlYlJlc291cmNlTG9hZGVyKiB3ZWJSZXNvdXJjZUxvYWRlciA9IFdl
YlByb2Nlc3M6OnNoYXJlZCgpLndlYlJlc291cmNlTG9hZFNjaGVkdWxlcigpLndlYlJlc291cmNl
TG9hZGVyRm9ySWRlbnRpZmllcihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpCisgICAgICAgICAg
ICB3ZWJSZXNvdXJjZUxvYWRlci0+ZGlkUmVjZWl2ZVdlYlJlc291cmNlTG9hZGVyTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGRlY29kZXIpOworICAgICAgICAKICAgICAgICAgcmV0dXJu
OwogICAgIH0KKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCkBAIC03Myw0NyArNzYs
NiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDbwogewogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgUmVzb3VyY2VM
b2FkSWRlbnRpZmllciByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHByb3Bvc2VkUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNw
b25zZSkKLXsKLSAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdCA9IHByb3Bvc2VkUmVxdWVz
dDsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS53
aWxsU2VuZFJlcXVlc3QocmVzb3VyY2VMb2FkSWRlbnRpZmllciwgbmV3UmVxdWVzdCwgcmVkaXJl
Y3RSZXNwb25zZSk7Ci0KLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlv
bigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpXaWxsU2VuZFJlcXVlc3RIYW5kbGVkKHJlcXVlc3RJRCwgbmV3UmVxdWVzdCksIDAp
OwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkud2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkuZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc291cmNlTG9hZElk
ZW50aWZpZXIsIHJlc3BvbnNlKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVk
RGF0YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpCi17Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
d2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkuZGlkUmVjZWl2ZURhdGEocmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRh
LnNpemUoKSwgZW5jb2RlZERhdGFMZW5ndGgsIGFsbEF0T25jZSk7Ci19Ci0KLXZvaWQgTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRl
bnRpZmllciByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkKLXsKLSAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS5kaWRGaW5p
c2hSZXNvdXJjZUxvYWQocmVzb3VyY2VMb2FkSWRlbnRpZmllciwgZmluaXNoVGltZSk7Ci19Ci0K
LXZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRGYWlsUmVzb3VyY2VMb2FkKFJlc291
cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCi17Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyKCkuZGlkRmFpbFJlc291cmNlTG9hZChyZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBl
cnJvcik7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlUmVz
b3VyY2UoUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25z
dCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUsIGRvdWJsZSBmaW5pc2hUaW1lKQot
ewotICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gcmVzb3VyY2VCdWZmZXI7Ci0KLSAgICBSZWZQ
dHI8U2hhcmVhYmxlUmVzb3VyY2U+IHJlc291cmNlID0gU2hhcmVhYmxlUmVzb3VyY2U6OmNyZWF0
ZShoYW5kbGUpOwotICAgIGlmIChyZXNvdXJjZSkKLSAgICAgICAgcmVzb3VyY2VCdWZmZXIgPSBX
ZWJSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKHJlc291cmNlLnJlbGVhc2UoKSk7Ci0gICAgZWxzZQot
ICAgICAgICByZXNvdXJjZUJ1ZmZlciA9IFJlc291cmNlQnVmZmVyOjpjcmVhdGUoKTsKLSAgICAK
LSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS5kaWRS
ZWNlaXZlUmVzb3VyY2UocmVzb3VyY2VMb2FkSWRlbnRpZmllciwgKnJlc291cmNlQnVmZmVyLCBm
aW5pc2hUaW1lKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDc2NGVlZTku
LmJhYjU0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNk
ZWZpbmUgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uX2gKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKLSNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTY2LDE3ICs2NSw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rp
b24qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKIAotICAg
IHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNz
YWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKLQotICAgIHZv
aWQgd2lsbFNlbmRSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlTG9h
ZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVEYXRhKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IENvcmVJUEM6OkRh
dGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSk7
Ci0gICAgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
ZG91YmxlIGZpbmlzaFRpbWUpOwotICAgIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0KLSAgICB2
b2lkIGRpZFJlY2VpdmVSZXNvdXJjZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBTaGFy
ZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgZG91YmxlIGZpbmlzaFRpbWUpOwotCiAgICAgLy8gVGhl
IGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4K
ICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDNlMDlhMWUuLjZiMzc1
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjQs
MTUgKzI0LDYgQEAKIAogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIHsKIAot
ICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFdlJ2xsIG5lZWQgbXVjaCBtb3JlIGdyYW51
bGFyaXR5IGZvciByZXNwb25zZSBtZXNzYWdlcy4KLSAgICBXaWxsU2VuZFJlcXVlc3QodWludDY0
X3QgcmVxdWVzdElELCB1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVj
dFJlc3BvbnNlKQotICAgIERpZFJlY2VpdmVSZXNwb25zZSh1aW50NjRfdCByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQotICAgIERpZFJl
Y2VpdmVEYXRhKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIENvcmVJUEM6OkRhdGFS
ZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2Up
Ci0gICAgRGlkRmluaXNoUmVzb3VyY2VMb2FkKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZp
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQotICAgIERpZEZhaWxSZXNvdXJjZUxvYWQodWludDY0X3Qg
cmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKLQot
ICAgIC8vIERpZFJlY2VpdmVSZXNvdXJjZSBpcyBmb3Igd2hlbiB3ZSBoYXZlIHRoZSBlbnRpcmUg
cmVzb3VyY2UgZGF0YSBhdmFpbGFibGUgYXQgb25jZSwgc3VjaCBhcyB3aGVuIHRoZSByZXNvdXJj
ZSBpcyBjYWNoZWQgaW4gbWVtb3J5Ci0gICAgRGlkUmVjZWl2ZVJlc291cmNlKHVpbnQ2NF90IHJl
c291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSBy
ZXNvdXJjZSwgZG91YmxlIGZpbmlzaFRpbWUpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBiODRhZDAyLi42NDcw
NjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMTg4LDY5ICsxODgsNiBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2V0U2VyaWFsTG9hZGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCkt
PmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpTZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChlbmFibGVkKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRTZXJpYWxMb2FkaW5nRW5hYmxlZDo6UmVwbHko
KSwgMCk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjp3aWxsU2VuZFJlcXVl
c3QoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UpCi17Ci0gICAgUmVmUHRyPFJlc291cmNlTG9hZGVyPiBsb2FkZXIgPSBtX3dlYlJl
c291cmNlTG9hZGVycy5nZXQoaWRlbnRpZmllciktPmNvcmVMb2FkZXIoKTsKLSAgICBBU1NFUlQo
bG9hZGVyKTsKLQotICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6d2lsbFNlbmRSZXF1ZXN0IHRvICclcyciLCByZXF1ZXN0LnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIGxvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3Qs
IHJlZGlyZWN0UmVzcG9uc2UpOwotfQotCi12b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgUmVmUHRyPFJl
c291cmNlTG9hZGVyPiBsb2FkZXIgPSBtX3dlYlJlc291cmNlTG9hZGVycy5nZXQoaWRlbnRpZmll
ciktPmNvcmVMb2FkZXIoKTsKLSAgICBBU1NFUlQobG9hZGVyKTsKLQotICAgIExPRyhOZXR3b3Jr
LCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlIGZvciAnJXMnIiwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAg
ICBsb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7Ci19Ci0KLXZvaWQgV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUxvYWRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplLCBpbnQ2NF90IGVuY29kZWRE
YXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKLXsKLSAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+
IGxvYWRlciA9IG1fd2ViUmVzb3VyY2VMb2FkZXJzLmdldChpZGVudGlmaWVyKS0+Y29yZUxvYWRl
cigpOwotICAgIEFTU0VSVChsb2FkZXIpOwotCi0gICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vz
cykgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRSZWNlaXZlRGF0YSBvZiBzaXplICVpIGZv
ciAnJXMnIiwgc2l6ZSwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAg
ICBsb2FkZXItPmRpZFJlY2VpdmVEYXRhKGRhdGEsIHNpemUsIGVuY29kZWREYXRhTGVuZ3RoLCBh
bGxBdE9uY2UpOwotfQotCi12b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6ZGlkRmluaXNo
UmVzb3VyY2VMb2FkKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgZG91YmxlIGZp
bmlzaFRpbWUpCi17Ci0gICAgUmVmUHRyPFJlc291cmNlTG9hZGVyPiBsb2FkZXIgPSBtX3dlYlJl
c291cmNlTG9hZGVycy5nZXQoaWRlbnRpZmllciktPmNvcmVMb2FkZXIoKTsKLSAgICBBU1NFUlQo
bG9hZGVyKTsKLQotICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbG9hZGVyLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBsb2FkZXItPmRpZEZpbmlzaExvYWRpbmco
ZmluaXNoVGltZSk7Ci19Ci0KLXZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRSZWNl
aXZlUmVzb3VyY2UoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZUJ1ZmZlciYgYnVmZmVyLCBkb3VibGUgZmluaXNoVGltZSkKLXsgICAgCi0gICAgUmVmUHRy
PFJlc291cmNlTG9hZGVyPiBsb2FkZXIgPSBtX3dlYlJlc291cmNlTG9hZGVycy5nZXQoaWRlbnRp
ZmllciktPmNvcmVMb2FkZXIoKTsKLSAgICBBU1NFUlQobG9hZGVyKTsKLQotICAgIExPRyhOZXR3
b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6ZGlkUmVjZWl2ZVJl
c291cmNlIGZvciAnJXMnIiwgbG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAKLSAgICAvLyBPbmx5IHNlbmQgZGF0YSB0byB0aGUgZGlkUmVjZWl2ZURhdGEgY2FsbGJh
Y2sgaWYgaXQgZXhpc3RzLgotICAgIGlmICghYnVmZmVyLmlzRW1wdHkoKSkgewotICAgICAgICAv
LyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBHaXZlIFJlc291cmNlTG9hZGVyIHRoZSBhYmlsaXR5
IHRvIHRha2UgUmVzb3VyY2VCdWZmZXIgYXJndW1lbnRzLgotICAgICAgICAvLyBUaGF0IHdpbGwg
YWxsb3cgdXMgdG8gcGFzcyBpdCBhbG9uZyB0byBDYWNoZWRSZXNvdXJjZXMgYW5kIGFsbG93IHRo
ZW0gdG8gaGFuZyBvbiB0byB0aGUgc2hhcmVkIG1lbW9yeSBiZWhpbmQgdGhlIHNjZW5lcy4KLSAg
ICAgICAgbG9hZGVyLT5kaWRSZWNlaXZlRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihidWZmZXIuZGF0YSgpKSwgYnVmZmVyLnNpemUoKSwgLTEgLyogZW5jb2RlZERhdGFMZW5ndGgg
Ki8sIHRydWUpOwotICAgIH0KLQotICAgIGxvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hU
aW1lKTsKLX0KLQotdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmRpZEZhaWxSZXNvdXJj
ZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGxvYWRl
ciA9IG1fd2ViUmVzb3VyY2VMb2FkZXJzLmdldChpZGVudGlmaWVyKS0+Y29yZUxvYWRlcigpOwot
ICAgIEFTU0VSVChsb2FkZXIpOwotCi0gICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbG9h
ZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAKLSAgICBsb2FkZXItPmRp
ZEZhaWwoZXJyb3IpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggMGM2OWUx
Yi4uODg3MDkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtMjYsNiArMjYsNyBAQAog
I2lmbmRlZiBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXJfaAogI2RlZmluZSBXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXJfaAogCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZFByaW9yaXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+
CkBAIC0zNSw3ICszNiw2IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOwotY2xhc3MgV2ViUmVzb3VyY2VMb2FkZXI7CiB0eXBlZGVmIHVpbnQ2
NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlciA6IHB1YmxpYyBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXIgewpAQCAtNTcsMTUg
KzU3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVQZW5kaW5nUmVxdWVzdHMo
KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChi
b29sKSBPVkVSUklERTsKLQotICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IEdldCB0aGUg
UmVzb3VyY2VMb2FkU2NoZWR1bGVyIG91dCBvZiB0aGUgYnVzaW5lc3Mgb2YgdmVuZGluZyB0aGlz
IGRhdGEgZGlyZWN0bHkgdG8gUmVzb3VyY2VMb2FkZXJzLgotICAgIC8vIFRoZSBNZXNzYWdlcyBz
aG91bGQgYmUgc2VudCB0byBhbiBvYmplY3QgdGhhdCBwcm94aWVzIHRoZSBSZXNvdXJjZUxvYWRl
ciBkaXJlY3RseS4KLSAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBj
aGFyKiwgaW50LCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSk7Ci0g
ICAgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgZG91
YmxlIGZpbmlzaFRpbWUpOwotICAgIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChSZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlUmVzb3VyY2UoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VCdWZmZXImLCBkb3VibGUgZmluaXNoVGltZSk7CisgICAgCisgICAgV2ViUmVzb3Vy
Y2VMb2FkZXIqIHdlYlJlc291cmNlTG9hZGVyRm9ySWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUmVzb3VyY2VMb2FkZXJzLmdl
dChpZGVudGlmaWVyKS5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVMb2Fk
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggMDk4NDUzZi4uNWNjMDI5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC0yOCw2ICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIAorI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVy
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDksNiArNTUsNjAgQEAgV2ViUmVz
b3VyY2VMb2FkZXI6On5XZWJSZXNvdXJjZUxvYWRlcigpCiB7CiB9CiAKK3ZvaWQgV2ViUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcHJvcG9zZWRSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRp
cmVjdFJlc3BvbnNlKQoreworICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QgdG8gJyVzJyIsIHByb3Bvc2VkUmVxdWVzdC51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAKKyAgICBSZXNvdXJjZVJlcXVlc3QgbmV3
UmVxdWVzdCA9IHByb3Bvc2VkUmVxdWVzdDsKKyAgICBtX2NvcmVMb2FkZXItPndpbGxTZW5kUmVx
dWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKworICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldpbGxTZW5kUmVxdWVzdEhhbmRsZWQocmVx
dWVzdElELCBuZXdSZXF1ZXN0KSwgMCk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKK3sKKyAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShy
ZXNwb25zZSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNv
bnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5n
dGgsIGJvb2wgYWxsQXRPbmNlKQoreworICAgIHByaW50ZigiUmVjZWl2ZWQgZGF0YSBpbiBXUkxc
biIpOworICAgIEJBQ0tUUkFDRSgpOworICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSBvZiBzaXplICVpIGZvciAnJXMnIiwgKGlu
dClkYXRhLnNpemUoKSwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoLCBh
bGxBdE9uY2UpOworfQorCit2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJj
ZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpCit7CisgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vz
cykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1f
Y29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgbV9jb3JlTG9h
ZGVyLT5kaWRGaW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOworfQorCit2b2lkIFdlYlJlc291cmNl
TG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQor
eworICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRG
YWlsUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICAKKyAgICBtX2NvcmVMb2FkZXItPmRpZEZhaWwoZXJyb3IpOwor
fQorCit2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3QgU2hh
cmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBkb3VibGUgZmluaXNoVGltZSkKK3sKKyAg
ICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc291cmNlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKworICAgIFJlZlB0cjxTaGFyZWFibGVSZXNvdXJjZT4gcmVzb3VyY2UgPSBTaGFy
ZWFibGVSZXNvdXJjZTo6Y3JlYXRlKGhhbmRsZSk7CisKKyAgICAvLyBPbmx5IHNlbmQgZGF0YSB0
byB0aGUgZGlkUmVjZWl2ZURhdGEgY2FsbGJhY2sgaWYgaXQgZXhpc3RzLgorICAgIGlmICghcmVz
b3VyY2UtPnNpemUoKSkgeworICAgICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBHaXZl
IFJlc291cmNlTG9hZGVyIHRoZSBhYmlsaXR5IHRvIHRha2UgUmVzb3VyY2VCdWZmZXIgYXJndW1l
bnRzLgorICAgICAgICAvLyBUaGF0IHdpbGwgYWxsb3cgdXMgdG8gcGFzcyBpdCBhbG9uZyB0byBD
YWNoZWRSZXNvdXJjZXMgYW5kIGFsbG93IHRoZW0gdG8gaGFuZyBvbiB0byB0aGUgc2hhcmVkIG1l
bW9yeSBiZWhpbmQgdGhlIHNjZW5lcy4KKyAgICAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNz
KTogUGFzcyBhbG9uZyB0aGUgY29ycmVjdCB2YWx1ZSBmb3IgZW5jb2RlZERhdGFMZW5ndGguCisg
ICAgICAgIG1fY29yZUxvYWRlci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4ocmVzb3VyY2UtPmRhdGEoKSksIHJlc291cmNlLT5zaXplKCksIC0xIC8qIGVuY29k
ZWREYXRhTGVuZ3RoICovICwgdHJ1ZSk7CisgICAgfQorCisgICAgbV9jb3JlTG9hZGVyLT5kaWRG
aW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCmluZGV4IDkzMTZkM2Uu
LjljNjBjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC0yOCwxMiArMjgsMjIgQEAKIAogI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCiAKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2hh
cmVhYmxlUmVzb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCituYW1lc3BhY2Ug
Q29yZUlQQyB7CitjbGFzcyBEYXRhUmVmZXJlbmNlOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBSZXNvdXJjZUJ1ZmZlcjsKK2NsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNv
dXJjZUxvYWRlcjsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK2NsYXNzIFJlc291cmNlUmVzcG9u
c2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsMTIgKzU2LDE4IEBAIHB1YmxpYzoK
IAogICAgIH5XZWJSZXNvdXJjZUxvYWRlcigpOwogCi0gICAgV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
ZXIqIGNvcmVMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2NvcmVMb2FkZXIuZ2V0KCk7IH0KLSAg
ICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlTG9hZElkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3Jlc291cmNlTG9hZElkZW50aWZpZXI7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVX
ZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBXZWJS
ZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyPik7CiAKKyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOworICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSk7CisgICAgdm9pZCBkaWRGaW5pc2hSZXNvdXJj
ZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpOworICAgIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3Vy
Y2UoY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYsIGRvdWJsZSBmaW5pc2hUaW1lKTsK
KwogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgbV9yZXNvdXJjZUxvYWRJZGVudGlmaWVyOwog
ICAgIFJlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4gbV9jb3JlTG9hZGVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41NWE0Mjk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2Vi
UmVzb3VyY2VMb2FkZXIgeworCisgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogV2UnbGwg
bmVlZCBtdWNoIG1vcmUgZ3JhbnVsYXJpdHkgZm9yIHJlc3BvbnNlIG1lc3NhZ2VzLgorICAgIFdp
bGxTZW5kUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UpCisg
ICAgRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Up
CisgICAgRGlkUmVjZWl2ZURhdGEoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90
IGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKKyAgICBEaWRGaW5pc2hSZXNvdXJj
ZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpCisgICAgRGlkRmFpbFJlc291cmNlTG9hZChXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGVycm9yKQorCisgICAgLy8gRGlkUmVjZWl2ZVJlc291cmNlIGlzIGZv
ciB3aGVuIHdlIGhhdmUgdGhlIGVudGlyZSByZXNvdXJjZSBkYXRhIGF2YWlsYWJsZSBhdCBvbmNl
LCBzdWNoIGFzIHdoZW4gdGhlIHJlc291cmNlIGlzIGNhY2hlZCBpbiBtZW1vcnkKKyAgICBEaWRS
ZWNlaXZlUmVzb3VyY2UoV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNl
LCBkb3VibGUgZmluaXNoVGltZSkKK30K
</data>
<flag name="review"
          id="189252"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>