<?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>161516</bug_id>
          
          <creation_ts>2016-09-01 16:02:11 -0700</creation_ts>
          <short_desc>Use WTF::Function for completion handlers in API::UIClient</short_desc>
          <delta_ts>2016-09-02 02:01:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>mcatanzaro</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1225588</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-01 16:02:11 -0700</bug_when>
    <thetext>Use WTF::Function for completion handlers in API::UIClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225606</commentid>
    <comment_count>1</comment_count>
      <attachid>287699</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-01 16:24:17 -0700</bug_when>
    <thetext>Created attachment 287699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225609</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-01 16:25:48 -0700</bug_when>
    <thetext>Attachment 287699 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:84:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:85:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:86:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:87:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.h:88:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/APIUIClient.h:90:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/APIUIClient.h:91:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/APIUIClient.h:92:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/APIUIClient.h:119:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/APIUIClient.h:123:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/APIUIClient.h:128:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:183:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:203:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:217:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:223:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:237:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:243:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:262:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:302:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/UIDelegate.mm:318:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1531:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1546:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1551:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1556:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1571:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1576:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1581:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1596:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1601:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1606:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1621:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1626:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1790:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1816:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:1843:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:2033:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/C/WKPage.cpp:2058:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 37 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225614</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-01 16:45:38 -0700</bug_when>
    <thetext>Committed r205327: &lt;http://trac.webkit.org/changeset/205327&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225743</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-09-02 02:01:36 -0700</bug_when>
    <thetext>just to document, GTK fix landed in https://trac.webkit.org/changeset/205334</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287699</attachid>
            <date>2016-09-01 16:24:17 -0700</date>
            <delta_ts>2016-09-01 16:39:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161516-20160901162202.patch</filename>
            <type>text/plain</type>
            <size>27149</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjY1M2Q3NWRkZTAyNDlk
