<?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>83750</bug_id>
          
          <creation_ts>2012-04-11 23:46:04 -0700</creation_ts>
          <short_desc>[Chromium] Move some code of WebViewImpl and WebFrameImpl to PageWidgetDelegate</short_desc>
          <delta_ts>2012-04-12 01:22:49 -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>WebKit Misc.</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>
          
          <blocked>81081</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>600938</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-11 23:46:04 -0700</bug_when>
    <thetext>This is a part of Bug 81081.  The patch was already reviewed and has r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600946</commentid>
    <comment_count>1</comment_count>
      <attachid>136837</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-12 00:15:20 -0700</bug_when>
    <thetext>Created attachment 136837
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600987</commentid>
    <comment_count>2</comment_count>
      <attachid>136837</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 01:22:44 -0700</bug_when>
    <thetext>Comment on attachment 136837
Patch for landing

Clearing flags on attachment: 136837

Committed r113948: &lt;http://trac.webkit.org/changeset/113948&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600988</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 01:22:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136837</attachid>
            <date>2012-04-12 00:15:20 -0700</date>
            <delta_ts>2012-04-12 01:22:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-83750-20120412161518.patch</filename>
            <type>text/plain</type>
            <size>31911</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzOTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDMwODJkMzM2OWEwYmViZmNjNDg1NzFjMzViMzA0NjlhMmQwZDgzMDIuLmU1OGNlMzU3NmYyZDA1
