<?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>7093</bug_id>
          
          <creation_ts>2006-02-05 19:07:00 -0800</creation_ts>
          <short_desc>Move backpointer to page-level object from WebFrame to WebFrameBridge</short_desc>
          <delta_ts>2006-02-07 19:42:43 -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>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31489</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-05 19:07:00 -0800</bug_when>
    <thetext>Shuffle things around so that WebFrame no longer has a WebView backpointer, the backpointer is at the bridge level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31490</commentid>
    <comment_count>1</comment_count>
      <attachid>6275</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-05 19:08:21 -0800</bug_when>
    <thetext>Created attachment 6275
move backpointer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31500</commentid>
    <comment_count>2</comment_count>
      <attachid>6275</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-05 20:43:04 -0800</bug_when>
    <thetext>Comment on attachment 6275
move backpointer

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6275</attachid>
            <date>2006-02-05 19:08:21 -0800</date>
            <delta_ts>2006-02-05 20:43:04 -0800</delta_ts>
            <desc>move backpointer</desc>
            <filename>page-bridge-backpointer.patch.txt</filename>
            <type>text/plain</type>
            <size>44431</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTg3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTExIEBACisyMDA2LTAy
LTA1ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICAtIHNodWZmbGUgdGhpbmdz
IGFyb3VuZCBzbyB0aGF0IFdlYkZyYW1lIG5vIGxvbmdlciBoYXMgYSBXZWJWaWV3IGJhY2twb2lu
dGVyLCB0aGUgYmFja3BvaW50ZXIgaXMKKyAgICAgICAgYXQgdGhlIGJyaWRnZSBsZXZlbC4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0LnN1YnByb2ovV2ViRnJhbWVCcmlkZ2UuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYkZyYW1lQnJpZGdlLm06CisgICAgICAgICgt
W1dlYkZyYW1lQnJpZGdlIGluaXRXaXRoUGFnZTp3ZWJWaWV3OmZyYW1lTmFtZTp2aWV3Ol0pOgor
ICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBwYWdlXSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJp
ZGdlIG1haW5GcmFtZV0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSB3ZWJWaWV3XSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIGNyZWF0ZVdpbmRvd1dpdGhVUkw6ZnJhbWVOYW1lOl0p
OgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBzaG93V2luZG93XSk6CisgICAgICAgICgtW1dl
YkZyYW1lQnJpZGdlIGFyZVRvb2xiYXJzVmlzaWJsZV0pOgorICAgICAgICAoLVtXZWJGcmFtZUJy
aWRnZSBzZXRUb29sYmFyc1Zpc2libGU6XSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIGlz
U3RhdHVzYmFyVmlzaWJsZV0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBzZXRTdGF0dXNi
YXJWaXNpYmxlOl0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBzZXRXaW5kb3dGcmFtZTpd
KToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2Ugd2luZG93RnJhbWVdKToKKyAgICAgICAgKC1b
V2ViRnJhbWVCcmlkZ2Ugc2V0V2luZG93Q29udGVudFJlY3Q6XSk6CisgICAgICAgICgtW1dlYkZy
YW1lQnJpZGdlIHdpbmRvd0NvbnRlbnRSZWN0XSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdl
IHNldFdpbmRvd0lzUmVzaXphYmxlOl0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSB3aW5k
b3dJc1Jlc2l6YWJsZV0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBmaXJzdFJlc3BvbmRl
cl0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBtYWtlRmlyc3RSZXNwb25kZXI6XSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIGNsb3NlV2luZG93U29vbl0pOgorICAgICAgICAoLVtX
ZWJGcmFtZUJyaWRnZSBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOl0pOgorICAg
ICAgICAoLVtXZWJGcmFtZUJyaWRnZSBydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3Nh
Z2U6XSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIGNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbF0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWxXaXRoTWVzc2FnZTpdKToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2UgcnVuSmF2
YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpkZWZhdWx0VGV4dDpyZXR1cm5pbmdUZXh0
Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBhZGRNZXNzYWdlVG9Db25zb2xlOl0pOgor
ICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBydW5PcGVuUGFuZWxGb3JGaWxlQnV0dG9uV2l0aFJl
c3VsdExpc3RlbmVyOl0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBzZXRTdGF0dXNUZXh0
Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBzdGFydExvYWRpbmdSZXNvdXJjZTp3aXRo
VVJMOmN1c3RvbUhlYWRlcnM6XSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIHN0YXJ0TG9h
ZGluZ1Jlc291cmNlOndpdGhVUkw6Y3VzdG9tSGVhZGVyczpwb3N0RGF0YTpdKToKKyAgICAgICAg
KC1bV2ViRnJhbWVCcmlkZ2Ugc3luY0xvYWRSZXNvdXJjZVdpdGhVUkw6Y3VzdG9tSGVhZGVyczpw
b3N0RGF0YTpmaW5hbFVSTDpyZXNwb25zZUhlYWRlcnM6c3RhdHVzQ29kZTpdKToKKyAgICAgICAg
KC1bV2ViRnJhbWVCcmlkZ2UgZm9jdXNXaW5kb3ddKToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlk
Z2UgY3JlYXRlQ2hpbGRGcmFtZU5hbWVkOndpdGhVUkw6cmVmZXJyZXI6cmVuZGVyUGFydDphbGxv
d3NTY3JvbGxpbmc6bWFyZ2luV2lkdGg6bWFyZ2luSGVpZ2h0Ol0pOgorICAgICAgICAoLVtXZWJG
cmFtZUJyaWRnZSB1c2VyQWdlbnRGb3JVUkw6XSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdl
IF9uZXh0S2V5Vmlld091dHNpZGVXZWJGcmFtZVZpZXdzV2l0aFZhbGlkaXR5Q2hlY2s6XSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIHByZXZpb3VzS2V5Vmlld091dHNpZGVXZWJGcmFtZVZp
ZXdzXSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIGRlZmVyc0xvYWRpbmddKToKKyAgICAg
ICAgKC1bV2ViRnJhbWVCcmlkZ2Ugc2V0RGVmZXJzTG9hZGluZzpdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWVCcmlkZ2Ugdmlld0ZvclBsdWdpbldpdGhVUkw6YXR0cmlidXRlTmFtZXM6YXR0cmlidXRl
VmFsdWVzOk1JTUVUeXBlOl0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBfcHJlZmVyZW5j
ZXNdKToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2Ugc2VsZWN0V29yZEJlZm9yZU1lbnVFdmVu
dF0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBoaXN0b3J5TGVuZ3RoXSk6CisgICAgICAg
ICgtW1dlYkZyYW1lQnJpZGdlIGNhbkdvQmFja09yRm9yd2FyZDpdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWVCcmlkZ2UgZ29CYWNrT3JGb3J3YXJkOl0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRn
ZSBwcmludF0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBwb2xsRm9yQXBwbGV0SW5WaWV3
Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSByZXNwb25kVG9DaGFuZ2VkQ29udGVudHNd
KToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2UgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbl0p
OgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSB1bmRvTWFuYWdlcl0pOgorICAgICAgICAoLVtX
ZWJGcmFtZUJyaWRnZSBpc3N1ZUN1dENvbW1hbmRdKToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlk
Z2UgaXNzdWVDb3B5Q29tbWFuZF0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBpc3N1ZVBh
c3RlQ29tbWFuZF0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBpc3N1ZVBhc3RlQW5kTWF0
Y2hTdHlsZUNvbW1hbmRdKToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2UgY2FuUGFzdGVdKToK
KyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2Ugb3ZlcnJpZGVNZWRpYVR5cGVdKToKKyAgICAgICAg
KC1bV2ViRnJhbWVCcmlkZ2UgaXNFZGl0YWJsZV0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRn
ZSBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnRvRE9NUmFuZ2U6YWZmaW5pdHk6c3RpbGxT
ZWxlY3Rpbmc6XSk6CisgICAgICAgICgtW1dlYkZyYW1lQnJpZGdlIHNob3VsZEJlZ2luRWRpdGlu
ZzpdKToKKyAgICAgICAgKC1bV2ViRnJhbWVCcmlkZ2Ugc2hvdWxkRW5kRWRpdGluZzpdKToKKyAg
ICAgICAgKC1bV2ViRnJhbWVCcmlkZ2Ugd2luZG93T2JqZWN0Q2xlYXJlZF0pOgorICAgICAgICAo
LVtXZWJGcmFtZUJyaWRnZSBzcGVsbENoZWNrZXJEb2N1bWVudFRhZ10pOgorICAgICAgICAoLVtX
ZWJGcmFtZUJyaWRnZSBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZF0pOgorICAgICAg
ICAoLVtXZWJGcmFtZUJyaWRnZSBkaWRGaXJzdExheW91dF0pOgorICAgICAgICAoLVtXZWJGcmFt
ZUJyaWRnZSBkYXNoYm9hcmRSZWdpb25zQ2hhbmdlZDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWVC
cmlkZ2UgY3JlYXRlTW9kYWxEaWFsb2dXaXRoVVJMOl0pOgorICAgICAgICAoLVtXZWJGcmFtZUJy
aWRnZSBjYW5SdW5Nb2RhbF0pOgorICAgICAgICAoLVtXZWJGcmFtZUJyaWRnZSBydW5Nb2RhbF0p
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0LnN1YnByb2ovV2ViUGFnZUJyaWRnZS5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0LnN1YnByb2ovV2ViUGFnZUJyaWRnZS5tOgorICAgICAgICAo
LVtXZWJQYWdlQnJpZGdlIGluaXRXaXRoTWFpbkZyYW1lTmFtZTp3ZWJWaWV3OmZyYW1lVmlldzpd
KToKKyAgICAgICAgKC1bV2ViUGFnZUJyaWRnZSB3ZWJWaWV3XSk6CisgICAgICAgICogV2ViVmll
dy5zdWJwcm9qL1dlYkRhdGFTb3VyY2UubToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfZmls
ZVdyYXBwZXJGb3JVUkw6XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX3dlYlZpZXddKToK
KyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfc2V0TG9hZGluZzpdKToKKyAgICAgICAgKC1bV2Vi
RGF0YVNvdXJjZSBfc3RhcnRMb2FkaW5nOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9z
ZXRUaXRsZTpdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfc2V0UmVxdWVzdDpdKToKKyAg
ICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfdXBkYXRlSWNvbkRhdGFiYXNlV2l0aFVSTDpdKToKKyAg
ICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfZGVmZXJzQ2FsbGJhY2tzQ2hhbmdlZF0pOgorICAgICAg
ICAoLVtXZWJEYXRhU291cmNlIF9zZXRXZWJGcmFtZTpdKToKKyAgICAgICAgKiBXZWJWaWV3LnN1
YnByb2ovV2ViRGF0YVNvdXJjZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ov
V2ViRnJhbWUubToKKyAgICAgICAgKC1bV2ViRnJhbWUgX3RyYXZlcnNlTmV4dEZyYW1lU3RheVdp
dGhpbjo6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9kZXRhY2hGcm9tUGFyZW50XSk6CisgICAg
ICAgICgtW1dlYkZyYW1lIF9zZXREYXRhU291cmNlOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBf
bG9hZERhdGFTb3VyY2U6d2l0aExvYWRUeXBlOmZvcm1TdGF0ZTpdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2luaXRXaXRoV2ViRnJhbWVWaWV3OndlYlZpZXc6YnJpZGdlOl0pOgorICAgICAgICAo
LVtXZWJGcmFtZSBkZWFsbG9jXSk6CisgICAgICAgICgtW1dlYkZyYW1lIGZpbmFsaXplXSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lIHdlYlZpZXddKToKKyAgICAgICAgKiBXZWJWaWV3LnN1YnByb2ov
V2ViRnJhbWVWaWV3Lm06CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBfd2ViVmlld10pOgorICAg
ICAgICAoLVtXZWJGcmFtZVZpZXcgX2dvQmFja10pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcg
X2dvRm9yd2FyZF0pOgorICAgICAgICAqIFdlYlZpZXcuc3VicHJvai9XZWJGcmFtZVZpZXdJbnRl
cm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcuc3VicHJvai9XZWJWaWV3Lm06CisgICAgICAgICgt
W1dlYlZpZXcgX2NyZWF0ZUZyYW1lTmFtZWQ6aW5QYXJlbnQ6YWxsb3dzU2Nyb2xsaW5nOl0pOgor
ICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3Jv
dXBOYW1lOl0pOgorCiAyMDA2LTAyLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWouCkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2Vi
RnJhbWVWaWV3SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3LnN1YnByb2ovV2ViRnJh
bWVWaWV3SW50ZXJuYWwuaAkocmV2aXNpb24gMTI1ODYpCisrKyBXZWJWaWV3LnN1YnByb2ovV2Vi
RnJhbWVWaWV3SW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQAogLSAo
V2ViVmlldyAqKV93ZWJWaWV3OwogLSAodm9pZClfc2V0RG9jdW1lbnRWaWV3OihOU1ZpZXcgPFdl
YkRvY3VtZW50Vmlldz4gKil2aWV3OwogLSAoTlNWaWV3IDxXZWJEb2N1bWVudFZpZXc+ICopX21h
a2VEb2N1bWVudFZpZXdGb3JEYXRhU291cmNlOihXZWJEYXRhU291cmNlICopZGF0YVNvdXJjZTsK
LS0gKHZvaWQpX3NldFdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfc2V0V2Vi
RnJhbWU6KFdlYkZyYW1lICopd2ViRnJhbWU7CiAtIChpbnQpX21hcmdpbldpZHRoOwogLSAoaW50
KV9tYXJnaW5IZWlnaHQ7CkluZGV4OiBXZWJWaWV3LnN1YnByb2ovV2ViRGF0YVNvdXJjZVByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3LnN1YnByb2ovV2ViRGF0YVNvdXJjZVByaXZhdGUu
aAkocmV2aXNpb24gMTI1ODYpCisrKyBXZWJWaWV3LnN1YnByb2ovV2ViRGF0YVNvdXJjZVByaXZh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsOCArNTIsNiBAQAogCiAgICAgaWQgPFdlYkRvY3Vt
ZW50UmVwcmVzZW50YXRpb24+IHJlcHJlc2VudGF0aW9uOwogICAgIAotICAgIFdlYlZpZXcgKndl
YlZpZXc7Ci0gICAgCiAgICAgLy8gQSByZWZlcmVuY2UgdG8gYWN0dWFsIHJlcXVlc3QgdXNlZCB0
byBjcmVhdGUgdGhlIGRhdGEgc291cmNlLgogICAgIC8vIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNl
ZCBieSB0aGUgcmVzb3VyY2VMb2FkRGVsZWdhdGUncwogICAgIC8vIGlkZW50aWZpZXJGb3JJbml0
aWFsUmVxdWVzdDpmcm9tRGF0YXNvdXJjZTogbWV0aG9kLiAgSXQgaXMKQEAgLTE2MCw3ICsxNTgs
NiBAQAogLSAoTlNVUkwgKilfVVJMRm9ySGlzdG9yeTsKIC0gKFdlYlZpZXcgKilfd2ViVmlldzsK
IC0gKHZvaWQpX3NldFJlcHJlc2VudGF0aW9uOihpZDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9u
PilyZXByZXNlbnRhdGlvbjsKLS0gKHZvaWQpX3NldFdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3
OwogLSAodm9pZClfc3RhcnRMb2FkaW5nOihOU0RpY3Rpb25hcnkgKilwYWdlQ2FjaGU7CiAtIChC
T09MKV9pc1N0b3BwaW5nOwogLSAodm9pZClfYWRkU3VicmVzb3VyY2VMb2FkZXI6KFdlYkxvYWRl
ciAqKWxvYWRlcjsKSW5kZXg6IFdlYlZpZXcuc3VicHJvai9XZWJWaWV3Lm0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViVmlldy5zdWJwcm9qL1dlYlZpZXcubQkocmV2aXNpb24gMTI1ODYpCisrKyBXZWJWaWV3
LnN1YnByb2ovV2ViVmlldy5tCSh3b3JraW5nIGNvcHkpCkBAIC01NjMsMTAgKzU2Myw5IEBAIHN0
YXRpYyBib29sIGRlYnVnV2lkZ2V0ID0gdHJ1ZTsKIHsKICAgICBXZWJGcmFtZVZpZXcgKmNoaWxk
VmlldyA9IFtbV2ViRnJhbWVWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCww
LDAsMCldOwogCi0gICAgW2NoaWxkVmlldyBfc2V0V2ViVmlldzpzZWxmXTsKICAgICBbY2hpbGRW
aWV3IHNldEFsbG93c1Njcm9sbGluZzphbGxvd3NTY3JvbGxpbmddOwogICAgIAotICAgIFdlYkZy
YW1lQnJpZGdlICpuZXdCcmlkZ2UgPSBbW1dlYkZyYW1lQnJpZGdlIGFsbG9jXSBpbml0V2l0aEZy
YW1lTmFtZTpmbmFtZSB2aWV3OmNoaWxkVmlld107CisgICAgV2ViRnJhbWVCcmlkZ2UgKm5ld0Jy
aWRnZSA9IFtbV2ViRnJhbWVCcmlkZ2UgYWxsb2NdIGluaXRXaXRoUGFnZTpfcHJpdmF0ZS0+X3Bh
Z2VCcmlkZ2Ugd2ViVmlldzpzZWxmIGZyYW1lTmFtZTpmbmFtZSB2aWV3OmNoaWxkVmlld107CiAK
ICAgICBbcGFyZW50IF9hZGRDaGlsZDpbbmV3QnJpZGdlIHdlYkZyYW1lXV07CiAgICAgCkBAIC0x
NjA2LDEzICsxNjA1LDEyIEBAIE5TTXV0YWJsZURpY3Rpb25hcnkgKmNvdW50SW52b2NhdGlvbnM7
CiAgICAgX3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IFlFUzsKIAogICAgIE5T
UmVjdCBmID0gW3NlbGYgZnJhbWVdOwotICAgIFdlYkZyYW1lVmlldyAqd3YgPSBbW1dlYkZyYW1l
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTogTlNNYWtlUmVjdCgwLDAsZi5zaXplLndpZHRoLGYu
c2l6ZS5oZWlnaHQpXTsKLSAgICBbd3YgX3NldFdlYlZpZXc6c2VsZl07Ci0gICAgW3d2IHNldEF1
dG9yZXNpemluZ01hc2s6IE5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGVd
OwotICAgIFtzZWxmIGFkZFN1YnZpZXc6IHd2XTsKLSAgICBbd3YgcmVsZWFzZV07CisgICAgV2Vi
RnJhbWVWaWV3ICpmcmFtZVZpZXcgPSBbW1dlYkZyYW1lVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTogTlNNYWtlUmVjdCgwLDAsZi5zaXplLndpZHRoLGYuc2l6ZS5oZWlnaHQpXTsKKyAgICBbZnJh
bWVWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3SGVp
Z2h0U2l6YWJsZV07CisgICAgW3NlbGYgYWRkU3VidmlldzpmcmFtZVZpZXddOworICAgIFtmcmFt
ZVZpZXcgcmVsZWFzZV07CiAKLSAgICBfcHJpdmF0ZS0+X3BhZ2VCcmlkZ2UgPSBbW1dlYlBhZ2VC
cmlkZ2UgYWxsb2NdIGluaXRXaXRoTWFpbkZyYW1lTmFtZTpmcmFtZU5hbWUgdmlldzp3dl07Cisg
ICAgX3ByaXZhdGUtPl9wYWdlQnJpZGdlID0gW1tXZWJQYWdlQnJpZGdlIGFsbG9jXSBpbml0V2l0
aE1haW5GcmFtZU5hbWU6ZnJhbWVOYW1lIHdlYlZpZXc6c2VsZiBmcmFtZVZpZXc6ZnJhbWVWaWV3
XTsKIAogICAgIFtzZWxmIF9hZGRUb0FsbFdlYlZpZXdzU2V0XTsKICAgICBbc2VsZiBzZXRHcm91
cE5hbWU6Z3JvdXBOYW1lXTsKQEAgLTE2MjIsMTAgKzE2MjAsMTAgQEAgTlNNdXRhYmxlRGljdGlv
bmFyeSAqY291bnRJbnZvY2F0aW9uczsKICAgICAvLyBjb250YWluZWQgZnJhbWUgdmlldy4gVGhp
cyB3b3JrcyB0b2dldGhlciB3aXRoIG91ciBiZWNvbWVGaXJzdFJlc3BvbmRlciAKICAgICAvLyBh
bmQgc2V0TmV4dEtleVZpZXcgb3ZlcnJpZGVzLgogICAgIE5TVmlldyAqbmV4dEtleVZpZXcgPSBb
c2VsZiBuZXh0S2V5Vmlld107Ci0gICAgaWYgKG5leHRLZXlWaWV3ICE9IG5pbCAmJiBuZXh0S2V5
VmlldyAhPSB3dikgewotICAgICAgICBbd3Ygc2V0TmV4dEtleVZpZXc6bmV4dEtleVZpZXddOwor
ICAgIGlmIChuZXh0S2V5VmlldyAhPSBuaWwgJiYgbmV4dEtleVZpZXcgIT0gZnJhbWVWaWV3KSB7
CisgICAgICAgIFtmcmFtZVZpZXcgc2V0TmV4dEtleVZpZXc6bmV4dEtleVZpZXddOwogICAgIH0K
LSAgICBbc3VwZXIgc2V0TmV4dEtleVZpZXc6d3ZdOworICAgIFtzdXBlciBzZXROZXh0S2V5Vmll
dzpmcmFtZVZpZXddOwogCiAgICAgKytXZWJWaWV3Q291bnQ7CiAKSW5kZXg6IFdlYlZpZXcuc3Vi
cHJvai9XZWJGcmFtZVZpZXcubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJWaWV3LnN1YnByb2ovV2ViRnJh
bWVWaWV3Lm0JKHJldmlzaW9uIDEyNTg2KQorKysgV2ViVmlldy5zdWJwcm9qL1dlYkZyYW1lVmll
dy5tCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw2IEBAIGVudW0gewogQGludGVyZmFjZSBX
ZWJGcmFtZVZpZXdQcml2YXRlIDogTlNPYmplY3QKIHsKIEBwdWJsaWMKLSAgICBXZWJWaWV3ICp3
ZWJWaWV3OwogICAgIFdlYkZyYW1lICp3ZWJGcmFtZTsKICAgICBXZWJEeW5hbWljU2Nyb2xsQmFy
c1ZpZXcgKmZyYW1lU2Nyb2xsVmlldzsKICAgICAKQEAgLTE2MSw3ICsxNjAsNyBAQCBlbnVtIHsK
IC8vIE5vdGUgdGhhdCB0aGUgV2ViVmV3IGlzIG5vdCByZXRhaW5lZC4KIC0gKFdlYlZpZXcgKilf
d2ViVmlldwogewotICAgIHJldHVybiBfcHJpdmF0ZS0+d2ViVmlldzsKKyAgICByZXR1cm4gW19w
cml2YXRlLT53ZWJGcmFtZSB3ZWJWaWV3XTsKIH0KIAogLSAodm9pZClfc2V0TWFyZ2luV2lkdGg6
IChpbnQpdwpAQCAtMjIxLDEyICsyMjAsNiBAQCBlbnVtIHsKICAgICByZXR1cm4gZG9jdW1lbnRW
aWV3OwogfQogCi0tICh2b2lkKV9zZXRXZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldwotewotICAg
IC8vIE5vdCByZXRhaW5lZCBiZWNhdXNlIHRoZSBXZWJWaWV3IG93bnMgdGhlIFdlYkZyYW1lLCB3
aGljaCBvd25zIHRoZSBXZWJGcmFtZVZpZXcuCi0gICAgX3ByaXZhdGUtPndlYlZpZXcgPSB3ZWJW
aWV3OyAgICAKLX0KLQogLSAodm9pZClfc2V0V2ViRnJhbWU6KFdlYkZyYW1lICopd2ViRnJhbWUK
IHsKICAgICAvLyBOb3QgcmV0YWluZWQgYmVjYXVzZSB0aGUgV2ViVmlldyBvd25zIHRoZSBXZWJG
cmFtZSwgd2hpY2ggb3ducyB0aGUgV2ViRnJhbWVWaWV3LgpAQCAtNTQxLDEyICs1MzQsMTIgQEAg
c3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTQogCiAtICh2b2lkKV9nb0Jh
Y2sKIHsKLSAgICBbX3ByaXZhdGUtPndlYlZpZXcgZ29CYWNrXTsKKyAgICBbW3NlbGYgX3dlYlZp
ZXddIGdvQmFja107CiB9CiAKIC0gKHZvaWQpX2dvRm9yd2FyZAogewotICAgIFtfcHJpdmF0ZS0+
d2ViVmlldyBnb0ZvcndhcmRdOworICAgIFtbc2VsZiBfd2ViVmlld10gZ29Gb3J3YXJkXTsKIH0K
IAogLSAoQk9PTClfc2Nyb2xsVmVydGljYWxseUJ5OiAoZmxvYXQpZGVsdGEKSW5kZXg6IFdlYlZp
ZXcuc3VicHJvai9XZWJGcmFtZS5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYlZpZXcuc3VicHJvai9XZWJG
cmFtZS5tCShyZXZpc2lvbiAxMjU4NikKKysrIFdlYlZpZXcuc3VicHJvai9XZWJGcmFtZS5tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzMsNyArMTczLDYgQEAgTlNTdHJpbmcgKldlYlBhZ2VDYWNoZURv
Y3VtZW50Vmlld0tleSA9IAogICAgIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2U7CiAgICAgV2Vi
RGF0YVNvdXJjZSAqcHJvdmlzaW9uYWxEYXRhU291cmNlOwogICAgIFdlYkZyYW1lQnJpZGdlICpi
cmlkZ2U7Ci0gICAgV2ViVmlldyAqd2ViVmlldzsKICAgICBXZWJGcmFtZVN0YXRlIHN0YXRlOwog
ICAgIFdlYkZyYW1lTG9hZFR5cGUgbG9hZFR5cGU7CiAgICAgV2ViSGlzdG9yeUl0ZW0gKmN1cnJl
bnRJdGVtOyAgICAgICAgLy8gQkYgaXRlbSBmb3Igb3VyIGN1cnJlbnQgY29udGVudApAQCAtMjAz
LDggKzIwMiw2IEBAIE5TU3RyaW5nICpXZWJQYWdlQ2FjaGVEb2N1bWVudFZpZXdLZXkgPSAKICAg
ICBOU1N0cmluZyAqZnJhbWVOYW1lc3BhY2U7CiB9CiAKLS0gKHZvaWQpc2V0V2ViVmlldzooV2Vi
VmlldyAqKXd2OwotLSAoV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKXNldFdlYkZyYW1lVmll
dzooV2ViRnJhbWVWaWV3ICopdjsKIC0gKFdlYkZyYW1lVmlldyAqKXdlYkZyYW1lVmlldzsKIC0g
KHZvaWQpc2V0RGF0YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWQ7CkBAIC0yNzcsMTIgKzI3NCw2
IEBAIE5TU3RyaW5nICpXZWJQYWdlQ2FjaGVEb2N1bWVudFZpZXdLZXkgPSAKICAgICBkYXRhU291
cmNlID0gZDsKIH0KIAotLSAoV2ViVmlldyAqKXdlYlZpZXcgeyByZXR1cm4gd2ViVmlldzsgfQot
LSAodm9pZClzZXRXZWJWaWV3OiAoV2ViVmlldyAqKXd2Ci17Ci0gICAgd2ViVmlldyA9IHd2OyAv
LyBub3QgcmV0YWluZWQgKHlldCkKLX0KLQogLSAoV2ViRGF0YVNvdXJjZSAqKXByb3Zpc2lvbmFs
RGF0YVNvdXJjZSB7IHJldHVybiBwcm92aXNpb25hbERhdGFTb3VyY2U7IH0KIC0gKHZvaWQpc2V0
UHJvdmlzaW9uYWxEYXRhU291cmNlOiAoV2ViRGF0YVNvdXJjZSAqKWQKIHsKQEAgLTQzNSwxMyAr
NDI2LDYgQEAgc3RhdGljIGlubGluZSBXZWJGcmFtZSAqRnJhbWUoV2ViQ29yZUZyYQogICAgIFtu
ZXdEYXRhU291cmNlIHJlbGVhc2VdOwogfQogCi0tICh2b2lkKV9zZXRXZWJWaWV3OihXZWJWaWV3
ICopdgotewotICAgIC8vIFRvIHNldCB0byBuaWwsIHdlIGhhdmUgdG8gdXNlIF9kZXRhY2hGcm9t
UGFyZW50LCBub3QgdGhpcy4KLSAgICBBU1NFUlQodik7Ci0gICAgW19wcml2YXRlIHNldFdlYlZp
ZXc6dl07Ci19Ci0KIC8vIGhlbHBlciBtZXRob2QgdXNlZCBpbiB2YXJpb3VzIG5hdiBjYXNlcyBi
ZWxvdwogLSAodm9pZClfYWRkQmFja0ZvcndhcmRJdGVtQ2xpcHBlZEF0VGFyZ2V0OihCT09MKWRv
Q2xpcAogewpAQCAtNTczLDEwICs1NTcsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkZyYW1lICpGcmFt
ZShXZWJDb3JlRnJhCiAgICAgW3NlbGYgX2RldGFjaENoaWxkcmVuXTsKIAogICAgIFtfcHJpdmF0
ZSBzZXRXZWJWaWV3Om5pbF07Ci0gICAgW19wcml2YXRlLT53ZWJGcmFtZVZpZXcgX3NldFdlYlZp
ZXc6bmlsXTsKICAgICBbX3ByaXZhdGUtPndlYkZyYW1lVmlldyBfc2V0V2ViRnJhbWU6bmlsXTsg
Ly8gbmVlZGVkIGZvciBub3cgdG8gYmUgY29tcGF0aWJsZSB3LyBvbGQgYmVoYXZpb3IKLSAgICBb
X3ByaXZhdGUtPmRhdGFTb3VyY2UgX3NldFdlYlZpZXc6bmlsXTsKLSAgICBbX3ByaXZhdGUtPnBy
b3Zpc2lvbmFsRGF0YVNvdXJjZSBfc2V0V2ViVmlldzpuaWxdOwogCiAgICAgW3NlbGYgX3NldERh
dGFTb3VyY2U6bmlsXTsKICAgICBbX3ByaXZhdGUgc2V0V2ViRnJhbWVWaWV3Om5pbF07CkBAIC02
MjksNyArNjEwLDYgQEAgc3RhdGljIGlubGluZSBXZWJGcmFtZSAqRnJhbWUoV2ViQ29yZUZyYQog
ICAgIH0KIAogICAgIFtfcHJpdmF0ZSBzZXREYXRhU291cmNlOmRzXTsKLSAgICBbZHMgX3NldFdl
YlZpZXc6W3NlbGYgd2ViVmlld11dOwogICAgIFtkcyBfc2V0V2ViRnJhbWU6c2VsZl07CiB9CiAK
QEAgLTIzMzEsOCArMjMxMSw3IEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGltZU9mTGFzdENv
bXBsZXQKICAgICBXZWJGcmFtZSAqcGFyZW50RnJhbWUgPSBbc2VsZiBwYXJlbnRGcmFtZV07CiAg
ICAgaWYgKHBhcmVudEZyYW1lKQogICAgICAgICBbbmV3RGF0YVNvdXJjZSBfc2V0T3ZlcnJpZGVF
bmNvZGluZzpbW3BhcmVudEZyYW1lIGRhdGFTb3VyY2VdIF9vdmVycmlkZUVuY29kaW5nXV07Ci0g
ICAgW25ld0RhdGFTb3VyY2UgX3NldFdlYlZpZXc6W3NlbGYgd2ViVmlld11dOwotICAgIC8vIEZJ
WE1FOiBzaG91bGRuJ3QgdGhpcyBzZXQgdGhlIFdlYkZyYW1lIHRvbz8gd2hvIHNldHMgaXQ/Cisg
ICAgW25ld0RhdGFTb3VyY2UgX3NldFdlYkZyYW1lOnNlbGZdOwogCiAgICAgW3NlbGYgX2ludmFs
aWRhdGVQZW5kaW5nUG9saWN5RGVjaXNpb25DYWxsaW5nRGVmYXVsdEFjdGlvbjpZRVNdOwogCkBA
IC0yNDgyLDEyICsyNDYxLDEwIEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGltZU9mTGFzdENv
bXBsZXQKIAogICAgIF9wcml2YXRlID0gW1tXZWJGcmFtZVByaXZhdGUgYWxsb2NdIGluaXRdOwog
Ci0gICAgW3NlbGYgX3NldFdlYlZpZXc6dl07CiAgICAgX3ByaXZhdGUtPmJyaWRnZSA9IGJyaWRn
ZTsKIAogICAgIGlmIChmdikgewogICAgICAgICBbX3ByaXZhdGUgc2V0V2ViRnJhbWVWaWV3OmZ2
XTsKLSAgICAgICAgW2Z2IF9zZXRXZWJWaWV3OnZdOwogICAgICAgICBbZnYgX3NldFdlYkZyYW1l
OnNlbGZdOwogICAgIH0KICAgICAKQEAgLTI4MTcsMTAgKzI3OTQsNiBAQCBzdGF0aWMgQ0ZBYnNv
bHV0ZVRpbWUgX3RpbWVPZkxhc3RDb21wbGV0CiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbc2Vs
ZiBfZGV0YWNoRnJvbVBhcmVudF07Ci0gICAgW19wcml2YXRlLT53ZWJGcmFtZVZpZXcgX3NldFdl
YlZpZXc6bmlsXTsKLSAgICBbX3ByaXZhdGUtPmRhdGFTb3VyY2UgX3NldFdlYlZpZXc6bmlsXTsK
LSAgICBbX3ByaXZhdGUtPnByb3Zpc2lvbmFsRGF0YVNvdXJjZSBfc2V0V2ViVmlldzpuaWxdOwot
CiAgICAgW19wcml2YXRlIHJlbGVhc2VdOwogCiAgICAgLS1XZWJGcmFtZUNvdW50OwpAQCAtMjgz
MiwxMCArMjgwNSw2IEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGltZU9mTGFzdENvbXBsZXQK
IHsKICAgICAvLyBGSVhNRTogU2hvdWxkIG5vdCBkbyB0aGlzIHdvcmsgYXQgZmluYWxpemUgdGlt
ZS4gTmVlZCB0byBkbyBpdCBhdCBhIHByZWRpY3RhYmxlIHRpbWUgaW5zdGVhZC4KICAgICBbc2Vs
ZiBfZGV0YWNoRnJvbVBhcmVudF07Ci0gICAgW19wcml2YXRlLT53ZWJGcmFtZVZpZXcgX3NldFdl
YlZpZXc6bmlsXTsKLSAgICBbX3ByaXZhdGUtPmRhdGFTb3VyY2UgX3NldFdlYlZpZXc6bmlsXTsK
LSAgICBbX3ByaXZhdGUtPnByb3Zpc2lvbmFsRGF0YVNvdXJjZSBfc2V0V2ViVmlldzpuaWxdOwot
CiAgICAgLS1XZWJGcmFtZUNvdW50OwogCiAgICAgW3N1cGVyIGZpbmFsaXplXTsKQEAgLTI4NTMs
NyArMjgyMiw3IEBAIHN0YXRpYyBDRkFic29sdXRlVGltZSBfdGltZU9mTGFzdENvbXBsZXQKIAog
LSAoV2ViVmlldyAqKXdlYlZpZXcKIHsKLSAgICByZXR1cm4gW19wcml2YXRlIHdlYlZpZXddOwor
ICAgIHJldHVybiBbW3NlbGYgX2JyaWRnZV0gd2ViVmlld107CiB9CiAKIC0gKERPTURvY3VtZW50
ICopRE9NRG9jdW1lbnQKSW5kZXg6IFdlYlZpZXcuc3VicHJvai9XZWJEYXRhU291cmNlLm0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViVmlldy5zdWJwcm9qL1dlYkRhdGFTb3VyY2UubQkocmV2aXNpb24gMTI1
ODYpCisrKyBXZWJWaWV3LnN1YnByb2ovV2ViRGF0YVNvdXJjZS5tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjEsNyArMTIxLDcgQEAKICAgICAgICAgcmV0dXJuIFtyZXNvdXJjZSBfZmlsZVdyYXBwZXJS
ZXByZXNlbnRhdGlvbl07CiAgICAgfQogICAgICAgICAKLSAgICBOU0NhY2hlZFVSTFJlc3BvbnNl
ICpjYWNoZWRSZXNwb25zZSA9IFtfcHJpdmF0ZS0+d2ViVmlldyBfY2FjaGVkUmVzcG9uc2VGb3JV
Ukw6VVJMXTsKKyAgICBOU0NhY2hlZFVSTFJlc3BvbnNlICpjYWNoZWRSZXNwb25zZSA9IFtbc2Vs
ZiBfd2ViVmlld10gX2NhY2hlZFJlc3BvbnNlRm9yVVJMOlVSTF07CiAgICAgaWYgKGNhY2hlZFJl
c3BvbnNlKSB7CiAgICAgICAgIE5TRmlsZVdyYXBwZXIgKndyYXBwZXIgPSBbW1tOU0ZpbGVXcmFw
cGVyIGFsbG9jXSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6W2NhY2hlZFJlc3BvbnNlIGRh
dGFdXSBhdXRvcmVsZWFzZV07CiAgICAgICAgIFt3cmFwcGVyIHNldFByZWZlcnJlZEZpbGVuYW1l
OltbY2FjaGVkUmVzcG9uc2UgcmVzcG9uc2VdIHN1Z2dlc3RlZEZpbGVuYW1lXV07CkBAIC0yNzgs
NyArMjc4LDcgQEAKIAogLSAoV2ViVmlldyAqKV93ZWJWaWV3CiB7Ci0gICAgcmV0dXJuIF9wcml2
YXRlLT53ZWJWaWV3OworICAgIHJldHVybiBbX3ByaXZhdGUtPndlYkZyYW1lIHdlYlZpZXddOwog
fQogCiAtICh2b2lkKV9zZXRSZXByZXNlbnRhdGlvbjogKGlkPFdlYkRvY3VtZW50UmVwcmVzZW50
YXRpb24+KXJlcHJlc2VudGF0aW9uCkBAIC0yOTksOSArMjk5LDkgQEAKICAgICAKICAgICBpZiAo
bG9hZGluZykgewogICAgICAgICBbc2VsZiByZXRhaW5dOwotICAgICAgICBbX3ByaXZhdGUtPndl
YlZpZXcgcmV0YWluXTsKKyAgICAgICAgW1tzZWxmIF93ZWJWaWV3XSByZXRhaW5dOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIFtfcHJpdmF0ZS0+d2ViVmlldyByZWxlYXNlXTsKKyAgICAgICAgW1tz
ZWxmIF93ZWJWaWV3XSByZWxlYXNlXTsKICAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGNs
ZWFuZXN0IHRvIHNldCB3ZWJWaWV3IHRvIG5pbCBoZXJlLiBLZWVwaW5nIGEgbm9uLXJldGFpbmVk
IHJlZmVyZW5jZQogICAgICAgICAvLyB0byB0aGUgV2ViVmlldyBpcyBkYW5nZXJvdXMuIEJ1dCBX
ZWJTdWJyZXNvdXJjZUxvYWRlciBhY3R1YWxseSBkZXBlbmRzIG9uIHRoaXMgbm9uLXJldGFpbmVk
CiAgICAgICAgIC8vIHJlZmVyZW5jZSB3aGVuIHN0YXJ0aW5nIGxvYWRzIGFmdGVyIHRoZSBkYXRh
IHNvdXJjZSBoYXMgc3RvcHBwZWQgbG9hZGluZy4KQEAgLTMxNCwxOSArMzE0LDYgQEAKICAgICBb
c2VsZiBfc2V0TG9hZGluZzpfcHJpdmF0ZS0+bWFpblJlc291cmNlTG9hZGVyIHx8IFtfcHJpdmF0
ZS0+c3VicmVzb3VyY2VMb2FkZXJzIGNvdW50XV07CiB9CiAKLS0gKHZvaWQpX3NldFdlYlZpZXc6
KFdlYlZpZXcgKil3ZWJWaWV3Ci17Ci0gICAgaWYgKF9wcml2YXRlLT5sb2FkaW5nKSB7Ci0gICAg
ICAgIFt3ZWJWaWV3IHJldGFpbl07Ci0gICAgICAgIFtfcHJpdmF0ZS0+d2ViVmlldyByZWxlYXNl
XTsKLSAgICB9Ci0gICAgX3ByaXZhdGUtPndlYlZpZXcgPSB3ZWJWaWV3OwotICAgIAotICAgIFtz
ZWxmIF9kZWZlcnNDYWxsYmFja3NDaGFuZ2VkXTsKLSAgICAvLyBubyBuZWVkIHRvIGRvIF9kZWZl
cnNDYWxsYmFja3NDaGFuZ2VkIGZvciBzdWJmcmFtZXMgc2luY2UgdGhleSB0b28KLSAgICAvLyB3
aWxsIGJlIG9yIGhhdmUgYmVlbiB0b2xkIG9mIHRoZWlyIFdlYlZpZXcKLX0KLQogLSAodm9pZClf
c2V0RGF0YTooTlNEYXRhICopZGF0YQogewogICAgIFtkYXRhIHJldGFpbl07CkBAIC00MjYsMTAg
KzQxMywxMCBAQAogICAgIAogICAgIFtzZWxmIF9zZXRMb2FkaW5nOllFU107CiAKLSAgICBbX3By
aXZhdGUtPndlYlZpZXcgX3Byb2dyZXNzU3RhcnRlZDpbc2VsZiB3ZWJGcmFtZV1dOworICAgIFtb
c2VsZiBfd2ViVmlld10gX3Byb2dyZXNzU3RhcnRlZDpbc2VsZiB3ZWJGcmFtZV1dOwogICAgIAot
ICAgIFtfcHJpdmF0ZS0+d2ViVmlldyBfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTpb
c2VsZiB3ZWJGcmFtZV1dOwotICAgIFtbX3ByaXZhdGUtPndlYlZpZXcgX2ZyYW1lTG9hZERlbGVn
YXRlRm9yd2FyZGVyXSB3ZWJWaWV3Ol9wcml2YXRlLT53ZWJWaWV3CisgICAgW1tzZWxmIF93ZWJW
aWV3XSBfZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTpbc2VsZiB3ZWJGcmFtZV1dOwor
ICAgIFtbW3NlbGYgX3dlYlZpZXddIF9mcmFtZUxvYWREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmll
dzpbc2VsZiBfd2ViVmlld10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOltzZWxmIHdlYkZyYW1lXV07CiAKICAgICBp
ZiAocGFnZUNhY2hlKXsKQEAgLTQzOSwxMSArNDI2LDExIEBACiAgICAgICAgIF9wcml2YXRlLT5s
b2FkaW5nRnJvbVBhZ2VDYWNoZSA9IE5POwogICAgICAgICAKICAgICAgICAgaWQgaWRlbnRpZmll
cjsKLSAgICAgICAgaWQgcmVzb3VyY2VMb2FkRGVsZWdhdGUgPSBbX3ByaXZhdGUtPndlYlZpZXcg
cmVzb3VyY2VMb2FkRGVsZWdhdGVdOworICAgICAgICBpZCByZXNvdXJjZUxvYWREZWxlZ2F0ZSA9
IFtbc2VsZiBfd2ViVmlld10gcmVzb3VyY2VMb2FkRGVsZWdhdGVdOwogICAgICAgICBpZiAoW3Jl
c291cmNlTG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpp
ZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3Q6ZnJvbURhdGFTb3VyY2U6KV0pCi0gICAgICAgICAg
ICBpZGVudGlmaWVyID0gW3Jlc291cmNlTG9hZERlbGVnYXRlIHdlYlZpZXc6X3ByaXZhdGUtPndl
YlZpZXcgaWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0Ol9wcml2YXRlLT5vcmlnaW5hbFJlcXVl
c3QgZnJvbURhdGFTb3VyY2U6c2VsZl07CisgICAgICAgICAgICBpZGVudGlmaWVyID0gW3Jlc291
cmNlTG9hZERlbGVnYXRlIHdlYlZpZXc6W3NlbGYgX3dlYlZpZXddIGlkZW50aWZpZXJGb3JJbml0
aWFsUmVxdWVzdDpfcHJpdmF0ZS0+b3JpZ2luYWxSZXF1ZXN0IGZyb21EYXRhU291cmNlOnNlbGZd
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBpZGVudGlmaWVyID0gW1tXZWJEZWZhdWx0UmVz
b3VyY2VMb2FkRGVsZWdhdGUgc2hhcmVkUmVzb3VyY2VMb2FkRGVsZWdhdGVdIHdlYlZpZXc6X3By
aXZhdGUtPndlYlZpZXcgaWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0Ol9wcml2YXRlLT5vcmln
aW5hbFJlcXVlc3QgZnJvbURhdGFTb3VyY2U6c2VsZl07CisgICAgICAgICAgICBpZGVudGlmaWVy
ID0gW1tXZWJEZWZhdWx0UmVzb3VyY2VMb2FkRGVsZWdhdGUgc2hhcmVkUmVzb3VyY2VMb2FkRGVs
ZWdhdGVdIHdlYlZpZXc6W3NlbGYgX3dlYlZpZXddIGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVz
dDpfcHJpdmF0ZS0+b3JpZ2luYWxSZXF1ZXN0IGZyb21EYXRhU291cmNlOnNlbGZdOwogICAgICAg
ICAgICAgCiAgICAgICAgIF9wcml2YXRlLT5tYWluUmVzb3VyY2VMb2FkZXIgPSBbW1dlYk1haW5S
ZXNvdXJjZUxvYWRlciBhbGxvY10gaW5pdFdpdGhEYXRhU291cmNlOnNlbGZdOwogICAgICAgICBb
X3ByaXZhdGUtPm1haW5SZXNvdXJjZUxvYWRlciBzZXRTdXBwb3J0c011bHRpcGFydENvbnRlbnQ6
X3ByaXZhdGUtPnN1cHBvcnRzTXVsdGlwYXJ0Q29udGVudF07CkBAIC01MzQsMTAgKzUyMSwxMCBA
QAogICAgIGlmICghdHJpbW1lZCB8fCBbdHJpbW1lZCBsZW5ndGhdID09IDApCiAgICAgICAgIHJl
dHVybjsKICAgICAgICAgCi0gICAgW19wcml2YXRlLT53ZWJWaWV3IF93aWxsQ2hhbmdlVmFsdWVG
b3JLZXk6X1dlYk1haW5GcmFtZVRpdGxlS2V5XTsKKyAgICBbW3NlbGYgX3dlYlZpZXddIF93aWxs
Q2hhbmdlVmFsdWVGb3JLZXk6X1dlYk1haW5GcmFtZVRpdGxlS2V5XTsKICAgICBbX3ByaXZhdGUt
PnBhZ2VUaXRsZSByZWxlYXNlXTsKICAgICBfcHJpdmF0ZS0+cGFnZVRpdGxlID0gW3RyaW1tZWQg
Y29weV07Ci0gICAgW19wcml2YXRlLT53ZWJWaWV3IF9kaWRDaGFuZ2VWYWx1ZUZvcktleTpfV2Vi
TWFpbkZyYW1lVGl0bGVLZXldOworICAgIFtbc2VsZiBfd2ViVmlld10gX2RpZENoYW5nZVZhbHVl
Rm9yS2V5Ol9XZWJNYWluRnJhbWVUaXRsZUtleV07CiAgICAgCiAgICAgLy8gVGhlIHRpdGxlIGRv
ZXNuJ3QgZ2V0IGNvbW11bmljYXRlZCB0byB0aGUgV2ViVmlldyB1bnRpbCB3ZSBhcmUgY29tbWl0
dGVkLgogICAgIGlmIChfcHJpdmF0ZS0+Y29tbWl0dGVkKSB7CkBAIC01NTAsNyArNTM3LDcgQEAK
ICAgICAgICAgICAgIC8vIGl0IGhhcyB0aGUgcmlnaHQgbm90aW9uIG9mIHRoZSBjdXJyZW50IGIv
ZiBpdGVtLgogICAgICAgICAgICAgW1tzZWxmIHdlYkZyYW1lXSBfc2V0VGl0bGU6X3ByaXZhdGUt
PnBhZ2VUaXRsZV07CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFtbX3ByaXZhdGUtPndlYlZp
ZXcgX2ZyYW1lTG9hZERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Ol9wcml2YXRlLT53ZWJWaWV3
CisgICAgICAgICAgICBbW1tzZWxmIF93ZWJWaWV3XSBfZnJhbWVMb2FkRGVsZWdhdGVGb3J3YXJk
ZXJdIHdlYlZpZXc6W3NlbGYgX3dlYlZpZXddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVUaXRsZTpfcHJpdmF0ZS0+cGFnZVRp
dGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3JGcmFtZTpbc2VsZiB3ZWJGcmFtZV1dOwogICAgICAgICB9CkBAIC02MDcsNyAr
NTk0LDcgQEAKICAgICAvLyBBbHNvLCBkb24ndCBzZW5kIGl0IHdoZW4gcmVwbGFjaW5nIHVucmVh
Y2hhYmxlIFVSTHMgd2l0aCBhbHRlcm5hdGUgY29udGVudC4KICAgICBpZiAoIWhhbmRsaW5nVW5y
ZWFjaGFibGVVUkwgJiYgIVtbb2xkUmVxdWVzdCBVUkxdIGlzRXF1YWw6IFtyZXF1ZXN0IFVSTF1d
KSB7CiAgICAgICAgIExPRyhSZWRpcmVjdCwgIlNlcnZlciByZWRpcmVjdCB0bzogJUAiLCBbcmVx
dWVzdCBVUkxdKTsKLSAgICAgICAgW1tfcHJpdmF0ZS0+d2ViVmlldyBfZnJhbWVMb2FkRGVsZWdh
dGVGb3J3YXJkZXJdIHdlYlZpZXc6X3ByaXZhdGUtPndlYlZpZXcKKyAgICAgICAgW1tbc2VsZiBf
d2ViVmlld10gX2ZyYW1lTG9hZERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OltzZWxmIF93ZWJW
aWV3XQogICAgICAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lOltzZWxmIHdlYkZyYW1lXV07CiAgICAgfQogICAgICAgICAK
QEAgLTgyNCwxNiArODExLDE2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFz
cyhOU00KICAgICBbaWNvbkRCIF9zZXRJY29uVVJMOltpY29uVVJMIF93ZWJfb3JpZ2luYWxEYXRh
QXNTdHJpbmddIGZvclVSTDpbW1tzZWxmIF9vcmlnaW5hbFJlcXVlc3RdIFVSTF0gX3dlYl9vcmln
aW5hbERhdGFBc1N0cmluZ11dOwogCiAgICAgCi0gICAgaWYgKFtzZWxmIHdlYkZyYW1lXSA9PSBb
X3ByaXZhdGUtPndlYlZpZXcgbWFpbkZyYW1lXSkKLSAgICAgICAgW19wcml2YXRlLT53ZWJWaWV3
IF93aWxsQ2hhbmdlVmFsdWVGb3JLZXk6X1dlYk1haW5GcmFtZUljb25LZXldOworICAgIGlmIChb
c2VsZiB3ZWJGcmFtZV0gPT0gW1tzZWxmIF93ZWJWaWV3XSBtYWluRnJhbWVdKQorICAgICAgICBb
W3NlbGYgX3dlYlZpZXddIF93aWxsQ2hhbmdlVmFsdWVGb3JLZXk6X1dlYk1haW5GcmFtZUljb25L
ZXldOwogICAgIAogICAgIE5TSW1hZ2UgKmljb24gPSBbaWNvbkRCIGljb25Gb3JVUkw6W1tzZWxm
IF9VUkxdIF93ZWJfb3JpZ2luYWxEYXRhQXNTdHJpbmddIHdpdGhTaXplOldlYkljb25TbWFsbFNp
emVdOwotICAgIFtbX3ByaXZhdGUtPndlYlZpZXcgX2ZyYW1lTG9hZERlbGVnYXRlRm9yd2FyZGVy
XSB3ZWJWaWV3Ol9wcml2YXRlLT53ZWJWaWV3CisgICAgW1tbc2VsZiBfd2ViVmlld10gX2ZyYW1l
TG9hZERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OltzZWxmIF93ZWJWaWV3XQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZUlj
b246aWNvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yRnJhbWU6W3NlbGYgd2ViRnJhbWVdXTsKICAgICAKLSAgICBpZiAoW3Nl
bGYgd2ViRnJhbWVdID09IFtfcHJpdmF0ZS0+d2ViVmlldyBtYWluRnJhbWVdKQotICAgICAgICBb
X3ByaXZhdGUtPndlYlZpZXcgX2RpZENoYW5nZVZhbHVlRm9yS2V5Ol9XZWJNYWluRnJhbWVJY29u
S2V5XTsKKyAgICBpZiAoW3NlbGYgd2ViRnJhbWVdID09IFtbc2VsZiBfd2ViVmlld10gbWFpbkZy
YW1lXSkKKyAgICAgICAgW1tzZWxmIF93ZWJWaWV3XSBfZGlkQ2hhbmdlVmFsdWVGb3JLZXk6X1dl
Yk1haW5GcmFtZUljb25LZXldOwogfQogCiAtICh2b2lkKV9pY29uTG9hZGVyUmVjZWl2ZWRQYWdl
SWNvbjooV2ViSWNvbkxvYWRlciAqKWljb25Mb2FkZXIKQEAgLTg5Myw3ICs4ODAsNyBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAKIC0gKHZvaWQpX2RlZmVyc0Nh
bGxiYWNrc0NoYW5nZWQKIHsKLSAgICBCT09MIGRlZmVycyA9IFtfcHJpdmF0ZS0+d2ViVmlldyBk
ZWZlcnNDYWxsYmFja3NdOworICAgIEJPT0wgZGVmZXJzID0gW1tzZWxmIF93ZWJWaWV3XSBkZWZl
cnNDYWxsYmFja3NdOwogICAgIAogICAgIGlmIChkZWZlcnMgPT0gX3ByaXZhdGUtPmRlZmVyc0Nh
bGxiYWNrcykgewogICAgICAgICByZXR1cm47CkBAIC05ODgsNiArOTc1LDEwIEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU00KICAgICBbZnJhbWUgcmV0YWluXTsKICAg
ICBbX3ByaXZhdGUtPndlYkZyYW1lIHJlbGVhc2VdOwogICAgIF9wcml2YXRlLT53ZWJGcmFtZSA9
IGZyYW1lOworCisgICAgW3NlbGYgX2RlZmVyc0NhbGxiYWNrc0NoYW5nZWRdOworICAgIC8vIG5v
IG5lZWQgdG8gZG8gX2RlZmVyc0NhbGxiYWNrc0NoYW5nZWQgZm9yIHN1YmZyYW1lcyBzaW5jZSB0
aGV5IHRvbworICAgIC8vIHdpbGwgYmUgb3IgaGF2ZSBiZWVuIHRvbGQgb2YgdGhlaXIgV2ViRnJh
bWUKIH0KIAogLy8gTWF5IHJldHVybiBuaWwgaWYgbm90IGluaXRpYWxpemVkIHdpdGggYSBVUkwu
CkluZGV4OiBXZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYlBhZ2VCcmlkZ2UubQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYlBhZ2VCcmlkZ2UubQkocmV2aXNpb24gMTI1
ODYpCisrKyBXZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYlBhZ2VCcmlkZ2UubQkod29ya2luZyBj
b3B5KQpAQCAtMjgsMTIgKzI4LDIxIEBACiAKICNpbXBvcnQgPFdlYktpdC9XZWJQYWdlQnJpZGdl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVCcmlkZ2UuaD4KKyNpbXBvcnQgPFdlYktpdC9X
ZWJWaWV3Lmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQYWdlQnJpZGdlCiAKLS0gKGlkKWluaXRX
aXRoTWFpbkZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgdmlldzooV2ViRnJhbWVWaWV3
ICopZnJhbWVWaWV3CistIChpZClpbml0V2l0aE1haW5GcmFtZU5hbWU6KE5TU3RyaW5nICopZnJh
bWVOYW1lIHdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGZyYW1lVmlldzooV2ViRnJhbWVWaWV3
ICopZnJhbWVWaWV3CiB7Ci0gICAgcmV0dXJuIFtzdXBlciBpbml0V2l0aE1haW5GcmFtZTpbW1tX
ZWJGcmFtZUJyaWRnZSBhbGxvY10gaW5pdFdpdGhGcmFtZU5hbWU6ZnJhbWVOYW1lIHZpZXc6ZnJh
bWVWaWV3XSBhdXRvcmVsZWFzZV1dOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhNYWluRnJh
bWU6W1tbV2ViRnJhbWVCcmlkZ2UgYWxsb2NdIGluaXRXaXRoUGFnZTpzZWxmIHdlYlZpZXc6d2Vi
VmlldyBmcmFtZU5hbWU6ZnJhbWVOYW1lIHZpZXc6ZnJhbWVWaWV3XSBhdXRvcmVsZWFzZV1dOwor
ICAgIGlmIChzZWxmKQorICAgICAgICBfd2ViVmlldyA9IHdlYlZpZXc7CisgICAgcmV0dXJuIHNl
bGY7Cit9CisKKy0gKFdlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAgcmV0dXJuIF93ZWJWaWV3Owog
fQogCiBAZW5kCkluZGV4OiBXZWJDb3JlU3VwcG9ydC5zdWJwcm9qL1dlYkZyYW1lQnJpZGdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZVN1cHBvcnQuc3VicHJvai9XZWJGcmFtZUJyaWRnZS5oCShy
ZXZpc2lvbiAxMjU4NikKKysrIFdlYkNvcmVTdXBwb3J0LnN1YnByb2ovV2ViRnJhbWVCcmlkZ2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVGcmFtZUJyaWRnZS5oPgogCitAY2xhc3MgV2ViUGFnZUJyaWRnZTsKIEBjbGFzcyBXZWJE
YXRhU291cmNlOwogQGNsYXNzIFdlYkZyYW1lOwogQGNsYXNzIFdlYkZyYW1lVmlldzsKQEAgLTM2
LDYgKzM3LDggQEAKIEBpbnRlcmZhY2UgV2ViRnJhbWVCcmlkZ2UgOiBXZWJDb3JlRnJhbWVCcmlk
Z2UgPFdlYkNvcmVGcmFtZUJyaWRnZT4KIHsKICAgICBXZWJGcmFtZSAqX2ZyYW1lOworICAgIFdl
YlBhZ2VCcmlkZ2UgKl9wYWdlOworCiAgICAgV2ViQ29yZUtleWJvYXJkVUlNb2RlIF9rZXlib2Fy
ZFVJTW9kZTsKICAgICBCT09MIF9rZXlib2FyZFVJTW9kZUFjY2Vzc2VkOwogICAgIEJPT0wgX2Rv
aW5nQ2xpZW50UmVkaXJlY3Q7CkBAIC00NSw3ICs0OCw3IEBACiAgICAgTlNEaWN0aW9uYXJ5ICps
YXN0RGFzaGJvYXJkUmVnaW9uczsKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZU5hbWU6KE5TU3Ry
aW5nICopbmFtZSB2aWV3OihXZWJGcmFtZVZpZXcgKil2aWV3IDsKKy0gKGlkKWluaXRXaXRoUGFn
ZTooV2ViUGFnZUJyaWRnZSAqKXBhZ2Ugd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZnJhbWVO
YW1lOihOU1N0cmluZyAqKW5hbWUgdmlldzooV2ViRnJhbWVWaWV3ICopdmlldzsKIC0gKHZvaWQp
Y2xvc2U7CiAKIC0gKHZvaWQpcmVjZWl2ZWREYXRhOihOU0RhdGEgKilkYXRhIHRleHRFbmNvZGlu
Z05hbWU6KE5TU3RyaW5nICopdGV4dEVuY29kaW5nTmFtZTsKQEAgLTUzLDUgKzU2LDYgQEAKIC0g
KEJPT0wpaW5OZXh0S2V5Vmlld091dHNpZGVXZWJGcmFtZVZpZXdzOwogCiAtIChXZWJGcmFtZSAq
KXdlYkZyYW1lOworLSAoV2ViUGFnZUJyaWRnZSAqKXBhZ2U7CiAKIEBlbmQKSW5kZXg6IFdlYkNv
cmVTdXBwb3J0LnN1YnByb2ovV2ViRnJhbWVCcmlkZ2UubQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
U3VwcG9ydC5zdWJwcm9qL1dlYkZyYW1lQnJpZGdlLm0JKHJldmlzaW9uIDEyNTg2KQorKysgV2Vi
Q29yZVN1cHBvcnQuc3VicHJvai9XZWJGcmFtZUJyaWRnZS5tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTYsMTQgKzExNiwxMyBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVyS2V5ID0gICBAIldl
CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJGcmFtZUJyaWRnZQogCi0tIChpZClpbml0V2l0aEZyYW1l
TmFtZTooTlNTdHJpbmcgKiluYW1lIHZpZXc6KFdlYkZyYW1lVmlldyAqKXZpZXcgCistIChpZClp
bml0V2l0aFBhZ2U6KFdlYlBhZ2VCcmlkZ2UgKilwYWdlIHdlYlZpZXc6KFdlYlZpZXcgKil3ZWJW
aWV3IGZyYW1lTmFtZTooTlNTdHJpbmcgKiluYW1lIHZpZXc6KFdlYkZyYW1lVmlldyAqKXZpZXcK
IHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogCiAgICAgKytXZWJCcmlkZ2VDb3VudDsKICAg
ICAKLSAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW3ZpZXcgX3dlYlZpZXddOwotCisgICAgX3BhZ2Ug
PSBwYWdlOwogICAgIF9mcmFtZSA9IFtbV2ViRnJhbWUgYWxsb2NdIF9pbml0V2l0aFdlYkZyYW1l
Vmlldzp2aWV3IHdlYlZpZXc6d2ViVmlldyBicmlkZ2U6c2VsZl07CiAKICAgICBbc2VsZiBzZXRO
YW1lOm5hbWVdOwpAQCAtMTY3LDE2ICsxNjYsMjEgQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNvbnRh
aW5lcktleSA9ICAgQCJXZQogICAgIHJldHVybiBfZnJhbWU7CiB9CiAKKy0gKFdlYlBhZ2VCcmlk
Z2UgKilwYWdlOworeworICAgIHJldHVybiBfcGFnZTsKK30KKwogLSAoV2ViQ29yZUZyYW1lQnJp
ZGdlICopbWFpbkZyYW1lCiB7CiAgICAgQVNTRVJUKF9mcmFtZSAhPSBuaWwpOwotICAgIHJldHVy
biBbW1tfZnJhbWUgd2ViVmlld10gbWFpbkZyYW1lXSBfYnJpZGdlXTsKKyAgICByZXR1cm4gW1tb
X3BhZ2Ugd2ViVmlld10gbWFpbkZyYW1lXSBfYnJpZGdlXTsKIH0KIAogLSAoV2ViVmlldyAqKXdl
YlZpZXcKIHsKLSAgICBBU1NFUlQoX2ZyYW1lICE9IG5pbCk7Ci0gICAgcmV0dXJuIFtfZnJhbWUg
d2ViVmlld107CisgICAgQVNTRVJUKF9wYWdlKTsKKyAgICByZXR1cm4gW19wYWdlIHdlYlZpZXdd
OwogfQogCiAtIChOU1ZpZXcgKilkb2N1bWVudFZpZXcKQEAgLTE5Niw3ICsyMDAsNyBAQCBOU1N0
cmluZyAqV2ViUGx1Z2luQ29udGFpbmVyS2V5ID0gICBAIldlCiAgICAgICAgIFtyZXF1ZXN0IF93
ZWJfc2V0SFRUUFJlZmVycmVyOltzZWxmIHJlZmVycmVyXV07CiAgICAgfQogCi0gICAgV2ViVmll
dyAqY3VycmVudFdlYlZpZXcgPSBbX2ZyYW1lIHdlYlZpZXddOworICAgIFdlYlZpZXcgKmN1cnJl
bnRXZWJWaWV3ID0gW19wYWdlIHdlYlZpZXddOwogICAgIGlkIHdkID0gW2N1cnJlbnRXZWJWaWV3
IFVJRGVsZWdhdGVdOwogICAgIFdlYlZpZXcgKm5ld1dlYlZpZXcgPSBuaWw7CiAgICAgCkBAIC0y
MTEsMTQgKzIxNSwxNCBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVyS2V5ID0gICBAIldl
CiAKIC0gKHZvaWQpc2hvd1dpbmRvdwogewotICAgIFdlYlZpZXcgKnd2ID0gW19mcmFtZSB3ZWJW
aWV3XTsKKyAgICBXZWJWaWV3ICp3diA9IFtfcGFnZSB3ZWJWaWV3XTsKICAgICBbW3d2IF9VSURl
bGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzogd3ZdOwogfQogCiAtIChCT09MKWFyZVRvb2xi
YXJzVmlzaWJsZQogewogICAgIEFTU0VSVChfZnJhbWUgIT0gbmlsKTsKLSAgICBXZWJWaWV3ICp3
diA9IFtfZnJhbWUgd2ViVmlld107CisgICAgV2ViVmlldyAqd3YgPSBbX3BhZ2Ugd2ViVmlld107
CiAgICAgaWQgd2QgPSBbd3YgVUlEZWxlZ2F0ZV07CiAgICAgaWYgKFt3ZCByZXNwb25kc1RvU2Vs
ZWN0b3I6IEBzZWxlY3Rvcih3ZWJWaWV3QXJlVG9vbGJhcnNWaXNpYmxlOildKQogICAgICAgICBy
ZXR1cm4gW3dkIHdlYlZpZXdBcmVUb29sYmFyc1Zpc2libGU6IHd2XTsKQEAgLTIyOCw3ICsyMzIs
NyBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVyS2V5ID0gICBAIldlCiAtICh2b2lkKXNl
dFRvb2xiYXJzVmlzaWJsZTooQk9PTCl2aXNpYmxlCiB7CiAgICAgQVNTRVJUKF9mcmFtZSAhPSBu
aWwpOwotICAgIFdlYlZpZXcgKnd2ID0gW19mcmFtZSB3ZWJWaWV3XTsKKyAgICBXZWJWaWV3ICp3
diA9IFtfcGFnZSB3ZWJWaWV3XTsKICAgICBbW3d2IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3Ond2IHNldFRvb2xiYXJzVmlzaWJsZTp2aXNpYmxlXTsKIH0KIApAQCAtMjQ3LDcgKzI1MSw3
IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UKIC0gKEJPT0wpaXNT
dGF0dXNiYXJWaXNpYmxlCiB7CiAgICAgQVNTRVJUKF9mcmFtZSAhPSBuaWwpOwotICAgIFdlYlZp
ZXcgKnd2ID0gW19mcmFtZSB3ZWJWaWV3XTsKKyAgICBXZWJWaWV3ICp3diA9IFtfcGFnZSB3ZWJW
aWV3XTsKICAgICBpZCB3ZCA9IFt3diBVSURlbGVnYXRlXTsKICAgICBpZiAoW3dkIHJlc3BvbmRz
VG9TZWxlY3RvcjogQHNlbGVjdG9yKHdlYlZpZXdJc1N0YXR1c0JhclZpc2libGU6KV0pCiAgICAg
ICAgIHJldHVybiBbd2Qgd2ViVmlld0lzU3RhdHVzQmFyVmlzaWJsZTp3dl07CkBAIC0yNTcsNjMg
KzI2MSw2MyBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVyS2V5ID0gICBAIldlCiAtICh2
b2lkKXNldFN0YXR1c2JhclZpc2libGU6KEJPT0wpdmlzaWJsZQogewogICAgIEFTU0VSVChfZnJh
bWUgIT0gbmlsKTsKLSAgICBXZWJWaWV3ICp3diA9IFtfZnJhbWUgd2ViVmlld107CisgICAgV2Vi
VmlldyAqd3YgPSBbX3BhZ2Ugd2ViVmlld107CiAgICAgW1t3diBfVUlEZWxlZ2F0ZUZvcndhcmRl
cl0gd2ViVmlldzp3diBzZXRTdGF0dXNCYXJWaXNpYmxlOnZpc2libGVdOwogfQogCiAtICh2b2lk
KXNldFdpbmRvd0ZyYW1lOihOU1JlY3QpZnJhbWVSZWN0CiB7CiAgICAgQVNTRVJUKF9mcmFtZSAh
PSBuaWwpOwotICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbX2ZyYW1lIHdlYlZpZXddOworICAgIFdl
YlZpZXcgKndlYlZpZXcgPSBbX3BhZ2Ugd2ViVmlld107CiAgICAgW1t3ZWJWaWV3IF9VSURlbGVn
YXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcgc2V0RnJhbWU6ZnJhbWVSZWN0XTsKIH0KIAog
LSAoTlNSZWN0KXdpbmRvd0ZyYW1lCiB7CiAgICAgQVNTRVJUKF9mcmFtZSAhPSBuaWwpOwotICAg
IFdlYlZpZXcgKndlYlZpZXcgPSBbX2ZyYW1lIHdlYlZpZXddOworICAgIFdlYlZpZXcgKndlYlZp
ZXcgPSBbX3BhZ2Ugd2ViVmlld107CiAgICAgcmV0dXJuIFtbd2ViVmlldyBfVUlEZWxlZ2F0ZUZv
cndhcmRlcl0gd2ViVmlld0ZyYW1lOndlYlZpZXddOwogfQogCiAtICh2b2lkKXNldFdpbmRvd0Nv
bnRlbnRSZWN0OihOU1JlY3QpY29udGVudFJlY3QKIHsKICAgICBBU1NFUlQoX2ZyYW1lICE9IG5p
bCk7Ci0gICAgV2ViVmlldyAqd2ViVmlldyA9IFtfZnJhbWUgd2ViVmlld107CisgICAgV2ViVmll
dyAqd2ViVmlldyA9IFtfcGFnZSB3ZWJWaWV3XTsKICAgICBbW3dlYlZpZXcgX1VJRGVsZWdhdGVG
b3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldyBzZXRGcmFtZTpjb250ZW50UmVjdF07CiB9CiAKIC0g
KE5TUmVjdCl3aW5kb3dDb250ZW50UmVjdAogewogICAgIEFTU0VSVChfZnJhbWUgIT0gbmlsKTsK
LSAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW19mcmFtZSB3ZWJWaWV3XTsKKyAgICBXZWJWaWV3ICp3
ZWJWaWV3ID0gW19wYWdlIHdlYlZpZXddOwogICAgIHJldHVybiBbW3dlYlZpZXcgX1VJRGVsZWdh
dGVGb3J3YXJkZXJdIHdlYlZpZXdDb250ZW50UmVjdDp3ZWJWaWV3XTsKIH0KIAogLSAodm9pZClz
ZXRXaW5kb3dJc1Jlc2l6YWJsZTooQk9PTClyZXNpemFibGUKIHsKICAgICBBU1NFUlQoX2ZyYW1l
ICE9IG5pbCk7Ci0gICAgV2ViVmlldyAqd2ViVmlldyA9IFtfZnJhbWUgd2ViVmlld107CisgICAg
V2ViVmlldyAqd2ViVmlldyA9IFtfcGFnZSB3ZWJWaWV3XTsKICAgICBbW3dlYlZpZXcgX1VJRGVs
ZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldyBzZXRSZXNpemFibGU6cmVzaXphYmxlXTsK
IH0KIAogLSAoQk9PTCl3aW5kb3dJc1Jlc2l6YWJsZQogewogICAgIEFTU0VSVChfZnJhbWUgIT0g
bmlsKTsKLSAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW19mcmFtZSB3ZWJWaWV3XTsKKyAgICBXZWJW
aWV3ICp3ZWJWaWV3ID0gW19wYWdlIHdlYlZpZXddOwogICAgIHJldHVybiBbW3dlYlZpZXcgX1VJ
RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdJc1Jlc2l6YWJsZTp3ZWJWaWV3XTsKIH0KIAogLSAo
TlNSZXNwb25kZXIgKilmaXJzdFJlc3BvbmRlcgogewogICAgIEFTU0VSVChfZnJhbWUgIT0gbmls
KTsKLSAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW19mcmFtZSB3ZWJWaWV3XTsKKyAgICBXZWJWaWV3
ICp3ZWJWaWV3ID0gW19wYWdlIHdlYlZpZXddOwogICAgIHJldHVybiBbW3dlYlZpZXcgX1VJRGVs
ZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXdGaXJzdFJlc3BvbmRlcjp3ZWJWaWV3XTsKIH0KIAogLSAo
dm9pZCltYWtlRmlyc3RSZXNwb25kZXI6KE5TUmVzcG9uZGVyICopdmlldwogewogICAgIEFTU0VS
VChfZnJhbWUgIT0gbmlsKTsKLSAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW19mcmFtZSB3ZWJWaWV3
XTsKKyAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW19wYWdlIHdlYlZpZXddOwogICAgIFt3ZWJWaWV3
IF9wdXNoUGVyZm9ybWluZ1Byb2dyYW1tYXRpY0ZvY3VzXTsKICAgICBbW3dlYlZpZXcgX1VJRGVs
ZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldyBtYWtlRmlyc3RSZXNwb25kZXI6dmlld107
CiAgICAgW3dlYlZpZXcgX3BvcFBlcmZvcm1pbmdQcm9ncmFtbWF0aWNGb2N1c107CkBAIC0zMzIs
NyArMzM2LDcgQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktleSA9ICAgQCJXZQogCiAt
ICh2b2lkKWNsb3NlV2luZG93U29vbgogewotICAgIFdlYlZpZXcgKnBhcmVudFdlYlZpZXcgPSBb
X2ZyYW1lIHdlYlZpZXddOworICAgIFdlYlZpZXcgKnBhcmVudFdlYlZpZXcgPSBbX3BhZ2Ugd2Vi
Vmlld107CiAKICAgICAvLyBXZSBuZWVkIHRvIHJlbW92ZSB0aGUgcGFyZW50IFdlYlZpZXcgZnJv
bSBXZWJWaWV3U2V0cyBoZXJlLCBiZWZvcmUgaXQgYWN0dWFsbHkKICAgICAvLyBjbG9zZXMsIHRv
IG1ha2Ugc3VyZSB0aGF0IEphdmFTY3JpcHQgY29kZSB0aGF0IGV4ZWN1dGVzIGJlZm9yZSBpdCBj
bG9zZXMKQEAgLTM2MCw3ICszNjQsNyBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVyS2V5
ID0gICBAIldlCiAKIC0gKHZvaWQpcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZToo
TlNTdHJpbmcgKiltZXNzYWdlCiB7Ci0gICAgV2ViVmlldyAqd3YgPSBbX2ZyYW1lIHdlYlZpZXdd
OworICAgIFdlYlZpZXcgKnd2ID0gW19wYWdlIHdlYlZpZXddOwogICAgIGlkIHdkID0gW3d2IFVJ
RGVsZWdhdGVdOwogICAgIC8vIENoZWNrIHdoZXRoZXIgZGVsZWdhdGUgaW1wbGVtZW50cyBuZXcg
dmVyc2lvbiwgdGhlbiB3aGV0aGVyIGRlbGVnYXRlIGltcGxlbWVudHMgb2xkIHZlcnNpb24uIElm
IG5laXRoZXIsCiAgICAgLy8gZmFsbCBiYWNrIHRvIHNoYXJlZCBkZWxlZ2F0ZSdzIGltcGxlbWVu
dGF0aW9uIG9mIG5ldyB2ZXJzaW9uLgpAQCAtMzc0LDcgKzM3OCw3IEBAIE5TU3RyaW5nICpXZWJQ
bHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UKIAogLSAoQk9PTClydW5KYXZhU2NyaXB0Q29uZmly
bVBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZQogewotICAgIFdlYlZpZXcgKnd2
ID0gW19mcmFtZSB3ZWJWaWV3XTsKKyAgICBXZWJWaWV3ICp3diA9IFtfcGFnZSB3ZWJWaWV3XTsK
ICAgICBpZCB3ZCA9IFt3diBVSURlbGVnYXRlXTsKICAgICAvLyBDaGVjayB3aGV0aGVyIGRlbGVn
YXRlIGltcGxlbWVudHMgbmV3IHZlcnNpb24sIHRoZW4gd2hldGhlciBkZWxlZ2F0ZSBpbXBsZW1l
bnRzIG9sZCB2ZXJzaW9uLiBJZiBuZWl0aGVyLAogICAgIC8vIGZhbGwgYmFjayB0byBzaGFyZWQg
ZGVsZWdhdGUncyBpbXBsZW1lbnRhdGlvbiBvZiBuZXcgdmVyc2lvbi4KQEAgLTM4NywxNCArMzkx
LDE0IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UKIAogLSAoQk9P
TCljYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwKIHsKLSAgICBXZWJWaWV3ICp3diA9IFtf
ZnJhbWUgd2ViVmlld107CisgICAgV2ViVmlldyAqd3YgPSBbX3BhZ2Ugd2ViVmlld107CiAgICAg
aWQgd2QgPSBbd3YgVUlEZWxlZ2F0ZV07CiAgICAgcmV0dXJuIFt3ZCByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3Nh
Z2U6aW5pdGlhdGVkQnlGcmFtZTopXTsKIH0KIAogLSAoQk9PTClydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlCiB7Ci0gICAgV2ViVmlldyAq
d3YgPSBbX2ZyYW1lIHdlYlZpZXddOworICAgIFdlYlZpZXcgKnd2ID0gW19wYWdlIHdlYlZpZXdd
OwogICAgIGlkIHdkID0gW3d2IFVJRGVsZWdhdGVdOwogICAgIGlmIChbd2QgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhN
ZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KV0pCiAgICAgICAgIHJldHVybiBbd2Qgd2ViVmlldzp3
diBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTptZXNzYWdlIGluaXRpYXRl
ZEJ5RnJhbWU6X2ZyYW1lXTsKQEAgLTQwMyw3ICs0MDcsNyBAQCBOU1N0cmluZyAqV2ViUGx1Z2lu
Q29udGFpbmVyS2V5ID0gICBAIldlCiAKIC0gKEJPT0wpcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBh
bmVsV2l0aFByb21wdDooTlNTdHJpbmcgKilwcm9tcHQgZGVmYXVsdFRleHQ6KE5TU3RyaW5nICop
ZGVmYXVsdFRleHQgcmV0dXJuaW5nVGV4dDooTlNTdHJpbmcgKiopcmVzdWx0CiB7Ci0gICAgV2Vi
VmlldyAqd3YgPSBbX2ZyYW1lIHdlYlZpZXddOworICAgIFdlYlZpZXcgKnd2ID0gW19wYWdlIHdl
YlZpZXddOwogICAgIGlkIHdkID0gW3d2IFVJRGVsZWdhdGVdOwogICAgIC8vIENoZWNrIHdoZXRo
ZXIgZGVsZWdhdGUgaW1wbGVtZW50cyBuZXcgdmVyc2lvbiwgdGhlbiB3aGV0aGVyIGRlbGVnYXRl
IGltcGxlbWVudHMgb2xkIHZlcnNpb24uIElmIG5laXRoZXIsCiAgICAgLy8gZmFsbCBiYWNrIHRv
IHNoYXJlZCBkZWxlZ2F0ZSdzIGltcGxlbWVudGF0aW9uIG9mIG5ldyB2ZXJzaW9uLgpAQCAtNDE4
LDcgKzQyMiw3IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UKIAog
LSAodm9pZClhZGRNZXNzYWdlVG9Db25zb2xlOihOU0RpY3Rpb25hcnkgKiltZXNzYWdlCiB7Ci0g
ICAgV2ViVmlldyAqd3YgPSBbX2ZyYW1lIHdlYlZpZXddOworICAgIFdlYlZpZXcgKnd2ID0gW19w
YWdlIHdlYlZpZXddOwogICAgIGlkIHdkID0gW3d2IFVJRGVsZWdhdGVdOwogICAgIGlmIChbd2Qg
cmVzcG9uZHNUb1NlbGVjdG9yOiBAc2VsZWN0b3Iod2ViVmlldzphZGRNZXNzYWdlVG9Db25zb2xl
OildKQogICAgICAgICBbd2Qgd2ViVmlldzp3diBhZGRNZXNzYWdlVG9Db25zb2xlOm1lc3NhZ2Vd
OwpAQCAtNDMxLDcgKzQzNSw3IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJLZXkgPSAg
IEAiV2UKIAogLSAodm9pZClydW5PcGVuUGFuZWxGb3JGaWxlQnV0dG9uV2l0aFJlc3VsdExpc3Rl
bmVyOihpZDxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4pcmVzdWx0TGlzdGVuZXIKIHsKLSAg
ICBXZWJWaWV3ICp3diA9IFtfZnJhbWUgd2ViVmlld107CisgICAgV2ViVmlldyAqd3YgPSBbX3Bh
Z2Ugd2ViVmlld107CiAgICAgW1t3diBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3diBy
dW5PcGVuUGFuZWxGb3JGaWxlQnV0dG9uV2l0aFJlc3VsdExpc3RlbmVyOnJlc3VsdExpc3RlbmVy
XTsKIH0KIApAQCAtNDU1LDcgKzQ1OSw3IEBAIE5TU3RyaW5nICpXZWJQbHVnaW5Db250YWluZXJL
ZXkgPSAgIEAiV2UKIC0gKHZvaWQpc2V0U3RhdHVzVGV4dDooTlNTdHJpbmcgKilzdGF0dXMKIHsK
ICAgICBBU1NFUlQoX2ZyYW1lICE9IG5pbCk7Ci0gICAgV2ViVmlldyAqd3YgPSBbX2ZyYW1lIHdl
YlZpZXddOworICAgIFdlYlZpZXcgKnd2ID0gW19wYWdlIHdlYlZpZXddOwogICAgIFtbd3YgX1VJ
RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d3Ygc2V0U3RhdHVzVGV4dDpzdGF0dXNdOwogfQog
CkBAIC00NzYsOSArNDgwLDggQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktleSA9ICAg
QCJXZQogewogICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBXZWJWaWV3
LCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbgogICAgIC8vIG9uVW5sb2Fk
IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKFtbc2VsZiBkYXRhU291
cmNlXSBfd2ViVmlld10gPT0gbmlsKSB7CisgICAgaWYgKFtbc2VsZiB3ZWJGcmFtZV0gd2ViVmll
d10gPT0gbmlsKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIH0KIAogICAgIC8vIFNpbmNlIHRo
aXMgaXMgYSBzdWJyZXNvdXJjZSwgd2UgY2FuIGxvYWQgYW55IFVSTCAod2UgaWdub3JlIHRoZSBy
ZXR1cm4gdmFsdWUpLgogICAgIC8vIEJ1dCB3ZSBzdGlsbCB3YW50IHRvIGtub3cgd2hldGhlciB3
ZSBzaG91bGQgaGlkZSB0aGUgcmVmZXJyZXIgb3Igbm90LCBzbyB3ZSBjYWxsIHRoZSBjYW5Mb2Fk
VVJMIG1ldGhvZC4KQEAgLTQ5Niw5ICs0OTksOCBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFp
bmVyS2V5ID0gICBAIldlCiB7CiAgICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0
byBhIFdlYlZpZXcsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuCiAgICAg
Ly8gb25VbmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoW1tz
ZWxmIGRhdGFTb3VyY2VdIF93ZWJWaWV3XSA9PSBuaWwpIHsKKyAgICBpZiAoW1tzZWxmIHdlYkZy
YW1lXSB3ZWJWaWV3XSA9PSBuaWwpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQogCiAgICAg
Ly8gU2luY2UgdGhpcyBpcyBhIHN1YnJlc291cmNlLCB3ZSBjYW4gbG9hZCBhbnkgVVJMICh3ZSBp
Z25vcmUgdGhlIHJldHVybiB2YWx1ZSkuCiAgICAgLy8gQnV0IHdlIHN0aWxsIHdhbnQgdG8ga25v
dyB3aGV0aGVyIHdlIHNob3VsZCBoaWRlIHRoZSByZWZlcnJlciBvciBub3QsIHNvIHdlIGNhbGwg
dGhlIGNhbkxvYWRVUkwgbWV0aG9kLgpAQCAtNTUwLDcgKzU1Miw3IEBAIE5TU3RyaW5nICpXZWJQ
bHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UKICAgICBpZiAoIWhpZGVSZWZlcnJlcikKICAgICAg
ICAgW3JlcXVlc3QgX3dlYl9zZXRIVFRQUmVmZXJyZXI6W3NlbGYgcmVmZXJyZXJdXTsKICAgICAK
LSAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW19mcmFtZSB3ZWJWaWV3XTsKKyAgICBXZWJWaWV3ICp3
ZWJWaWV3ID0gW19wYWdlIHdlYlZpZXddOwogICAgIFtyZXF1ZXN0IHNldE1haW5Eb2N1bWVudFVS
TDpbW1tbd2ViVmlldyBtYWluRnJhbWVdIGRhdGFTb3VyY2VdIHJlcXVlc3RdIFVSTF1dOwogICAg
IFtyZXF1ZXN0IF93ZWJfc2V0SFRUUFVzZXJBZ2VudDpbd2ViVmlldyB1c2VyQWdlbnRGb3JVUkw6
W3JlcXVlc3QgVVJMXV1dOwogICAgIApAQCAtNjQxLDcgKzY0Myw3IEBAIE5TU3RyaW5nICpXZWJQ
bHVnaW5Db250YWluZXJLZXkgPSAgIEAiV2UKIAogLSAodm9pZClmb2N1c1dpbmRvdwogewotICAg
IFtbW19mcmFtZSB3ZWJWaWV3XSBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlld0ZvY3VzOltf
ZnJhbWUgd2ViVmlld11dOworICAgIFtbW19wYWdlIHdlYlZpZXddIF9VSURlbGVnYXRlRm9yd2Fy
ZGVyXSB3ZWJWaWV3Rm9jdXM6W19wYWdlIHdlYlZpZXddXTsKIH0KIAogLSAodm9pZCl1bmZvY3Vz
V2luZG93CkBAIC03NjMsNyArNzY1LDcgQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktl
eSA9ICAgQCJXZQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgQVNTRVJUKF9mcmFtZSAhPSBu
aWwpOwotICAgIFdlYkZyYW1lICpuZXdGcmFtZSA9IFtbX2ZyYW1lIHdlYlZpZXddIF9jcmVhdGVG
cmFtZU5hbWVkOmZyYW1lTmFtZSBpblBhcmVudDpfZnJhbWUgYWxsb3dzU2Nyb2xsaW5nOmFsbG93
c1Njcm9sbGluZ107CisgICAgV2ViRnJhbWUgKm5ld0ZyYW1lID0gW1tfcGFnZSB3ZWJWaWV3XSBf
Y3JlYXRlRnJhbWVOYW1lZDpmcmFtZU5hbWUgaW5QYXJlbnQ6X2ZyYW1lIGFsbG93c1Njcm9sbGlu
ZzphbGxvd3NTY3JvbGxpbmddOwogICAgIGlmIChuZXdGcmFtZSA9PSBuaWwpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAgICAgCkBAIC04MDcsNyArODA5LDcgQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNv
bnRhaW5lcktleSA9ICAgQCJXZQogCiAtIChOU1N0cmluZyAqKXVzZXJBZ2VudEZvclVSTDooTlNV
UkwgKilVUkwKIHsKLSAgICByZXR1cm4gW1tfZnJhbWUgd2ViVmlld10gdXNlckFnZW50Rm9yVVJM
OlVSTF07CisgICAgcmV0dXJuIFtbX3BhZ2Ugd2ViVmlld10gdXNlckFnZW50Rm9yVVJMOlVSTF07
CiB9CiAKIC0gKEJPT0wpaW5OZXh0S2V5Vmlld091dHNpZGVXZWJGcmFtZVZpZXdzCkBAIC04MjYs
NyArODI4LDcgQEAgTlNTdHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktleSA9ICAgQCJXZQogICAg
IH0KICAgICAKICAgICBfaW5OZXh0S2V5Vmlld091dHNpZGVXZWJGcmFtZVZpZXdzID0gWUVTOwot
ICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbX2ZyYW1lIHdlYlZpZXddOworICAgIFdlYlZpZXcgKndl
YlZpZXcgPSBbX3BhZ2Ugd2ViVmlld107CiAgICAgLy8gRG8gbm90IGFzayB3ZWJWaWV3IGZvciBp
dHMgbmV4dCBrZXkgdmlldywgYnV0IHJhdGhlciwgYXNrIGl0IGZvciAKICAgICAvLyB0aGUgbmV4
dCBrZXkgdmlldyBvZiB0aGUgbGFzdCB2aWV3IGluIGl0cyBrZXkgdmlldyBsb29wLgogICAgIC8v
IERvaW5nIHNvIGdpdmVzIHVzIHRoZSBjb3JyZWN0IGFuc3dlciBhcyBjYWxjdWxhdGVkIGJ5IEFw
cEtpdCwgCkBAIC04NDksMTkgKzg1MSwxOSBAQCBOU1N0cmluZyAqV2ViUGx1Z2luQ29udGFpbmVy
S2V5ID0gICBAIldlCiAKIC0gKE5TVmlldyAqKXByZXZpb3VzS2V5Vmlld091dHNpZGVXZWJGcmFt
ZVZpZXdzCiB7Ci0gICAgV2ViVmlldyAqd2ViVmlldyA9IFtfZnJhbWUgd2ViVmlld107CisgICAg
V2ViVmlldyAqd2ViVmlldyA9IFtfcGFnZSB3ZWJWaWV3XTsKICAgICBOU1ZpZXcgKnByZXZpb3Vz
S2V5VmlldyA9IFt3ZWJWaWV3IHByZXZpb3VzS2V5Vmlld107CiAgICAgcmV0dXJuIHByZXZpb3Vz
S2V5VmlldzsKIH0KIAogLSAoQk9PTClkZWZlcnNMb2FkaW5nCiB7Ci0gICAgcmV0dXJuIFtbX2Zy
YW1lIHdlYlZpZXddIGRlZmVyc0NhbGxiYWNrc107CisgICAgcmV0dXJuIFtbX3BhZ2Ugd2ViVmll
d10gZGVmZXJzQ2FsbGJhY2tzXTsKIH0KIAogLSAodm9pZClzZXREZWZlcnNMb2FkaW5nOihCT09M
KWRlZmVycwogewotICAgIFtbX2ZyYW1lIHdlYlZpZXddIHNldERlZmVyc0NhbGxiYWNrczpkZWZl
cnNdOworICAgIFtbX3BhZ2Ugd2ViVmlld10gc2V0RGVmZXJzQ2FsbGJhY2tzOmRlZmVyc107CiB9
CiAKIC0gKHZvaWQpc2V0TmVlZHNSZWFwcGx5U3R5bGVzCkBAIC05NjAsNyArOTYyLDcgQEAgTlNT
dHJpbmcgKldlYlBsdWdpbkNvbnRhaW5lcktleSA9ICAgQCJXZQogICAgIE5TVmlldyAqdmlldyA9
IG5pbDsKICAgICBpbnQgZXJyb3JDb2RlID0gMDsKIAotICAgIFdlYlZpZXcgKnd2ID0gW19mcmFt
ZSB3ZWJWaWV3XTsKKyAgICBXZWJWaWV3ICp3diA9IFtfcGFnZSB3ZWJWaWV3XTsKICAgICBpZCB3
ZCA9IFt3diBVSURlbGVnYXRlXTsKIAogICAgIGlmIChbd2QgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcih3ZWJWaWV3OnBsdWdJblZpZXdXaXRoQXJndW1lbnRzOildKSB7CkBAIC0xMDk5LDcg
KzExMDEsNyBAQCBzdGF0aWMgQk9PTCBsb2dnZWRPYmplY3RDYWNoZVNpemUgPSBOTzsKIAogLSAo
V2ViUHJlZmVyZW5jZXMgKilfcHJlZmVyZW5jZXMKIHsKLSAgICBXZWJQcmVmZXJlbmNlcyAqcHJl
ZnMgPSBbW19mcmFtZSB3ZWJWaWV3XSBwcmVmZXJlbmNlc107CisgICAgV2ViUHJlZmVyZW5jZXMg
KnByZWZzID0gW1tfcGFnZSB3ZWJWaWV3XSBwcmVmZXJlbmNlc107CiAgICAgaWYgKHByZWZzID09
IG5pbCkgewogICAgICAgICBwcmVmcyA9IFtXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVu
Y2VzXTsKICAgICB9CkBAIC0xMjE3LDEyICsxMjE5LDEyIEBAIHN0YXRpYyBCT09MIGxvZ2dlZE9i
amVjdENhY2hlU2l6ZSA9IE5POwogCiAtIChCT09MKXNlbGVjdFdvcmRCZWZvcmVNZW51RXZlbnQK
IHsKLSAgICByZXR1cm4gW1tfZnJhbWUgd2ViVmlld10gX3NlbGVjdFdvcmRCZWZvcmVNZW51RXZl
bnRdOworICAgIHJldHVybiBbW19wYWdlIHdlYlZpZXddIF9zZWxlY3RXb3JkQmVmb3JlTWVudUV2
ZW50XTsKIH0KIAogLSAoaW50KWhpc3RvcnlMZW5ndGgKIHsKLSAgICByZXR1cm4gW1tbX2ZyYW1l
IHdlYlZpZXddIGJhY2tGb3J3YXJkTGlzdF0gYmFja0xpc3RDb3VudF0gKyAxOworICAgIHJldHVy
biBbW1tfcGFnZSB3ZWJWaWV3XSBiYWNrRm9yd2FyZExpc3RdIGJhY2tMaXN0Q291bnRdICsgMTsK
IH0KIAogLSAoQk9PTCljYW5Hb0JhY2tPckZvcndhcmQ6KGludClkaXN0YW5jZQpAQCAtMTIzMCwx
MCArMTIzMiwxMCBAQCBzdGF0aWMgQk9PTCBsb2dnZWRPYmplY3RDYWNoZVNpemUgPSBOTzsKICAg
ICBpZiAoZGlzdGFuY2UgPT0gMCkKICAgICAgICAgcmV0dXJuIFRSVUU7CiAKLSAgICBpZiAoZGlz
dGFuY2UgPiAwICYmIGRpc3RhbmNlIDw9IFtbW19mcmFtZSB3ZWJWaWV3XSBiYWNrRm9yd2FyZExp
c3RdIGZvcndhcmRMaXN0Q291bnRdKQorICAgIGlmIChkaXN0YW5jZSA+IDAgJiYgZGlzdGFuY2Ug
PD0gW1tbX3BhZ2Ugd2ViVmlld10gYmFja0ZvcndhcmRMaXN0XSBmb3J3YXJkTGlzdENvdW50XSkK
ICAgICAgICAgcmV0dXJuIFRSVUU7CiAKLSAgICBpZiAoZGlzdGFuY2UgPCAwICYmIC1kaXN0YW5j
ZSA8PSBbW1tfZnJhbWUgd2ViVmlld10gYmFja0ZvcndhcmRMaXN0XSBiYWNrTGlzdENvdW50XSkK
KyAgICBpZiAoZGlzdGFuY2UgPCAwICYmIC1kaXN0YW5jZSA8PSBbW1tfcGFnZSB3ZWJWaWV3XSBi
YWNrRm9yd2FyZExpc3RdIGJhY2tMaXN0Q291bnRdKQogICAgICAgICByZXR1cm4gVFJVRTsKICAg
ICAKICAgICByZXR1cm4gRkFMU0U7CkBAIC0xMjQ0LDcgKzEyNDYsNyBAQCBzdGF0aWMgQk9PTCBs
b2dnZWRPYmplY3RDYWNoZVNpemUgPSBOTzsKICAgICBpZiAoZGlzdGFuY2UgPT0gMCkgewogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbX2ZyYW1lIHdlYlZp
ZXddOworICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbX3BhZ2Ugd2ViVmlld107CiAgICAgV2ViQmFj
a0ZvcndhcmRMaXN0ICpsaXN0ID0gW3dlYlZpZXcgYmFja0ZvcndhcmRMaXN0XTsKICAgICBXZWJI
aXN0b3J5SXRlbSAqaXRlbSA9IFtsaXN0IGl0ZW1BdEluZGV4OmRpc3RhbmNlXTsKICAgICBpZiAo
IWl0ZW0pIHsKQEAgLTEzNjYsMTUgKzEzNjgsMTUgQEAgc3RhdGljIGlkIDxXZWJGb3JtRGVsZWdh
dGU+IGZvcm1EZWxlZ2F0ZQogCiAtICh2b2lkKXByaW50CiB7Ci0gICAgaWQgd2QgPSBbW19mcmFt
ZSB3ZWJWaWV3XSBVSURlbGVnYXRlXTsKKyAgICBpZCB3ZCA9IFtbX3BhZ2Ugd2ViVmlld10gVUlE
ZWxlZ2F0ZV07CiAgICAgCiAgICAgaWYgKFt3ZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHdlYlZpZXc6cHJpbnRGcmFtZVZpZXc6KV0pIHsKLSAgICAgICAgW3dkIHdlYlZpZXc6W19mcmFt
ZSB3ZWJWaWV3XSBwcmludEZyYW1lVmlldzpbX2ZyYW1lIGZyYW1lVmlld11dOworICAgICAgICBb
d2Qgd2ViVmlldzpbX3BhZ2Ugd2ViVmlld10gcHJpbnRGcmFtZVZpZXc6W19mcmFtZSBmcmFtZVZp
ZXddXTsKICAgICB9IGVsc2UgaWYgKFt3ZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdl
YlZpZXdQcmludDopXSkgewogICAgICAgICAvLyBCYWNrd2FyZC1jb21wYXRpYmxlLCBidXQgd2Vi
Vmlld1ByaW50OiB3YXMgbmV2ZXIgcHVibGljLCBzbyBwcm9iYWJseSBub3QgbmVlZGVkLgotICAg
ICAgICBbd2Qgd2ViVmlld1ByaW50OltfZnJhbWUgd2ViVmlld11dOworICAgICAgICBbd2Qgd2Vi
Vmlld1ByaW50OltfcGFnZSB3ZWJWaWV3XV07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgW1tXZWJE
ZWZhdWx0VUlEZWxlZ2F0ZSBzaGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3OltfZnJhbWUgd2ViVmll
d10gcHJpbnRGcmFtZVZpZXc6W19mcmFtZSBmcmFtZVZpZXddXTsKKyAgICAgICAgW1tXZWJEZWZh
dWx0VUlEZWxlZ2F0ZSBzaGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3OltfcGFnZSB3ZWJWaWV3XSBw
cmludEZyYW1lVmlldzpbX2ZyYW1lIGZyYW1lVmlld11dOwogICAgIH0KIH0KIApAQCAtMTQwMyw3
ICsxNDA1LDcgQEAgc3RhdGljIGlkIDxXZWJGb3JtRGVsZWdhdGU+IGZvcm1EZWxlZ2F0ZQogICAg
ICAgICAvLyBpbml0aWFsaXplLiAgVGhlIHZpZXcgbWF5IG5vdCB5ZXQgYmUgaW4gdGhlIHdpbmRv
dydzIHZpZXcgCiAgICAgICAgIC8vIGhpZXJhcmNoeSwgc28gd2UgaGF2ZSB0byBwYXNzIHRoZSB3
aW5kb3cgd2hlbiByZXF1ZXN0aW5nCiAgICAgICAgIC8vIHRoZSBhcHBsZXQuCi0gICAgICAgIGFw
cGxldCA9IFt2aWV3IHBvbGxGb3JBcHBsZXRJbldpbmRvdzpbW19mcmFtZSB3ZWJWaWV3XSB3aW5k
b3ddXTsKKyAgICAgICAgYXBwbGV0ID0gW3ZpZXcgcG9sbEZvckFwcGxldEluV2luZG93OltbX3Bh
Z2Ugd2ViVmlld10gd2luZG93XV07CiAgICAgfQogICAgIAogICAgIHJldHVybiBhcHBsZXQ7CkBA
IC0xNDE1LDcgKzE0MTcsNyBAQCBzdGF0aWMgaWQgPFdlYkZvcm1EZWxlZ2F0ZT4gZm9ybURlbGVn
YXRlCiAgICAgaWYgKFt2aWV3IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pIHsK
ICAgICAgICAgWyhXZWJIVE1MVmlldyAqKXZpZXcgX3VwZGF0ZUZvbnRQYW5lbF07CiAgICAgfQot
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlv
bk5hbWU6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W19mcmFtZSB3ZWJWaWV3
XV07CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZp
Y2F0aW9uTmFtZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpbX3BhZ2Ugd2Vi
Vmlld11dOwogfQogCiAtICh2b2lkKXJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24KQEAgLTE0MjQs
MzIgKzE0MjYsMzIgQEAgc3RhdGljIGlkIDxXZWJGb3JtRGVsZWdhdGU+IGZvcm1EZWxlZ2F0ZQog
ICAgIGlmIChbdmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKSB7CiAgICAg
ICAgIFsoV2ViSFRNTFZpZXcgKil2aWV3IF9zZWxlY3Rpb25DaGFuZ2VkXTsKICAgICB9Ci0gICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFt
ZTpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uIG9iamVjdDpbX2ZyYW1lIHdl
YlZpZXddXTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3RO
b3RpZmljYXRpb25OYW1lOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24gb2Jq
ZWN0OltfcGFnZSB3ZWJWaWV3XV07CiB9CiAKIC0gKE5TVW5kb01hbmFnZXIgKil1bmRvTWFuYWdl
cgogewotICAgIHJldHVybiBbW19mcmFtZSB3ZWJWaWV3XSB1bmRvTWFuYWdlcl07CisgICAgcmV0
dXJuIFtbX3BhZ2Ugd2ViVmlld10gdW5kb01hbmFnZXJdOwogfQogCiAtICh2b2lkKWlzc3VlQ3V0
Q29tbWFuZAogewotICAgIFtbX2ZyYW1lIHdlYlZpZXddIGN1dDpuaWxdOworICAgIFtbX3BhZ2Ug
d2ViVmlld10gY3V0Om5pbF07CiB9CiAKIC0gKHZvaWQpaXNzdWVDb3B5Q29tbWFuZAogewotICAg
IFtbX2ZyYW1lIHdlYlZpZXddIGNvcHk6bmlsXTsKKyAgICBbW19wYWdlIHdlYlZpZXddIGNvcHk6
bmlsXTsKIH0KIAogLSAodm9pZClpc3N1ZVBhc3RlQ29tbWFuZAogewotICAgIFtbX2ZyYW1lIHdl
YlZpZXddIHBhc3RlOm5pbF07CisgICAgW1tfcGFnZSB3ZWJWaWV3XSBwYXN0ZTpuaWxdOwogfQog
CiAtICh2b2lkKWlzc3VlUGFzdGVBbmRNYXRjaFN0eWxlQ29tbWFuZAogewotICAgIFtbX2ZyYW1l
IHdlYlZpZXddIHBhc3RlQXNQbGFpblRleHQ6bmlsXTsKKyAgICBbW19wYWdlIHdlYlZpZXddIHBh
c3RlQXNQbGFpblRleHQ6bmlsXTsKIH0KIAogLSAodm9pZClpc3N1ZVRyYW5zcG9zZUNvbW1hbmQK
QEAgLTE0NjIsNyArMTQ2NCw3IEBAIHN0YXRpYyBpZCA8V2ViRm9ybURlbGVnYXRlPiBmb3JtRGVs
ZWdhdGUKIAogLSAoQk9PTCljYW5QYXN0ZQogewotICAgIHJldHVybiBbW19mcmFtZSB3ZWJWaWV3
XSBfY2FuUGFzdGVdOworICAgIHJldHVybiBbW19wYWdlIHdlYlZpZXddIF9jYW5QYXN0ZV07CiB9
CiAKIC0gKHZvaWQpc2V0SXNTZWxlY3RlZDooQk9PTClpc1NlbGVjdGVkIGZvclZpZXc6KE5TVmll
dyAqKXZpZXcKQEAgLTE0NzcsMzIgKzE0NzksMzIgQEAgc3RhdGljIGlkIDxXZWJGb3JtRGVsZWdh
dGU+IGZvcm1EZWxlZ2F0ZQogCiAtIChOU1N0cmluZyAqKW92ZXJyaWRlTWVkaWFUeXBlCiB7Ci0g
ICAgcmV0dXJuIFtbX2ZyYW1lIHdlYlZpZXddIG1lZGlhU3R5bGVdOworICAgIHJldHVybiBbW19w
YWdlIHdlYlZpZXddIG1lZGlhU3R5bGVdOwogfQogCiAtIChCT09MKWlzRWRpdGFibGUKIHsKLSAg
ICByZXR1cm4gW1tfZnJhbWUgd2ViVmlld10gaXNFZGl0YWJsZV07CisgICAgcmV0dXJuIFtbX3Bh
Z2Ugd2ViVmlld10gaXNFZGl0YWJsZV07CiB9CiAKIC0gKEJPT0wpc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZTooRE9NUmFuZ2UgKiljdXJyZW50UmFuZ2UgdG9ET01SYW5nZTooRE9NUmFuZ2Ug
Kilwcm9wb3NlZFJhbmdlIGFmZmluaXR5OihOU1NlbGVjdGlvbkFmZmluaXR5KXNlbGVjdGlvbkFm
ZmluaXR5IHN0aWxsU2VsZWN0aW5nOihCT09MKWZsYWcKIHsKLSAgICByZXR1cm4gW1tfZnJhbWUg
d2ViVmlld10gX3Nob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6Y3VycmVudFJhbmdlIHRvRE9N
UmFuZ2U6cHJvcG9zZWRSYW5nZSBhZmZpbml0eTpzZWxlY3Rpb25BZmZpbml0eSBzdGlsbFNlbGVj
dGluZzpmbGFnXTsKKyAgICByZXR1cm4gW1tfcGFnZSB3ZWJWaWV3XSBfc2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRET01SYW5nZTpjdXJyZW50UmFuZ2UgdG9ET01SYW5nZTpwcm9wb3NlZFJhbmdlIGFmZmlu
aXR5OnNlbGVjdGlvbkFmZmluaXR5IHN0aWxsU2VsZWN0aW5nOmZsYWddOwogfQogCiAtIChCT09M
KXNob3VsZEJlZ2luRWRpdGluZzooRE9NUmFuZ2UgKilyYW5nZQogewotICAgIHJldHVybiBbW19m
cmFtZSB3ZWJWaWV3XSBfc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZTpyYW5nZV07CisgICAg
cmV0dXJuIFtbX3BhZ2Ugd2ViVmlld10gX3Nob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFu
Z2VdOwogfQogCiAtIChCT09MKXNob3VsZEVuZEVkaXRpbmc6KERPTVJhbmdlICopcmFuZ2UKIHsK
LSAgICByZXR1cm4gW1tfZnJhbWUgd2ViVmlld10gX3Nob3VsZEVuZEVkaXRpbmdJbkRPTVJhbmdl
OnJhbmdlXTsKKyAgICByZXR1cm4gW1tfcGFnZSB3ZWJWaWV3XSBfc2hvdWxkRW5kRWRpdGluZ0lu
RE9NUmFuZ2U6cmFuZ2VdOwogfQogCiAtICh2b2lkKXdpbmRvd09iamVjdENsZWFyZWQKIHsKLSAg
ICBXZWJWaWV3ICp3diA9IFtfZnJhbWUgd2ViVmlld107CisgICAgV2ViVmlldyAqd3YgPSBbX3Bh
Z2Ugd2ViVmlld107CiAgICAgW1t3diBfZnJhbWVMb2FkRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZp
ZXc6d3Ygd2luZG93U2NyaXB0T2JqZWN0QXZhaWxhYmxlOltzZWxmIHdpbmRvd1NjcmlwdE9iamVj
dF1dOwogICAgIGlmIChbd3Ygc2NyaXB0RGVidWdEZWxlZ2F0ZV0pIHsKICAgICAgICAgW19mcmFt
ZSBfYXR0YWNoU2NyaXB0RGVidWdnZXJdOwpAQCAtMTUxMSwxOCArMTUxMywxOCBAQCBzdGF0aWMg
aWQgPFdlYkZvcm1EZWxlZ2F0ZT4gZm9ybURlbGVnYXRlCiAKIC0gKGludClzcGVsbENoZWNrZXJE
b2N1bWVudFRhZwogewotICAgIHJldHVybiBbW19mcmFtZSB3ZWJWaWV3XSBzcGVsbENoZWNrZXJE
b2N1bWVudFRhZ107CisgICAgcmV0dXJuIFtbX3BhZ2Ugd2ViVmlld10gc3BlbGxDaGVja2VyRG9j
dW1lbnRUYWddOwogfQogCiAtIChCT09MKWlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
CiB7Ci0gICAgcmV0dXJuIFtbX2ZyYW1lIHdlYlZpZXddIGlzQ29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkXTsKKyAgICByZXR1cm4gW1tfcGFnZSB3ZWJWaWV3XSBpc0NvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZF07CiB9CiAKIC0gKHZvaWQpZGlkRmlyc3RMYXlvdXQKIHsKICAgICBb
X2ZyYW1lIF9kaWRGaXJzdExheW91dF07Ci0gICAgV2ViVmlldyAqd3YgPSBbX2ZyYW1lIHdlYlZp
ZXddOworICAgIFdlYlZpZXcgKnd2ID0gW19wYWdlIHdlYlZpZXddOwogICAgIFtbd3YgX2ZyYW1l
TG9hZERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Ond2IGRpZEZpcnN0TGF5b3V0SW5GcmFtZTpf
ZnJhbWVdOwogfQogCkBAIC0xNTMzLDcgKzE1MzUsNyBAQCBzdGF0aWMgaWQgPFdlYkZvcm1EZWxl
Z2F0ZT4gZm9ybURlbGVnYXRlCiAKIC0gKHZvaWQpZGFzaGJvYXJkUmVnaW9uc0NoYW5nZWQ6KE5T
TXV0YWJsZURpY3Rpb25hcnkgKilyZWdpb25zCiB7Ci0gICAgV2ViVmlldyAqd3YgPSBbX2ZyYW1l
IHdlYlZpZXddOworICAgIFdlYlZpZXcgKnd2ID0gW19wYWdlIHdlYlZpZXddOwogICAgIGlkIHdk
ID0gW3d2IFVJRGVsZWdhdGVdOwogICAgIAogICAgIFt3diBfYWRkU2Nyb2xsZXJEYXNoYm9hcmRS
ZWdpb25zOnJlZ2lvbnNdOwpAQCAtMTY1Miw3ICsxNjU0LDcgQEAgc3RhdGljIE5TQ2hhcmFjdGVy
U2V0ICpfZ2V0UG9zdFNtYXJ0U2V0KAogICAgICAgICBbcmVxdWVzdCBfd2ViX3NldEhUVFBSZWZl
cnJlcjpbc2VsZiByZWZlcnJlcl1dOwogICAgIH0KIAotICAgIFdlYlZpZXcgKmN1cnJlbnRXZWJW
aWV3ID0gW19mcmFtZSB3ZWJWaWV3XTsKKyAgICBXZWJWaWV3ICpjdXJyZW50V2ViVmlldyA9IFtf
cGFnZSB3ZWJWaWV3XTsKICAgICBpZCBVSURlbGVnYXRlID0gW2N1cnJlbnRXZWJWaWV3IFVJRGVs
ZWdhdGVdOwogCiAgICAgV2ViVmlldyAqbmV3V2ViVmlldyA9IG5pbDsKQEAgLTE2NjgsNyArMTY3
MCw3IEBAIHN0YXRpYyBOU0NoYXJhY3RlclNldCAqX2dldFBvc3RTbWFydFNldCgKIAogLSAoQk9P
TCljYW5SdW5Nb2RhbAogewotICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbX2ZyYW1lIHdlYlZpZXdd
OworICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbX3BhZ2Ugd2ViVmlld107CiAgICAgaWQgVUlEZWxl
Z2F0ZSA9IFt3ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIHJldHVybiBbVUlEZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdSdW5Nb2RhbDopXTsKIH0KQEAgLTE2ODMs
NyArMTY4NSw3IEBAIHN0YXRpYyBOU0NoYXJhY3RlclNldCAqX2dldFBvc3RTbWFydFNldCgKICAg
ICBpZiAoIVtzZWxmIGNhblJ1bk1vZGFsXSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViVmll
dyAqd2ViVmlldyA9IFtfZnJhbWUgd2ViVmlld107CisgICAgV2ViVmlldyAqd2ViVmlldyA9IFtf
cGFnZSB3ZWJWaWV3XTsKICAgICBpZiAoW3dlYlZpZXcgZGVmZXJzQ2FsbGJhY2tzXSkgewogICAg
ICAgICBFUlJPUigidHJpZWQgdG8gcnVuIG1vZGFsIGluIGEgdmlldyB3aGVuIGl0IHdhcyBkZWZl
cnJpbmcgY2FsbGJhY2tzIC0tIHNob3VsZCBuZXZlciBoYXBwZW4iKTsKICAgICAgICAgcmV0dXJu
OwpJbmRleDogV2ViQ29yZVN1cHBvcnQuc3VicHJvai9XZWJQYWdlQnJpZGdlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZVN1cHBvcnQuc3VicHJvai9XZWJQYWdlQnJpZGdlLmgJKHJldmlzaW9uIDEy
NTg2KQorKysgV2ViQ29yZVN1cHBvcnQuc3VicHJvai9XZWJQYWdlQnJpZGdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDExICszMCwxNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVQYWdl
QnJpZGdlLmg+CiAKK0BjbGFzcyBXZWJQYWdlQnJpZGdlOwogQGNsYXNzIFdlYkZyYW1lQnJpZGdl
OwogQGNsYXNzIFdlYkZyYW1lVmlldzsKK0BjbGFzcyBXZWJWaWV3OwogCiBAaW50ZXJmYWNlIFdl
YlBhZ2VCcmlkZ2UgOiBXZWJDb3JlUGFnZUJyaWRnZSA8V2ViQ29yZVBhZ2VCcmlkZ2U+Cit7Cisg
ICAgV2ViVmlldyAqX3dlYlZpZXc7Cit9CiAKLS0gKGlkKWluaXRXaXRoTWFpbkZyYW1lTmFtZToo
TlNTdHJpbmcgKilmcmFtZU5hbWUgdmlldzooV2ViRnJhbWVWaWV3ICopZnJhbWVWaWV3OworLSAo
aWQpaW5pdFdpdGhNYWluRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSB3ZWJWaWV3OihX
ZWJWaWV3ICopd2ViVmlldyBmcmFtZVZpZXc6KFdlYkZyYW1lVmlldyAqKWZyYW1lVmlldzsKKy0g
KFdlYlZpZXcgKil3ZWJWaWV3OwogCiBAZW5kCg==
</data>
<flag name="review"
          id="1519"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>