<?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>124011</bug_id>
          
          <creation_ts>2013-11-07 13:14:46 -0800</creation_ts>
          <short_desc>Use std::function for all policy continuation functions</short_desc>
          <delta_ts>2013-11-07 13:35:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948393</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-07 13:14:46 -0800</bug_when>
    <thetext>Use std::function for all policy continuation functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948395</commentid>
    <comment_count>1</comment_count>
      <attachid>216329</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-07 13:19:58 -0800</bug_when>
    <thetext>Created attachment 216329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948401</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-07 13:35:38 -0800</bug_when>
    <thetext>Committed r158867: &lt;http://trac.webkit.org/changeset/158867&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216329</attachid>
            <date>2013-11-07 13:19:58 -0800</date>
            <delta_ts>2013-11-07 13:21:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124011-20131107131958.patch</filename>
            <type>text/plain</type>
            <size>27418</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWJiMjJmYTgzNmRkNTA5
YmE4Y2RjYTQyMzRjMDU3NGViZTBlOThiMy4uOTU3MDFlOThkNTc3MTM0OTM0YTJjOWVjNGY3MDUy
NmUwYzhiYmFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTExLTA3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0ZDo6ZnVu
Y3Rpb24gZm9yIGFsbCBwb2xpY3kgY29udGludWF0aW9uIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDExCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISku
CisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkV2l0aERv
Y3VtZW50TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUG9zdFJl
cXVlc3QpOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDYWxsYmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQb2xpY3lDYWxsYmFjazo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5
Q2FsbGJhY2s6OnNldCk6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDYWxsYmFjazo6Y2FsbCk6
CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDYWxsYmFjazo6Y2xlYXJSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBvbGljeUNhbGxiYWNrOjpjYW5jZWwpOgorICAgICAgICAqIGxvYWRlci9Q
b2xpY3lDYWxsYmFjay5oOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3kpOgorICAg
ICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmg6CisKIDIwMTMtMTEtMDcgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENvc21ldGljOiByZW5hbWUgeHh4SWQgdG8g
eHh4SUQgZm9yIFNjcmlwdElkLCBTb3VyY2VJZCwgYW5kIEJyZWFrcG9pbnRJZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGQ4YmExM2JkMGY3MzRjZGQzOWIw
ODIxMGYyZGM5ZjNmMGJmNDE4ZmYuLjMyYmQ4MTU4MmE2N2NmOTliNWM3MTViYjg1N2ViY2JiMDNi
Yzc3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNTI3
LDEzICs1MjcsMTIgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2UKICAgICAvLyBsaXN0ZW5lci4g
QnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIGRvIHRoYXQgaW4gcHJhY3RpY2UuIFNvIGluc3RlYWQgd2Ug
Y2FuY2VsIGxhdGVyIGlmIHRoZQogICAgIC8vIGxpc3RlbmVyIHRlbGxzIHVzIHRvLiBJbiBwcmFj
dGljZSB0aGF0IG1lYW5zIHRoZSBuYXZpZ2F0aW9uIHBvbGljeSBuZWVkcyB0byBiZSBkZWNpZGVk
CiAgICAgLy8gc3luY2hyb25vdXNseSBmb3IgdGhlc2UgcmVkaXJlY3QgY2FzZXMuCi0gICAgaWYg
KCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5wb2xp
Y3lDaGVja2VyKCkuY2hlY2tOYXZpZ2F0aW9uUG9saWN5KG5ld1JlcXVlc3QsIGNhbGxDb250aW51
ZUFmdGVyTmF2aWdhdGlvblBvbGljeSwgdGhpcyk7Ci19CisgICAgaWYgKHJlZGlyZWN0UmVzcG9u
c2UuaXNOdWxsKCkpCisgICAgICAgIHJldHVybjsKIAotdm9pZCBEb2N1bWVudExvYWRlcjo6Y2Fs
bENvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHZvaWQqIGFyZ3VtZW50LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRD
b250aW51ZSkKLXsKLSAgICBzdGF0aWNfY2FzdDxEb2N1bWVudExvYWRlcio+KGFyZ3VtZW50KS0+
Y29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3kocmVxdWVzdCwgc2hvdWxkQ29udGludWUpOwor
ICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS5jaGVja05hdmlnYXRpb25Qb2xpY3ko
bmV3UmVxdWVzdCwgW3RoaXNdKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1Jl
ZlB0cjxGb3JtU3RhdGU+LCBib29sIHNob3VsZENvbnRpbnVlKSB7CisgICAgICAgIGNvbnRpbnVl
QWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHJlcXVlc3QsIHNob3VsZENvbnRpbnVlKTsKKyAgICB9KTsK
IH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6Y29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBzaG91bGRDb250aW51ZSkKQEAgLTYzOCwxMiAr
NjM3LDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmUKICAgICAgICAgbV9jb250ZW50RmlsdGVy
ID0gQ29udGVudEZpbHRlcjo6Y3JlYXRlKHJlc3BvbnNlKTsKICNlbmRpZgogCi0gICAgZnJhbWVM
b2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCBj
YWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3ksIHRoaXMpOwotfQotCi12b2lkIERvY3VtZW50
TG9hZGVyOjpjYWxsQ29udGludWVBZnRlckNvbnRlbnRQb2xpY3kodm9pZCogYXJndW1lbnQsIFBv
bGljeUFjdGlvbiBwb2xpY3kpCi17Ci0gICAgc3RhdGljX2Nhc3Q8RG9jdW1lbnRMb2FkZXIqPihh
cmd1bWVudCktPmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5KHBvbGljeSk7CisgICAgZnJhbWVM
b2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLmNoZWNrQ29udGVudFBvbGljeShtX3Jlc3BvbnNlLCBb
dGhpc10oUG9saWN5QWN0aW9uIHBvbGljeSkgeworICAgICAgICBjb250aW51ZUFmdGVyQ29udGVu
dFBvbGljeShwb2xpY3kpOworICAgIH0pOwogfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpjb250
aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb24gcG9saWN5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA3N2RjZjEzMDZlZWIyZmEwOGE3NjU5NDg2NGFh
YWExNmVmYjQ3ZWQ3Li4zMzM4NmU2ZTgwZTM2YzMzM2RjODM0MDk0MTM0MjVjZDM1M2JiM2Q1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMjg4LDEwICsyODgsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgaXNNdWx0aXBhcnRSZXBsYWNpbmdM
b2FkKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNQb3N0T3JSZWRpcmVjdEFmdGVyUG9zdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICAgICAg
c3RhdGljIHZvaWQgY2FsbENvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KHZvaWQqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxkQ29u
dGludWUpOwogICAgICAgICB2b2lkIGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkQ29udGludWUpOwogCi0gICAgICAgIHN0YXRp
YyB2b2lkIGNhbGxDb250aW51ZUFmdGVyQ29udGVudFBvbGljeSh2b2lkKiwgUG9saWN5QWN0aW9u
KTsKICAgICAgICAgdm9pZCBjb250aW51ZUFmdGVyQ29udGVudFBvbGljeShQb2xpY3lBY3Rpb24p
OwogCiAgICAgICAgIHZvaWQgc3RvcExvYWRpbmdGb3JQb2xpY3lDaGFuZ2UoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDA2ZDRjYmNkOWNjM2Q2M2RkOGYwNDcwMDE5
YTc1OWM5YzljMzVjM2UuLjRkNGZmNGJkZDFkMzFhYmIzZDI3NDAxYmJiZmFkYTMxNzIwOTcxZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMTIzNyw4ICsxMjM3LDkg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChjb25zdCBVUkwmIG5ld1VSTCwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgY29uc3QgU3RyaW4KICAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbihy
ZXF1ZXN0LCBuZXdMb2FkVHlwZSwgaXNGb3JtU3VibWlzc2lvbiwgZXZlbnQpOwogCiAgICAgaWYg
KCF0YXJnZXRGcmFtZSAmJiAhZnJhbWVOYW1lLmlzRW1wdHkoKSkgewotICAgICAgICBwb2xpY3lD
aGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koYWN0aW9uLCBGcmFtZUxvYWRlcjo6Y2FsbENv
bnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5LAotICAgICAgICAgICAgcmVxdWVzdCwgZm9y
bVN0YXRlLnJlbGVhc2UoKSwgZnJhbWVOYW1lLCB0aGlzKTsKKyAgICAgICAgcG9saWN5Q2hlY2tl
cigpLmNoZWNrTmV3V2luZG93UG9saWN5KGFjdGlvbiwgcmVxdWVzdCwgZm9ybVN0YXRlLnJlbGVh
c2UoKSwgZnJhbWVOYW1lLCBbdGhpc10oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQ
YXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBib29sIHNob3VsZENvbnRpbnVlKSB7Cisg
ICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3Jt
U3RhdGUsIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250aW51ZSk7CisgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjU1LDIxICsxMjU2LDI0IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmxvYWRVUkwoY29uc3QgVVJMJiBuZXdVUkwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIGNvbnN0IFN0cmluCiAgICAgICAgIG9sZERvY3VtZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tl
ZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuc3Rv
cENoZWNrKCk7CiAgICAgICAgIHBvbGljeUNoZWNrZXIoKS5zZXRMb2FkVHlwZShuZXdMb2FkVHlw
ZSk7Ci0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05hdmlnYXRpb25Qb2xpY3kocmVxdWVz
dCwgb2xkRG9jdW1lbnRMb2FkZXIuZ2V0KCksIGZvcm1TdGF0ZS5yZWxlYXNlKCksCi0gICAgICAg
ICAgICBjYWxsQ29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdhdGlvblBvbGljeSwgdGhp
cyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gbXVzdCBncmFiIHRoaXMgbm93LCBzaW5jZSB0
aGlzIGxvYWQgbWF5IHN0b3AgdGhlIHByZXZpb3VzIGxvYWQgYW5kIGNsZWFyIHRoaXMgZmxhZwot
ICAgICAgICBib29sIGlzUmVkaXJlY3QgPSBtX3F1aWNrUmVkaXJlY3RDb21pbmc7Ci0gICAgICAg
IGxvYWRXaXRoTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LCBhY3Rpb24sIGxvY2tIaXN0b3J5LCBu
ZXdMb2FkVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSk7Ci0gICAgICAgIGlmIChpc1JlZGlyZWN0
KSB7Ci0gICAgICAgICAgICBtX3F1aWNrUmVkaXJlY3RDb21pbmcgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGlmIChtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIpCi0gICAgICAgICAgICAgICAgbV9w
cm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5zZXRJc0NsaWVudFJlZGlyZWN0KHRydWUpOwotICAg
ICAgICB9IGVsc2UgaWYgKHNhbWVVUkwgJiYgbmV3TG9hZFR5cGUgIT0gRnJhbWVMb2FkVHlwZVJl
bG9hZCAmJiBuZXdMb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlUmVsb2FkRnJvbU9yaWdpbikKLSAg
ICAgICAgICAgIC8vIEV4YW1wbGUgb2YgdGhpcyBjYXNlIGFyZSBzaXRlcyB0aGF0IHJlbG9hZCB0
aGUgc2FtZSBVUkwgd2l0aCBhIGRpZmZlcmVudCBjb29raWUKLSAgICAgICAgICAgIC8vIGRyaXZp
bmcgdGhlIGdlbmVyYXRlZCBjb250ZW50LCBvciBhIG1hc3RlciBmcmFtZSB3aXRoIGxpbmtzIHRo
YXQgZHJpdmUgYSB0YXJnZXQKLSAgICAgICAgICAgIC8vIGZyYW1lLCB3aGVyZSB0aGUgdXNlciBo
YXMgY2xpY2tlZCBvbiB0aGUgc2FtZSBsaW5rIHJlcGVhdGVkbHkuCi0gICAgICAgICAgICBtX2xv
YWRUeXBlID0gRnJhbWVMb2FkVHlwZVNhbWU7CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVj
a05hdmlnYXRpb25Qb2xpY3kocmVxdWVzdCwgb2xkRG9jdW1lbnRMb2FkZXIuZ2V0KCksIGZvcm1T
dGF0ZS5yZWxlYXNlKCksIFt0aGlzXShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBh
c3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250aW51ZSkgeworICAgICAgICAgICAg
Y29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdhdGlvblBvbGljeShyZXF1ZXN0LCBzaG91
bGRDb250aW51ZSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Ly8gbXVzdCBncmFiIHRoaXMgbm93LCBzaW5jZSB0aGlzIGxvYWQgbWF5IHN0b3AgdGhlIHByZXZp
b3VzIGxvYWQgYW5kIGNsZWFyIHRoaXMgZmxhZworICAgIGJvb2wgaXNSZWRpcmVjdCA9IG1fcXVp
Y2tSZWRpcmVjdENvbWluZzsKKyAgICBsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCwg
YWN0aW9uLCBsb2NrSGlzdG9yeSwgbmV3TG9hZFR5cGUsIGZvcm1TdGF0ZS5yZWxlYXNlKCkpOwor
ICAgIGlmIChpc1JlZGlyZWN0KSB7CisgICAgICAgIG1fcXVpY2tSZWRpcmVjdENvbWluZyA9IGZh
bHNlOworICAgICAgICBpZiAobV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKQorICAgICAgICAg
ICAgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5zZXRJc0NsaWVudFJlZGlyZWN0KHRydWUp
OworICAgIH0gZWxzZSBpZiAoc2FtZVVSTCAmJiBuZXdMb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBl
UmVsb2FkICYmIG5ld0xvYWRUeXBlICE9IEZyYW1lTG9hZFR5cGVSZWxvYWRGcm9tT3JpZ2luKSB7
CisgICAgICAgIC8vIEV4YW1wbGUgb2YgdGhpcyBjYXNlIGFyZSBzaXRlcyB0aGF0IHJlbG9hZCB0
aGUgc2FtZSBVUkwgd2l0aCBhIGRpZmZlcmVudCBjb29raWUKKyAgICAgICAgLy8gZHJpdmluZyB0
aGUgZ2VuZXJhdGVkIGNvbnRlbnQsIG9yIGEgbWFzdGVyIGZyYW1lIHdpdGggbGlua3MgdGhhdCBk
cml2ZSBhIHRhcmdldAorICAgICAgICAvLyBmcmFtZSwgd2hlcmUgdGhlIHVzZXIgaGFzIGNsaWNr
ZWQgb24gdGhlIHNhbWUgbGluayByZXBlYXRlZGx5LgorICAgICAgICBtX2xvYWRUeXBlID0gRnJh
bWVMb2FkVHlwZVNhbWU7CiAgICAgfQogfQogCkBAIC0xMzAyLDcgKzEzMDYsMTAgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBwYXNzZWRSZXF1ZXN0KQog
ICAgIH0KIAogICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkpIHsK
LSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25B
Y3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGVPdGhlciksIEZy
YW1lTG9hZGVyOjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ksIHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCksIDAsIHJlcXVlc3QuZnJhbWVOYW1lKCksIHRoaXMpOworICAgICAg
ICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlwZU90aGVyKSwgcmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKSwgbnVsbHB0ciwgcmVxdWVzdC5mcmFtZU5hbWUoKSwgW3RoaXNdKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1T
dGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFj
dGlvbiwgYm9vbCBzaG91bGRDb250aW51ZSkgeworICAgICAgICAgICAgY29udGludWVMb2FkQWZ0
ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwg
c2hvdWxkQ29udGludWUpOworICAgICAgICB9KTsKKwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0xMzk3LDMzICsxNDA0LDM2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1l
bnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgICAg
IG9sZERvY3VtZW50TG9hZGVyLT5zZXRUcmlnZ2VyaW5nQWN0aW9uKGFjdGlvbik7CiAgICAgICAg
IG9sZERvY3VtZW50TG9hZGVyLT5zZXRMYXN0Q2hlY2tlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KCkpOwogICAgICAgICBwb2xpY3lDaGVja2VyKCkuc3RvcENoZWNrKCk7Ci0gICAgICAgIHBvbGlj
eUNoZWNrZXIoKS5jaGVja05hdmlnYXRpb25Qb2xpY3kobG9hZGVyLT5yZXF1ZXN0KCksIG9sZERv
Y3VtZW50TG9hZGVyLmdldCgpLCBmb3JtU3RhdGUsCi0gICAgICAgICAgICBjYWxsQ29udGludWVG
cmFnbWVudFNjcm9sbEFmdGVyTmF2aWdhdGlvblBvbGljeSwgdGhpcyk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSBtX2ZyYW1lLnRyZWUoKS5wYXJlbnQoKSkKLSAg
ICAgICAgICAgIGxvYWRlci0+c2V0T3ZlcnJpZGVFbmNvZGluZyhwYXJlbnQtPmxvYWRlcigpLmRv
Y3VtZW50TG9hZGVyKCktPm92ZXJyaWRlRW5jb2RpbmcoKSk7CisgICAgICAgIHBvbGljeUNoZWNr
ZXIoKS5jaGVja05hdmlnYXRpb25Qb2xpY3kobG9hZGVyLT5yZXF1ZXN0KCksIG9sZERvY3VtZW50
TG9hZGVyLmdldCgpLCBmb3JtU3RhdGUsIFt0aGlzXShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250aW51ZSkgeworICAg
ICAgICAgICAgY29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdhdGlvblBvbGljeShyZXF1
ZXN0LCBzaG91bGRDb250aW51ZSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAg
fQogCi0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5zdG9wQ2hlY2soKTsKLSAgICAgICAgc2V0UG9s
aWN5RG9jdW1lbnRMb2FkZXIobG9hZGVyKTsKLSAgICAgICAgaWYgKGxvYWRlci0+dHJpZ2dlcmlu
Z0FjdGlvbigpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGxvYWRlci0+c2V0VHJpZ2dlcmluZ0Fj
dGlvbihOYXZpZ2F0aW9uQWN0aW9uKGxvYWRlci0+cmVxdWVzdCgpLCBwb2xpY3lDaGVja2VyKCku
bG9hZFR5cGUoKSwgaXNGb3JtU3VibWlzc2lvbikpOwotCi0gICAgICAgIGlmIChFbGVtZW50KiBv
d25lckVsZW1lbnQgPSBtX2ZyYW1lLm93bmVyRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICAvLyBX
ZSBza2lwIGRpc3BhdGNoaW5nIHRoZSBiZWZvcmVsb2FkIGV2ZW50IGlmIHdlJ3ZlIGFscmVhZHkK
LSAgICAgICAgICAgIC8vIGNvbW1pdHRlZCBhIHJlYWwgZG9jdW1lbnQgbG9hZCBiZWNhdXNlIHRo
ZSBldmVudCB3b3VsZCBsZWFrCi0gICAgICAgICAgICAvLyBzdWJzZXF1ZW50IGFjdGl2aXR5IGJ5
IHRoZSBmcmFtZSB3aGljaCB0aGUgcGFyZW50IGZyYW1lIGlzbid0Ci0gICAgICAgICAgICAvLyBz
dXBwb3NlZCB0byBsZWFybi4gRm9yIGV4YW1wbGUsIGlmIHRoZSBjaGlsZCBmcmFtZSBuYXZpZ2F0
ZWQgdG8KLSAgICAgICAgICAgIC8vIGEgbmV3IFVSTCwgdGhlIHBhcmVudCBmcmFtZSBzaG91bGRu
J3QgbGVhcm4gdGhlIFVSTC4KLSAgICAgICAgICAgIGlmICghbV9zdGF0ZU1hY2hpbmUuY29tbWl0
dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkKLSAgICAgICAgICAgICAgICAmJiAhb3duZXJFbGVt
ZW50LT5kaXNwYXRjaEJlZm9yZUxvYWRFdmVudChsb2FkZXItPnJlcXVlc3QoKS51cmwoKS5zdHJp
bmcoKSkpIHsKLSAgICAgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xp
Y3kobG9hZGVyLT5yZXF1ZXN0KCksIGZvcm1TdGF0ZSwgZmFsc2UpOwotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIGlmIChGcmFtZSogcGFyZW50
ID0gbV9mcmFtZS50cmVlKCkucGFyZW50KCkpCisgICAgICAgIGxvYWRlci0+c2V0T3ZlcnJpZGVF
bmNvZGluZyhwYXJlbnQtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPm92ZXJyaWRlRW5jb2Rp
bmcoKSk7CiAKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmF2aWdhdGlvblBvbGljeShs
b2FkZXItPnJlcXVlc3QoKSwgbG9hZGVyLCBmb3JtU3RhdGUsCi0gICAgICAgICAgICBjYWxsQ29u
dGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5LCB0aGlzKTsKKyAgICBwb2xpY3lDaGVja2Vy
KCkuc3RvcENoZWNrKCk7CisgICAgc2V0UG9saWN5RG9jdW1lbnRMb2FkZXIobG9hZGVyKTsKKyAg
ICBpZiAobG9hZGVyLT50cmlnZ2VyaW5nQWN0aW9uKCkuaXNFbXB0eSgpKQorICAgICAgICBsb2Fk
ZXItPnNldFRyaWdnZXJpbmdBY3Rpb24oTmF2aWdhdGlvbkFjdGlvbihsb2FkZXItPnJlcXVlc3Qo
KSwgcG9saWN5Q2hlY2tlcigpLmxvYWRUeXBlKCksIGlzRm9ybVN1Ym1pc3Npb24pKTsKKworICAg
IGlmIChFbGVtZW50KiBvd25lckVsZW1lbnQgPSBtX2ZyYW1lLm93bmVyRWxlbWVudCgpKSB7Cisg
ICAgICAgIC8vIFdlIHNraXAgZGlzcGF0Y2hpbmcgdGhlIGJlZm9yZWxvYWQgZXZlbnQgaWYgd2Un
dmUgYWxyZWFkeQorICAgICAgICAvLyBjb21taXR0ZWQgYSByZWFsIGRvY3VtZW50IGxvYWQgYmVj
YXVzZSB0aGUgZXZlbnQgd291bGQgbGVhaworICAgICAgICAvLyBzdWJzZXF1ZW50IGFjdGl2aXR5
IGJ5IHRoZSBmcmFtZSB3aGljaCB0aGUgcGFyZW50IGZyYW1lIGlzbid0CisgICAgICAgIC8vIHN1
cHBvc2VkIHRvIGxlYXJuLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGNoaWxkIGZyYW1lIG5hdmlnYXRl
ZCB0bworICAgICAgICAvLyBhIG5ldyBVUkwsIHRoZSBwYXJlbnQgZnJhbWUgc2hvdWxkbid0IGxl
YXJuIHRoZSBVUkwuCisgICAgICAgIGlmICghbV9zdGF0ZU1hY2hpbmUuY29tbWl0dGVkRmlyc3RS
ZWFsRG9jdW1lbnRMb2FkKCkKKyAgICAgICAgICAgICYmICFvd25lckVsZW1lbnQtPmRpc3BhdGNo
QmVmb3JlTG9hZEV2ZW50KGxvYWRlci0+cmVxdWVzdCgpLnVybCgpLnN0cmluZygpKSkgeworICAg
ICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGxvYWRlci0+cmVxdWVz
dCgpLCBmb3JtU3RhdGUsIGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
ICAgIH0KKworICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05hdmlnYXRpb25Qb2xpY3kobG9hZGVy
LT5yZXF1ZXN0KCksIGxvYWRlciwgZm9ybVN0YXRlLCBbdGhpc10oY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBib29sIHNob3Vs
ZENvbnRpbnVlKSB7CisgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShy
ZXF1ZXN0LCBmb3JtU3RhdGUsIHNob3VsZENvbnRpbnVlKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
cmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiB1cmwpCkBAIC0yNTUyLDE5ICsyNTYyLDI0IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQ
b3N0UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGluUmVxdWVzdCwgY29uc3QgU3RyaW5n
CiAKICAgICBpZiAoIWZyYW1lTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gVGhlIHNlYXJj
aCBmb3IgYSB0YXJnZXQgZnJhbWUgaXMgZG9uZSBlYXJsaWVyIGluIHRoZSBjYXNlIG9mIGZvcm0g
c3VibWlzc2lvbi4KLSAgICAgICAgaWYgKEZyYW1lKiB0YXJnZXRGcmFtZSA9IGZvcm1TdGF0ZSA/
IDAgOiBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKGZyYW1lTmFtZSkpCisgICAgICAgIGlmIChGcmFt
ZSogdGFyZ2V0RnJhbWUgPSBmb3JtU3RhdGUgPyAwIDogZmluZEZyYW1lRm9yTmF2aWdhdGlvbihm
cmFtZU5hbWUpKSB7CiAgICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZFdpdGhO
YXZpZ2F0aW9uQWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIGFjdGlvbiwgbG9ja0hpc3Rv
cnksIGxvYWRUeXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KGFjdGlvbiwgRnJhbWVM
b2FkZXI6OmNhbGxDb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeSwgd29ya2luZ1Jlc291
cmNlUmVxdWVzdCwgZm9ybVN0YXRlLnJlbGVhc2UoKSwgZnJhbWVOYW1lLCB0aGlzKTsKLSAgICB9
IGVsc2UgewotICAgICAgICAvLyBtdXN0IGdyYWIgdGhpcyBub3csIHNpbmNlIHRoaXMgbG9hZCBt
YXkgc3RvcCB0aGUgcHJldmlvdXMgbG9hZCBhbmQgY2xlYXIgdGhpcyBmbGFnCi0gICAgICAgIGJv
b2wgaXNSZWRpcmVjdCA9IG1fcXVpY2tSZWRpcmVjdENvbWluZzsKLSAgICAgICAgbG9hZFdpdGhO
YXZpZ2F0aW9uQWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIGFjdGlvbiwgbG9ja0hpc3Rv
cnksIGxvYWRUeXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpKTsgICAgCi0gICAgICAgIGlmIChpc1Jl
ZGlyZWN0KSB7Ci0gICAgICAgICAgICBtX3F1aWNrUmVkaXJlY3RDb21pbmcgPSBmYWxzZTsKLSAg
ICAgICAgICAgIGlmIChtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIpCi0gICAgICAgICAgICAg
ICAgbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT5zZXRJc0NsaWVudFJlZGlyZWN0KHRydWUp
OworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisKKyAgICAgICAgcG9saWN5Q2hlY2tl
cigpLmNoZWNrTmV3V2luZG93UG9saWN5KGFjdGlvbiwgd29ya2luZ1Jlc291cmNlUmVxdWVzdCwg
Zm9ybVN0YXRlLnJlbGVhc2UoKSwgZnJhbWVOYW1lLCBbdGhpc10oY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBib29sIHNob3Vs
ZENvbnRpbnVlKSB7CisgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGlj
eShyZXF1ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250aW51ZSk7
CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gbXVzdCBncmFi
IHRoaXMgbm93LCBzaW5jZSB0aGlzIGxvYWQgbWF5IHN0b3AgdGhlIHByZXZpb3VzIGxvYWQgYW5k
IGNsZWFyIHRoaXMgZmxhZworICAgIGJvb2wgaXNSZWRpcmVjdCA9IG1fcXVpY2tSZWRpcmVjdENv
bWluZzsKKyAgICBsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24od29ya2luZ1Jlc291cmNlUmVxdWVz
dCwgYWN0aW9uLCBsb2NrSGlzdG9yeSwgbG9hZFR5cGUsIGZvcm1TdGF0ZS5yZWxlYXNlKCkpOyAg
ICAKKyAgICBpZiAoaXNSZWRpcmVjdCkgeworICAgICAgICBtX3F1aWNrUmVkaXJlY3RDb21pbmcg
PSBmYWxzZTsKKyAgICAgICAgaWYgKG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcikKKyAgICAg
ICAgICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+c2V0SXNDbGllbnRSZWRpcmVjdCh0
cnVlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2FsbGJhY2suY3Bw
CmluZGV4IDQ1ZmRiYjA1ZTI0NzJmZDYyMDc2MmQ4OWUxOTIzNTVmZGFlMTk3NWUuLjZmZmE4YThj
ZGJjNTRjMzBmZmY1MDdlYWVmNDVlNGI1Y2I5NjQ4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Qb2xpY3lDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNhbGxiYWNrLmNwcApAQCAtMzksMTAgKzM5LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUG9saWN5Q2FsbGJhY2s6OlBvbGljeUNhbGxiYWNrKCkKLSAgICA6IG1fbmF2aWdhdGlv
bkZ1bmN0aW9uKDApCi0gICAgLCBtX25ld1dpbmRvd0Z1bmN0aW9uKDApCi0gICAgLCBtX2NvbnRl
bnRGdW5jdGlvbigwKQotICAgICwgbV9hcmd1bWVudCgwKQogewogfQogCkBAIC01Myw1NiArNDks
NTIgQEAgUG9saWN5Q2FsbGJhY2s6On5Qb2xpY3lDYWxsYmFjaygpCiB2b2lkIFBvbGljeUNhbGxi
YWNrOjpjbGVhcigpCiB7CiAgICAgY2xlYXJSZXF1ZXN0KCk7Ci0gICAgbV9uYXZpZ2F0aW9uRnVu
Y3Rpb24gPSAwOwotICAgIG1fbmV3V2luZG93RnVuY3Rpb24gPSAwOwotICAgIG1fY29udGVudEZ1
bmN0aW9uID0gMDsKKyAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IG51bGxwdHI7CisgICAgbV9u
ZXdXaW5kb3dGdW5jdGlvbiA9IG51bGxwdHI7CisgICAgbV9jb250ZW50RnVuY3Rpb24gPSBudWxs
cHRyOwogfQogCiB2b2lkIFBvbGljeUNhbGxiYWNrOjpzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLAotICAgIE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIGZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCkKKyAgICBO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiBmdW5jdGlvbikKIHsKICAgICBtX3JlcXVl
c3QgPSByZXF1ZXN0OwogICAgIG1fZm9ybVN0YXRlID0gZm9ybVN0YXRlOwogICAgIG1fZnJhbWVO
YW1lID0gU3RyaW5nKCk7CiAKLSAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IGZ1bmN0aW9uOwot
ICAgIG1fbmV3V2luZG93RnVuY3Rpb24gPSAwOwotICAgIG1fY29udGVudEZ1bmN0aW9uID0gMDsK
LSAgICBtX2FyZ3VtZW50ID0gYXJndW1lbnQ7CisgICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSBz
dGQ6Om1vdmUoZnVuY3Rpb24pOworICAgIG1fbmV3V2luZG93RnVuY3Rpb24gPSBudWxscHRyOwor
ICAgIG1fY29udGVudEZ1bmN0aW9uID0gbnVsbHB0cjsKIH0KIAotdm9pZCBQb2xpY3lDYWxsYmFj
azo6c2V0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3Rh
dGU+IGZvcm1TdGF0ZSwKLSAgICBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbiwgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5j
dGlvbiBmdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpCit2b2lkIFBvbGljeUNhbGxiYWNrOjpzZXQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9y
bVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYg
bmF2aWdhdGlvbkFjdGlvbiwgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiBmdW5jdGlv
bikKIHsKICAgICBtX3JlcXVlc3QgPSByZXF1ZXN0OwogICAgIG1fZm9ybVN0YXRlID0gZm9ybVN0
YXRlOwogICAgIG1fZnJhbWVOYW1lID0gZnJhbWVOYW1lOwogICAgIG1fbmF2aWdhdGlvbkFjdGlv
biA9IG5hdmlnYXRpb25BY3Rpb247CiAKLSAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IDA7Ci0g
ICAgbV9uZXdXaW5kb3dGdW5jdGlvbiA9IGZ1bmN0aW9uOwotICAgIG1fY29udGVudEZ1bmN0aW9u
ID0gMDsKLSAgICBtX2FyZ3VtZW50ID0gYXJndW1lbnQ7CisgICAgbV9uYXZpZ2F0aW9uRnVuY3Rp
b24gPSBudWxscHRyOworICAgIG1fbmV3V2luZG93RnVuY3Rpb24gPSBzdGQ6Om1vdmUoZnVuY3Rp
b24pOworICAgIG1fY29udGVudEZ1bmN0aW9uID0gbnVsbHB0cjsKIH0KIAotdm9pZCBQb2xpY3lD
YWxsYmFjazo6c2V0KENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIGZ1bmN0aW9uLCB2b2lk
KiBhcmd1bWVudCkKK3ZvaWQgUG9saWN5Q2FsbGJhY2s6OnNldChDb250ZW50UG9saWN5RGVjaXNp
b25GdW5jdGlvbiBmdW5jdGlvbikKIHsKICAgICBtX3JlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3Qo
KTsKLSAgICBtX2Zvcm1TdGF0ZSA9IDA7CisgICAgbV9mb3JtU3RhdGUgPSBudWxscHRyOwogICAg
IG1fZnJhbWVOYW1lID0gU3RyaW5nKCk7CiAKLSAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IDA7
Ci0gICAgbV9uZXdXaW5kb3dGdW5jdGlvbiA9IDA7Ci0gICAgbV9jb250ZW50RnVuY3Rpb24gPSBm
dW5jdGlvbjsKLSAgICBtX2FyZ3VtZW50ID0gYXJndW1lbnQ7CisgICAgbV9uYXZpZ2F0aW9uRnVu
Y3Rpb24gPSBudWxscHRyOworICAgIG1fbmV3V2luZG93RnVuY3Rpb24gPSBudWxscHRyOworICAg
IG1fY29udGVudEZ1bmN0aW9uID0gc3RkOjptb3ZlKGZ1bmN0aW9uKTsKIH0KIAogdm9pZCBQb2xp
Y3lDYWxsYmFjazo6Y2FsbChib29sIHNob3VsZENvbnRpbnVlKQogewogICAgIGlmIChtX25hdmln
YXRpb25GdW5jdGlvbikKLSAgICAgICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24obV9hcmd1bWVudCwg
bV9yZXF1ZXN0LCBtX2Zvcm1TdGF0ZS5nZXQoKSwgc2hvdWxkQ29udGludWUpOworICAgICAgICBt
X25hdmlnYXRpb25GdW5jdGlvbihtX3JlcXVlc3QsIG1fZm9ybVN0YXRlLmdldCgpLCBzaG91bGRD
b250aW51ZSk7CiAgICAgaWYgKG1fbmV3V2luZG93RnVuY3Rpb24pCi0gICAgICAgIG1fbmV3V2lu
ZG93RnVuY3Rpb24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBtX2Zvcm1TdGF0ZS5nZXQoKSwgbV9m
cmFtZU5hbWUsIG1fbmF2aWdhdGlvbkFjdGlvbiwgc2hvdWxkQ29udGludWUpOworICAgICAgICBt
X25ld1dpbmRvd0Z1bmN0aW9uKG1fcmVxdWVzdCwgbV9mb3JtU3RhdGUuZ2V0KCksIG1fZnJhbWVO
YW1lLCBtX25hdmlnYXRpb25BY3Rpb24sIHNob3VsZENvbnRpbnVlKTsKICAgICBBU1NFUlQoIW1f
Y29udGVudEZ1bmN0aW9uKTsKIH0KIApAQCAtMTExLDEzICsxMDMsMTMgQEAgdm9pZCBQb2xpY3lD
YWxsYmFjazo6Y2FsbChQb2xpY3lBY3Rpb24gYWN0aW9uKQogICAgIEFTU0VSVCghbV9uYXZpZ2F0
aW9uRnVuY3Rpb24pOwogICAgIEFTU0VSVCghbV9uZXdXaW5kb3dGdW5jdGlvbik7CiAgICAgQVNT
RVJUKG1fY29udGVudEZ1bmN0aW9uKTsKLSAgICBtX2NvbnRlbnRGdW5jdGlvbihtX2FyZ3VtZW50
LCBhY3Rpb24pOworICAgIG1fY29udGVudEZ1bmN0aW9uKGFjdGlvbik7CiB9CiAKIHZvaWQgUG9s
aWN5Q2FsbGJhY2s6OmNsZWFyUmVxdWVzdCgpCiB7CiAgICAgbV9yZXF1ZXN0ID0gUmVzb3VyY2VS
ZXF1ZXN0KCk7Ci0gICAgbV9mb3JtU3RhdGUgPSAwOworICAgIG1fZm9ybVN0YXRlID0gbnVsbHB0
cjsKICAgICBtX2ZyYW1lTmFtZSA9IFN0cmluZygpOwogfQogCkBAIC0xMjUsMTEgKzExNywxMSBA
QCB2b2lkIFBvbGljeUNhbGxiYWNrOjpjYW5jZWwoKQogewogICAgIGNsZWFyUmVxdWVzdCgpOwog
ICAgIGlmIChtX25hdmlnYXRpb25GdW5jdGlvbikKLSAgICAgICAgbV9uYXZpZ2F0aW9uRnVuY3Rp
b24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBtX2Zvcm1TdGF0ZS5nZXQoKSwgZmFsc2UpOworICAg
ICAgICBtX25hdmlnYXRpb25GdW5jdGlvbihtX3JlcXVlc3QsIG1fZm9ybVN0YXRlLmdldCgpLCBm
YWxzZSk7CiAgICAgaWYgKG1fbmV3V2luZG93RnVuY3Rpb24pCi0gICAgICAgIG1fbmV3V2luZG93
RnVuY3Rpb24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBtX2Zvcm1TdGF0ZS5nZXQoKSwgbV9mcmFt
ZU5hbWUsIG1fbmF2aWdhdGlvbkFjdGlvbiwgZmFsc2UpOworICAgICAgICBtX25ld1dpbmRvd0Z1
bmN0aW9uKG1fcmVxdWVzdCwgbV9mb3JtU3RhdGUuZ2V0KCksIG1fZnJhbWVOYW1lLCBtX25hdmln
YXRpb25BY3Rpb24sIGZhbHNlKTsKICAgICBpZiAobV9jb250ZW50RnVuY3Rpb24pCi0gICAgICAg
IG1fY29udGVudEZ1bmN0aW9uKG1fYXJndW1lbnQsIFBvbGljeUlnbm9yZSk7CisgICAgICAgIG1f
Y29udGVudEZ1bmN0aW9uKFBvbGljeUlnbm9yZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDYWxsYmFjay5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNrLmgKaW5kZXggNDE1YTNlMzE0MTRh
Nzc3ODUyZDY2YWI1N2ZiNjI0ZTQwNTU3NzEyNi4uYzcwZWRjYzM4YjU4ZThiYTc0MDUyZWI4NGYx
MDZlMDQ4ZGFiMDVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNh
bGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNhbGxiYWNrLmgKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAi
TmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1
ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC00MCwxMSArNDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEZvcm1TdGF0ZTsKIAotdHlwZWRlZiB2b2lkICgqTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uRnVuY3Rpb24pKHZvaWQqIGFyZ3VtZW50LAotICAgIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250aW51ZSk7Ci10eXBlZGVm
IHZvaWQgKCpOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uKSh2b2lkKiBhcmd1bWVudCwK
LSAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0
IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgYm9vbCBzaG91bGRD
b250aW51ZSk7Ci10eXBlZGVmIHZvaWQgKCpDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiko
dm9pZCogYXJndW1lbnQsIFBvbGljeUFjdGlvbik7Cit0eXBlZGVmIHN0ZDo6ZnVuY3Rpb248dm9p
ZCAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBib29sIHNo
b3VsZENvbnRpbnVlKT4gTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb247Cit0eXBlZGVm
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxG
b3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYsIGJvb2wgc2hvdWxkQ29udGludWUpPiBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9u
OwordHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFBvbGljeUFjdGlvbik+IENvbnRlbnRQb2xp
Y3lEZWNpc2lvbkZ1bmN0aW9uOwogCiBjbGFzcyBQb2xpY3lDYWxsYmFjayB7CiBwdWJsaWM6CkBA
IC01MiwxMSArNTEsOSBAQCBwdWJsaWM6CiAgICAgflBvbGljeUNhbGxiYWNrKCk7CiAKICAgICB2
b2lkIGNsZWFyKCk7Ci0gICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1Jl
ZlB0cjxGb3JtU3RhdGU+LAotICAgICAgICBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlv
biwgdm9pZCogYXJndW1lbnQpOwotICAgIHZvaWQgc2V0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mLAotICAgICAgICBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9u
LCB2b2lkKiBhcmd1bWVudCk7Ci0gICAgdm9pZCBzZXQoQ29udGVudFBvbGljeURlY2lzaW9uRnVu
Y3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsKKyAgICB2b2lkIHNldChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0
aW9uKTsKKyAgICB2b2lkIHNldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZv
cm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JiwgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbik7CisgICAgdm9pZCBzZXQoQ29udGVu
dFBvbGljeURlY2lzaW9uRnVuY3Rpb24pOwogCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CiAgICAgdm9pZCBjbGVhclJlcXVl
c3QoKTsKQEAgLTc0LDcgKzcxLDYgQEAgcHJpdmF0ZToKICAgICBOYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb25GdW5jdGlvbiBtX25hdmlnYXRpb25GdW5jdGlvbjsKICAgICBOZXdXaW5kb3dQb2xpY3lE
ZWNpc2lvbkZ1bmN0aW9uIG1fbmV3V2luZG93RnVuY3Rpb247CiAgICAgQ29udGVudFBvbGljeURl
Y2lzaW9uRnVuY3Rpb24gbV9jb250ZW50RnVuY3Rpb247Ci0gICAgdm9pZCogbV9hcmd1bWVudDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lD
aGVja2VyLmNwcAppbmRleCAxYmZlY2U2YjQyNjI2MDMzZDEzZmVkNzMzOGY0NjBkODgyZWZjNWIz
Li4xZWU4MzAyMDg4OGI2YmJjZDVjZDA0OTRkY2Y5Y2EyMmRiNDhhOTk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCkBAIC01MiwxMyArNTIsMTIgQEAgUG9saWN5Q2hl
Y2tlcjo6UG9saWN5Q2hlY2tlcihGcmFtZSYgZnJhbWUpCiB7CiB9CiAKLXZvaWQgUG9saWN5Q2hl
Y2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgbmV3UmVx
dWVzdCwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIGFy
Z3VtZW50KQordm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5j
dGlvbiBmdW5jdGlvbikKIHsKLSAgICBjaGVja05hdmlnYXRpb25Qb2xpY3kobmV3UmVxdWVzdCwg
bV9mcmFtZS5sb2FkZXIoKS5hY3RpdmVEb2N1bWVudExvYWRlcigpLCAwLCBmdW5jdGlvbiwgYXJn
dW1lbnQpOworICAgIGNoZWNrTmF2aWdhdGlvblBvbGljeShuZXdSZXF1ZXN0LCBtX2ZyYW1lLmxv
YWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIG51bGxwdHIsIHN0ZDo6bW92ZShmdW5jdGlv
bikpOwogfQogCi12b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsCi0gICAg
UGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
RnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KQordm9pZCBQb2xpY3lDaGVja2VyOjpj
aGVja05hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb2N1
bWVudExvYWRlciogbG9hZGVyLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBOYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiBmdW5jdGlvbikKIHsKICAgICBOYXZpZ2F0aW9u
QWN0aW9uIGFjdGlvbiA9IGxvYWRlci0+dHJpZ2dlcmluZ0FjdGlvbigpOwogICAgIGlmIChhY3Rp
b24uaXNFbXB0eSgpKSB7CkBAIC02OSw3ICs2OCw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRG9jdW1l
CiAgICAgLy8gRG9uJ3QgYXNrIG1vcmUgdGhhbiBvbmNlIGZvciB0aGUgc2FtZSByZXF1ZXN0IG9y
IGlmIHdlIGFyZSBsb2FkaW5nIGFuIGVtcHR5IFVSTC4KICAgICAvLyBUaGlzIGF2b2lkcyBjb25m
dXNpb24gb24gdGhlIHBhcnQgb2YgdGhlIGNsaWVudC4KICAgICBpZiAoZXF1YWxJZ25vcmluZ0hl
YWRlckZpZWxkcyhyZXF1ZXN0LCBsb2FkZXItPmxhc3RDaGVja2VkUmVxdWVzdCgpKSB8fCAoIXJl
cXVlc3QuaXNOdWxsKCkgJiYgcmVxdWVzdC51cmwoKS5pc0VtcHR5KCkpKSB7Ci0gICAgICAgIGZ1
bmN0aW9uKGFyZ3VtZW50LCByZXF1ZXN0LCAwLCB0cnVlKTsKKyAgICAgICAgZnVuY3Rpb24ocmVx
dWVzdCwgMCwgdHJ1ZSk7CiAgICAgICAgIGxvYWRlci0+c2V0TGFzdENoZWNrZWRSZXF1ZXN0KHJl
cXVlc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNzksMjAgKzc4LDIwIEBAIHZvaWQg
UG9saWN5Q2hlY2tlcjo6Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgRG9jdW1lCiAgICAgaWYgKGxvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5pc1Zh
bGlkKCkgJiYgIWxvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5mYWlsaW5nVVJMKCkuaXNFbXB0eSgp
KSB7CiAgICAgICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUobV9sb2FkVHlwZSkpCiAgICAg
ICAgICAgICBtX2xvYWRUeXBlID0gRnJhbWVMb2FkVHlwZVJlbG9hZDsKLSAgICAgICAgZnVuY3Rp
b24oYXJndW1lbnQsIHJlcXVlc3QsIDAsIHRydWUpOworICAgICAgICBmdW5jdGlvbihyZXF1ZXN0
LCAwLCB0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIElmIHdlJ3JlIGxv
YWRpbmcgY29udGVudCBpbnRvIGEgc3ViZnJhbWUsIGNoZWNrIGFnYWluc3QgdGhlIHBhcmVudCdz
IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5CiAgICAgLy8gYW5kIGtpbGwgdGhlIGxvYWQgaWYgdGhh
dCBjaGVjayBmYWlscy4KICAgICBpZiAobV9mcmFtZS5vd25lckVsZW1lbnQoKSAmJiAhbV9mcmFt
ZS5vd25lckVsZW1lbnQoKS0+ZG9jdW1lbnQoKS5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxs
b3dDaGlsZEZyYW1lRnJvbVNvdXJjZShyZXF1ZXN0LnVybCgpKSkgewotICAgICAgICBmdW5jdGlv
bihhcmd1bWVudCwgcmVxdWVzdCwgMCwgZmFsc2UpOworICAgICAgICBmdW5jdGlvbihyZXF1ZXN0
LCAwLCBmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBsb2FkZXItPnNldExh
c3RDaGVja2VkUmVxdWVzdChyZXF1ZXN0KTsKIAotICAgIG1fY2FsbGJhY2suc2V0KHJlcXVlc3Qs
IGZvcm1TdGF0ZS5nZXQoKSwgZnVuY3Rpb24sIGFyZ3VtZW50KTsKKyAgICBtX2NhbGxiYWNrLnNl
dChyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIHN0ZDo6bW92ZShmdW5jdGlvbikpOwogCiAgICAg
bV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9saWN5ID0gdHJ1ZTsKICAgICBtX2ZyYW1l
LmxvYWRlcigpLmNsaWVudCgpLmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bihhY3Rpb24sIHJlcXVlc3QsIGZvcm1TdGF0ZSwgW3RoaXNdKFBvbGljeUFjdGlvbiBhY3Rpb24p
IHsKQEAgLTEwMSw4ICsxMDAsNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlv
blBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZQogICAgIG1fZGVs
ZWdhdGVJc0RlY2lkaW5nTmF2aWdhdGlvblBvbGljeSA9IGZhbHNlOwogfQogCi12b2lkIFBvbGlj
eUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFj
dGlvbiwgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiBmdW5jdGlvbiwKLSAgICBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3Rh
dGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB2b2lkKiBhcmd1bWVudCkKK3ZvaWQgUG9saWN5
Q2hlY2tlcjo6Y2hlY2tOZXdXaW5kb3dQb2xpY3koY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0
aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRl
PiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBOZXdXaW5kb3dQb2xpY3lEZWNp
c2lvbkZ1bmN0aW9uIGZ1bmN0aW9uKQogewogICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCkgJiYg
bV9mcmFtZS5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94UG9wdXBzKSkKICAgICAgICAg
cmV0dXJuIGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CkBAIC0x
MTAsMTUgKzEwOCwxNSBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5
KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgTmV3V2luZAogICAgIGlmICghRE9NV2lu
ZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKLSAgICBtX2NhbGxiYWNrLnNldChyZXF1
ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFtZSwgYWN0aW9uLCBmdW5jdGlvbiwgYXJndW1lbnQpOwor
ICAgIG1fY2FsbGJhY2suc2V0KHJlcXVlc3QsIGZvcm1TdGF0ZSwgZnJhbWVOYW1lLCBhY3Rpb24s
IHN0ZDo6bW92ZShmdW5jdGlvbikpOwogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oYWN0aW9uLCByZXF1ZXN0LCBmb3Jt
U3RhdGUsIGZyYW1lTmFtZSwgW3RoaXNdKFBvbGljeUFjdGlvbiBhY3Rpb24pIHsKICAgICAgICAg
Y29udGludWVBZnRlck5ld1dpbmRvd1BvbGljeShhY3Rpb24pOwogICAgIH0pOwogfQogCi12b2lk
IFBvbGljeUNoZWNrZXI6OmNoZWNrQ29udGVudFBvbGljeShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQq
IGFyZ3VtZW50KQordm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja0NvbnRlbnRQb2xpY3koY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9u
IGZ1bmN0aW9uKQogewotICAgIG1fY2FsbGJhY2suc2V0KGZ1bmN0aW9uLCBhcmd1bWVudCk7Cisg
ICAgbV9jYWxsYmFjay5zZXQoc3RkOjptb3ZlKGZ1bmN0aW9uKSk7CiAgICAgbV9mcmFtZS5sb2Fk
ZXIoKS5jbGllbnQoKS5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHJlc3BvbnNlLCBt
X2ZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSwgW3RoaXNd
KFBvbGljeUFjdGlvbiBhY3Rpb24pIHsKICAgICAgICAgY29udGludWVBZnRlckNvbnRlbnRQb2xp
Y3koYWN0aW9uKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
b2xpY3lDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCmlu
ZGV4IDgzYTgxYjZiNzY4NjYzZTgwNDJlODMyNDg1MmQyZGY3ODkwNDFmYTQuLmIxNzcyZTYyZWYz
MTI3MDQ0NDEwNDRiZWZjZThjYjdmNzM1NzhiYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGlj
eUNoZWNrZXIuaApAQCAtNTAsMTAgKzUwLDEwIEBAIGNsYXNzIFBvbGljeUNoZWNrZXIgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFBvbGljeUNoZWNrZXIoRnJhbWUmKTsKIAotICAgIHZvaWQgY2hl
Y2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIERvY3VtZW50TG9hZGVy
KiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlv
biwgdm9pZCogYXJndW1lbnQpOwotICAgIHZvaWQgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uLCB2b2lk
KiBhcmd1bWVudCk7Ci0gICAgdm9pZCBjaGVja05ld1dpbmRvd1BvbGljeShjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiwgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgdm9pZCogYXJndW1lbnQpOwotICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgdm9pZCogYXJn
dW1lbnQpOworICAgIHZvaWQgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIERvY3VtZW50TG9hZGVyKiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBOYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb25GdW5jdGlvbik7CisgICAgdm9pZCBjaGVja05hdmlnYXRpb25Qb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24p
OworICAgIHZvaWQgY2hlY2tOZXdXaW5kb3dQb2xpY3koY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24pOworICAgIHZv
aWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb250ZW50UG9s
aWN5RGVjaXNpb25GdW5jdGlvbik7CiAKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGRpZmZlcmVu
dC4gIFRoZXkgY291bGQgdXNlIGJldHRlciBuYW1lcy4KICAgICB2b2lkIGNhbmNlbENoZWNrKCk7
Cg==
</data>
<flag name="review"
          id="239282"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>