NDJjMjZlMTA3MTQ0MGUwOTRmMGI0NWJhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTkgQEAKKzIwMTItMDQtMTEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gTW92ZSBzb21lIGNvZGUgb2YgV2ViVmlld0ltcGwg
YW5kIFdlYkZyYW1lSW1wbCB0byBQYWdlV2lkZ2V0RGVsZWdhdGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNzUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBJbiBvcmRlciB0byBzaGFyZSBjb2RlIGluIFdlYlZp
ZXdJbXBsIGFuZCB0aGUgaW5jb21pbmcgV2ViUGFnZVBvcHVwSW1wbCwKKyAgICAgICAgd2UgbW92
ZSBzb21lIGNvZGUgb2YgV2ViVmlld0ltcGwgYW5kIFdlYkZyYW1lSW1wbCB0byBQYWdlV2lkZ2V0
RGVsZWdhdGUuCisgICAgICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZSBpcyBhIHNldCBvZiBzdGF0aWMg
ZnVuY3Rpb25zIGJlY2F1c2Ugd2UgY2FuJ3QgdXNlCisgICAgICAgIHZpcnR1YWwgaW5oZXJpdGFu
Y2UgaW4gdGhpcyBjYXNlIGFuZCB3ZSBkb24ndCB3YW50IHRvIG1vdmUgV2ViVmlldydzCisgICAg
ICAgIGRhdGEgbWVtYmVycyB0byBhbm90aGVyIGNsYXNzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gSnVzdCByZWZhY3RvcmluZy4KKworICAgICAgICAqIFdlYktpdC5neXA6IEFkZCBQYWdlV2lk
Z2V0RGVsZWdhdGUue2NwcCxofSBhbmQgV2ViUGFnZVBvcHVwSW1wbC5oLgorICAgICAgICAqIHNy
Yy9QYWdlV2lkZ2V0RGVsZWdhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6bWFpbkZy
YW1lVmlldyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VXaWRnZXREZWxlZ2F0ZTo6YW5pbWF0ZSk6
CisgICAgICAgIE1vdmVkIGZyb20gYSBwYXJ0IG9mIFdlYlZpZXdJbXBsOjphbmltYXRpZSgpCisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VXaWRnZXREZWxlZ2F0ZTo6bGF5b3V0KToKKyAgICAgICAgTW92
ZWQgZnJvbSBXZWJWaWV3SW1wbDo6bGF5b3V0KCkgYW5kIFdlYkZyYW1lSW1wbDo6bGF5b3V0KCku
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VXaWRnZXREZWxlZ2F0ZTo6cGFpbnQpOgorICAgICAgICBN
b3ZlZCBmcm9tIFdlYkZyYW1lSW1wbDo6cGFpbnQoKSBhbmQgcGFpbnRXaXRoQ29udGV4dCgpLgor
ICAgICAgICAoV2ViS2l0OjpQYWdlV2lkZ2V0RGVsZWdhdGU6OmhhbmRsZUlucHV0RXZlbnQpOgor
ICAgICAgICBNb3ZlZCBmcm9tIGEgcGFydCBvZiBXZWJWaWV3SW1wbDo6aGFuZGxlSW5wdXRFdmVu
dCgpLgorICAgICAgICAoV2ViS2l0OjpQYWdlV2lkZ2V0RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZU1vdmUpOgorICAgICAgICBDb21tb24gaW1wbGVtZW50YXRpb24gb2YgYW4gZXZlbnQgaGFuZGxp
bmcuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VXaWRnZXRFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNl
TGVhdmUpOiBkaXR0by4KKyAgICAgICAgKFdlYktpdDo6UGFnZVdpZGdldEV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VEb3duKTogZGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlBhZ2VXaWRnZXRFdmVu
dEhhbmRsZXI6OmhhbmRsZU1vdXNlVXApOiBkaXR0by4KKyAgICAgICAgKFdlYktpdDo6UGFnZVdp
ZGdldEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VXaGVlbCk6IGRpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlV2lkZ2V0RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KTogZGl0dG8uCisg
ICAgICAgICogc3JjL1BhZ2VXaWRnZXREZWxlZ2F0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMv
V2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAgUmVtb3ZlIGxheW91dCgpLCBwYWludFdpdGhDb250
ZXh0KCksIGFuZCBwYWludCgpLiBUaGV5IGFyZSBtb3ZlZCB0bworICAgICAgICBQYWdlV2lkZ2V0
RGVsZWdhdGUuCisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5oOgorICAgICAgICAoV2ViRnJh
bWVJbXBsKTogUmVtb3ZlIGxheW91dCgpLCBwYWludFdpdGhDb250ZXh0KCksIGFuZCBwYWludCgp
LgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpoYW5kbGVNb3VzZUxlYXZlKToKKyAgICAgICAgUmVuYW1lZCBmcm9tIG1vdXNlTGVh
dmUoKSwgdXNlIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6aGFuZGxlTW91c2VMZWF2ZSgpLgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlTW91c2VEb3duKToKKyAgICAgICAgUmVuYW1l
ZCBmcm9tIG1vdXNlRG93bigpLCB1c2UgUGFnZVdpZGdldERlbGVnYXRlOjpoYW5kbGVNb3VzZURv
d24oKS4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZU1vdXNlVXApOgorICAg
ICAgICBSZW5hbWVkIGZyb20gbW91c2VVcCgpLCB1c2UgUGFnZVdpZGdldERlbGVnYXRlOjpoYW5k
bGVNb3VzZVVwKCkuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY3JvbGxCeSk6IENh
bGxzIHJlbmFtZWQgaGFuZGxlTW91c2VXaGVlbCgpLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KTogUmVuYW1lZCBmcm9tIGdlc3R1cmVFdmVudCgpLgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFuZGxlS2V5RXZlbnQpOiBSZW5hbWVkIGZy
b20ga2V5RXZlbnQoKS4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUNoYXJF
dmVudCk6IFJlbmFtZWQgZnJvbSBjaGFyRXZlbnQoKS4KKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMpOiBVc2VzIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6YW5pbWF0
ZSgpLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bGF5b3V0KTogVXNlcyBQYWdlV2lk
Z2V0RGVsZWdhdGU6OmxheW91dCgpLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGFp
bnQpOiBVc2VzIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6cGFpbnQoKS4KKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQpOiBVc2VzIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6
aGFuZGxlSW5wdXRFdmVudCgpLgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorCiAyMDEy
LTA0LTExICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJ
bmRleGVkREI6IFN0dWIgb3V0IFdlYktpdCBpbnRlcmZhY2UgZm9yIGdldChJbmRleGVkS2V5UmFu
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggZDZhN2Y3MTM2MWMzMDk4MTE5MTRh
MjMyZWRiZjJlYjAwNWM4N2Y4Zi4uNWE2NWYzNTdhYWYwMjhkNzMwZDZkMjE1ZjRiY2JlNTUyNjg5
NDdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtNDU4LDYgKzQ1OCw4IEBACiAg
ICAgICAgICAgICAgICAgJ3NyYy9QYWdlT3ZlcmxheS5oJywKICAgICAgICAgICAgICAgICAnc3Jj
L1BhZ2VPdmVybGF5TGlzdC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvUGFnZU92ZXJsYXlM
aXN0LmgnLAorICAgICAgICAgICAgICAgICdzcmMvUGFnZVdpZGdldERlbGVnYXRlLmNwcCcsCisg
ICAgICAgICAgICAgICAgJ3NyYy9QYWdlV2lkZ2V0RGVsZWdhdGUuaCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9QbGF0Zm9ybVN1cHBvcnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1BhZ2VXaWRnZXREZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9QYWdlV2lkZ2V0RGVsZWdhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NTQ5ZDllOTZlMzU0OTFiMTg5
OWZlZTE3OTA3MjI5YzA3ODExZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9QYWdlV2lkZ2V0RGVsZWdhdGUuY3BwCkBAIC0wLDAgKzEsMjIyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VXaWRnZXREZWxlZ2F0ZS5oIgorCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJQYWdlT3Zlcmxh
eUxpc3QuaCIKKyNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViSW5wdXRF
dmVudENvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJwYWludGluZy9HcmFwaGljc0NvbnRleHRCdWls
ZGVyLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIGlubGluZSBGcmFtZVZpZXcq
IG1haW5GcmFtZVZpZXcoUGFnZSogcGFnZSkKK3sKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJl
dHVybiAwOworICAgIC8vIEZJWE1FOiBDYW4gd2UgcmVtb3ZlIHRoaXMgY2hlY2s/CisgICAgaWYg
KCFwYWdlLT5tYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHBhZ2Ut
Pm1haW5GcmFtZSgpLT52aWV3KCk7Cit9CisKK3ZvaWQgUGFnZVdpZGdldERlbGVnYXRlOjphbmlt
YXRlKFBhZ2UqIHBhZ2UsIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkKK3sKKyNpZiBF
TkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbWFp
bkZyYW1lVmlldyhwYWdlKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybjsKKyAgICBk
b3VibGUgdGltZVNoaWZ0ID0gY3VycmVudFRpbWUoKSAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpOworICAgIHZpZXctPnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoY29udmVydFNlY29u
ZHNUb0RPTVRpbWVTdGFtcChtb25vdG9uaWNGcmFtZUJlZ2luVGltZSArIHRpbWVTaGlmdCkpOwor
I2VuZGlmCit9CisKK3ZvaWQgUGFnZVdpZGdldERlbGVnYXRlOjpsYXlvdXQoUGFnZSogcGFnZSkK
K3sKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBtYWluRnJhbWVWaWV3KHBhZ2UpOworICAgIGlmICgh
dmlldykKKyAgICAgICAgcmV0dXJuOworICAgIC8vIEluIG9yZGVyIGZvciBvdXIgY2hpbGQgSFdO
RHMgKE5hdGl2ZVdpbmRvd1dpZGdldHMpIHRvIHVwZGF0ZSBwcm9wZXJseSwKKyAgICAvLyB0aGV5
IG5lZWQgdG8gYmUgdG9sZCB0aGF0IHdlIGFyZSB1cGRhdGluZyB0aGUgc2NyZWVuLiBUaGUgcHJv
YmxlbSBpcyB0aGF0CisgICAgLy8gdGhlIG5hdGl2ZSB3aWRnZXRzIG5lZWQgdG8gcmVjYWxjdWxh
dGUgdGhlaXIgY2xpcCByZWdpb24gYW5kIG5vdCBvdmVybGFwCisgICAgLy8gYW55IG9mIG91ciBu
b24tbmF0aXZlIHdpZGdldHMuIFRvIGZvcmNlIHRoZSByZXNpemluZywgY2FsbAorICAgIC8vIHNl
dEZyYW1lUmVjdCgpLiBUaGlzIHdpbGwgYmUgYSBxdWljayBvcGVyYXRpb24gZm9yIG1vc3QgZnJh
bWVzLCBidXQgdGhlCisgICAgLy8gTmF0aXZlV2luZG93V2lkZ2V0cyB3aWxsIHVwZGF0ZSBhIHBy
b3BlciBjbGlwcGluZyByZWdpb24uCisgICAgdmlldy0+c2V0RnJhbWVSZWN0KHZpZXctPmZyYW1l
UmVjdCgpKTsKKworICAgIC8vIHNldEZyYW1lUmVjdCBtYXkgaGF2ZSB0aGUgc2lkZS1lZmZlY3Qg
b2YgY2F1c2luZyBleGlzdGluZyBwYWdlIGxheW91dCB0bworICAgIC8vIGJlIGludmFsaWRhdGVk
LCBzbyBsYXlvdXQgbmVlZHMgdG8gYmUgY2FsbGVkIGxhc3QuCisgICAgdmlldy0+dXBkYXRlTGF5
b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOworfQorCit2b2lkIFBhZ2VXaWRnZXREZWxl
Z2F0ZTo6cGFpbnQoUGFnZSogcGFnZSwgUGFnZU92ZXJsYXlMaXN0KiBvdmVybGF5cywgV2ViQ2Fu
dmFzKiBjYW52YXMsIGNvbnN0IFdlYlJlY3QmIHJlY3QpCit7CisgICAgaWYgKHJlY3QuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisgICAgR3JhcGhpY3NDb250ZXh0QnVpbGRlciBidWlsZGVy
KGNhbnZhcyk7CisgICAgR3JhcGhpY3NDb250ZXh0JiBnYyA9IGJ1aWxkZXIuY29udGV4dCgpOwor
ICAgIEludFJlY3QgZGlydHlSZWN0KHJlY3QpOworICAgIGdjLnNhdmUoKTsKKyAgICBGcmFtZVZp
ZXcqIHZpZXcgPSBtYWluRnJhbWVWaWV3KHBhZ2UpOworICAgIC8vIEZJWE1FOiBDYW4gd2UgcmVt
b3ZlIHRoZSBtYWluRnJhbWUoKS0+ZG9jdW1lbnQoKSBjaGVjaz8KKyAgICBpZiAodmlldyAmJiBw
YWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKSkgeworICAgICAgICBnYy5jbGlwKGRpcnR5UmVj
dCk7CisgICAgICAgIHZpZXctPnBhaW50KCZnYywgZGlydHlSZWN0KTsKKyAgICAgICAgaWYgKG92
ZXJsYXlzKQorICAgICAgICAgICAgb3ZlcmxheXMtPnBhaW50V2ViRnJhbWUoZ2MpOworICAgIH0g
ZWxzZQorICAgICAgICBnYy5maWxsUmVjdChkaXJ0eVJlY3QsIENvbG9yOjp3aGl0ZSwgQ29sb3JT
cGFjZURldmljZVJHQik7CisgICAgZ2MucmVzdG9yZSgpOworfQorCitib29sIFBhZ2VXaWRnZXRE
ZWxlZ2F0ZTo6aGFuZGxlSW5wdXRFdmVudChQYWdlKiBwYWdlLCBQYWdlV2lkZ2V0RXZlbnRIYW5k
bGVyJiBoYW5kbGVyLCBjb25zdCBXZWJJbnB1dEV2ZW50JiBldmVudCkKK3sKKyAgICBGcmFtZSog
ZnJhbWUgPSBwYWdlID8gcGFnZS0+bWFpbkZyYW1lKCkgOiAwOworICAgIHN3aXRjaCAoZXZlbnQu
dHlwZSkgeworCisgICAgLy8gRklYTUU6IFdlYktpdCBzZWVtcyB0byBhbHdheXMgcmV0dXJuIGZh
bHNlIG9uIG1vdXNlIGV2ZW50cyBwcm9jZXNzaW5nCisgICAgLy8gbWV0aG9kcy4gRm9yIG5vdyB3
ZSdsbCBhc3N1bWUgaXQgaGFzIHByb2Nlc3NlZCB0aGVtIChhcyB3ZSBhcmUgb25seQorICAgIC8v
IGludGVyZXN0ZWQgaW4gd2hldGhlciBrZXlib2FyZCBldmVudHMgYXJlIHByb2Nlc3NlZCkuCisg
ICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmU6CisgICAgICAgIGlmICghZnJhbWUgfHwg
IWZyYW1lLT52aWV3KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaGFuZGxl
ci5oYW5kbGVNb3VzZU1vdmUoKmZyYW1lLCAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVu
dCo+KCZldmVudCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Ok1vdXNlTGVhdmU6CisgICAgICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaGFuZGxlci5oYW5kbGVNb3VzZUxlYXZl
KCpmcmFtZSwgKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQqPigmZXZlbnQpKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZURvd246Cisg
ICAgICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgaGFuZGxlci5oYW5kbGVNb3VzZURvd24oKmZyYW1lLCAqc3RhdGljX2Nh
c3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KCZldmVudCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNlVXA6CisgICAgICAgIGlmICghZnJhbWUgfHwg
IWZyYW1lLT52aWV3KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaGFuZGxl
ci5oYW5kbGVNb3VzZVVwKCpmcmFtZSwgKnN0YXRpY19jYXN0PGNvbnN0IFdlYk1vdXNlRXZlbnQq
PigmZXZlbnQpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Ok1vdXNlV2hlZWw6CisgICAgICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT52aWV3KCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBoYW5kbGVyLmhhbmRsZU1v
dXNlV2hlZWwoKmZyYW1lLCAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VXaGVlbEV2ZW50Kj4o
JmV2ZW50KSk7CisKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlJhd0tleURvd246CisgICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpLZXlEb3duOgorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6S2V5VXA6
CisgICAgICAgIHJldHVybiBoYW5kbGVyLmhhbmRsZUtleUV2ZW50KCpzdGF0aWNfY2FzdDxjb25z
dCBXZWJLZXlib2FyZEV2ZW50Kj4oJmV2ZW50KSk7CisKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6
OkNoYXI6CisgICAgICAgIHJldHVybiBoYW5kbGVyLmhhbmRsZUNoYXJFdmVudCgqc3RhdGljX2Nh
c3Q8Y29uc3QgV2ViS2V5Ym9hcmRFdmVudCo+KCZldmVudCkpOworCisjaWYgRU5BQkxFKEdFU1RV
UkVfRVZFTlRTKQorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEJlZ2luOgor
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEVuZDoKKyAgICBjYXNlIFdlYklu
cHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpH
ZXN0dXJlRmxpbmdTdGFydDoKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVGbGluZ0Nh
bmNlbDoKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXA6CisgICAgY2FzZSBXZWJJ
bnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1
cmVEb3VibGVUYXA6CisgICAgICAgIHJldHVybiBoYW5kbGVyLmhhbmRsZUdlc3R1cmVFdmVudCgq
c3RhdGljX2Nhc3Q8Y29uc3QgV2ViR2VzdHVyZUV2ZW50Kj4oJmV2ZW50KSk7CisjZW5kaWYKKwor
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3VjaFN0
YXJ0OgorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6VG91Y2hNb3ZlOgorICAgIGNhc2UgV2ViSW5w
dXRFdmVudDo6VG91Y2hFbmQ6CisgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpUb3VjaENhbmNlbDoK
KyAgICAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnZpZXcoKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGhhbmRsZXIuaGFuZGxlVG91Y2hFdmVudCgqZnJhbWUs
ICpzdGF0aWNfY2FzdDxjb25zdCBXZWJUb3VjaEV2ZW50Kj4oJmV2ZW50KSk7CisjZW5kaWYKKwor
I2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1
cmVQaW5jaEJlZ2luOgorICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoRW5kOgor
ICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOgorICAgICAgICAvLyBG
SVhNRTogT25jZSBQbGF0Zm9ybUdlc3R1cmVFdmVudCBpcyB1cGRhdGVkIHRvIHN1cHBvcnQgcGlu
Y2gsIHRoaXMKKyAgICAgICAgLy8gc2hvdWxkIGNhbGwgaGFuZGxlR2VzdHVyZUV2ZW50LCBqdXN0
IGxpa2UgaXQgY3VycmVudGx5IGRvZXMgZm9yCisgICAgICAgIC8vIGdlc3R1cmUgc2Nyb2xsLgor
ICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIERlZmF1bHQgaGFuZGxlcnMg
Zm9yIFBhZ2VXaWRnZXRFdmVudEhhbmRsZXIKKwordm9pZCBQYWdlV2lkZ2V0RXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZU1vdmUoRnJhbWUmIG1haW5GcmFtZSwgY29uc3QgV2ViTW91c2VFdmVudCYg
ZXZlbnQpCit7CisgICAgLy8gV2UgY2FsbCBtb3VzZU1vdmVkIGhlcmUgaW5zdGVhZCBvZiBoYW5k
bGVNb3VzZU1vdmVkRXZlbnQgYmVjYXVzZSB3ZSBuZWVkCisgICAgLy8gb3VyIENocm9tZUNsaWVu
dEltcGwgdG8gcmVjZWl2ZSBjaGFuZ2VzIHRvIHRoZSBtb3VzZSBwb3NpdGlvbiBhbmQgdG9vbHRp
cAorICAgIC8vIHRleHQsIGFuZCBtb3VzZU1vdmVkIGhhbmRsZXMgYWxsIG9mIHRoYXQuCisgICAg
bWFpbkZyYW1lLmV2ZW50SGFuZGxlcigpLT5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudEJ1
aWxkZXIobWFpbkZyYW1lLnZpZXcoKSwgZXZlbnQpKTsKK30KKwordm9pZCBQYWdlV2lkZ2V0RXZl
bnRIYW5kbGVyOjpoYW5kbGVNb3VzZUxlYXZlKEZyYW1lJiBtYWluRnJhbWUsIGNvbnN0IFdlYk1v
dXNlRXZlbnQmIGV2ZW50KQoreworICAgIG1haW5GcmFtZS5ldmVudEhhbmRsZXIoKS0+aGFuZGxl
TW91c2VNb3ZlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihtYWluRnJhbWUudmlldygp
LCBldmVudCkpOworfQorCit2b2lkIFBhZ2VXaWRnZXRFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNl
RG93bihGcmFtZSYgbWFpbkZyYW1lLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKK3sKKyAg
ICBtYWluRnJhbWUuZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUHJlc3NFdmVudChQbGF0Zm9y
bU1vdXNlRXZlbnRCdWlsZGVyKG1haW5GcmFtZS52aWV3KCksIGV2ZW50KSk7Cit9CisKK3ZvaWQg
UGFnZVdpZGdldEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VVcChGcmFtZSYgbWFpbkZyYW1lLCBj
b25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKK3sKKyAgICBtYWluRnJhbWUuZXZlbnRIYW5kbGVy
KCktPmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIobWFp
bkZyYW1lLnZpZXcoKSwgZXZlbnQpKTsKK30KKworYm9vbCBQYWdlV2lkZ2V0RXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZVdoZWVsKEZyYW1lJiBtYWluRnJhbWUsIGNvbnN0IFdlYk1vdXNlV2hlZWxF
dmVudCYgZXZlbnQpCit7CisgICAgcmV0dXJuIG1haW5GcmFtZS5ldmVudEhhbmRsZXIoKS0+aGFu
ZGxlV2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnRCdWlsZGVyKG1haW5GcmFtZS52aWV3KCks
IGV2ZW50KSk7Cit9CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorYm9vbCBQYWdlV2lkZ2V0
RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KEZyYW1lJiBtYWluRnJhbWUsIGNvbnN0IFdl
YlRvdWNoRXZlbnQmIGV2ZW50KQoreworICAgIHJldHVybiBtYWluRnJhbWUuZXZlbnRIYW5kbGVy
KCktPmhhbmRsZVRvdWNoRXZlbnQoUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihtYWluRnJhbWUu
dmlldygpLCBldmVudCkpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1BhZ2VXaWRnZXREZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvUGFnZVdpZGdldERlbGVnYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJiZTI2OWFjYjc1YWQz
ZDZkYTI5YjA0MTkxN2Y3MDUwYTlhN2IyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1BhZ2VXaWRnZXREZWxlZ2F0ZS5oCkBAIC0wLDAgKzEsODYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFBhZ2VXaWRnZXREZWxlZ2F0ZV9oCisjZGVmaW5lIFBhZ2VXaWRnZXREZWxlZ2F0ZV9oCisK
KyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiV2ViV2lkZ2V0LmgiCisjaW5jbHVkZSAicGxh
dGZvcm0vV2ViQ2FudmFzLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBQYWdlT3ZlcmxheUxpc3Q7CitjbGFzcyBXZWJHZXN0dXJlRXZlbnQ7Citj
bGFzcyBXZWJJbnB1dEV2ZW50OworY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKK2NsYXNzIFdlYk1v
dXNlRXZlbnQ7CitjbGFzcyBXZWJNb3VzZVdoZWVsRXZlbnQ7CitjbGFzcyBXZWJUb3VjaEV2ZW50
OworCitjbGFzcyBQYWdlV2lkZ2V0RXZlbnRIYW5kbGVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlTW91c2VNb3ZlKFdlYkNvcmU6OkZyYW1lJiBtYWluRnJhbWUsIGNvbnN0IFdl
Yk1vdXNlRXZlbnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VMZWF2ZShXZWJDb3Jl
OjpGcmFtZSYgbWFpbkZyYW1lLCBjb25zdCBXZWJNb3VzZUV2ZW50Jik7CisgICAgdmlydHVhbCB2
b2lkIGhhbmRsZU1vdXNlRG93bihXZWJDb3JlOjpGcmFtZSYgbWFpbkZyYW1lLCBjb25zdCBXZWJN
b3VzZUV2ZW50Jik7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZU1vdXNlVXAoV2ViQ29yZTo6RnJh
bWUmIG1haW5GcmFtZSwgY29uc3QgV2ViTW91c2VFdmVudCYpOworICAgIHZpcnR1YWwgYm9vbCBo
YW5kbGVNb3VzZVdoZWVsKFdlYkNvcmU6OkZyYW1lJiBtYWluRnJhbWUsIGNvbnN0IFdlYk1vdXNl
V2hlZWxFdmVudCYpOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVLZXlFdmVudChjb25zdCBXZWJL
ZXlib2FyZEV2ZW50JikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDaGFyRXZlbnQoY29u
c3QgV2ViS2V5Ym9hcmRFdmVudCYpID0gMDsKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisg
ICAgdmlydHVhbCBib29sIGhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQm
KSA9IDA7CisjZW5kaWYKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHZpcnR1YWwgYm9v
bCBoYW5kbGVUb3VjaEV2ZW50KFdlYkNvcmU6OkZyYW1lJiBtYWluRnJhbWUsIGNvbnN0IFdlYlRv
dWNoRXZlbnQmKTsKKyNlbmRpZgorICAgIHZpcnR1YWwgflBhZ2VXaWRnZXRFdmVudEhhbmRsZXIo
KSB7IH0KK307CisKKworLy8gQ29tbW9uIGltcGxlbWVudGF0aW9uIG9mIFdlYlZpZXdJbXBsIGFu
ZCBXZWJQYWdlUG9wdXBJbXBsLgorY2xhc3MgUGFnZVdpZGdldERlbGVnYXRlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgdm9pZCBhbmltYXRlKFdlYkNvcmU6OlBhZ2UqLCBkb3VibGUgbW9ub3Rvbmlj
RnJhbWVCZWdpblRpbWUpOworICAgIHN0YXRpYyB2b2lkIGxheW91dChXZWJDb3JlOjpQYWdlKik7
CisgICAgc3RhdGljIHZvaWQgcGFpbnQoV2ViQ29yZTo6UGFnZSosIFBhZ2VPdmVybGF5TGlzdCos
IFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmKTsKKyAgICBzdGF0aWMgYm9vbCBoYW5kbGVJbnB1
dEV2ZW50KFdlYkNvcmU6OlBhZ2UqLCBQYWdlV2lkZ2V0RXZlbnRIYW5kbGVyJiwgY29uc3QgV2Vi
SW5wdXRFdmVudCYpOworCitwcml2YXRlOgorICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZSgpIHsgfQor
fTsKKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJGcmFtZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcAppbmRleCA4MTNjOWQ3MDc0MzM5YzQ4N2U0YjI0ZmVmOGZjZjUxNWQzYmQyYTc5Li4zZjlk
OWQzMTExZWIwYmNlMThmNzY2ZTMzYzkzMTU4YzliNzM5ODFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKQEAgLTIwNTYsMzUgKzIwNTYsNiBAQCBQYXNz
UmVmUHRyPEZyYW1lPiBXZWJGcmFtZUltcGw6OmNyZWF0ZUNoaWxkRnJhbWUoCiAgICAgcmV0dXJu
IGNoaWxkRnJhbWUucmVsZWFzZSgpOwogfQogCi12b2lkIFdlYkZyYW1lSW1wbDo6bGF5b3V0KCkK
LXsKLSAgICAvLyBsYXlvdXQgdGhpcyBmcmFtZQotICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJh
bWUtPnZpZXcoKTsKLSAgICBpZiAodmlldykKLSAgICAgICAgdmlldy0+dXBkYXRlTGF5b3V0QW5k
U3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOwotfQotCi12b2lkIFdlYkZyYW1lSW1wbDo6cGFpbnRX
aXRoQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGdjLCBjb25zdCBXZWJSZWN0JiByZWN0KQotewot
ICAgIEludFJlY3QgZGlydHlSZWN0KHJlY3QpOwotICAgIGdjLnNhdmUoKTsKLSAgICBpZiAobV9m
cmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZVZpZXcoKSkgewotICAgICAgICBnYy5jbGlwKGRpcnR5
UmVjdCk7Ci0gICAgICAgIGZyYW1lVmlldygpLT5wYWludCgmZ2MsIGRpcnR5UmVjdCk7Ci0gICAg
ICAgIGlmICh2aWV3SW1wbCgpLT5wYWdlT3ZlcmxheXMoKSkKLSAgICAgICAgICAgIHZpZXdJbXBs
KCktPnBhZ2VPdmVybGF5cygpLT5wYWludFdlYkZyYW1lKGdjKTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgZ2MuZmlsbFJlY3QoZGlydHlSZWN0LCBDb2xvcjo6d2hpdGUsIENvbG9yU3BhY2VEZXZpY2VS
R0IpOwotICAgIGdjLnJlc3RvcmUoKTsKLX0KLQotdm9pZCBXZWJGcmFtZUltcGw6OnBhaW50KFdl
YkNhbnZhcyogY2FudmFzLCBjb25zdCBXZWJSZWN0JiByZWN0KQotewotICAgIGlmIChyZWN0Lmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHBhaW50V2l0aENvbnRleHQoR3JhcGhpY3ND
b250ZXh0QnVpbGRlcihjYW52YXMpLmNvbnRleHQoKSwgcmVjdCk7Ci19Ci0KIHZvaWQgV2ViRnJh
bWVJbXBsOjpjcmVhdGVGcmFtZVZpZXcoKQogewogICAgIEFTU0VSVChtX2ZyYW1lKTsgLy8gSWYg
bV9mcmFtZSBkb2Vzbid0IGV4aXN0LCB3ZSBwcm9iYWJseSBkaWRuJ3QgaW5pdCBwcm9wZXJseS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5kZXggOWM4NmQ3NTE0
YWMwMGVhNWYxZGJiODE3NzliM2NhMzU4MTZmMzY3NS4uM2FiYzZjNDkzNDRkMWUzNjkwNjQ3OTFh
ZWVmYTBiM2EwMDQwMjkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmgKQEAgLTIzMCw5ICsyMzAsNiBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpGcmFtZT4gY3JlYXRlQ2hpbGRGcmFtZSgKICAgICAgICAgY29uc3QgV2ViQ29yZTo6RnJhbWVM
b2FkUmVxdWVzdCYsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwogCi0gICAgdm9p
ZCBsYXlvdXQoKTsKLSAgICB2b2lkIHBhaW50KFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmKTsK
LSAgICB2b2lkIHBhaW50V2l0aENvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgV2ViUmVjdCYpOwogICAgIHZvaWQgY3JlYXRlRnJhbWVWaWV3KCk7CiAKICAgICBzdGF0aWMg
V2ViRnJhbWVJbXBsKiBmcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyZTQ4ZDRjZGY4OTRhOWRi
NTA3MmM3NzJmMTAyM2JmYzI2N2RjZjU3Li5iY2Y2ZDgxMjQ2YzhiZWE2ZDMwOThjYTQwNjMwYWFm
ZWQ5YjZmOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CkBAIC04OCw2ICs4OCw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91
cC5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cExvYWREZWZlcnJlci5oIgorI2luY2x1ZGUgIlBhZ2VX
aWRnZXREZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUNvbnRleHRTa2lhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCkBA
IC00NjksMzYgKzQ3MCwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRUYWJLZXlDeWNsZXNUaHJv
dWdoRWxlbWVudHMoYm9vbCB2YWx1ZSkKICAgICAgICAgbV9wYWdlLT5zZXRUYWJLZXlDeWNsZXNU
aHJvdWdoRWxlbWVudHModmFsdWUpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjptb3VzZU1vdmUo
Y29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCit2b2lkIFdlYlZpZXdJbXBsOjpoYW5kbGVNb3Vz
ZUxlYXZlKEZyYW1lJiBtYWluRnJhbWUsIGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogewot
ICAgIGlmICghbWFpbkZyYW1lSW1wbCgpIHx8ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBXZSBjYWxsIG1vdXNlTW92ZWQgaGVyZSBpbnN0
ZWFkIG9mIGhhbmRsZU1vdXNlTW92ZWRFdmVudCBiZWNhdXNlIHdlIG5lZWQKLSAgICAvLyBvdXIg
Q2hyb21lQ2xpZW50SW1wbCB0byByZWNlaXZlIGNoYW5nZXMgdG8gdGhlIG1vdXNlIHBvc2l0aW9u
IGFuZAotICAgIC8vIHRvb2x0aXAgdGV4dCwgYW5kIG1vdXNlTW92ZWQgaGFuZGxlcyBhbGwgb2Yg
dGhhdC4KLSAgICBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5tb3Vz
ZU1vdmVkKAotICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnRCdWlsZGVyKG1haW5GcmFtZUltcGwo
KS0+ZnJhbWVWaWV3KCksIGV2ZW50KSk7Ci19Ci0KLXZvaWQgV2ViVmlld0ltcGw6Om1vdXNlTGVh
dmUoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCi17Ci0gICAgLy8gVGhpcyBldmVudCBnZXRz
IHNlbnQgYXMgdGhlIG1haW4gZnJhbWUgaXMgY2xvc2luZy4gIEluIHRoYXQgY2FzZSwganVzdAot
ICAgIC8vIGlnbm9yZSBpdC4KLSAgICBpZiAoIW1haW5GcmFtZUltcGwoKSB8fCAhbWFpbkZyYW1l
SW1wbCgpLT5mcmFtZVZpZXcoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgbV9jbGllbnQtPnNl
dE1vdXNlT3ZlclVSTChXZWJVUkwoKSk7Ci0KLSAgICBtYWluRnJhbWVJbXBsKCktPmZyYW1lKCkt
PmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVFdmVudCgKLSAgICAgICAgUGxhdGZvcm1N
b3VzZUV2ZW50QnVpbGRlcihtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLCBldmVudCkpOwor
ICAgIFBhZ2VXaWRnZXRFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTGVhdmUobWFpbkZyYW1lLCBl
dmVudCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihjb25zdCBXZWJNb3VzZUV2
ZW50JiBldmVudCkKK3ZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZU1vdXNlRG93bihGcmFtZSYgbWFp
bkZyYW1lLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAoIW1haW5GcmFt
ZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKLSAgICAgICAgcmV0dXJu
OwotCiAgICAgLy8gSWYgdGhlcmUgaXMgYSBzZWxlY3QgcG9wdXAgb3BlbiwgY2xvc2UgaXQgYXMg
dGhlIHVzZXIgaXMgY2xpY2tpbmcgb24KICAgICAvLyB0aGUgcGFnZSAob3V0c2lkZSBvZiB0aGUg
cG9wdXApLiAgV2UgYWxzbyBzYXZlIGl0IHNvIHdlIGNhbiBwcmV2ZW50IGEKICAgICAvLyBjbGlj
ayBvbiB0aGUgc2VsZWN0IGVsZW1lbnQgZnJvbSBpbW1lZGlhdGVseSByZW9wZW5pbmcgdGhlIHBv
cHVwLgpAQCAtNTIyLDggKzUwMSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRG93bihjb25z
dCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICAgICAgICAgIG1fbW91c2VDYXB0dXJlTm9kZSA9
IGhpdE5vZGU7CiAgICAgfQogCi0gICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KAotICAgICAgICBQbGF0Zm9ybU1vdXNlRXZl
bnRCdWlsZGVyKG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KSk7CisgICAgUGFn
ZVdpZGdldEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEb3duKG1haW5GcmFtZSwgZXZlbnQpOwog
CiAgICAgaWYgKG1fc2VsZWN0UG9wdXAgJiYgbV9zZWxlY3RQb3B1cCA9PSBzZWxlY3RQb3B1cCkg
ewogICAgICAgICAvLyBUaGF0IGNsaWNrIHRyaWdnZXJlZCBhIHNlbGVjdCBwb3B1cCB3aGljaCBp
cyB0aGUgc2FtZSBhcyB0aGUgb25lIHRoYXQKQEAgLTU3NCwxMSArNTUyLDggQEAgdm9pZCBXZWJW
aWV3SW1wbDo6bW91c2VDb250ZXh0TWVudShjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAg
ICAvLyBpbXBsZW1lbnRhdGlvbi4uLgogfQogCi12b2lkIFdlYlZpZXdJbXBsOjptb3VzZVVwKGNv
bnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQordm9pZCBXZWJWaWV3SW1wbDo6aGFuZGxlTW91c2VV
cChGcmFtZSYgbWFpbkZyYW1lLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKIHsKLSAgICBp
ZiAoIW1haW5GcmFtZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKLSAg
ICAgICAgcmV0dXJuOwotCiAjaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikKICAgICAvLyBJZiB0
aGUgZXZlbnQgd2FzIGEgbWlkZGxlIGNsaWNrLCBhdHRlbXB0IHRvIGNvcHkgdGV4dCBpbnRvIHRo
ZSBmb2N1c2VkCiAgICAgLy8gZnJhbWUuIFdlIGV4ZWN1dGUgdGhpcyBiZWZvcmUgd2UgbGV0IHRo
ZSBwYWdlIGhhdmUgYSBnbyBhdCB0aGUgZXZlbnQKQEAgLTYxNiw4ICs1OTEsNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjptb3VzZVVwKGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQogICAgIH0KICNl
bmRpZgogCi0gICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFu
ZGxlTW91c2VSZWxlYXNlRXZlbnQoCi0gICAgICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIo
bWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSwgZXZlbnQpKTsKKyAgICBQYWdlV2lkZ2V0RXZl
bnRIYW5kbGVyOjpoYW5kbGVNb3VzZVVwKG1haW5GcmFtZSwgZXZlbnQpOwogCiAjaWYgT1MoV0lO
RE9XUykKICAgICAvLyBEaXNwYXRjaCB0aGUgY29udGV4dG1lbnUgZXZlbnQgcmVnYXJkbGVzcyBv
ZiBpZiB0aGUgY2xpY2sgd2FzIHN3YWxsb3dlZC4KQEAgLTYyNywxMiArNjAxLDYgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6bW91c2VVcChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICNlbmRpZgog
fQogCi1ib29sIFdlYlZpZXdJbXBsOjptb3VzZVdoZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVu
dCYgZXZlbnQpCi17Ci0gICAgUGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlciBwbGF0Zm9ybUV2ZW50
KG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCksIGV2ZW50KTsKLSAgICByZXR1cm4gbWFpbkZy
YW1lSW1wbCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChwbGF0
Zm9ybUV2ZW50KTsKLX0KLQogdm9pZCBXZWJWaWV3SW1wbDo6c2Nyb2xsQnkoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGRlbHRhKQogewogICAgIFdlYk1vdXNlV2hlZWxFdmVudCBzeW50aGV0aWNX
aGVlbDsKQEAgLTY0OSwxMSArNjE3LDEyIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNjcm9sbEJ5KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBkZWx0YSkKICAgICBzeW50aGV0aWNXaGVlbC5nbG9iYWxZ
ID0gbV9sYXN0V2hlZWxHbG9iYWxQb3NpdGlvbi55OwogICAgIHN5bnRoZXRpY1doZWVsLm1vZGlm
aWVycyA9IG1fZmxpbmdNb2RpZmllcjsKIAotICAgIG1vdXNlV2hlZWwoc3ludGhldGljV2hlZWwp
OworICAgIGlmIChtX3BhZ2UgJiYgbV9wYWdlLT5tYWluRnJhbWUoKSAmJiBtX3BhZ2UtPm1haW5G
cmFtZSgpLT52aWV3KCkpCisgICAgICAgIGhhbmRsZU1vdXNlV2hlZWwoKm1fcGFnZS0+bWFpbkZy
YW1lKCksIHN5bnRoZXRpY1doZWVsKTsKIH0KIAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykK
LWJvb2wgV2ViVmlld0ltcGw6Omdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2
ZW50KQorYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1
cmVFdmVudCYgZXZlbnQpCiB7CiAgICAgc3dpdGNoIChldmVudC50eXBlKSB7CiAgICAgY2FzZSBX
ZWJJbnB1dEV2ZW50OjpHZXN0dXJlRmxpbmdTdGFydDogewpAQCAtNzI0LDcgKzY5Myw3IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKGNvbnN0IEludFBvaW50JiBz
Y3JvbGwsIGJvb2wgdXNlQW5jaG9yCiB9CiAjZW5kaWYKIAotYm9vbCBXZWJWaWV3SW1wbDo6a2V5
RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCitib29sIFdlYlZpZXdJbXBsOjpo
YW5kbGVLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICAgICBBU1NF
UlQoKGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6UmF3S2V5RG93bikKICAgICAgICAgfHwg
KGV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6S2V5RG93bikKQEAgLTg0Miw3ICs4MTEsNyBA
QCBib29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVLZXlFdmVudChjb25zdCBXZWJL
ZXlib2FyZEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgV2ViVmll
d0ltcGw6OmNoYXJFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCkKK2Jvb2wgV2Vi
Vmlld0ltcGw6OmhhbmRsZUNoYXJFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCkK
IHsKICAgICBBU1NFUlQoZXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpDaGFyKTsKIApAQCAt
ODg4LDE4ICs4NTcsNiBAQCBib29sIFdlYlZpZXdJbXBsOjpjaGFyRXZlbnQoY29uc3QgV2ViS2V5
Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQotYm9vbCBXZWJWaWV3SW1wbDo6dG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2
ZW50JiBldmVudCkKLXsKLSAgICBpZiAoIW1haW5GcmFtZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1w
bCgpLT5mcmFtZVZpZXcoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgUGxhdGZvcm1U
b3VjaEV2ZW50QnVpbGRlciB0b3VjaEV2ZW50QnVpbGRlcihtYWluRnJhbWVJbXBsKCktPmZyYW1l
VmlldygpLCBldmVudCk7Ci0gICAgYm9vbCBkZWZhdWx0UHJldmVudGVkID0gbWFpbkZyYW1lSW1w
bCgpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlVG91Y2hFdmVudCh0b3VjaEV2ZW50
QnVpbGRlcik7Ci0gICAgcmV0dXJuIGRlZmF1bHRQcmV2ZW50ZWQ7Ci19Ci0jZW5kaWYKLQogI2lm
IEVOQUJMRShHRVNUVVJFX0VWRU5UUykKIFdlYlJlY3QgV2ViVmlld0ltcGw6OmNvbXB1dGVCbG9j
a0JvdW5kcyhjb25zdCBXZWJSZWN0JiByZWN0LCBBdXRvWm9vbVR5cGUgem9vbVR5cGUpCiB7CkBA
IC0xNDMwLDMyICsxMzg3LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMo
ZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQogICAgICAgICAgICAgbV9nZXN0dXJlQW5p
bWF0aW9uLmNsZWFyKCk7CiAgICAgfQogCi0gICAgZG91YmxlIHRpbWVTaGlmdCA9IGN1cnJlbnRU
aW1lKCkgLSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKLSAgICB2aWV3LT5zZXJ2aWNl
U2NyaXB0ZWRBbmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAobW9ub3Rvbmlj
RnJhbWVCZWdpblRpbWUgKyB0aW1lU2hpZnQpKTsKKyAgICBQYWdlV2lkZ2V0RGVsZWdhdGU6OmFu
aW1hdGUobV9wYWdlLmdldCgpLCBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAjZW5kaWYKIH0K
IAogdm9pZCBXZWJWaWV3SW1wbDo6bGF5b3V0KCkKIHsKICAgICBUUkFDRV9FVkVOVCgiV2ViVmll
d0ltcGw6OmxheW91dCIsIHRoaXMsIDApOwotCi0gICAgV2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSA9
IG1haW5GcmFtZUltcGwoKTsKLSAgICBpZiAod2ViZnJhbWUpIHsKLSAgICAgICAgLy8gSW4gb3Jk
ZXIgZm9yIG91ciBjaGlsZCBIV05EcyAoTmF0aXZlV2luZG93V2lkZ2V0cykgdG8gdXBkYXRlIHBy
b3Blcmx5LAotICAgICAgICAvLyB0aGV5IG5lZWQgdG8gYmUgdG9sZCB0aGF0IHdlIGFyZSB1cGRh
dGluZyB0aGUgc2NyZWVuLiAgVGhlIHByb2JsZW0gaXMKLSAgICAgICAgLy8gdGhhdCB0aGUgbmF0
aXZlIHdpZGdldHMgbmVlZCB0byByZWNhbGN1bGF0ZSB0aGVpciBjbGlwIHJlZ2lvbiBhbmQgbm90
Ci0gICAgICAgIC8vIG92ZXJsYXAgYW55IG9mIG91ciBub24tbmF0aXZlIHdpZGdldHMuICBUbyBm
b3JjZSB0aGUgcmVzaXppbmcsIGNhbGwKLSAgICAgICAgLy8gc2V0RnJhbWVSZWN0KCkuICBUaGlz
IHdpbGwgYmUgYSBxdWljayBvcGVyYXRpb24gZm9yIG1vc3QgZnJhbWVzLCBidXQKLSAgICAgICAg
Ly8gdGhlIE5hdGl2ZVdpbmRvd1dpZGdldHMgd2lsbCB1cGRhdGUgYSBwcm9wZXIgY2xpcHBpbmcg
cmVnaW9uLgotICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSB3ZWJmcmFtZS0+ZnJhbWVWaWV3KCk7
Ci0gICAgICAgIGlmICh2aWV3KQotICAgICAgICAgICAgdmlldy0+c2V0RnJhbWVSZWN0KHZpZXct
PmZyYW1lUmVjdCgpKTsKLQotICAgICAgICAvLyBzZXRGcmFtZVJlY3QgbWF5IGhhdmUgdGhlIHNp
ZGUtZWZmZWN0IG9mIGNhdXNpbmcgZXhpc3RpbmcgcGFnZQotICAgICAgICAvLyBsYXlvdXQgdG8g
YmUgaW52YWxpZGF0ZWQsIHNvIGxheW91dCBuZWVkcyB0byBiZSBjYWxsZWQgbGFzdC4KLQotICAg
ICAgICB3ZWJmcmFtZS0+bGF5b3V0KCk7Ci0gICAgfQorICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6
bGF5b3V0KG1fcGFnZS5nZXQoKSk7CiB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCkBAIC0xNTA4LDkgKzE0NDcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpwYWludChXZWJDYW52
YXMqIGNhbnZhcywgY29uc3QgV2ViUmVjdCYgcmVjdCkKICNlbmRpZgogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGRvdWJsZSBwYWludFN0YXJ0ID0gY3VycmVudFRpbWUoKTsKLSAgICAgICAgV2ViRnJh
bWVJbXBsKiB3ZWJmcmFtZSA9IG1haW5GcmFtZUltcGwoKTsKLSAgICAgICAgaWYgKHdlYmZyYW1l
KQotICAgICAgICAgICAgd2ViZnJhbWUtPnBhaW50KGNhbnZhcywgcmVjdCk7CisgICAgICAgIFBh
Z2VXaWRnZXREZWxlZ2F0ZTo6cGFpbnQobV9wYWdlLmdldCgpLCBwYWdlT3ZlcmxheXMoKSwgY2Fu
dmFzLCByZWN0KTsKICAgICAgICAgZG91YmxlIHBhaW50RW5kID0gY3VycmVudFRpbWUoKTsKICAg
ICAgICAgZG91YmxlIHBpeGVsc1BlclNlYyA9IChyZWN0LndpZHRoICogcmVjdC5oZWlnaHQpIC8g
KHBhaW50RW5kIC0gcGFpbnRTdGFydCk7CiAgICAgICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJl
bnQoKS0+aGlzdG9ncmFtQ3VzdG9tQ291bnRzKCJSZW5kZXJlcjQuU29mdHdhcmVQYWludER1cmF0
aW9uTVMiLCAocGFpbnRFbmQgLSBwYWludFN0YXJ0KSAqIDEwMDAsIDAsIDEyMCwgMzApOwpAQCAt
MTY2Nyw3OSArMTYwNCw4IEBAIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29u
c3QgV2ViSW5wdXRFdmVudCYgaW5wdXRFdmVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgYm9vbCBoYW5kbGVkID0gdHJ1ZTsKLQotICAgIC8vIEZJWE1FOiBXZWJLaXQgc2Vl
bXMgdG8gYWx3YXlzIHJldHVybiBmYWxzZSBvbiBtb3VzZSBldmVudHMgcHJvY2Vzc2luZwotICAg
IC8vIG1ldGhvZHMuIEZvciBub3cgd2UnbGwgYXNzdW1lIGl0IGhhcyBwcm9jZXNzZWQgdGhlbSAo
YXMgd2UgYXJlIG9ubHkKLSAgICAvLyBpbnRlcmVzdGVkIGluIHdoZXRoZXIga2V5Ym9hcmQgZXZl
bnRzIGFyZSBwcm9jZXNzZWQpLgotICAgIHN3aXRjaCAoaW5wdXRFdmVudC50eXBlKSB7Ci0gICAg
Y2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZU1vdmU6Ci0gICAgICAgIG1vdXNlTW92ZSgqc3RhdGlj
X2Nhc3Q8Y29uc3QgV2ViTW91c2VFdmVudCo+KCZpbnB1dEV2ZW50KSk7Ci0gICAgICAgIGJyZWFr
OwotCi0gICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpNb3VzZUxlYXZlOgotICAgICAgICBtb3VzZUxl
YXZlKCpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZUV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKLSAg
ICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6Ok1vdXNlV2hlZWw6Ci0gICAg
ICAgIGhhbmRsZWQgPSBtb3VzZVdoZWVsKCpzdGF0aWNfY2FzdDxjb25zdCBXZWJNb3VzZVdoZWVs
RXZlbnQqPigmaW5wdXRFdmVudCkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgV2ViSW5w
dXRFdmVudDo6TW91c2VEb3duOgotICAgICAgICBtb3VzZURvd24oKnN0YXRpY19jYXN0PGNvbnN0
IFdlYk1vdXNlRXZlbnQqPigmaW5wdXRFdmVudCkpOwotICAgICAgICBicmVhazsKLQotICAgIGNh
c2UgV2ViSW5wdXRFdmVudDo6TW91c2VVcDoKLSAgICAgICAgbW91c2VVcCgqc3RhdGljX2Nhc3Q8
Y29uc3QgV2ViTW91c2VFdmVudCo+KCZpbnB1dEV2ZW50KSk7Ci0gICAgICAgIGJyZWFrOwotCi0g
ICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpSYXdLZXlEb3duOgotICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6S2V5RG93bjoKLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6OktleVVwOgotICAgICAgICBoYW5k
bGVkID0ga2V5RXZlbnQoKnN0YXRpY19jYXN0PGNvbnN0IFdlYktleWJvYXJkRXZlbnQqPigmaW5w
dXRFdmVudCkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6Q2hh
cjoKLSAgICAgICAgaGFuZGxlZCA9IGNoYXJFdmVudCgqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViS2V5
Ym9hcmRFdmVudCo+KCZpbnB1dEV2ZW50KSk7Ci0gICAgICAgIGJyZWFrOwotCi0jaWYgRU5BQkxF
KEdFU1RVUkVfRVZFTlRTKQotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEJl
Z2luOgotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVNjcm9sbEVuZDoKLSAgICBjYXNl
IFdlYklucHV0RXZlbnQ6Okdlc3R1cmVTY3JvbGxVcGRhdGU6Ci0gICAgY2FzZSBXZWJJbnB1dEV2
ZW50OjpHZXN0dXJlRmxpbmdTdGFydDoKLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVG
bGluZ0NhbmNlbDoKLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVUYXA6Ci0gICAgY2Fz
ZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlVGFwRG93bjoKLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6
Okdlc3R1cmVEb3VibGVUYXA6Ci0gICAgICAgIGhhbmRsZWQgPSBnZXN0dXJlRXZlbnQoKnN0YXRp
Y19jYXN0PGNvbnN0IFdlYkdlc3R1cmVFdmVudCo+KCZpbnB1dEV2ZW50KSk7Ci0gICAgICAgIGJy
ZWFrOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGNhc2UgV2ViSW5w
dXRFdmVudDo6VG91Y2hTdGFydDoKLSAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlRvdWNoTW92ZToK
LSAgICBjYXNlIFdlYklucHV0RXZlbnQ6OlRvdWNoRW5kOgotICAgIGNhc2UgV2ViSW5wdXRFdmVu
dDo6VG91Y2hDYW5jZWw6Ci0gICAgICAgIGhhbmRsZWQgPSB0b3VjaEV2ZW50KCpzdGF0aWNfY2Fz
dDxjb25zdCBXZWJUb3VjaEV2ZW50Kj4oJmlucHV0RXZlbnQpKTsKLSAgICAgICAgYnJlYWs7Ci0j
ZW5kaWYKLQotI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVBp
bmNoRW5kOgotICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoVXBkYXRlOgotICAg
ICAgICAvLyBGSVhNRTogT25jZSBQbGF0Zm9ybUdlc3R1cmVFdmVudCBpcyB1cGRhdGVkIHRvIHN1
cHBvcnQgcGluY2gsIHRoaXMgc2hvdWxkIGNhbGwgaGFuZGxlR2VzdHVyZUV2ZW50LCBqdXN0IGxp
a2UgaXQgY3VycmVudGx5IGRvZXMgZm9yIGdlc3R1cmUgc2Nyb2xsLgotICAgICAgICBoYW5kbGVk
ID0gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCi0KLSAgICBkZWZhdWx0OgotICAgICAg
ICBoYW5kbGVkID0gZmFsc2U7Ci0gICAgfQotCisgICAgYm9vbCBoYW5kbGVkID0gUGFnZVdpZGdl
dERlbGVnYXRlOjpoYW5kbGVJbnB1dEV2ZW50KG1fcGFnZS5nZXQoKSwgKnRoaXMsIGlucHV0RXZl
bnQpOwogICAgIG1fY3VycmVudElucHV0RXZlbnQgPSAwOwotCiAgICAgcmV0dXJuIGhhbmRsZWQ7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDQ2Mjdm
Nzc3Mzc1OGQzNzQ0MDhhNTJlZDUwNTgyYmRiYzhiODU3NzIuLjcyMDJhNDdiYjRlNzc5NzU0ZWQx
ODVkNTJiOGIzNThiOTQ2MmY5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmgiCiAjaW5jbHVkZSAiUGFnZU92ZXJsYXlMaXN0
LmgiCisjaW5jbHVkZSAiUGFnZVdpZGdldERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1H
ZXN0dXJlQ3VydmVUYXJnZXQuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnRJbXBsLmgiCiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTAzLDcgKzEwNCw3IEBAIGNsYXNzIFdlYk1vdXNl
V2hlZWxFdmVudDsKIGNsYXNzIFdlYlNldHRpbmdzSW1wbDsKIGNsYXNzIFdlYlRvdWNoRXZlbnQ7
CiAKLWNsYXNzIFdlYlZpZXdJbXBsIDogcHVibGljIFdlYlZpZXcsIHB1YmxpYyBXZWJMYXllclRy
ZWVWaWV3Q2xpZW50LCBwdWJsaWMgUmVmQ291bnRlZDxXZWJWaWV3SW1wbD4sIHB1YmxpYyBXZWJD
b3JlOjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCB7CitjbGFzcyBXZWJWaWV3SW1wbCA6IHB1
YmxpYyBXZWJWaWV3LCBwdWJsaWMgV2ViTGF5ZXJUcmVlVmlld0NsaWVudCwgcHVibGljIFJlZkNv
dW50ZWQ8V2ViVmlld0ltcGw+LCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1HZXN0dXJlQ3VydmVU
YXJnZXQsIHB1YmxpYyBQYWdlV2lkZ2V0RXZlbnRIYW5kbGVyIHsKIHB1YmxpYzoKICAgICBlbnVt
IEF1dG9ab29tVHlwZSB7CiAgICAgICAgIERvdWJsZVRhcCwKQEAgLTMzNCwxOCArMzM1LDkgQEAg
cHVibGljOgogICAgIHZvaWQgb2JzZXJ2ZU5ld05hdmlnYXRpb24oKTsKIAogICAgIC8vIEV2ZW50
IHJlbGF0ZWQgbWV0aG9kczoKLSAgICB2b2lkIG1vdXNlTW92ZShjb25zdCBXZWJNb3VzZUV2ZW50
Jik7Ci0gICAgdm9pZCBtb3VzZUxlYXZlKGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKLSAgICB2b2lk
IG1vdXNlRG93bihjb25zdCBXZWJNb3VzZUV2ZW50Jik7Ci0gICAgdm9pZCBtb3VzZVVwKGNvbnN0
IFdlYk1vdXNlRXZlbnQmKTsKICAgICB2b2lkIG1vdXNlQ29udGV4dE1lbnUoY29uc3QgV2ViTW91
c2VFdmVudCYpOwogICAgIHZvaWQgbW91c2VEb3VibGVDbGljayhjb25zdCBXZWJNb3VzZUV2ZW50
Jik7Ci0gICAgYm9vbCBtb3VzZVdoZWVsKGNvbnN0IFdlYk1vdXNlV2hlZWxFdmVudCYpOwotICAg
IGJvb2wgZ2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYpOwogICAgIHZvaWQgc3Rh
cnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHRhcmdldFBvc2l0
aW9uLCBib29sIHVzZUFuY2hvciwgZmxvYXQgbmV3U2NhbGUsIGRvdWJsZSBkdXJhdGlvblNlYyk7
Ci0gICAgYm9vbCBrZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7Ci0gICAgYm9vbCBj
aGFyRXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpOwotICAgIGJvb2wgdG91Y2hFdmVudChj
b25zdCBXZWJUb3VjaEV2ZW50Jik7CiAKICAgICB2b2lkIG51bWJlck9mV2hlZWxFdmVudEhhbmRs
ZXJzQ2hhbmdlZCh1bnNpZ25lZCk7CiAgICAgdm9pZCBudW1iZXJPZlRvdWNoRXZlbnRIYW5kbGVy
c0NoYW5nZWQodW5zaWduZWQpOwpAQCAtNTk1LDYgKzU4NywxNCBAQCBwcml2YXRlOgogICAgIHZv
aWQgcG9pbnRlckxvY2tNb3VzZUV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKTsKICNlbmRpZgog
CisgICAgLy8gUGFnZVdpZGdldEV2ZW50SGFuZGxlciBmdW5jdGlvbnMKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlTW91c2VMZWF2ZShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYk1vdXNlRXZlbnQm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VEb3duKFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV2ViTW91c2VFdmVudCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVNb3VzZVVwKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViTW91c2VFdmVudCYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVy
ZUV2ZW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0
IFdlYktleWJvYXJkRXZlbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlQ2hh
ckV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKSBPVkVSUklERTsKKwogICAgIFdlYlZpZXdD
bGllbnQqIG1fY2xpZW50OwogICAgIFdlYkF1dG9maWxsQ2xpZW50KiBtX2F1dG9maWxsQ2xpZW50
OwogICAgIFdlYlBlcm1pc3Npb25DbGllbnQqIG1fcGVybWlzc2lvbkNsaWVudDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>