YmQ1NGI3OTIxODQyNTI3ZTdmM2FmMWMxNi4uYTA4YjliMzQwNTM1YWQ3NjA4N2FjODdhNjZkNTdj
NTBiMmUyYWE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE2LTA5LTAxICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFdURjo6RnVu
Y3Rpb24gZm9yIGNvbXBsZXRpb24gaGFuZGxlcnMgaW4gQVBJOjpVSUNsaWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNTE2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQp
OgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0pOgorICAgICAg
ICAoQVBJOjpVSUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChBUEk6OlVJ
Q2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOgorICAgICAgICAoQVBJOjpVSUNs
aWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWxSZXN1bHRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXI6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbFJlc3VsdExpc3RlbmVyKToKKyAgICAgICAgKFdlYktpdDo6UnVuSmF2YVNjcmlwdEFsZXJ0
UmVzdWx0TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJ1bkphdmFTY3JpcHRB
bGVydFJlc3VsdExpc3RlbmVyOjpSdW5KYXZhU2NyaXB0QWxlcnRSZXN1bHRMaXN0ZW5lcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJ1bkphdmFTY3JpcHRDb25maXJtUmVzdWx0TGlzdGVuZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJ1bkphdmFTY3JpcHRDb25maXJtUmVzdWx0TGlzdGVuZXI6
OlJ1bkphdmFTY3JpcHRDb25maXJtUmVzdWx0TGlzdGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpS
dW5KYXZhU2NyaXB0UHJvbXB0UmVzdWx0TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJ1bkphdmFTY3JpcHRQcm9tcHRSZXN1bHRMaXN0ZW5lcjo6UnVuSmF2YVNjcmlwdFByb21w
dFJlc3VsdExpc3RlbmVyKToKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJ
Q2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdh
dGU6OlVJQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KToKKyAgICAgICAgKFdlYktpdDo6VUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJL
aXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKToKKwogMjAxNi0wOS0wMSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IGNtYWtlIGJ1aWxkLCBtaXNzaW5nIFNlY0l0ZW1TaGltLm1lc3NhZ2VzLmlu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMTFiYjQy
MTFkMDMyOWE2NDRjOTNkOTFjZmE3OGMyZmJhMmZhNDhjYy4uNzBlMGRmZmQ2NTE0ZjlhYWIyZDkz
YzQ0ZDQ1YWI4MWE4N2UxMmIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaApAQCAtODcsOSArODcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZv
Y3VzKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMo
V2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2Ny
aXB0QWxlcnQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYktp
dDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRs
ZXIoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5Kiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgc3RkOjpmdW5jdGlvbjx2b2lkIChi
b29sKT4gY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViS2l0OjpXZWJQYWdlUHJveHkq
LCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFt
ZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgc3RkOjpmdW5jdGlv
bjx2b2lkIChjb25zdCBXVEY6OlN0cmluZyYpPiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcihXVEY6OlN0cmluZygpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2Ny
aXB0QWxlcnQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYktp
dDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEZ1
bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIo
KTsgfQorICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJLaXQ6OldlYlBh
Z2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgRnVuY3Rpb248dm9pZCAoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CisgICAgdmly
dHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25z
dCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgRnVuY3Rpb248dm9pZCAoY29u
c3QgV1RGOjpTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxl
cihXVEY6OlN0cmluZygpKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c1RleHQoV2Vi
S2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0
IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEmLCBXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmll
cnMsIEFQSTo6T2JqZWN0KikgeyB9CkBAIC0xMTYsMTYgKzExNiwxNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJv
eHkqKSB7IHJldHVybiBXZWJDb3JlOjpGbG9hdFJlY3QoKTsgfQogCiAgICAgdmlydHVhbCBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgdmlydHVhbCB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5Kiwg
c3RkOjpmdW5jdGlvbjx2b2lkIChib29sKT4gY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlv
bkhhbmRsZXIodHJ1ZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkqLCBGdW5jdGlvbjx2b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgeyBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VE
aWRTY3JvbGwoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZy
YW1lUHJveHkqLCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RG
OjpTdHJpbmcmLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBsb25n
IGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+IGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHZp
cnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBX
ZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdURjo6U3RyaW5n
JiwgY29uc3QgV1RGOjpTdHJpbmcmLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1
bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25n
LCBGdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogICAgIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFF1b3RhKTsKICAgICB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShX
ZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgdWlu
dDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCwgc3RkOjpmdW5jdGlvbjx2b2lkICh1bnNpZ25l
ZCBsb25nIGxvbmcpPiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB2aXJ0dWFsIHZvaWQgcmVhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRf
dCwgRnVuY3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKICAgICB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJlbnRRdW90YSk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA5ZTljMTJm
MDI4YTVhMTRhNDY3YTMwNWY5Mjg1YzZmY2M1MDYxZDllLi5iNWJiY2VlYTE4NTBlMWI1NDU0MmMw
OTFmMDdiY2FlNGJlNjM0MTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcApAQCAtMTUyOCw3ICsxNTI4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyIDogcHVibGljIEFQSTo6
T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
UmVzdWx0TGlzdGVuZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0ZW5lcj4gY3JlYXRlKHN0ZDo6ZnVuY3Rpb248
dm9pZCAoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXI+IGNyZWF0ZShGdW5jdGlv
bjx2b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXIo
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICB9CkBAIC0xNTQzLDE3ICsxNTQzLDE3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXIoc3RkOjpmdW5jdGlvbjx2b2lkIChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBleHBsaWNpdCBSdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWxSZXN1bHRMaXN0ZW5lcihGdW5jdGlvbjx2b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKICAgICAgICAgOiBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKQogICAgIHsKICAgICB9CiAKLSAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGJvb2wpPiBt
X2NvbXBsZXRpb25IYW5kbGVyOworICAgIEZ1bmN0aW9uPHZvaWQgKGJvb2wpPiBtX2NvbXBsZXRp
b25IYW5kbGVyOwogfTsKIAogY2xhc3MgUnVuSmF2YVNjcmlwdEFsZXJ0UmVzdWx0TGlzdGVuZXIg
OiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpSdW5KYXZhU2NyaXB0
QWxlcnRSZXN1bHRMaXN0ZW5lcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJ1
bkphdmFTY3JpcHRBbGVydFJlc3VsdExpc3RlbmVyPiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJ1bkphdmFT
Y3JpcHRBbGVydFJlc3VsdExpc3RlbmVyPiBjcmVhdGUoRnVuY3Rpb248dm9pZCAoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUnVuSmF2
YVNjcmlwdEFsZXJ0UmVzdWx0TGlzdGVuZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsK
ICAgICB9CkBAIC0xNTY4LDE3ICsxNTY4LDE3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgUnVuSmF2YVNjcmlwdEFsZXJ0UmVzdWx0TGlzdGVuZXIoc3RkOjpmdW5j
dGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIGV4cGxpY2l0IFJ1bkphdmFT
Y3JpcHRBbGVydFJlc3VsdExpc3RlbmVyKEZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiAgICAgICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSkKICAgICB7CiAgICAgfQogICAgIAotICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4g
bV9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICBGdW5jdGlvbjx2b2lkICgpPiBtX2NvbXBsZXRpb25I
YW5kbGVyOwogfTsKIAogY2xhc3MgUnVuSmF2YVNjcmlwdENvbmZpcm1SZXN1bHRMaXN0ZW5lciA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlJ1bkphdmFTY3JpcHRD
b25maXJtUmVzdWx0TGlzdGVuZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxS
dW5KYXZhU2NyaXB0Q29uZmlybVJlc3VsdExpc3RlbmVyPiBjcmVhdGUoc3RkOjpmdW5jdGlvbjx2
b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxS
dW5KYXZhU2NyaXB0Q29uZmlybVJlc3VsdExpc3RlbmVyPiBjcmVhdGUoRnVuY3Rpb248dm9pZCAo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJ1bkphdmFTY3JpcHRDb25maXJtUmVzdWx0TGlzdGVuZXIoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpKTsKICAgICB9CkBAIC0xNTkzLDE3ICsxNTkzLDE3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUnVuSmF2YVNjcmlwdENvbmZpcm1SZXN1bHRM
aXN0ZW5lcihzdGQ6OmZ1bmN0aW9uPHZvaWQgKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
ICAgIGV4cGxpY2l0IFJ1bkphdmFTY3JpcHRDb25maXJtUmVzdWx0TGlzdGVuZXIoRnVuY3Rpb248
dm9pZCAoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgIDogbV9jb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICB7CiAgICAgfQogCi0gICAg
c3RkOjpmdW5jdGlvbjx2b2lkIChib29sKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICBGdW5j
dGlvbjx2b2lkIChib29sKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKIH07CiAKIGNsYXNzIFJ1bkph
dmFTY3JpcHRQcm9tcHRSZXN1bHRMaXN0ZW5lciA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OlJ1bkphdmFTY3JpcHRQcm9tcHRSZXN1bHRMaXN0ZW5lcj4gewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJ1bkphdmFTY3JpcHRQcm9tcHRSZXN1bHRMaXN0
ZW5lcj4gY3JlYXRlKHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UnVuSmF2YVNjcmlwdFByb21wdFJl
c3VsdExpc3RlbmVyPiBjcmVhdGUoRnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJ1bkph
dmFTY3JpcHRQcm9tcHRSZXN1bHRMaXN0ZW5lcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkp
OwogICAgIH0KQEAgLTE2MTgsMTIgKzE2MTgsMTIgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBSdW5KYXZhU2NyaXB0UHJvbXB0UmVzdWx0TGlzdGVuZXIoc3RkOjpm
dW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICBl
eHBsaWNpdCBSdW5KYXZhU2NyaXB0UHJvbXB0UmVzdWx0TGlzdGVuZXIoRnVuY3Rpb248dm9pZCAo
Y29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgICAgIDogbV9jb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKICAgICB7CiAgICAgfQogCi0g
ICAgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmKT4gbV9jb21wbGV0aW9uSGFuZGxl
cjsKKyAgICBGdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmKT4gbV9jb21wbGV0aW9uSGFuZGxl
cjsKIH07CiAKIFdLX0FERF9BUElfTUFQUElORyhXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWxSZXN1bHRMaXN0ZW5lclJlZiwgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0
TGlzdGVuZXIpCkBAIC0xNzg3LDcgKzE3ODcsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAog
ICAgICAgICAgICAgbV9jbGllbnQudW5mb2N1cyh0b0FQSShwYWdlKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0
KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJGcmFtZVByb3h5
KiBmcmFtZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEsIHN0
ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlCisgICAgICAg
IHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBzZWN1cml0eU9yaWdpbkRhdGEsIEZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChtX2NsaWVudC5ydW5KYXZh
U2NyaXB0QWxlcnQpIHsKICAgICAgICAgICAgICAgICBSZWZQdHI8UnVuSmF2YVNjcmlwdEFsZXJ0
UmVzdWx0TGlzdGVuZXI+IGxpc3RlbmVyID0gUnVuSmF2YVNjcmlwdEFsZXJ0UmVzdWx0TGlzdGVu
ZXI6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xODEzLDcgKzE4MTMs
NyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3Qg
V0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2Vi
UGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdlYkZyYW1lUHJveHkqIGZy
YW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0YSwgc3RkOjpm
dW5jdGlvbjx2b2lkIChib29sKT4gY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlCisgICAgICAg
IHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIFdlYkZyYW1lUHJveHkqIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luRGF0YSwgRnVuY3Rpb248dm9pZCAoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChtX2NsaWVudC5y
dW5KYXZhU2NyaXB0Q29uZmlybSkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxSdW5KYXZhU2Ny
aXB0Q29uZmlybVJlc3VsdExpc3RlbmVyPiBsaXN0ZW5lciA9IFJ1bkphdmFTY3JpcHRDb25maXJt
UmVzdWx0TGlzdGVuZXI6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0x
ODQwLDcgKzE4NDAsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFn
ZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBydW5KYXZh
U2NyaXB0UHJvbXB0KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW5EYXRhLCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KGNvbnN0IFN0cmluZyYpPiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKKyAgICAgICAgdm9p
ZCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV2ViRnJhbWVQcm94eSogZnJhbWUs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW5EYXRhLCBGdW5jdGlvbjx2
b2lkIChjb25zdCBTdHJpbmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKICAgICAg
ICAgewogICAgICAgICAgICAgaWYgKG1fY2xpZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQpIHsKICAg
ICAgICAgICAgICAgICBSZWZQdHI8UnVuSmF2YVNjcmlwdFByb21wdFJlc3VsdExpc3RlbmVyPiBs
aXN0ZW5lciA9IFJ1bkphdmFTY3JpcHRQcm9tcHRSZXN1bHRMaXN0ZW5lcjo6Y3JlYXRlKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTIwMzAsNyArMjAzMCw3IEBAIHZvaWQgV0tQYWdl
U2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJh
c2UqIHdrQ2xpZW50CiAgICAgICAgICAgICByZXR1cm4gbV9jbGllbnQucnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgfHwgbV9jbGllbnQucnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwoV2ViS2l0OjpXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdURjo6
U3RyaW5nJiBtZXNzYWdlLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIGZyYW1lLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKGJvb2wpPiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKKyAgICAgICAgdm9p
ZCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV2ViS2l0OjpXZWJQYWdlUHJveHkqIHBhZ2Us
IGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIGZyYW1l
LCBGdW5jdGlvbjx2b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKG1fY2xpZW50LnJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCkgewogICAgICAgICAgICAgICAgIFJlZlB0cjxSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWxSZXN1bHRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxS
ZXN1bHRMaXN0ZW5lcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTIw
NTUsNyArMjA1NSw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdl
UmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICBtX2Ns
aWVudC5wYWdlRGlkU2Nyb2xsKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFn
ZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJOjpTZWN1cml0eU9yaWdpbiog
b3JpZ2luLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZURpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNpZ25lZCBs
b25nIGxvbmcgY3VycmVudE9yaWdpblVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudERh
dGFiYXNlVXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVzYWdlLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+IGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlk
ZQorICAgICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJQYWdlUHJveHkqIHBhZ2Us
IFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlzcGxheU5hbWUs
IHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJy
ZW50T3JpZ2luVXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50RGF0YWJhc2VVc2FnZSwg
dW5zaWduZWQgbG9uZyBsb25nIGV4cGVjdGVkVXNhZ2UsIEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVk
IGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGlmICghbV9jbGllbnQuZXhjZWVkZWREYXRhYmFzZVF1b3RhKSB7CiAgICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFF1b3RhKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IGQyYWQ2OThiYmVmNmE1MTA4Y2Nm
MWUxMjAzNmM3Yzc4MjhiMzgxNTguLmJjMTRlZjU5NzAxNjIzYjY3ZmNiOTE0NTIyZDlkOGVhYzI2
NWNlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApA
QCAtODEsMTEgKzgxLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKFdlYktpdDo6V2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZv
aWQgZGlkRW50ZXJGdWxsc2NyZWVuKFdlYktpdDo6V2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CiAg
ICAgICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKSBvdmVy
cmlkZTsKLSAgICAgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViS2l0OjpXZWJQYWdlUHJv
eHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gY29tcGxl
dGlvbkhhbmRsZXIpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJt
KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJLaXQ6OldlYkZy
YW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKGJvb2wpPiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGU7Ci0gICAgICAgIHZv
aWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6
U3RyaW5nJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0
IFdURjo6U3RyaW5nJik+IGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKLSAgICAgICAgdm9p
ZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQ
STo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25z
dCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50UXVv
dGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2luVXNhZ2UsIHVuc2lnbmVkIGxvbmcg
bG9uZyBjdXJyZW50VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVzYWdlLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+KSBvdmVycmlkZTsKLSAgICAgICAg
dm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYlBhZ2VQcm94eSosIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50
NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcg
bG9uZyk+IGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBydW5KYXZh
U2NyaXB0QWxlcnQoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYsIFdl
YktpdDo6V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IEZ1bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlOworICAgICAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3Qg
V1RGOjpTdHJpbmcmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBGdW5jdGlvbjx2b2lkIChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBG
dW5jdGlvbjx2b2lkIChjb25zdCBXVEY6OlN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBv
dmVycmlkZTsKKyAgICAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5
KiwgV2ViRnJhbWVQcm94eSosIEFQSTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXVEY6OlN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVk
IGxvbmcgbG9uZyBjdXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2lu
VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9u
ZyBleHBlY3RlZFVzYWdlLCBGdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCByZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVk
LCBGdW5jdGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBvdmVycmlkZTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGJvb2wgcnVuT3BlblBhbmVs
KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggMWRlMjUxMjBlNTkyNmUyNmY0Y2VjNDE3N2Vh
Yjc4MGEwYzJlYmI0Ni4uZWRhMzU2NTg0NWIxODgxMWQ0ZGU5OGRjZjNjMDI1MmMzZGZiMWMzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTQ0
LDYgKzQ0LDcgQEAKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VSTC5oPgor
I2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC0xNzks
NyArMTgwLDcgQEAgUGFzc1JlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmNyZWF0ZU5ld1BhZ2UoV2ViS2l0OjpXZWIKICAgICByZXR1cm4gd2ViVmlldy0+
X3BhZ2UuZ2V0KCk7CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bkphdmFTY3Jp
cHRBbGVydChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdl
LCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHksIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW5EYXRhLCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KCk+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuSmF2
YVNjcmlwdEFsZXJ0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1l
c3NhZ2UsIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcm94eSwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEsIEZ1bmN0aW9uPHZvaWQg
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld1J1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2VJbml0
aWF0ZWRCeUZyYW1lQ29tcGxldGlvbkhhbmRsZXIpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKQEAgLTE5MywxMyArMTk0LDEzIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1
bkphdmFTY3JpcHRBbGVydChXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNvbnN0IFdURjo6CiAgICAg
fQogCiAgICAgUmVmUHRyPENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI+IGNoZWNrZXIgPSBD
b21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxl
Y3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVk
QnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjopKTsKLSAgICBbZGVsZWdhdGUgd2ViVmlldzptX3Vp
RGVsZWdhdGUubV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6bWVz
c2FnZSBpbml0aWF0ZWRCeUZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0ZSgqd2Vi
RnJhbWVQcm94eSwgc2VjdXJpdHlPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpKSBjb21wbGV0
aW9uSGFuZGxlcjpbY29tcGxldGlvbkhhbmRsZXIsIGNoZWNrZXJdIHsKKyAgICBbZGVsZWdhdGUg
d2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0
aE1lc3NhZ2U6bWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86
OmNyZWF0ZSgqd2ViRnJhbWVQcm94eSwgc2VjdXJpdHlPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2lu
KCkpKSBjb21wbGV0aW9uSGFuZGxlcjpCbG9ja1B0cjx2b2lkICgpPjo6ZnJvbUNhbGxhYmxlKFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0g
V1RGTW92ZShjaGVja2VyKV0gewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAg
ICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9XTsKKyAgICB9KS5n
ZXQoKV07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25m
aXJtKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdl
YktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcm94eSwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoYm9v
bCk+IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cnVuSmF2
YVNjcmlwdENvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBjb25zdCBXVEY6OlN0cmluZyYg
bWVzc2FnZSwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5LCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luRGF0YSwgRnVuY3Rpb248dm9p
ZCAoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUu
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1J1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVz
c2FnZUluaXRpYXRlZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7CkBAIC0yMTMsMTMgKzIxNCwxMyBAQCB2b2lkIFVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNv
bnN0IFdURgogICAgIH0KIAogICAgIFJlZlB0cjxDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
PiBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRl
LmdldCgpLCBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1l
c3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjopKTsKLSAgICBbZGVsZWdh
dGUgd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRDb25maXJtUGFu
ZWxXaXRoTWVzc2FnZTptZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6d3JhcHBlcihBUEk6OkZyYW1l
SW5mbzo6Y3JlYXRlKCp3ZWJGcmFtZVByb3h5LCBzZWN1cml0eU9yaWdpbkRhdGEuc2VjdXJpdHlP
cmlnaW4oKSkpIGNvbXBsZXRpb25IYW5kbGVyOltjb21wbGV0aW9uSGFuZGxlciwgY2hlY2tlcl0o
Qk9PTCByZXN1bHQpIHsKKyAgICBbZGVsZWdhdGUgd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJW
aWV3IHJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTptZXNzYWdlIGluaXRpYXRl
ZEJ5RnJhbWU6d3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKCp3ZWJGcmFtZVByb3h5LCBz
ZWN1cml0eU9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSkpIGNvbXBsZXRpb25IYW5kbGVyOkJs
b2NrUHRyPHZvaWQgKEJPT0wpPjo6ZnJvbUNhbGxhYmxlKFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0oQk9P
TCByZXN1bHQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0KTsKICAgICAgICAg
Y2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfV07CisgICAgfSkuZ2V0
KCldOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0
KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJh
bWVQcm94eSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
bkRhdGEsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgV1RGOjpTdHJpbmcmKT4gY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0
KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJh
bWVQcm94eSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
bkRhdGEsIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFdURjo6U3RyaW5nJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1J1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHREZWZhdWx0VGV4dEluaXRpYXRl
ZEJ5RnJhbWVDb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihT
dHJpbmcoKSk7CkBAIC0yMzMsMTMgKzIzNCwxMyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpydW5KYXZhU2NyaXB0UHJvbXB0KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOgog
ICAgIH0KIAogICAgIFJlZlB0cjxDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyPiBjaGVja2Vy
ID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRlLmdldCgpLCBA
c2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OmRl
ZmF1bHRUZXh0OmluaXRpYXRlZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KSk7Ci0gICAgW2Rl
bGVnYXRlIHdlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElu
cHV0UGFuZWxXaXRoUHJvbXB0Om1lc3NhZ2UgZGVmYXVsdFRleHQ6ZGVmYXVsdFZhbHVlIGluaXRp
YXRlZEJ5RnJhbWU6d3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKCp3ZWJGcmFtZVByb3h5
LCBzZWN1cml0eU9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSkpIGNvbXBsZXRpb25IYW5kbGVy
Oltjb21wbGV0aW9uSGFuZGxlciwgY2hlY2tlcl0oTlNTdHJpbmcgKnJlc3VsdCkgeworICAgIFtk
ZWxlZ2F0ZSB3ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJ
bnB1dFBhbmVsV2l0aFByb21wdDptZXNzYWdlIGRlZmF1bHRUZXh0OmRlZmF1bHRWYWx1ZSBpbml0
aWF0ZWRCeUZyYW1lOndyYXBwZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0ZSgqd2ViRnJhbWVQcm94
eSwgc2VjdXJpdHlPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpKSBjb21wbGV0aW9uSGFuZGxl
cjpCbG9ja1B0cjx2b2lkIChOU1N0cmluZyAqKT46OmZyb21DYWxsYWJsZShbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY2hlY2tlciA9IFdURk1vdmUoY2hl
Y2tlcildKE5TU3RyaW5nICpyZXN1bHQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVz
dWx0KTsKICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fV07CisgICAgfSkuZ2V0KCldOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpleGNl
ZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSTo6U2Vj
dXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBj
dXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2luVXNhZ2UsIHVuc2ln
bmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVz
YWdlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+IGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBBUEk6OlNlY3VyaXR5T3JpZ2luKiBzZWN1
cml0eU9yaWdpbiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgV1RGOjpT
dHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFF1b3RhLCB1bnNp
Z25lZCBsb25nIGxvbmcgY3VycmVudE9yaWdpblVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgY3Vy
cmVudFVzYWdlLCB1bnNpZ25lZCBsb25nIGxvbmcgZXhwZWN0ZWRVc2FnZSwgRnVuY3Rpb248dm9p
ZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAo
IW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90
YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERh
dGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyKSB7CiAKQEAgLTI1OCwxMCAr
MjU5LDEwIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90
YShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwKIAogICAgIEFTU0VSVChzZWN1cml0eU9y
aWdpbik7CiAgICAgUmVmUHRyPENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI+IGNoZWNrZXIg
PSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBz
ZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46Y3Vy
cmVudFF1b3RhOmN1cnJlbnRPcmlnaW5Vc2FnZTpjdXJyZW50RGF0YWJhc2VVc2FnZTpleHBlY3Rl
ZFVzYWdlOmRlY2lzaW9uSGFuZGxlcjopKTsKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRl
PilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGRlY2lkZURhdGFiYXNl
UXVvdGFGb3JTZWN1cml0eU9yaWdpbjp3cmFwcGVyKCpzZWN1cml0eU9yaWdpbikgY3VycmVudFF1
b3RhOmN1cnJlbnRRdW90YSBjdXJyZW50T3JpZ2luVXNhZ2U6Y3VycmVudE9yaWdpblVzYWdlIGN1
cnJlbnREYXRhYmFzZVVzYWdlOmN1cnJlbnRVc2FnZSBleHBlY3RlZFVzYWdlOmV4cGVjdGVkVXNh
Z2UgZGVjaXNpb25IYW5kbGVyOltjb21wbGV0aW9uSGFuZGxlciwgY2hlY2tlcl0odW5zaWduZWQg
bG9uZyBsb25nIG5ld1F1b3RhKSB7CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVs
ZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBkZWNpZGVEYXRhYmFzZVF1b3Rh
Rm9yU2VjdXJpdHlPcmlnaW46d3JhcHBlcigqc2VjdXJpdHlPcmlnaW4pIGN1cnJlbnRRdW90YTpj
dXJyZW50UXVvdGEgY3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnRPcmlnaW5Vc2FnZSBjdXJyZW50
RGF0YWJhc2VVc2FnZTpjdXJyZW50VXNhZ2UgZXhwZWN0ZWRVc2FnZTpleHBlY3RlZFVzYWdlIGRl
Y2lzaW9uSGFuZGxlcjpCbG9ja1B0cjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGEp
Pjo6ZnJvbUNhbGxhYmxlKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0odW5zaWduZWQgbG9uZyBsb25nIG5l
d1F1b3RhKSB7CiAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihuZXdRdW90YSk7Ci0gICAgfV07CisgICAgfSkuZ2V0
KCldOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjk4LDcgKzI5OSw3IEBAIGJvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVBy
b3h5KiB3ZWJGcmFtZVByCiB9CiAjZW5kaWYKIAotdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6
cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQYWdlUHJveHkqLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IGN1cnJlbnRR
dW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgc3RkOjpmdW5jdGlvbjx2b2lkICh1bnNp
Z25lZCBsb25nIGxvbmcpPiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBj
dXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQgKHVu
c2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3Vp
RGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVdlYkFwcGxpY2F0aW9uQ2Fj
aGVRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhVG90YWxCeXRlc05lZWRlZCkgewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjdXJyZW50UXVvdGEpOwpAQCAtMzE0LDEwICszMTUs
MTAgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShXZWJQYWdlUHJveHkqLCBjb24KICAgICBSZWZQdHI8Q29tcGxldGlvbkhhbmRs
ZXJDYWxsQ2hlY2tlcj4gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNy
ZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVdlYkFwcGxpY2F0
aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luOmN1cnJlbnRRdW90YTp0b3RhbEJ5dGVzTmVl
ZGVkOmRlY2lzaW9uSGFuZGxlcjopKTsKICAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4g
YXBpT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNlY3VyaXR5T3JpZ2luKTsK
ICAgICAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzpt
X3VpRGVsZWdhdGUubV93ZWJWaWV3IGRlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNl
Y3VyaXR5T3JpZ2luOndyYXBwZXIoKmFwaU9yaWdpbikgY3VycmVudFF1b3RhOmN1cnJlbnRRdW90
YSB0b3RhbEJ5dGVzTmVlZGVkOnRvdGFsQnl0ZXNOZWVkZWQgZGVjaXNpb25IYW5kbGVyOltjb21w
bGV0aW9uSGFuZGxlciwgY2hlY2tlcl0odW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhKSB7Cisg
ICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVn
YXRlLm1fd2ViVmlldyBkZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9y
aWdpbjp3cmFwcGVyKCphcGlPcmlnaW4pIGN1cnJlbnRRdW90YTpjdXJyZW50UXVvdGEgdG90YWxC
eXRlc05lZWRlZDp0b3RhbEJ5dGVzTmVlZGVkIGRlY2lzaW9uSGFuZGxlcjpCbG9ja1B0cjx2b2lk
ICh1bnNpZ25lZCBsb25nIGxvbmcpPjo6ZnJvbUNhbGxhYmxlKFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0o
dW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhKSB7CiAgICAgICAgIGNoZWNrZXItPmRpZENhbGxD
b21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihuZXdRdW90YSk7
Ci0gICAgfV07CisgICAgfSkuZ2V0KCldOwogfQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50
OjpwcmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5
KiB3ZWJGcmFtZVByb3h5KQo=
</data>
<flag name="review"
          id="311137"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>