<?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>139793</bug_id>
          
          <creation_ts>2014-12-18 14:01:43 -0800</creation_ts>
          <short_desc>Change page preview loading order, and add a TextIndicator</short_desc>
          <delta_ts>2014-12-18 16:12:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1056887</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-18 14:01:43 -0800</bug_when>
    <thetext>Change page preview loading order, and add a TextIndicator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056888</commentid>
    <comment_count>1</comment_count>
      <attachid>243518</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-18 14:02:26 -0800</bug_when>
    <thetext>Created attachment 243518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056889</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-18 14:03:45 -0800</bug_when>
    <thetext>Attachment 243518 did not pass style-queue:


ERROR: Source/WebCore/platform/spi/mac/NSPopoverSPI.h:41:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/WKPreviewPopoverAnimationController.mm:325:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056890</commentid>
    <comment_count>3</comment_count>
      <attachid>243518</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2014-12-18 14:11:45 -0800</bug_when>
    <thetext>Comment on attachment 243518
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=243518&amp;action=review

&gt; Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:244
&gt; +

Unnecessary whitespace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056892</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-18 14:15:03 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/177522</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056898</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-18 14:30:12 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/177525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056937</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-12-18 16:12:53 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/177539</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243518</attachid>
            <date>2014-12-18 14:02:26 -0800</date>
            <delta_ts>2014-12-18 14:11:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139793-20141218140226.patch</filename>
            <type>text/plain</type>
            <size>57249</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTUyZTg3NDYzMTkzNWRi
ZDM2OGU2ZWFiMDc1OGY3MDk5MWE2MzlhMy4uZGU0ODQ0ZWQwNjE2YjYxOTMyMWZhYmZjYzA0OWI1
NTg5NTZlNTlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEyLTE4ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDaGFuZ2Ug
cGFnZSBwcmV2aWV3IGxvYWRpbmcgb3JkZXIsIGFuZCBhZGQgYSBUZXh0SW5kaWNhdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk3OTMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzE5Mjg4NTQ3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGxhdGZv
cm0vc3BpL21hYy9OU1BvcG92ZXJTUEkuaDoKKyAgICAgICAgQWRkIGFuIGV4cG9ydCBhbmQgc29t
ZSBTUEkuCisKIDIwMTQtMTItMTcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlZi1pZnkgUmFuZ2U6OmNyZWF0ZSgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDUxYzlhMDMx
ZDllNGEyY2UyMWM2NDdjM2YwMDZkZDEzYjNmZTljMjkuLjhjZTNhYTlmNmVkM2VmZWM4YmQ1NTcy
YjEzODI0YWIyNWNjZTNjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDAgQEAKKzIwMTQtMTIt
MTggIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAg
IENoYW5nZSBwYWdlIHByZXZpZXcgbG9hZGluZyBvcmRlciwgYW5kIGFkZCBhIFRleHRJbmRpY2F0
b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTc5
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTkyODg1NDc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL0FjdGlvbk1lbnVIaXRU
ZXN0UmVzdWx0Lmg6CisgICAgICAgICogU2hhcmVkL21hYy9BY3Rpb25NZW51SGl0VGVzdFJlc3Vs
dC5tbToKKyAgICAgICAgKFdlYktpdDo6QWN0aW9uTWVudUhpdFRlc3RSZXN1bHQ6OmVuY29kZSk6
CisgICAgICAgIChXZWJLaXQ6OkFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0OjpkZWNvZGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6cGVyZm9ybUFjdGlvbk1lbnVIaXRUZXN0QXRMb2NhdGlvbik6CisgICAg
ICAgIEJ1aWxkIGEgVGV4dEluZGljYXRvciBmb3IgbGlua3MuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNo
aWxkV2luZG93c10pOgorICAgICAgICAoLVtXS1ZpZXcgX3NldFByZXZpZXdUaXRsZTpdKToKKyAg
ICAgICAgKC1bV0tWaWV3IF9zZXRQcmV2aWV3TG9hZGluZzpdKToKKyAgICAgICAgUmVtb3ZlIHVu
bmVlZGVkIFdLX0FQSV9FTkFCTEVEICNpZnMuCisKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRQcmV2
aWV3T3ZlcnJpZGVJbWFnZTpdKToKKyAgICAgICAgQWRkOyBmb3J3YXJkIHRvIFdLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ciB3aWxsRGVzdHJveVZpZXc6XSk6CisgICAgICAgIFNodXQgZG93biB0aGUgV0tQcmV2aWV3UG9w
b3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIuCisKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXSk6CisgICAgICAgICgtW1dLSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyV2lsbFByZXBh
cmU6XSk6CisgICAgICAgIERvbid0IGJ1aWxkIGFuIGltbWVkaWF0ZSBhY3Rpb24gaXRlbSBoZXJl
OyB3ZSdsbCBhbHdheXMgYnVpbGQgaXQgaW4KKyAgICAgICAgd2lsbEJlZ2luQW5pbWF0aW9uLCBh
bmQgdGhlIG9uZSB3ZSBidWlsZCBoZXJlIGlzIGxpa2VseSB0byBiZSB3cm9uZy4KKworICAgICAg
ICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2RlZmF1bHRBbmltYXRpb25Db250cm9s
bGVyXSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBoaWRlUHJldmll
d10pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgc2V0UHJldmlld1Rp
dGxlOl0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgc2V0UHJldmll
d0xvYWRpbmc6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBzZXRQ
cmV2aWV3T3ZlcnJpZGVJbWFnZTpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yQ3VzdG9tUHJldmlld10pOgorICAgICAgICAo
LVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2NyZWF0ZVByZXZpZXdQb3BvdmVySWZOZWVk
ZWRGb3JVUkw6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlciBwb3BvdmVyV2lsbENsb3NlOl0pOiBEZWxldGVkLgorICAgICAgICAodGFyZ2V0U2l6ZUZp
dHNJbkF2YWlsYWJsZVNwYWNlKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyIGxhcmdlc3RQb3BvdmVyU2l6ZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX3ByZWZlcnJlZFBvcG92ZXJTaXplV2l0aFByZXZp
ZXdQYWRkaW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIgcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjp2aWV3Rm9yUHJldmlld2luZ1VSTDppbml0
aWFsRnJhbWVTaXplOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIgcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjp0aXRsZUZvclByZXZpZXdPZlVSTDpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIHBhZ2VQ
cmV2aWV3Vmlld0NvbnRyb2xsZXJXYXNDbGlja2VkOl0pOiBEZWxldGVkLgorICAgICAgICBNb3Zl
IHByZXZpZXcgcG9wb3ZlciBjb2RlIHRvIFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9s
bGVyLgorICAgICAgICBJbnN0YWxsIGFuZCB1bmluc3RhbGwgdGhlIGxpbmsgdGV4dCBpbmRpY2F0
b3Igd2hlbiBuZWNlc3NhcnkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUGFnZVByZXZp
ZXdWaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tQYWdlUHJldmll
d1ZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xs
ZXIgc2V0TG9hZGluZzpdKToKKyAgICAgICAgKC1bV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
IGxvYWRWaWV3XSk6CisgICAgICAgICgtW1dLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlciByZXBs
YWNlUHJldmlld1dpdGhJbWFnZTphdFNpemU6XSk6CisgICAgICAgIEFsbG93IG92ZXJyaWRpbmcg
dGhlIHByZXZpZXcgd2l0aCBhIGZ1bGwtdmlldyBOU0ltYWdlLgorICAgICAgICBIaWRlIHRoZSBw
cmV2aWV3IHZpZXcgdW50aWwgdGhlIGxvYWRpbmcgc3Bpbm5lciBnb2VzIGF3YXkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyLmguCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1ByZXZpZXdQb3BvdmVy
QW5pbWF0aW9uQ29udHJvbGxlci5tbTogQWRkZWQuCisgICAgICAgICgrW1dLUHJldmlld1BvcG92
ZXJBbmltYXRpb25Db250cm9sbGVyIF9zaG91bGRJbW1lZGlhdGVseVNob3dQcmV2aWV3XSk6Cisg
ICAgICAgICgtW1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIGluaXRXaXRoVVJM
OnZpZXc6cGFnZTpvcmlnaW5SZWN0OmV2ZW50TG9jYXRpb25JblZpZXc6XSk6CisgICAgICAgICgt
W1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIGNsb3NlXSk6CisgICAgICAgICgt
W1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIHNldFByZXZpZXdMb2FkaW5nOl0p
OgorICAgICAgICAoLVtXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciBzZXRQcmV2
aWV3T3ZlcnJpZGVJbWFnZTpdKToKKyAgICAgICAgSWYgd2UgaGF2ZSBzaG93biB0aGUgcG9wb3Zl
ciwgY2hvb3NlIGEgc2l6ZSBzdHJpY3RseSBzbWFsbGVyIHRoYW4KKyAgICAgICAgaXRzIGN1cnJl
bnQgc2l6ZS4KKworICAgICAgICAoLVtXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxl
ciBfaGlkZVByZXZpZXddKToKKyAgICAgICAgKC1bV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNv
bnRyb2xsZXIgc2V0UHJldmlld1RpdGxlOl0pOgorICAgICAgICAoLVtXS1ByZXZpZXdQb3BvdmVy
QW5pbWF0aW9uQ29udHJvbGxlciBfY3JlYXRlUHJldmlld1BvcG92ZXJdKToKKyAgICAgICAgKC1b
V0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgX3Nob3dQcmV2aWV3XSk6CisgICAg
ICAgICh0YXJnZXRTaXplRml0c0luQXZhaWxhYmxlU3BhY2UpOgorICAgICAgICAoLVtXS1ByZXZp
ZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciBsYXJnZXN0UG9wb3ZlclNpemVdKToKKyAgICAg
ICAgKC1bV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgX3RhcmdldFNpemVGb3JQ
YWdlUHJldmlld10pOgorICAgICAgICAoLVtXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJv
bGxlciBfcHJlZmVycmVkUG9wb3ZlclNpemVXaXRoUHJldmlld1BhZGRpbmc6Zm9yVGFyZ2V0U2l6
ZTpdKToKKyAgICAgICAgKC1bV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgX3By
ZXZpZXdXYXRjaGRvZ1RpbWVyRmlyZWQ6XSk6CisgICAgICAgICgtW1dLUHJldmlld1BvcG92ZXJB
bmltYXRpb25Db250cm9sbGVyIHJlY29nbml6ZXJXaWxsQmVnaW5BbmltYXRpb246XSk6CisgICAg
ICAgICgtW1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIHJlY29nbml6ZXJEaWRV
cGRhdGVBbmltYXRpb246XSk6CisgICAgICAgICgtW1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25D
b250cm9sbGVyIHJlY29nbml6ZXJEaWRDYW5jZWxBbmltYXRpb246XSk6CisgICAgICAgICgtW1dL
UHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIHJlY29nbml6ZXJEaWRDb21wbGV0ZUFu
aW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xs
ZXIgcmVjb2duaXplckRpZERpc21pc3NBbmltYXRpb246XSk6CisgICAgICAgICgtW1dLUHJldmll
d1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIHBhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXI6dmll
d0ZvclByZXZpZXdpbmdVUkw6aW5pdGlhbEZyYW1lU2l6ZTpdKToKKyAgICAgICAgKC1bV0tQcmV2
aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjp0
aXRsZUZvclByZXZpZXdPZlVSTDpdKToKKyAgICAgICAgKC1bV0tQcmV2aWV3UG9wb3ZlckFuaW1h
dGlvbkNvbnRyb2xsZXIgcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcldhc0NsaWNrZWQ6XSk6Cisg
ICAgICAgICgtW1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIHBvcG92ZXJXaWxs
Q2xvc2U6XSk6CisgICAgICAgIE1vdmUgY29kZSBpbiBmcm9tIFdLSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlci4KKyAgICAgICAgRm9yd2FyZCBOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXJEZWxlZ2F0ZSBtZXRob2RzCisgICAgICAgIHRvIHRoZSBwb3BvdmVyJ3MgYW5pbWF0aW9u
IGNvbnRyb2xsZXIgaWYgd2UndmUgcG9wcGVkIGl0LgorICAgICAgICBQb3AgdGhlIHBvcG92ZXIg
aWYgd2UndmUgbG9hZGVkIG9yIDEgc2Vjb25kIGhhcyBwYXNzZWQsIHdoaWNoZXZlcgorICAgICAg
ICBjb21lcyBmaXJzdC4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAxNC0xMi0xNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTI4MjUwOD4gV2ViS2l0TGVnYWN5IGlzIHVudXNhYmxl
IGR1ZSB0byBiYWQgZHlsaWIgaWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4NDRk
M2M3Y2VmOTMxMTQwZmE5ODBkODY0MjFhMjNlMDk5NzY5MzUyLi5jYjBkNjU5M2Q2YjFlNDU3N2Ez
YWYyYWFhMDU2YmNkZDgxZjQxYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjczLDYgKzY3
Myw3IEBAIF9fWk43V2ViQ29yZTE1bG9jYWxpemVkU3RyaW5nRVBLYwogX19aTjdXZWJDb3JlMTVt
aW1lVHlwZUZyb21VUkxFUktOU18zVVJMRQogX19aTjdXZWJDb3JlMTVvcmlnaW5hbFVSTERhdGFF
UDVOU1VSTAogX19aTjdXZWJDb3JlMTVwYXRoR2V0RmlsZU5hbWVFUktOM1dURjZTdHJpbmdFCitf
X1pON1dlYkNvcmUxNXJhbmdlT2ZDb250ZW50c0VSTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUxNXJl
cG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJDYWNoZWRT
Y3JpcHRFCiBfX1pON1dlYkNvcmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRWkK
IF9fWk43V2ViQ29yZTE1dmlzaXRlZExpbmtIYXNoRVBLdGoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTlNQb3BvdmVyU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvbWFjL05TUG9wb3ZlclNQSS5oCmluZGV4IDRkYTIyMTMyMDU2OWZjNWYwYTQw
MTA4NDgzMzEwZjFiMjNhMThiMzQuLjAxNDI0NjVjYjZlNGY3MzExODYwZjRlZDFiMDExOTllZGI2
NDIzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvTlNQb3Bv
dmVyU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9OU1BvcG92ZXJT
UEkuaApAQCAtMzgsNCArMzgsMTMgQEAKIEBwcm9wZXJ0eSBOU1JlY3QgcG9zaXRpb25pbmdSZWN0
OwogQGVuZAogCit0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgTlNQb3BvdmVyUG9zaXRp
b25pbmdPcHRpb25zKSB7CisgICAgTlNQb3BvdmVyUG9zaXRpb25pbmdPcHRpb25Ob25lICAgICAg
ICAgICAgICA9IDAsCisgICAgTlNQb3BvdmVyUG9zaXRpb25pbmdPcHRpb25LZWVwVG9wU3RhYmxl
ICAgICA9ICgxIDw8IDApCit9OworCitAaW50ZXJmYWNlIE5TUG9wb3ZlciAoV0tEZXRhaWxzKQor
QHByb3BlcnR5IE5TUG9wb3ZlclBvc2l0aW9uaW5nT3B0aW9ucyBwb3NpdGlvbmluZ09wdGlvbnM7
CitAZW5kCisKICNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BY3Rpb25NZW51SGl0
VGVzdFJlc3VsdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BY3Rpb25NZW51SGl0VGVz
dFJlc3VsdC5oCmluZGV4IDU0YzhkNGRhMmQ3MDBjOWY0NGEwOTUyNTUxMmVlMDcyNDlhMDMzZjAu
LjVmMzQyYzJkODdiNDQ5YjVhMzdmODAyZjhmYzg1N2ZjYTYxNTBjZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQWN0aW9uTWVudUhpdFRlc3RSZXN1bHQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FjdGlvbk1lbnVIaXRUZXN0UmVzdWx0LmgKQEAgLTYy
LDYgKzYyLDggQEAgc3RydWN0IEFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0IHsKICAgICBXZWJDb3Jl
OjpQYWdlT3ZlcmxheTo6UGFnZU92ZXJsYXlJRCBkZXRlY3RlZERhdGFPcmlnaW5hdGluZ1BhZ2VP
dmVybGF5OwogCiAgICAgRGljdGlvbmFyeVBvcHVwSW5mbyBkaWN0aW9uYXJ5UG9wdXBJbmZvOwor
CisgICAgUmVmUHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3I+IGxpbmtUZXh0SW5kaWNhdG9yOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0FjdGlvbk1lbnVIaXRUZXN0UmVzdWx0Lm1tIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9BY3Rpb25NZW51SGl0VGVzdFJlc3VsdC5tbQppbmRleCA1NzIzYzkxNWQ0NTMzMjBh
N2Q3YWEyMjMwYTE0NmJiODMxZTQ2YmYxLi5kMDEzNjUyYjlmZTJhNzI4ZWY4MWIyZWM1MzRhN2I2
NTQxZjJhNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0FjdGlvbk1l
bnVIaXRUZXN0UmVzdWx0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQWN0aW9u
TWVudUhpdFRlc3RSZXN1bHQubW0KQEAgLTYzLDEzICs2MywxOCBAQCB2b2lkIEFjdGlvbk1lbnVI
aXRUZXN0UmVzdWx0OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgICAgIGVuY29kZXIgPDwgZGV0ZWN0ZWREYXRhQm91bmRpbmdCb3g7CiAgICAgICAgIGVu
Y29kZXIgPDwgZGV0ZWN0ZWREYXRhT3JpZ2luYXRpbmdQYWdlT3ZlcmxheTsKIAotICAgICAgICBi
b29sIGhhc1RleHRJbmRpY2F0b3IgPSBkZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yOwotICAgICAg
ICBlbmNvZGVyIDw8IGhhc1RleHRJbmRpY2F0b3I7Ci0gICAgICAgIGlmIChoYXNUZXh0SW5kaWNh
dG9yKQorICAgICAgICBib29sIGhhc0RldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IgPSBkZXRlY3Rl
ZERhdGFUZXh0SW5kaWNhdG9yOworICAgICAgICBlbmNvZGVyIDw8IGhhc0RldGVjdGVkRGF0YVRl
eHRJbmRpY2F0b3I7CisgICAgICAgIGlmIChoYXNEZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yKQog
ICAgICAgICAgICAgZW5jb2RlciA8PCBkZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yLT5kYXRhKCk7
CiAgICAgfQogCiAgICAgZW5jb2RlciA8PCBkaWN0aW9uYXJ5UG9wdXBJbmZvOworCisgICAgYm9v
bCBoYXNMaW5rVGV4dEluZGljYXRvciA9IGxpbmtUZXh0SW5kaWNhdG9yOworICAgIGVuY29kZXIg
PDwgaGFzTGlua1RleHRJbmRpY2F0b3I7CisgICAgaWYgKGhhc0xpbmtUZXh0SW5kaWNhdG9yKQor
ICAgICAgICBlbmNvZGVyIDw8IGxpbmtUZXh0SW5kaWNhdG9yLT5kYXRhKCk7CiB9CiAKIGJvb2wg
QWN0aW9uTWVudUhpdFRlc3RSZXN1bHQ6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgQWN0aW9uTWVudUhpdFRlc3RSZXN1bHQmIGFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0KQpA
QCAtMTE5LDExICsxMjQsMTEgQEAgYm9vbCBBY3Rpb25NZW51SGl0VGVzdFJlc3VsdDo6ZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBBY3Rpb25NZW51SGkKICAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShhY3Rpb25NZW51SGl0VGVzdFJlc3VsdC5kZXRlY3RlZERhdGFPcmln
aW5hdGluZ1BhZ2VPdmVybGF5KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAg
ICBib29sIGhhc1RleHRJbmRpY2F0b3I7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFz
VGV4dEluZGljYXRvcikpCisgICAgICAgIGJvb2wgaGFzRGV0ZWN0ZWREYXRhVGV4dEluZGljYXRv
cjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNEZXRlY3RlZERhdGFUZXh0SW5kaWNh
dG9yKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoaGFzVGV4dElu
ZGljYXRvcikgeworICAgICAgICBpZiAoaGFzRGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvcikgewog
ICAgICAgICAgICAgV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEgaW5kaWNhdG9yRGF0YTsKICAg
ICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5kaWNhdG9yRGF0YSkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTM1LDYgKzE0MCwxOCBAQCBib29sIEFjdGlvbk1lbnVI
aXRUZXN0UmVzdWx0OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEFjdGlv
bk1lbnVIaQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYWN0aW9uTWVudUhpdFRlc3RSZXN1bHQu
ZGljdGlvbmFyeVBvcHVwSW5mbykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wg
aGFzTGlua1RleHRJbmRpY2F0b3I7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNMaW5rVGV4
dEluZGljYXRvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChoYXNMaW5rVGV4
dEluZGljYXRvcikgeworICAgICAgICBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSBpbmRpY2F0
b3JEYXRhOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZGljYXRvckRhdGEpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0
LmxpbmtUZXh0SW5kaWNhdG9yID0gV2ViQ29yZTo6VGV4dEluZGljYXRvcjo6Y3JlYXRlKGluZGlj
YXRvckRhdGEpOworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwogfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAppbmRleCA0
NjZjZDA0YjkzNWY4ZjYyNDY3ZGUyN2Y1ZjczZWI2NzI1ZmJhMmVhLi4zYjMwY2VkYmU5M2Y2ZWRm
MGE5NDc3OTdlZjAwMjgyYmZlMGI3ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApAQCAtMTMzLDYgKzEzMyw3IEBACiAtIChO
U1N0cmluZyAqKV90aXRsZUZvclByZXZpZXdPZlVSTDooTlNVUkwgKil1cmw7CiAtICh2b2lkKV9z
ZXRQcmV2aWV3VGl0bGU6KE5TU3RyaW5nICopcHJldmlld1RpdGxlOwogLSAodm9pZClfc2V0UHJl
dmlld0xvYWRpbmc6KEJPT0wpbG9hZGluZzsKKy0gKHZvaWQpX3NldFByZXZpZXdPdmVycmlkZUlt
YWdlOihOU0ltYWdlICopaW1hZ2U7CiAtICh2b2lkKV9maW5pc2hQcmV2aWV3aW5nVVJMOihOU1VS
TCAqKXVybCB3aXRoUHJldmlld1ZpZXc6KE5TVmlldyAqKXByZXZpZXdWaWV3OwogLSAodm9pZClf
aGFuZGxlQ2xpY2tJblByZXZpZXdWaWV3OihOU1ZpZXcgKilwcmV2aWV3VmlldyBVUkw6KE5TVVJM
ICopdXJsOwogLSAoQk9PTClfc2hvdWxkVXNlU3RhbmRhcmRRdWlja0xvb2tQcmV2aWV3OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDZjZDU1ZjNhOTg3
NjE5MGMzZjRjOTA5YWZlNzM1ZDI4ODcxYTE4NzkuLjk4NzY5ZmExNmFhZmQyNmEyMTQ4YTBhY2Q1
ZWQwNmE1YzJiMzY5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KQEAgLTQzMzEsNyArNDMzMSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlx
dWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgaWYgKFthY3Rpb25zTWFuYWdl
ciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNo
b3JPbkZhaWx1cmU6KV0pCiAgICAgICAgIFthY3Rpb25zTWFuYWdlciByZXF1ZXN0QnViYmxlQ2xv
c3VyZVVuYW5jaG9yT25GYWlsdXJlOllFU107CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMCAmJiBXS19BUElfRU5BQkxFRAorI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCiAgICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlciBoaWRlUHJldmlld107CiAjZW5kaWYKIApAQCAtNDM1MiwxOCArNDM1MiwyMyBA
QCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5n
ICpwYXRoKQogCiAtICh2b2lkKV9zZXRQcmV2aWV3VGl0bGU6KE5TU3RyaW5nICopcHJldmlld1Rp
dGxlCiB7Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAgJiYg
V0tfQVBJX0VOQUJMRUQKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMAogICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgc2V0UHJldmlld1Rp
dGxlOnByZXZpZXdUaXRsZV07CiAjZW5kaWYKIH0KIAogLSAodm9pZClfc2V0UHJldmlld0xvYWRp
bmc6KEJPT0wpbG9hZGluZwogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMDAwICYmIFdLX0FQSV9FTkFCTEVECisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEwMDAKICAgICBbX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
IHNldFByZXZpZXdMb2FkaW5nOmxvYWRpbmddOwogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX3NldFBy
ZXZpZXdPdmVycmlkZUltYWdlOihOU0ltYWdlICopaW1hZ2UKK3sKKyAgICBbX2RhdGEtPl9pbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyIHNldFByZXZpZXdPdmVycmlkZUltYWdlOmltYWdlXTsKK30K
KwogLSAodm9pZClfZmluaXNoUHJldmlld2luZ1VSTDooTlNVUkwgKil1cmwgd2l0aFByZXZpZXdW
aWV3OihOU1ZpZXcgKilwcmV2aWV3VmlldwogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKaW5kZXgg
ZGViMzM2MjZmOTM0NGE4NjcwMWU5MWZjMzI3NGJiNzcwOGZmNDk4OC4uZjU2Njc2ZjgzZmFhOTEz
ZGIzNjFmYjY2YmRjZGFlN2JhYzI5ZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oCkBAIC00Niw2
ICs0Niw3IEBAIGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhdGUgewogCiBAY2xhc3MgRERB
Y3Rpb25Db250ZXh0OwogQGNsYXNzIFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjsKK0BjbGFz
cyBXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlcjsKIEBjbGFzcyBXS1ZpZXc7CiAK
IEBpbnRlcmZhY2UgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIDogTlNPYmplY3QgPE5TSW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gewpAQCAtNjQsMTIgKzY1LDcg
QEAgZW51bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7CiAgICAgQk9PTCBfaGFzQWN0aXZh
dGVkQWN0aW9uQ29udGV4dDsKICAgICBSZXRhaW5QdHI8RERBY3Rpb25Db250ZXh0PiBfY3VycmVu
dEFjdGlvbkNvbnRleHQ7CiAKLSNpZiBXS19BUElfRU5BQkxFRAotICAgIFJldGFpblB0cjxOU1Bv
cG92ZXI+IF9wcmV2aWV3UG9wb3ZlcjsKLSAgICBTdHJpbmcgX3ByZXZpZXdQb3BvdmVyT3JpZ2lu
YWxVUkw7Ci0gICAgTlNSZWN0IF9wb3BvdmVyT3JpZ2luUmVjdDsKLSAgICBSZXRhaW5QdHI8V0tQ
YWdlUHJldmlld1ZpZXdDb250cm9sbGVyPiBfcHJldmlld1ZpZXdDb250cm9sbGVyOwotI2VuZGlm
CisgICAgUmV0YWluUHRyPFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyPiBfcHJl
dmlld0FuaW1hdGlvbkNvbnRyb2xsZXI7CiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBh
Z2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdrVmlldyByZWNv
Z25pemVyOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0
aW9uUmVjb2duaXplcjsKQEAgLTc3LDExICs3MywxMCBAQCBlbnVtIGNsYXNzIEltbWVkaWF0ZUFj
dGlvblN0YXRlIHsKIC0gKHZvaWQpZGlkUGVyZm9ybUFjdGlvbk1lbnVIaXRUZXN0Oihjb25zdCBX
ZWJLaXQ6OkFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0JiloaXRUZXN0UmVzdWx0IHVzZXJEYXRhOihB
UEk6Ok9iamVjdCopdXNlckRhdGE7CiAtICh2b2lkKXdrVmlldzooV0tWaWV3ICopd2tWaWV3IHdp
bGxIYW5kbGVNb3VzZURvd246KE5TRXZlbnQgKilldmVudDsKIAotI2lmIFdLX0FQSV9FTkFCTEVE
CiAtICh2b2lkKXNldFByZXZpZXdUaXRsZTooTlNTdHJpbmcgKilwcmV2aWV3VGl0bGU7CiAtICh2
b2lkKWhpZGVQcmV2aWV3OwogLSAodm9pZClzZXRQcmV2aWV3TG9hZGluZzooQk9PTClsb2FkaW5n
OwotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECistICh2b2lkKXNldFByZXZpZXdPdmVycmlkZUlt
YWdlOihOU0ltYWdlICopaW1hZ2U7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRl
eCAzMWQwYzA2NjgyNjM2ZWJmNjY4MzJmN2Y0NDI3YjljOGUzZmYxODlhLi40MTQ0ZDBhY2ZiYTVh
MDc5NzU2MGEwMTQwMjlhZTU5NjQ0NzIzZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAt
MzAsMTMgKzMwLDEzIEBACiAKICNpbXBvcnQgIldLTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldL
UGFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oIgorI2ltcG9ydCAiV0tQcmV2aWV3UG9wb3ZlckFu
aW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLVmlld0ludGVybmFsLmgiCiAjaW1wb3J0
ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAi
V2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2lt
cG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JzU1BJLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb21l
dHJ5VXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvb2t1cFNQSS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9OU01lbnVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNQb3BvdmVyU1BJLmg+CkBA
IC01MSwxNCArNTEsOSBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoTG9va3VwLCBMVVRl
cm1PcHRpb25EaXNhYmxlU2VhcmNoVGVybUluZGljYXRvciwgTlNTdAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1AaW50ZXJmYWNlIFdLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlciAoKSA8TlNQb3BvdmVyRGVsZWdhdGUsIFFMUHJldmlld01lbnVJ
dGVtRGVsZWdhdGU+CitAaW50ZXJmYWNlIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciAoKSA8
UUxQcmV2aWV3TWVudUl0ZW1EZWxlZ2F0ZT4KIEBlbmQKIAotI2lmIFdLX0FQSV9FTkFCTEVECi1A
aW50ZXJmYWNlIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciAoKSA8V0tQYWdlUHJldmlld1Zp
ZXdDb250cm9sbGVyRGVsZWdhdGU+Ci1AZW5kCi0jZW5kaWYKLQogQGltcGxlbWVudGF0aW9uIFdL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdl
OihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3ICopd2tWaWV3IHJlY29nbml6ZXI6KE5T
SW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25p
emVyCkBAIC03OCw2ICs3Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKHZvaWQp
d2lsbERlc3Ryb3lWaWV3OihXS1ZpZXcgKil2aWV3CiB7CisgICAgW19wcmV2aWV3QW5pbWF0aW9u
Q29udHJvbGxlciBjbG9zZV07CisKICAgICBfcGFnZSA9IG51bGxwdHI7CiAgICAgX3drVmlldyA9
IG5pbDsKICAgICBfaGl0VGVzdFJlc3VsdCA9IEFjdGlvbk1lbnVIaXRUZXN0UmVzdWx0KCk7CkBA
IC0xMDEsOSArOTgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAtICh2b2lkKV9jbGVh
ckltbWVkaWF0ZUFjdGlvblN0YXRlCiB7Ci0jaWYgV0tfQVBJX0VOQUJMRUQKICAgICBbc2VsZiBo
aWRlUHJldmlld107Ci0jZW5kaWYKIAogICAgIF9wYWdlLT5jbGVhclRleHRJbmRpY2F0b3IoKTsK
IApAQCAtMTQ0LDcgKzEzOSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgX3BhZ2Ut
PnBlcmZvcm1BY3Rpb25NZW51SGl0VGVzdEF0TG9jYXRpb24oX2V2ZW50TG9jYXRpb25JblZpZXcs
IHRydWUpOwogCiAgICAgX3N0YXRlID0gSW1tZWRpYXRlQWN0aW9uU3RhdGU6OlBlbmRpbmc7Ci0g
ICAgW3NlbGYgX3VwZGF0ZUltbWVkaWF0ZUFjdGlvbkl0ZW1dOworICAgIGltbWVkaWF0ZUFjdGlv
blJlY29nbml6ZXIuYW5pbWF0aW9uQ29udHJvbGxlciA9IG5pbDsKIH0KIAogLSAodm9pZClpbW1l
ZGlhdGVBY3Rpb25SZWNvZ25pemVyV2lsbEJlZ2luQW5pbWF0aW9uOihOU0ltbWVkaWF0ZUFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcgpAQCAtMjQzLDE0
ICsyMzgsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICAgICAgICAgIHJldHVybiAo
aWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilxbFByZXZpZXdMaW5rSXRl
bS5nZXQoKTsKICAgICAgICAgfQogCi0jaWYgV0tfQVBJX0VOQUJMRUQKLSAgICAgICAgW3NlbGYg
X2NyZWF0ZVByZXZpZXdQb3BvdmVySWZOZWVkZWRGb3JVUkw6YWJzb2x1dGVMaW5rVVJMXTsKICAg
ICAgICAgaWYgKGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4gcHJldmll
d0NvbnRyb2xsZXIgPSBbc2VsZiBfYW5pbWF0aW9uQ29udHJvbGxlckZvckN1c3RvbVByZXZpZXdd
KQogICAgICAgICAgICAgcmV0dXJuIHByZXZpZXdDb250cm9sbGVyOwotICAgICAgICByZXR1cm4g
KGlkPE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX3ByZXZpZXdQb3BvdmVy
LmdldCgpOwotI2Vsc2UKICAgICAgICAgcmV0dXJuIG5pbDsKLSNlbmRpZiAvLyBXS19BUElfRU5B
QkxFRAorCiAgICAgfQogCiAgICAgaWYgKGhpdFRlc3RSZXN1bHQtPmlzVGV4dE5vZGUoKSB8fCBo
aXRUZXN0UmVzdWx0LT5pc092ZXJUZXh0SW5zaWRlRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKQEAg
LTI4OCwxODkgKzI3OSwzOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAjcHJhZ21hIG1h
cmsgTGluayBQcmV2aWV3IGFjdGlvbgogCi0jaWYgV0tfQVBJX0VOQUJMRUQKLQotLSAodm9pZClf
Y3JlYXRlUHJldmlld1BvcG92ZXJJZk5lZWRlZEZvclVSTDooU3RyaW5nKWFic29sdXRlTGlua1VS
TAotewotICAgIGlmIChfcHJldmlld1BvcG92ZXJPcmlnaW5hbFVSTCA9PSBhYnNvbHV0ZUxpbmtV
UkwpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9wcmV2aWV3UG9wb3Zlck9yaWdpbmFsVVJMID0g
YWJzb2x1dGVMaW5rVVJMOwotCi0gICAgTlNVUkwgKnVybCA9IFtOU1VSTCBfd2ViX1VSTFdpdGhX
VEZTdHJpbmc6YWJzb2x1dGVMaW5rVVJMXTsKLSAgICBSZWZQdHI8V2ViSGl0VGVzdFJlc3VsdD4g
aGl0VGVzdFJlc3VsdCA9IFtzZWxmIF93ZWJIaXRUZXN0UmVzdWx0XTsKLSAgICBfcG9wb3Zlck9y
aWdpblJlY3QgPSBoaXRUZXN0UmVzdWx0LT5lbGVtZW50Qm91bmRpbmdCb3goKTsKLQotICAgIE5T
U2l6ZSBwcmV2aWV3UGFkZGluZyA9IFtXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIgcHJldmll
d1BhZGRpbmddOwotICAgIE5TU2l6ZSBwb3BvdmVyU2l6ZSA9IFtzZWxmIF9wcmVmZXJyZWRQb3Bv
dmVyU2l6ZVdpdGhQcmV2aWV3UGFkZGluZzpwcmV2aWV3UGFkZGluZ107Ci0gICAgQ0dGbG9hdCBh
Y3R1YWxQb3BvdmVyVG9WaWV3U2NhbGUgPSBwb3BvdmVyU2l6ZS53aWR0aCAvIE5TV2lkdGgoX3dr
Vmlldy5ib3VuZHMpOwotICAgIHBvcG92ZXJTaXplLndpZHRoICs9IHByZXZpZXdQYWRkaW5nLndp
ZHRoOwotICAgIHBvcG92ZXJTaXplLmhlaWdodCArPSBwcmV2aWV3UGFkZGluZy5oZWlnaHQ7Ci0K
LSAgICBfcHJldmlld1ZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbW1dLUGFnZVByZXZpZXdWaWV3
Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdlVVJMOnVybCBtYWluVmlld1NpemU6X3drVmll
dy5ib3VuZHMuc2l6ZSBwb3BvdmVyVG9WaWV3U2NhbGU6YWN0dWFsUG9wb3ZlclRvVmlld1NjYWxl
XSk7Ci0gICAgX3ByZXZpZXdWaWV3Q29udHJvbGxlci0+X2RlbGVnYXRlID0gc2VsZjsKLSAgICBb
X3ByZXZpZXdWaWV3Q29udHJvbGxlciBzZXRMb2FkaW5nOllFU107Ci0gICAgW19wcmV2aWV3Vmll
d0NvbnRyb2xsZXIgbG9hZFZpZXddOwotCi0gICAgX3ByZXZpZXdQb3BvdmVyID0gYWRvcHROUyhb
W05TUG9wb3ZlciBhbGxvY10gaW5pdF0pOwotICAgIFtfcHJldmlld1BvcG92ZXIgc2V0QmVoYXZp
b3I6TlNQb3BvdmVyQmVoYXZpb3JUcmFuc2llbnRdOwotICAgIFtfcHJldmlld1BvcG92ZXIgc2V0
Q29udGVudFNpemU6cG9wb3ZlclNpemVdOwotICAgIFtfcHJldmlld1BvcG92ZXIgc2V0Q29udGVu
dFZpZXdDb250cm9sbGVyOl9wcmV2aWV3Vmlld0NvbnRyb2xsZXIuZ2V0KCldOwotICAgIFtfcHJl
dmlld1BvcG92ZXIgc2V0RGVsZWdhdGU6c2VsZl07Ci19Ci0KIC0gKHZvaWQpaGlkZVByZXZpZXcK
IHsKLSAgICBpZiAoX3ByZXZpZXdWaWV3Q29udHJvbGxlcikgewotICAgICAgICBfcHJldmlld1Zp
ZXdDb250cm9sbGVyLT5fZGVsZWdhdGUgPSBuaWw7Ci0gICAgICAgIFtfd2tWaWV3IF9maW5pc2hQ
cmV2aWV3aW5nVVJMOl9wcmV2aWV3Vmlld0NvbnRyb2xsZXItPl91cmwuZ2V0KCkgd2l0aFByZXZp
ZXdWaWV3Ol9wcmV2aWV3Vmlld0NvbnRyb2xsZXItPl9wcmV2aWV3Vmlldy5nZXQoKV07Ci0gICAg
ICAgIF9wcmV2aWV3Vmlld0NvbnRyb2xsZXIgPSBuaWw7Ci0gICAgfQotCi0gICAgW19wcmV2aWV3
UG9wb3ZlciBjbG9zZV07Ci0gICAgW19wcmV2aWV3UG9wb3ZlciBzZXREZWxlZ2F0ZTpuaWxdOwot
ICAgIF9wcmV2aWV3UG9wb3ZlciA9IG5pbDsKLSAgICBfcHJldmlld1BvcG92ZXJPcmlnaW5hbFVS
TCA9IFN0cmluZygpOworICAgIFtfcHJldmlld0FuaW1hdGlvbkNvbnRyb2xsZXIgY2xvc2VdOwog
fQogCiAtICh2b2lkKXNldFByZXZpZXdUaXRsZTooTlNTdHJpbmcgKilwcmV2aWV3VGl0bGUKIHsK
LSAgICBbX3ByZXZpZXdWaWV3Q29udHJvbGxlciBzZXRQcmV2aWV3VGl0bGU6cHJldmlld1RpdGxl
XTsKKyAgICBbX3ByZXZpZXdBbmltYXRpb25Db250cm9sbGVyIHNldFByZXZpZXdUaXRsZTpwcmV2
aWV3VGl0bGVdOwogfQogCiAtICh2b2lkKXNldFByZXZpZXdMb2FkaW5nOihCT09MKWxvYWRpbmcK
IHsKLSAgICBbX3ByZXZpZXdWaWV3Q29udHJvbGxlciBzZXRMb2FkaW5nOmxvYWRpbmddOwotfQot
Ci0tICh2b2lkKXBvcG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
Ci17Ci0gICAgW3NlbGYgaGlkZVByZXZpZXddOwotfQotCi1zdGF0aWMgYm9vbCB0YXJnZXRTaXpl
Rml0c0luQXZhaWxhYmxlU3BhY2UoTlNTaXplIHRhcmdldFNpemUsIE5TU2l6ZSBhdmFpbGFibGVT
cGFjZSkKLXsKLSAgICByZXR1cm4gdGFyZ2V0U2l6ZS53aWR0aCA8PSBhdmFpbGFibGVTcGFjZS53
aWR0aCAmJiB0YXJnZXRTaXplLmhlaWdodCA8PSBhdmFpbGFibGVTcGFjZS5oZWlnaHQ7CisgICAg
W19wcmV2aWV3QW5pbWF0aW9uQ29udHJvbGxlciBzZXRQcmV2aWV3TG9hZGluZzpsb2FkaW5nXTsK
IH0KIAotLSAoTlNTaXplKWxhcmdlc3RQb3BvdmVyU2l6ZQorLSAodm9pZClzZXRQcmV2aWV3T3Zl
cnJpZGVJbWFnZTooTlNJbWFnZSAqKWltYWdlCiB7Ci0gICAgTlNTaXplIHNjcmVlblNpemUgPSBf
d2tWaWV3LndpbmRvdy5zY3JlZW4uZnJhbWUuc2l6ZTsKLQotICAgIGlmIChzY3JlZW5TaXplLndp
ZHRoID09IDEyODAgJiYgc2NyZWVuU2l6ZS5oZWlnaHQgPT0gODAwKQotICAgICAgICByZXR1cm4g
TlNNYWtlU2l6ZSgxMjQwLCA2NzQpOwotCi0gICAgaWYgKHNjcmVlblNpemUud2lkdGggPT0gMTM2
NiAmJiBzY3JlZW5TaXplLmhlaWdodCA9PSA3NjgpCi0gICAgICAgIHJldHVybiBOU01ha2VTaXpl
KDEyNjQsIDY0Mik7Ci0KLSAgICBpZiAoc2NyZWVuU2l6ZS53aWR0aCA9PSAxNDQwICYmIHNjcmVl
blNpemUuaGVpZ2h0ID09IDkwMCkKLSAgICAgICAgcmV0dXJuIE5TTWFrZVNpemUoMTI2NCwgNzYw
KTsKLQotICAgIGlmIChzY3JlZW5TaXplLndpZHRoID09IDE2ODAgJiYgc2NyZWVuU2l6ZS5oZWln
aHQgPT0gMTA1MCkKLSAgICAgICAgcmV0dXJuIE5TTWFrZVNpemUoMTMyNCwgOTEwKTsKLQotICAg
IHJldHVybiBOU01ha2VTaXplKDEzMjQsIDk0MCk7Ci19Ci0KLS0gKE5TU2l6ZSlfcHJlZmVycmVk
UG9wb3ZlclNpemVXaXRoUHJldmlld1BhZGRpbmc6KE5TU2l6ZSlwcmV2aWV3UGFkZGluZwotewot
ICAgIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHByZWZlcnJlZFBvcG92ZXJUb1ZpZXdTY2FsZSA9IDAu
NzU7Ci0gICAgc3RhdGljIGNvbnN0IE5TU2l6ZSBzY3JlZW5QYWRkaW5nID0gezQwLCA0MH07Ci0g
ICAgc3RhdGljIGNvbnN0IE5TU2l6ZSBzbWFsbGVzdFBvcG92ZXJTaXplID0gTlNNYWtlU2l6ZSg1
MDAsIDUwMCk7Ci0KLSAgICBjb25zdCBOU1NpemUgZWZmZWN0aXZlUGFkZGluZyA9IE5TTWFrZVNp
emUoc2NyZWVuUGFkZGluZy53aWR0aCArIHByZXZpZXdQYWRkaW5nLndpZHRoLCBzY3JlZW5QYWRk
aW5nLmhlaWdodCArIHByZXZpZXdQYWRkaW5nLmhlaWdodCk7Ci0KLSAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gX3drVmlldy53aW5kb3c7Ci0gICAgTlNSZWN0IG9yaWdpblNjcmVlblJlY3QgPSBbd2lu
ZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W193a1ZpZXcgY29udmVydFJlY3Q6X3BvcG92ZXJPcmln
aW5SZWN0IHRvVmlldzpuaWxdXTsKLSAgICBOU1JlY3Qgc2NyZWVuRnJhbWUgPSB3aW5kb3cuc2Ny
ZWVuLnZpc2libGVGcmFtZTsKLQotICAgIE5TUmVjdCB3a1ZpZXdCb3VuZHMgPSBfd2tWaWV3LmJv
dW5kczsKLSAgICBOU1NpemUgdGFyZ2V0U2l6ZSA9IE5TTWFrZVNpemUoTlNXaWR0aCh3a1ZpZXdC
b3VuZHMpICogcHJlZmVycmVkUG9wb3ZlclRvVmlld1NjYWxlLCBOU0hlaWdodCh3a1ZpZXdCb3Vu
ZHMpICogcHJlZmVycmVkUG9wb3ZlclRvVmlld1NjYWxlKTsKLSAgICBOU1NpemUgbGFyZ2VzdFBv
cG92ZXJTaXplID0gW3NlbGYgbGFyZ2VzdFBvcG92ZXJTaXplXTsKLQotICAgIENHRmxvYXQgYXZh
aWxhYmxlU3BhY2VBYm92ZSA9IE5TTWF4WShzY3JlZW5GcmFtZSkgLSBOU01heFkob3JpZ2luU2Ny
ZWVuUmVjdCk7Ci0gICAgQ0dGbG9hdCBhdmFpbGFibGVTcGFjZUJlbG93ID0gTlNNaW5ZKG9yaWdp
blNjcmVlblJlY3QpIC0gTlNNaW5ZKHNjcmVlbkZyYW1lKTsKLSAgICBDR0Zsb2F0IG1heEF2YWls
YWJsZVZlcnRpY2FsU3BhY2UgPSBmbWF4KGF2YWlsYWJsZVNwYWNlQWJvdmUsIGF2YWlsYWJsZVNw
YWNlQmVsb3cpIC0gZWZmZWN0aXZlUGFkZGluZy5oZWlnaHQ7Ci0gICAgTlNTaXplIG1heFNwYWNl
QXZhaWxhYmxlT25ZRWRnZSA9IE5TTWFrZVNpemUoc2NyZWVuRnJhbWUuc2l6ZS53aWR0aCAtIGVm
ZmVjdGl2ZVBhZGRpbmcuaGVpZ2h0LCBtYXhBdmFpbGFibGVWZXJ0aWNhbFNwYWNlKTsKLSAgICBp
ZiAodGFyZ2V0U2l6ZUZpdHNJbkF2YWlsYWJsZVNwYWNlKHRhcmdldFNpemUsIG1heFNwYWNlQXZh
aWxhYmxlT25ZRWRnZSkgJiYgdGFyZ2V0U2l6ZUZpdHNJbkF2YWlsYWJsZVNwYWNlKHRhcmdldFNp
emUsIGxhcmdlc3RQb3BvdmVyU2l6ZSkpCi0gICAgICAgIHJldHVybiB0YXJnZXRTaXplOwotCi0g
ICAgQ0dGbG9hdCBhdmFpbGFibGVTcGFjZUF0TGVmdCA9IE5TTWluWChvcmlnaW5TY3JlZW5SZWN0
KSAtIE5TTWluWChzY3JlZW5GcmFtZSk7Ci0gICAgQ0dGbG9hdCBhdmFpbGFibGVTcGFjZUF0Umln
aHQgPSBOU01heFgoc2NyZWVuRnJhbWUpIC0gTlNNYXhYKG9yaWdpblNjcmVlblJlY3QpOwotICAg
IENHRmxvYXQgbWF4QXZhaWxhYmxlSG9yaXpvbnRhbFNwYWNlID0gZm1heChhdmFpbGFibGVTcGFj
ZUF0TGVmdCwgYXZhaWxhYmxlU3BhY2VBdFJpZ2h0KSAtIGVmZmVjdGl2ZVBhZGRpbmcud2lkdGg7
Ci0gICAgTlNTaXplIG1heFNwYWNlQXZhaWxhYmxlT25YRWRnZSA9IE5TTWFrZVNpemUobWF4QXZh
aWxhYmxlSG9yaXpvbnRhbFNwYWNlLCBzY3JlZW5GcmFtZS5zaXplLmhlaWdodCAtIGVmZmVjdGl2
ZVBhZGRpbmcud2lkdGgpOwotICAgIGlmICh0YXJnZXRTaXplRml0c0luQXZhaWxhYmxlU3BhY2Uo
dGFyZ2V0U2l6ZSwgbWF4U3BhY2VBdmFpbGFibGVPblhFZGdlKSAmJiB0YXJnZXRTaXplRml0c0lu
QXZhaWxhYmxlU3BhY2UodGFyZ2V0U2l6ZSwgbGFyZ2VzdFBvcG92ZXJTaXplKSkKLSAgICAgICAg
cmV0dXJuIHRhcmdldFNpemU7Ci0KLSAgICAvLyBBZGp1c3QgdGhlIG1heGltdW0gc3BhY2UgYXZh
aWxhYmxlIGlmIGl0IGlzIGxhcmdlciB0aGFuIHRoZSBsYXJnZXN0IHBvcG92ZXIgc2l6ZS4KLSAg
ICBpZiAobWF4U3BhY2VBdmFpbGFibGVPbllFZGdlLndpZHRoID4gbGFyZ2VzdFBvcG92ZXJTaXpl
LndpZHRoICYmIG1heFNwYWNlQXZhaWxhYmxlT25ZRWRnZS5oZWlnaHQgPiBsYXJnZXN0UG9wb3Zl
clNpemUuaGVpZ2h0KQotICAgICAgICBtYXhTcGFjZUF2YWlsYWJsZU9uWUVkZ2UgPSBsYXJnZXN0
UG9wb3ZlclNpemU7Ci0gICAgaWYgKG1heFNwYWNlQXZhaWxhYmxlT25YRWRnZS53aWR0aCA+IGxh
cmdlc3RQb3BvdmVyU2l6ZS53aWR0aCAmJiBtYXhTcGFjZUF2YWlsYWJsZU9uWEVkZ2UuaGVpZ2h0
ID4gbGFyZ2VzdFBvcG92ZXJTaXplLmhlaWdodCkKLSAgICAgICAgbWF4U3BhY2VBdmFpbGFibGVP
blhFZGdlID0gbGFyZ2VzdFBvcG92ZXJTaXplOwotCi0gICAgLy8gSWYgdGhlIHRhcmdldCBzaXpl
IGRvZXNuJ3QgZml0IGFueXdoZXJlLCB3ZSdsbCBmaW5kIHRoZSBsYXJnZXN0IHJlY3QgdGhhdCBk
b2VzIGZpdCB0aGF0IGFsc28gbWFpbnRhaW5zIHRoZSBvcmlnaW5hbCB2aWV3J3MgYXNwZWN0IHJh
dGlvLgotICAgIENHRmxvYXQgYXNwZWN0UmF0aW8gPSB3a1ZpZXdCb3VuZHMuc2l6ZS53aWR0aCAv
IHdrVmlld0JvdW5kcy5zaXplLmhlaWdodDsKLSAgICBGbG9hdFJlY3QgbWF4VmVydGljYWxUYXJn
ZXRTaXplUHJlc2VydmluZ0FzcGVjdFJhdGlvUmVjdCA9IGxhcmdlc3RSZWN0V2l0aEFzcGVjdFJh
dGlvSW5zaWRlUmVjdChhc3BlY3RSYXRpbywgRmxvYXRSZWN0KDAsIDAsIG1heFNwYWNlQXZhaWxh
YmxlT25ZRWRnZS53aWR0aCwgbWF4U3BhY2VBdmFpbGFibGVPbllFZGdlLmhlaWdodCkpOwotICAg
IEZsb2F0UmVjdCBtYXhIb3Jpem9udGFsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpb1Jl
Y3QgPSBsYXJnZXN0UmVjdFdpdGhBc3BlY3RSYXRpb0luc2lkZVJlY3QoYXNwZWN0UmF0aW8sIEZs
b2F0UmVjdCgwLCAwLCBtYXhTcGFjZUF2YWlsYWJsZU9uWEVkZ2Uud2lkdGgsIG1heFNwYWNlQXZh
aWxhYmxlT25YRWRnZS5oZWlnaHQpKTsKLQotICAgIE5TU2l6ZSBtYXhWZXJ0aWNhbFRhcmdldFNp
emVQcmVzZXJ2aW5nQXNwZWN0UmF0aW8gPSBOU01ha2VTaXplKG1heFZlcnRpY2FsVGFyZ2V0U2l6
ZVByZXNlcnZpbmdBc3BlY3RSYXRpb1JlY3Qud2lkdGgoKSwgbWF4VmVydGljYWxUYXJnZXRTaXpl
UHJlc2VydmluZ0FzcGVjdFJhdGlvUmVjdC5oZWlnaHQoKSk7Ci0gICAgTlNTaXplIG1heEhvcnRp
em9udGFsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpbyA9IE5TTWFrZVNpemUobWF4SG9y
aXpvbnRhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0aW9SZWN0LndpZHRoKCksIG1heEhv
cml6b250YWxUYXJnZXRTaXplUHJlc2VydmluZ0FzcGVjdFJhdGlvUmVjdC5oZWlnaHQoKSk7Ci0K
LSAgICBOU1NpemUgY29tcHV0ZWRUYXJnZXRTaXplOwotICAgIGlmICgobWF4VmVydGljYWxUYXJn
ZXRTaXplUHJlc2VydmluZ0FzcGVjdFJhdGlvLndpZHRoICogbWF4VmVydGljYWxUYXJnZXRTaXpl
UHJlc2VydmluZ0FzcGVjdFJhdGlvLmhlaWdodCkgPiAobWF4SG9ydGl6b250YWxUYXJnZXRTaXpl
UHJlc2VydmluZ0FzcGVjdFJhdGlvLndpZHRoICogbWF4SG9ydGl6b250YWxUYXJnZXRTaXplUHJl
c2VydmluZ0FzcGVjdFJhdGlvLmhlaWdodCkpCi0gICAgICAgIGNvbXB1dGVkVGFyZ2V0U2l6ZSA9
IG1heFZlcnRpY2FsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RSYXRpbzsKLSAgICBlbHNlCi0g
ICAgICAgIGNvbXB1dGVkVGFyZ2V0U2l6ZSA9IG1heEhvcnRpem9udGFsVGFyZ2V0U2l6ZVByZXNl
cnZpbmdBc3BlY3RSYXRpbzsKLQotICAgIC8vIE5vdyBtYWtlIHN1cmUgd2hhdCB3ZSd2ZSBjb21w
dXRlZCBpc24ndCB0b28gc21hbGwuCi0gICAgaWYgKGNvbXB1dGVkVGFyZ2V0U2l6ZS53aWR0aCA8
IHNtYWxsZXN0UG9wb3ZlclNpemUud2lkdGggJiYgY29tcHV0ZWRUYXJnZXRTaXplLmhlaWdodCA8
IHNtYWxsZXN0UG9wb3ZlclNpemUuaGVpZ2h0KSB7Ci0gICAgICAgIGZsb2F0IGxpbWl0V2lkdGgg
PSBzbWFsbGVzdFBvcG92ZXJTaXplLndpZHRoID4gY29tcHV0ZWRUYXJnZXRTaXplLndpZHRoID8g
c21hbGxlc3RQb3BvdmVyU2l6ZS53aWR0aCA6IGNvbXB1dGVkVGFyZ2V0U2l6ZS53aWR0aDsKLSAg
ICAgICAgZmxvYXQgbGltaXRIZWlnaHQgPSBzbWFsbGVzdFBvcG92ZXJTaXplLmhlaWdodCA+IGNv
bXB1dGVkVGFyZ2V0U2l6ZS5oZWlnaHQgPyBzbWFsbGVzdFBvcG92ZXJTaXplLmhlaWdodCA6IGNv
bXB1dGVkVGFyZ2V0U2l6ZS5oZWlnaHQ7Ci0gICAgICAgIEZsb2F0UmVjdCB0YXJnZXRSZWN0TGFy
Z2VyVGhhbk1pblNpemUgPSBsYXJnZXN0UmVjdFdpdGhBc3BlY3RSYXRpb0luc2lkZVJlY3QoYXNw
ZWN0UmF0aW8sIEZsb2F0UmVjdCgwLCAwLCBsaW1pdFdpZHRoLCBsaW1pdEhlaWdodCkpOwotICAg
ICAgICBjb21wdXRlZFRhcmdldFNpemUgPSBOU01ha2VTaXplKHRhcmdldFJlY3RMYXJnZXJUaGFu
TWluU2l6ZS5zaXplKCkud2lkdGgoKSwgdGFyZ2V0UmVjdExhcmdlclRoYW5NaW5TaXplLnNpemUo
KS5oZWlnaHQoKSk7Ci0KLSAgICAgICAgLy8gSWYgb3VyIG9yaWduYWwgY29tcHV0ZWRUYXJnZXRT
aXplIHdhcyBzbyBzbWFsbCB0aGF0IHdlIGhhZCB0byBnZXQgaGVyZSBhbmQgbWFrZSBhIG5ldyBj
b21wdXRlZFRhcmdldFNpemUgdGhhdCBpcwotICAgICAgICAvLyBsYXJnZXIgdGhhbiB0aGUgbWlu
aW11bSwgdGhlbiB0aGUgZWxlbWVudEJvdW5kaW5nQm94IG9mIHRoZSBfaGl0VGVzdFJlc3VsdCBp
cyBwcm9iYWJseSBodWdlLiBTbyB3ZSBzaG91bGQgdXNlCi0gICAgICAgIC8vIHRoZSBldmVudCBv
cmlnaW4gYXMgdGhlIHBvcG92ZXIgb3JpZ2luIGluIHRoaXMgY2FzZSBhbmQgbm90IHdvcnJ5IGFi
b3V0IG9ic2N1cmluZyB0aGUgX2hpdFRlc3RSZXN1bHQuCi0gICAgICAgIF9wb3BvdmVyT3JpZ2lu
UmVjdC5vcmlnaW4gPSBfZXZlbnRMb2NhdGlvbkluVmlldzsKLSAgICAgICAgX3BvcG92ZXJPcmln
aW5SZWN0LnNpemUgPSBOU01ha2VTaXplKDEsIDEpOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4g
Y29tcHV0ZWRUYXJnZXRTaXplOworICAgIFtfcHJldmlld0FuaW1hdGlvbkNvbnRyb2xsZXIgc2V0
UHJldmlld092ZXJyaWRlSW1hZ2U6aW1hZ2VdOwogfQogCiAtIChpZDxOU0ltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yQ3VzdG9tUHJldmll
dwogewotICAgIENsYXNzIG5zUG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXJDbGFzcyA9IE5TQ2xh
c3NGcm9tU3RyaW5nKEAiTlNQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciIpOwotICAgIGlmICgh
bnNQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlckNsYXNzKQotICAgICAgICByZXR1cm4gbmlsOwot
ICAgIE5TUG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgKnBvcG92ZXJDb250cm9sbGVyID0gW25z
UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXJDbGFzcyBwb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxl
cldpdGhQb3BvdmVyOl9wcmV2aWV3UG9wb3Zlci5nZXQoKV07Ci0gICAgcG9wb3ZlckNvbnRyb2xs
ZXIucHJlZmVycmVkRWRnZSA9IE5TTWF4WUVkZ2U7Ci0gICAgcG9wb3ZlckNvbnRyb2xsZXIuYW5j
aG9yVmlldyA9IF93a1ZpZXc7Ci0gICAgcG9wb3ZlckNvbnRyb2xsZXIucG9zaXRpb25pbmdSZWN0
ID0gX3BvcG92ZXJPcmlnaW5SZWN0OwotICAgIHJldHVybiBwb3BvdmVyQ29udHJvbGxlcjsKLX0K
LQotI3ByYWdtYSBtYXJrIFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlckRlbGVnYXRlCisgICAg
UmVmUHRyPFdlYkhpdFRlc3RSZXN1bHQ+IGhpdFRlc3RSZXN1bHQgPSBbc2VsZiBfd2ViSGl0VGVz
dFJlc3VsdF07CisgICAgUmV0YWluUHRyPE5TVVJMPiB1cmwgPSBbTlNVUkwgX3dlYl9VUkxXaXRo
V1RGU3RyaW5nOmhpdFRlc3RSZXN1bHQtPmFic29sdXRlTGlua1VSTCgpXTsKIAotLSAoTlNWaWV3
ICopcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjooV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
ICopcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlciB2aWV3Rm9yUHJldmlld2luZ1VSTDooTlNVUkwg
Kil1cmwgaW5pdGlhbEZyYW1lU2l6ZTooTlNTaXplKWluaXRpYWxGcmFtZVNpemUKLXsKLSAgICBy
ZXR1cm4gW193a1ZpZXcgX3ZpZXdGb3JQcmV2aWV3aW5nVVJMOnVybCBpbml0aWFsRnJhbWVTaXpl
OmluaXRpYWxGcmFtZVNpemVdOwotfQorICAgIGlmIChfaGl0VGVzdFJlc3VsdC5saW5rVGV4dElu
ZGljYXRvcikKKyAgICAgICAgX3BhZ2UtPnNldFRleHRJbmRpY2F0b3IoX2hpdFRlc3RSZXN1bHQu
bGlua1RleHRJbmRpY2F0b3ItPmRhdGEoKSwgZmFsc2UpOwogCi0tIChOU1N0cmluZyAqKXBhZ2VQ
cmV2aWV3Vmlld0NvbnRyb2xsZXI6KFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlciAqKXBhZ2VQ
cmV2aWV3Vmlld0NvbnRyb2xsZXIgdGl0bGVGb3JQcmV2aWV3T2ZVUkw6KE5TVVJMICopdXJsCi17
Ci0gICAgcmV0dXJuIFtfd2tWaWV3IF90aXRsZUZvclByZXZpZXdPZlVSTDp1cmxdOwotfQorICAg
IF9wcmV2aWV3QW5pbWF0aW9uQ29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1ByZXZpZXdQb3BvdmVy
QW5pbWF0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhVUkw6dXJsLmdldCgpIHZpZXc6X3dr
VmlldyBwYWdlOipfcGFnZSBvcmlnaW5SZWN0OmhpdFRlc3RSZXN1bHQtPmVsZW1lbnRCb3VuZGlu
Z0JveCgpIGV2ZW50TG9jYXRpb25JblZpZXc6X2V2ZW50TG9jYXRpb25JblZpZXddKTsKIAotLSAo
dm9pZClwYWdlUHJldmlld1ZpZXdDb250cm9sbGVyV2FzQ2xpY2tlZDooV0tQYWdlUHJldmlld1Zp
ZXdDb250cm9sbGVyICopcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcgotewotICAgIGlmIChOU1VS
TCAqdXJsID0gcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlci0+X3VybC5nZXQoKSkKLSAgICAgICAg
W193a1ZpZXcgX2hhbmRsZUNsaWNrSW5QcmV2aWV3VmlldzpwYWdlUHJldmlld1ZpZXdDb250cm9s
bGVyLT5fcHJldmlld1ZpZXcuZ2V0KCkgVVJMOnVybF07CisgICAgcmV0dXJuIF9wcmV2aWV3QW5p
bWF0aW9uQ29udHJvbGxlci5nZXQoKTsKIH0KIAotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECi0K
ICNwcmFnbWEgbWFyayBRTFByZXZpZXdNZW51SXRlbURlbGVnYXRlIGltcGxlbWVudGF0aW9uCiAK
IC0gKE5TVmlldyAqKW1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0gdmlld0F0U2NyZWVu
UG9pbnQ6KE5TUG9pbnQpc2NyZWVuUG9pbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oCmluZGV4IDRlNjE1
YjMxNWZlMmViM2VlNWUyNzIxMTdmYTY0OGRiZWJlMThkZDguLjhjN2M3MmQzMzQ1YTJkYjRhNTEw
MDc1ZTUxZTM1ZjU5MzM3ODMzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaApAQCAtNTksNiArNTks
NyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0xvYWRpbmcpIEJPT0wgbG9hZGlu
ZzsKIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZVVSTDooTlNVUkwgKilVUkwgbWFpblZp
ZXdTaXplOihOU1NpemUpc2l6ZSBwb3BvdmVyVG9WaWV3U2NhbGU6KENHRmxvYXQpc2NhbGU7Cist
ICh2b2lkKXJlcGxhY2VQcmV2aWV3V2l0aEltYWdlOihOU0ltYWdlICopaW1hZ2UgYXRTaXplOihO
U1NpemUpc2l6ZTsKIAogKyAoTlNTaXplKXByZXZpZXdQYWRkaW5nOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tQYWdlUHJldmlld1ZpZXdDb250cm9s
bGVyLm1tCmluZGV4IGMyYzNmNDVkZTMwMDAyNWZjZjJlYzI2ODBhNWYyN2E5N2Y5NjNhNmQuLmUz
ODQ2NThiMjdmYmZiYTk4NjIyODBlNjUxZDMyMGYyZGExNzg4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tQYWdlUHJldmlld1ZpZXdDb250cm9s
bGVyLm1tCkBAIC0yNiw5ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldL
UGFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oIgogCi0jaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5h
bC5oIgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTAwMCAmJiBXS19BUElfRU5BQkxFRAorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKIAogc3RhdGljIGNvbnN0IENH
RmxvYXQgcHJldmlld1ZpZXdJbnNldCA9IDM7CiBzdGF0aWMgY29uc3QgQ0dGbG9hdCBwcmV2aWV3
Vmlld1RpdGxlSGVpZ2h0ID0gMzQ7CkBAIC03NCw2ICs3Miw4IEBAIHN0YXRpYyBjb25zdCBDR0Zs
b2F0IHByZXZpZXdWaWV3VGl0bGVIZWlnaHQgPSAzNDsKIAogICAgIF9sb2FkaW5nID0gbG9hZGlu
ZzsKIAorICAgIFtfcHJldmlld1ZpZXcgc2V0SGlkZGVuOmxvYWRpbmddOworCiAgICAgaWYgKF9s
b2FkaW5nKQogICAgICAgICBbX3NwaW5uZXIgc3RhcnRBbmltYXRpb246bmlsXTsKICAgICBlbHNl
CkBAIC04OSwxNSArODksNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBwcmV2aWV3Vmlld1RpdGxl
SGVpZ2h0ID0gMzQ7CiB7CiAgICAgTlNSZWN0IGRlZmF1bHRGcmFtZSA9IE5TTWFrZVJlY3QoMCwg
MCwgX21haW5WaWV3U2l6ZS53aWR0aCwgX21haW5WaWV3U2l6ZS5oZWlnaHQpOwogICAgIF9wcmV2
aWV3VmlldyA9IFtfZGVsZWdhdGUgcGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjpzZWxmIHZpZXdG
b3JQcmV2aWV3aW5nVVJMOl91cmwuZ2V0KCkgaW5pdGlhbEZyYW1lU2l6ZTpkZWZhdWx0RnJhbWUu
c2l6ZV07Ci0gICAgaWYgKCFfcHJldmlld1ZpZXcpIHsKLSAgICAgICAgUmV0YWluUHRyPFdLV2Vi
Vmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
ZGVmYXVsdEZyYW1lXSk7Ci0gICAgICAgIFt3ZWJWaWV3IF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVu
dHM6WUVTXTsKLSAgICAgICAgaWYgKF91cmwpIHsKLSAgICAgICAgICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6X3VybC5nZXQoKV07Ci0gICAg
ICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICAgICAgfQotICAgICAg
ICBfcHJldmlld1ZpZXcgPSB3ZWJWaWV3OwotICAgIH0KKyAgICBBU1NFUlQoX3ByZXZpZXdWaWV3
KTsKIAogICAgIFJldGFpblB0cjxOU0NsaWNrR2VzdHVyZVJlY29nbml6ZXI+IGNsaWNrUmVjb2du
aXplciA9IGFkb3B0TlMoW1tOU0NsaWNrR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRo
VGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihfY2xpY2tSZWNvZ25pemVkOildKTsKICAgICBb
X3ByZXZpZXdWaWV3IGFkZEdlc3R1cmVSZWNvZ25pemVyOmNsaWNrUmVjb2duaXplci5nZXQoKV07
CkBAIC0xMTQsNiArMTA2LDcgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQgcHJldmlld1ZpZXdUaXRs
ZUhlaWdodCA9IDM0OwogICAgIFtjb250YWluZXJWaWV3IGFkZFN1YnZpZXc6X3ByZXZpZXdWaWV3
LmdldCgpXTsKICAgICBbX3ByZXZpZXdWaWV3IHNldEZyYW1lOnByZXZpZXdGcmFtZV07CiAgICAg
W19wcmV2aWV3VmlldyBzZXRBdXRvcmVzaXppbmdNYXNrOk5TVmlld1dpZHRoU2l6YWJsZSB8IE5T
Vmlld0hlaWdodFNpemFibGVdOworICAgIFtfcHJldmlld1ZpZXcgc2V0SGlkZGVuOllFU107CiAK
ICAgICBfdGl0bGVUZXh0RmllbGQgPSBhZG9wdE5TKFtbTlNUZXh0RmllbGQgYWxsb2NdIGluaXRd
KTsKICAgICBbX3RpdGxlVGV4dEZpZWxkIHNldFdhbnRzTGF5ZXI6WUVTXTsKQEAgLTE2Niw2ICsx
NTksMTUgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQgcHJldmlld1ZpZXdUaXRsZUhlaWdodCA9IDM0
OwogICAgIHNlbGYudmlldyA9IGNvbnRhaW5lclZpZXcuZ2V0KCk7CiB9CiAKKy0gKHZvaWQpcmVw
bGFjZVByZXZpZXdXaXRoSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBhdFNpemU6KE5TU2l6ZSlzaXpl
Cit7CisgICAgUmV0YWluUHRyPE5TQ2xpY2tHZXN0dXJlUmVjb2duaXplcj4gY2xpY2tSZWNvZ25p
emVyID0gYWRvcHROUyhbW05TQ2xpY2tHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhU
YXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9jbGlja1JlY29nbml6ZWQ6KV0pOworICAgIFJl
dGFpblB0cjxOU0ltYWdlVmlldz4gaW1hZ2VWaWV3ID0gYWRvcHROUyhbW05TSW1hZ2VWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWln
aHQpXSk7CisgICAgW2ltYWdlVmlldyBzZXRJbWFnZTppbWFnZV07CisgICAgW2ltYWdlVmlldyBh
ZGRHZXN0dXJlUmVjb2duaXplcjpjbGlja1JlY29nbml6ZXIuZ2V0KCldOworICAgIHNlbGYudmll
dyA9IGltYWdlVmlldy5nZXQoKTsKK30KKwogLSAodm9pZClfY2xpY2tSZWNvZ25pemVkOihOU0dl
c3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKIHsKICAgICBpZiAoZ2VzdHVyZVJl
Y29nbml6ZXIuc3RhdGUgPT0gTlNHZXN0dXJlUmVjb2duaXplclN0YXRlQmVnYW4pCkBAIC0xNzQs
NCArMTc2LDQgQEAgc3RhdGljIGNvbnN0IENHRmxvYXQgcHJldmlld1ZpZXdUaXRsZUhlaWdodCA9
IDM0OwogCiBAZW5kCiAKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwICYmIFdLX0FQSV9FTkFCTEVECisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAw
MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ByZXZpZXdQb3Bv
dmVyQW5pbWF0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
S1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0Mzg5MTMz
ZjFkNzRjNGRiM2M0YmEyMjI3ODVjZTFjMzRhNmQ0NjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9s
bGVyLmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tQcmV2aWV3UG9w
b3ZlckFuaW1hdGlvbkNvbnRyb2xsZXJfaAorI2RlZmluZSBXS1ByZXZpZXdQb3BvdmVyQW5pbWF0
aW9uQ29udHJvbGxlcl9oCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisKKyNpbXBvcnQgPFdlYkNvcmUvTlNJbW1lZGlhdGVB
Y3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgorI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQ
YWdlUHJveHk7Cit9OworCitAY2xhc3MgTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
cjsKK0BjbGFzcyBOU1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyOworQGNsYXNzIE5TU3RyaW5n
OworQGNsYXNzIE5TVVJMOworQGNsYXNzIFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcjsKK0Bj
bGFzcyBXS1ZpZXc7CisKK0BpbnRlcmZhY2UgV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRy
b2xsZXIgOiBOU09iamVjdCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiB7
CisgICAgYm9vbCBfc2hvdWxkU2hvd1ByZXZpZXdXaGVuTG9hZGVkOworICAgIGJvb2wgX2hhc0Zp
bmlzaGVkTG9hZGluZzsKKworICAgIFdLVmlldyAqX3drVmlldzsKKyAgICBSZXRhaW5QdHI8TlNV
Ukw+IF91cmw7CisgICAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIF9wYWdlOworCisgICAgUmV0YWlu
UHRyPE5TUG9wb3Zlcj4gX3ByZXZpZXdQb3BvdmVyOworICAgIE5TUmVjdCBfcG9wb3Zlck9yaWdp
blJlY3Q7CisgICAgUmV0YWluUHRyPFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlcj4gX3ByZXZp
ZXdWaWV3Q29udHJvbGxlcjsKKyAgICBOU1BvaW50IF9ldmVudExvY2F0aW9uSW5WaWV3OworCisg
ICAgUmV0YWluUHRyPE5TUG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXI+IF9wb3BvdmVyQW5pbWF0
aW9uQ29udHJvbGxlcjsKKworICAgIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIg
Kl9yZWNvZ25pemVyOworICAgIGJvb2wgX2RpZENvbXBsZXRlQW5pbWF0aW9uOworICAgIFJldGFp
blB0cjxOU1RpbWVyPiBfcHJldmlld1dhdGNoZG9nVGltZXI7Cit9CisKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFVSTDooTlNVUkwgKil1cmwgdmlldzooV0tWaWV3ICopd2tWaWV3IHBhZ2U6KFdl
YktpdDo6V2ViUGFnZVByb3h5JilwYWdlIG9yaWdpblJlY3Q6KE5TUmVjdClvcmlnaW5SZWN0IGV2
ZW50TG9jYXRpb25JblZpZXc6KE5TUG9pbnQpZXZlbnRMb2NhdGlvbkluVmlldzsKKy0gKHZvaWQp
Y2xvc2U7CisKKy0gKHZvaWQpc2V0UHJldmlld1RpdGxlOihOU1N0cmluZyAqKXByZXZpZXdUaXRs
ZTsKKy0gKHZvaWQpc2V0UHJldmlld0xvYWRpbmc6KEJPT0wpbG9hZGluZzsKKy0gKHZvaWQpc2V0
UHJldmlld092ZXJyaWRlSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZTsKKworQGVuZAorCisKKyNlbmRp
ZiAvLyBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMDAwCisKKyNlbmRpZiAvLyBXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLUHJldmlld1BvcG92
ZXJBbmltYXRpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
S1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzc2N2Mx
ZjBjMGE1OGJkMDI4NjJlNzI5NzZkZDU1NjM0MGRmMjg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJv
bGxlci5tbQpAQCAtMCwwICsxLDMzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKKworI2lt
cG9ydCAiV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmgiCisjaW1wb3J0ICJXS1ZpZXdJbnRl
cm5hbC5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9tZXRyeVV0aWxpdGllcy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9OU1BvcG92ZXJTUEkuaD4KKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitAaW50ZXJmYWNlIFdLUHJldmlld1BvcG92
ZXJBbmltYXRpb25Db250cm9sbGVyICgpIDxXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXJEZWxl
Z2F0ZSwgTlNQb3BvdmVyRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1ByZXZp
ZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlcgorCisrIChib29sKV9zaG91bGRJbW1lZGlhdGVs
eVNob3dQcmV2aWV3Cit7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkSW1tZWRpYXRlbHlTaG93UHJl
dmlldzsKKyAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKKyAgICBkaXNwYXRj
aF9vbmNlKCZvbmNlVG9rZW4sIF57CisgICAgICAgIHNob3VsZEltbWVkaWF0ZWx5U2hvd1ByZXZp
ZXcgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAi
V2ViS2l0U2hvdWxkSW1tZWRpYXRlbHlTaG93UHJldmlldyJdOworICAgIH0pOworICAgIHJldHVy
biBzaG91bGRJbW1lZGlhdGVseVNob3dQcmV2aWV3OworfQorCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhVUkw6KE5TVVJMICopdXJsIHZpZXc6KFdLVmlldyAqKXdrVmlldyBwYWdlOihXZWJQYWdl
UHJveHkmKXBhZ2Ugb3JpZ2luUmVjdDooTlNSZWN0KW9yaWdpblJlY3QgZXZlbnRMb2NhdGlvbklu
VmlldzooTlNQb2ludClldmVudExvY2F0aW9uSW5WaWV3Cit7CisgICAgc2VsZiA9IFtzdXBlciBp
bml0XTsKKworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF91cmwg
PSB1cmw7CisgICAgX3drVmlldyA9IHdrVmlldzsKKyAgICBfcGFnZSA9ICZwYWdlOworICAgIF9w
b3BvdmVyT3JpZ2luUmVjdCA9IG9yaWdpblJlY3Q7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGJlIGFibGUgdG8gZ2V0IHRoaXMgZnJvbSB0aGUgcmVjb2duaXplci4KKyAgICBfZXZlbnRMb2Nh
dGlvbkluVmlldyA9IGV2ZW50TG9jYXRpb25JblZpZXc7CisKKyAgICByZXR1cm4gc2VsZjsKK30K
KworLSAodm9pZCljbG9zZQoreworICAgIFtzZWxmIF9oaWRlUHJldmlld107CisKKyAgICBfd2tW
aWV3ID0gbmlsOworICAgIF9wYWdlID0gbnVsbHB0cjsKK30KKworLSAodm9pZClzZXRQcmV2aWV3
TG9hZGluZzooQk9PTClsb2FkaW5nCit7CisgICAgW19wcmV2aWV3Vmlld0NvbnRyb2xsZXIgc2V0
TG9hZGluZzpsb2FkaW5nXTsKKyAgICBfaGFzRmluaXNoZWRMb2FkaW5nID0gIWxvYWRpbmc7Cisg
ICAgaWYgKCFsb2FkaW5nICYmIF9zaG91bGRTaG93UHJldmlld1doZW5Mb2FkZWQpCisgICAgICAg
IFtzZWxmIF9zaG93UHJldmlld107Cit9CisKKy0gKHZvaWQpc2V0UHJldmlld092ZXJyaWRlSW1h
Z2U6KE5TSW1hZ2UgKilpbWFnZQoreworICAgIE5TU2l6ZSBpbWFnZVNpemUgPSBpbWFnZS5zaXpl
OworICAgIE5TU2l6ZSBzY2FsZWRJbWFnZVNpemU7CisgICAgaWYgKFtfcHJldmlld1BvcG92ZXIg
aXNTaG93bl0pIHsKKyAgICAgICAgTlNTaXplIGN1cnJlbnRQb3BvdmVyQ29udGVudFNpemUgPSBb
X3ByZXZpZXdQb3BvdmVyIGNvbnRlbnRTaXplXTsKKyAgICAgICAgZmxvYXQgc2NhbGUgPSBzdGQ6
Om1pbihzdGQ6Om1pbihjdXJyZW50UG9wb3ZlckNvbnRlbnRTaXplLndpZHRoIC8gaW1hZ2VTaXpl
LndpZHRoLCAxLjApLCBzdGQ6Om1pbihjdXJyZW50UG9wb3ZlckNvbnRlbnRTaXplLmhlaWdodCAv
IGltYWdlU2l6ZS5oZWlnaHQsIDEuMCkpOworICAgICAgICBzY2FsZWRJbWFnZVNpemUgPSBOU01h
a2VTaXplKGltYWdlU2l6ZS53aWR0aCAqIHNjYWxlLCBpbWFnZVNpemUuaGVpZ2h0ICogc2NhbGUp
OworICAgIH0gZWxzZQorICAgICAgICBzY2FsZWRJbWFnZVNpemUgPSBbc2VsZiBfcHJlZmVycmVk
UG9wb3ZlclNpemVXaXRoUHJldmlld1BhZGRpbmc6W1dLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxl
ciBwcmV2aWV3UGFkZGluZ10gZm9yVGFyZ2V0U2l6ZTppbWFnZVNpemVdOworCisgICAgW19wcmV2
aWV3UG9wb3ZlciBzZXRDb250ZW50U2l6ZTpzY2FsZWRJbWFnZVNpemVdOworICAgIFtfcHJldmll
d1ZpZXdDb250cm9sbGVyIHJlcGxhY2VQcmV2aWV3V2l0aEltYWdlOmltYWdlIGF0U2l6ZTpzY2Fs
ZWRJbWFnZVNpemVdOworfQorCistICh2b2lkKV9oaWRlUHJldmlldworeworICAgIGlmIChfcGFn
ZSkKKyAgICAgICAgX3BhZ2UtPmNsZWFyVGV4dEluZGljYXRvcigpOworCisgICAgaWYgKF9wcmV2
aWV3Vmlld0NvbnRyb2xsZXIpIHsKKyAgICAgICAgX3ByZXZpZXdWaWV3Q29udHJvbGxlci0+X2Rl
bGVnYXRlID0gbmlsOworICAgICAgICBbX3drVmlldyBfZmluaXNoUHJldmlld2luZ1VSTDpfcHJl
dmlld1ZpZXdDb250cm9sbGVyLT5fdXJsLmdldCgpIHdpdGhQcmV2aWV3VmlldzpfcHJldmlld1Zp
ZXdDb250cm9sbGVyLT5fcHJldmlld1ZpZXcuZ2V0KCldOworICAgICAgICBfcHJldmlld1ZpZXdD
b250cm9sbGVyID0gbmlsOworICAgIH0KKworICAgIFtfcHJldmlld1BvcG92ZXIgY2xvc2VdOwor
ICAgIFtfcHJldmlld1BvcG92ZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBfcHJldmlld1BvcG92
ZXIgPSBuaWw7Cit9CisKKy0gKHZvaWQpc2V0UHJldmlld1RpdGxlOihOU1N0cmluZyAqKXByZXZp
ZXdUaXRsZQoreworICAgIFtfcHJldmlld1ZpZXdDb250cm9sbGVyIHNldFByZXZpZXdUaXRsZTpw
cmV2aWV3VGl0bGVdOworfQorCistICh2b2lkKV9jcmVhdGVQcmV2aWV3UG9wb3ZlcgoreworICAg
IE5TU2l6ZSBwcmV2aWV3UGFkZGluZyA9IFtXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIgcHJl
dmlld1BhZGRpbmddOworICAgIE5TU2l6ZSBwb3BvdmVyU2l6ZSA9IFtzZWxmIF9wcmVmZXJyZWRQ
b3BvdmVyU2l6ZVdpdGhQcmV2aWV3UGFkZGluZzpwcmV2aWV3UGFkZGluZyBmb3JUYXJnZXRTaXpl
OltzZWxmIF90YXJnZXRTaXplRm9yUGFnZVByZXZpZXddXTsKKyAgICBDR0Zsb2F0IGFjdHVhbFBv
cG92ZXJUb1ZpZXdTY2FsZSA9IHBvcG92ZXJTaXplLndpZHRoIC8gTlNXaWR0aChfd2tWaWV3LmJv
dW5kcyk7CisgICAgcG9wb3ZlclNpemUud2lkdGggKz0gcHJldmlld1BhZGRpbmcud2lkdGg7Cisg
ICAgcG9wb3ZlclNpemUuaGVpZ2h0ICs9IHByZXZpZXdQYWRkaW5nLmhlaWdodDsKKworICAgIF9w
cmV2aWV3Vmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tQYWdlUHJldmlld1ZpZXdDb250cm9s
bGVyIGFsbG9jXSBpbml0V2l0aFBhZ2VVUkw6X3VybC5nZXQoKSBtYWluVmlld1NpemU6X3drVmll
dy5ib3VuZHMuc2l6ZSBwb3BvdmVyVG9WaWV3U2NhbGU6YWN0dWFsUG9wb3ZlclRvVmlld1NjYWxl
XSk7CisgICAgX3ByZXZpZXdWaWV3Q29udHJvbGxlci0+X2RlbGVnYXRlID0gc2VsZjsKKyAgICBb
X3ByZXZpZXdWaWV3Q29udHJvbGxlciBzZXRMb2FkaW5nOllFU107CisgICAgW19wcmV2aWV3Vmll
d0NvbnRyb2xsZXIgbG9hZFZpZXddOworCisgICAgX3ByZXZpZXdQb3BvdmVyID0gYWRvcHROUyhb
W05TUG9wb3ZlciBhbGxvY10gaW5pdF0pOworICAgIFtfcHJldmlld1BvcG92ZXIgc2V0QmVoYXZp
b3I6TlNQb3BvdmVyQmVoYXZpb3JUcmFuc2llbnRdOworICAgIFtfcHJldmlld1BvcG92ZXIgc2V0
Q29udGVudFNpemU6cG9wb3ZlclNpemVdOworICAgIFtfcHJldmlld1BvcG92ZXIgc2V0Q29udGVu
dFZpZXdDb250cm9sbGVyOl9wcmV2aWV3Vmlld0NvbnRyb2xsZXIuZ2V0KCldOworICAgIFtfcHJl
dmlld1BvcG92ZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW19wcmV2aWV3UG9wb3ZlciBzZXRQ
b3NpdGlvbmluZ09wdGlvbnM6TlNQb3BvdmVyUG9zaXRpb25pbmdPcHRpb25LZWVwVG9wU3RhYmxl
XTsKK30KKworLSAodm9pZClfc2hvd1ByZXZpZXcKK3sKKyAgICBfc2hvdWxkU2hvd1ByZXZpZXdX
aGVuTG9hZGVkID0gZmFsc2U7CisgICAgW19wcmV2aWV3V2F0Y2hkb2dUaW1lciBpbnZhbGlkYXRl
XTsKKyAgICBfcHJldmlld1dhdGNoZG9nVGltZXIgPSBuaWw7CisKKyAgICBDbGFzcyBuc1BvcG92
ZXJBbmltYXRpb25Db250cm9sbGVyQ2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIk5TUG9wb3Zl
ckFuaW1hdGlvbkNvbnRyb2xsZXIiKTsKKyAgICBpZiAobnNQb3BvdmVyQW5pbWF0aW9uQ29udHJv
bGxlckNsYXNzKSB7CisgICAgICAgIF9wb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciA9IFtuc1Bv
cG92ZXJBbmltYXRpb25Db250cm9sbGVyQ2xhc3MgcG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXJX
aXRoUG9wb3ZlcjpfcHJldmlld1BvcG92ZXIuZ2V0KCldOworICAgICAgICBbX3BvcG92ZXJBbmlt
YXRpb25Db250cm9sbGVyIHNldFByZWZlcnJlZEVkZ2U6TlNNYXhZRWRnZV07CisgICAgICAgIFtf
cG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgc2V0QW5jaG9yVmlldzpfd2tWaWV3XTsKKyAgICAg
ICAgW19wb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciBzZXRQb3NpdGlvbmluZ1JlY3Q6X3BvcG92
ZXJPcmlnaW5SZWN0XTsKKworICAgICAgICBbX3BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyIHJl
Y29nbml6ZXJXaWxsQmVnaW5BbmltYXRpb246X3JlY29nbml6ZXJdOworCisgICAgICAgIGlmIChf
ZGlkQ29tcGxldGVBbmltYXRpb24pCisgICAgICAgICAgICBbX3BvcG92ZXJBbmltYXRpb25Db250
cm9sbGVyIHJlY29nbml6ZXJEaWRDb21wbGV0ZUFuaW1hdGlvbjpfcmVjb2duaXplcl07CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIFtfcG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgcmVjb2du
aXplckRpZFVwZGF0ZUFuaW1hdGlvbjpfcmVjb2duaXplcl07CisgICAgfQorfQorCitzdGF0aWMg
Ym9vbCB0YXJnZXRTaXplRml0c0luQXZhaWxhYmxlU3BhY2UoTlNTaXplIHRhcmdldFNpemUsIE5T
U2l6ZSBhdmFpbGFibGVTcGFjZSkKK3sKKyAgICByZXR1cm4gdGFyZ2V0U2l6ZS53aWR0aCA8PSBh
dmFpbGFibGVTcGFjZS53aWR0aCAmJiB0YXJnZXRTaXplLmhlaWdodCA8PSBhdmFpbGFibGVTcGFj
ZS5oZWlnaHQ7Cit9CisKKy0gKE5TU2l6ZSlsYXJnZXN0UG9wb3ZlclNpemUKK3sKKyAgICBOU1Np
emUgc2NyZWVuU2l6ZSA9IF93a1ZpZXcud2luZG93LnNjcmVlbi5mcmFtZS5zaXplOworCisgICAg
aWYgKHNjcmVlblNpemUud2lkdGggPT0gMTI4MCAmJiBzY3JlZW5TaXplLmhlaWdodCA9PSA4MDAp
CisgICAgICAgIHJldHVybiBOU01ha2VTaXplKDEyNDAsIDY3NCk7CisKKyAgICBpZiAoc2NyZWVu
U2l6ZS53aWR0aCA9PSAxMzY2ICYmIHNjcmVlblNpemUuaGVpZ2h0ID09IDc2OCkKKyAgICAgICAg
cmV0dXJuIE5TTWFrZVNpemUoMTI2NCwgNjQyKTsKKworICAgIGlmIChzY3JlZW5TaXplLndpZHRo
ID09IDE0NDAgJiYgc2NyZWVuU2l6ZS5oZWlnaHQgPT0gOTAwKQorICAgICAgICByZXR1cm4gTlNN
YWtlU2l6ZSgxMjY0LCA3NjApOworCisgICAgaWYgKHNjcmVlblNpemUud2lkdGggPT0gMTY4MCAm
JiBzY3JlZW5TaXplLmhlaWdodCA9PSAxMDUwKQorICAgICAgICByZXR1cm4gTlNNYWtlU2l6ZSgx
MzI0LCA5MTApOworCisgICAgcmV0dXJuIE5TTWFrZVNpemUoMTMyNCwgOTQwKTsKK30KKworLSAo
TlNTaXplKV90YXJnZXRTaXplRm9yUGFnZVByZXZpZXcKK3sKKyAgICBzdGF0aWMgY29uc3QgQ0dG
bG9hdCBwcmVmZXJyZWRQb3BvdmVyVG9WaWV3U2NhbGUgPSAwLjc1OworICAgIE5TUmVjdCB3a1Zp
ZXdCb3VuZHMgPSBfd2tWaWV3LmJvdW5kczsKKyAgICByZXR1cm4gTlNNYWtlU2l6ZShOU1dpZHRo
KHdrVmlld0JvdW5kcykgKiBwcmVmZXJyZWRQb3BvdmVyVG9WaWV3U2NhbGUsIE5TSGVpZ2h0KHdr
Vmlld0JvdW5kcykgKiBwcmVmZXJyZWRQb3BvdmVyVG9WaWV3U2NhbGUpOworfQorCistIChOU1Np
emUpX3ByZWZlcnJlZFBvcG92ZXJTaXplV2l0aFByZXZpZXdQYWRkaW5nOihOU1NpemUpcHJldmll
d1BhZGRpbmcgZm9yVGFyZ2V0U2l6ZTooTlNTaXplKXRhcmdldFNpemUKK3sKKyAgICBzdGF0aWMg
Y29uc3QgTlNTaXplIHNjcmVlblBhZGRpbmcgPSBOU01ha2VTaXplKDQwLCA0MCk7CisgICAgc3Rh
dGljIGNvbnN0IE5TU2l6ZSBzbWFsbGVzdFBvcG92ZXJTaXplID0gTlNNYWtlU2l6ZSg1MDAsIDUw
MCk7CisKKyAgICBjb25zdCBOU1NpemUgZWZmZWN0aXZlUGFkZGluZyA9IE5TTWFrZVNpemUoc2Ny
ZWVuUGFkZGluZy53aWR0aCArIHByZXZpZXdQYWRkaW5nLndpZHRoLCBzY3JlZW5QYWRkaW5nLmhl
aWdodCArIHByZXZpZXdQYWRkaW5nLmhlaWdodCk7CisKKyAgICBOU1dpbmRvdyAqd2luZG93ID0g
X3drVmlldy53aW5kb3c7CisgICAgTlNSZWN0IG9yaWdpblNjcmVlblJlY3QgPSBbd2luZG93IGNv
bnZlcnRSZWN0VG9TY3JlZW46W193a1ZpZXcgY29udmVydFJlY3Q6X3BvcG92ZXJPcmlnaW5SZWN0
IHRvVmlldzpuaWxdXTsKKyAgICBOU1JlY3Qgc2NyZWVuRnJhbWUgPSB3aW5kb3cuc2NyZWVuLnZp
c2libGVGcmFtZTsKKworICAgIE5TU2l6ZSBsYXJnZXN0UG9wb3ZlclNpemUgPSBbc2VsZiBsYXJn
ZXN0UG9wb3ZlclNpemVdOworCisgICAgQ0dGbG9hdCBhdmFpbGFibGVTcGFjZUFib3ZlID0gTlNN
YXhZKHNjcmVlbkZyYW1lKSAtIE5TTWF4WShvcmlnaW5TY3JlZW5SZWN0KTsKKyAgICBDR0Zsb2F0
IGF2YWlsYWJsZVNwYWNlQmVsb3cgPSBOU01pblkob3JpZ2luU2NyZWVuUmVjdCkgLSBOU01pblko
c2NyZWVuRnJhbWUpOworICAgIENHRmxvYXQgbWF4QXZhaWxhYmxlVmVydGljYWxTcGFjZSA9IGZt
YXgoYXZhaWxhYmxlU3BhY2VBYm92ZSwgYXZhaWxhYmxlU3BhY2VCZWxvdykgLSBlZmZlY3RpdmVQ
YWRkaW5nLmhlaWdodDsKKyAgICBOU1NpemUgbWF4U3BhY2VBdmFpbGFibGVPbllFZGdlID0gTlNN
YWtlU2l6ZShzY3JlZW5GcmFtZS5zaXplLndpZHRoIC0gZWZmZWN0aXZlUGFkZGluZy5oZWlnaHQs
IG1heEF2YWlsYWJsZVZlcnRpY2FsU3BhY2UpOworICAgIGlmICh0YXJnZXRTaXplRml0c0luQXZh
aWxhYmxlU3BhY2UodGFyZ2V0U2l6ZSwgbWF4U3BhY2VBdmFpbGFibGVPbllFZGdlKSAmJiB0YXJn
ZXRTaXplRml0c0luQXZhaWxhYmxlU3BhY2UodGFyZ2V0U2l6ZSwgbGFyZ2VzdFBvcG92ZXJTaXpl
KSkKKyAgICAgICAgcmV0dXJuIHRhcmdldFNpemU7CisKKyAgICBDR0Zsb2F0IGF2YWlsYWJsZVNw
YWNlQXRMZWZ0ID0gTlNNaW5YKG9yaWdpblNjcmVlblJlY3QpIC0gTlNNaW5YKHNjcmVlbkZyYW1l
KTsKKyAgICBDR0Zsb2F0IGF2YWlsYWJsZVNwYWNlQXRSaWdodCA9IE5TTWF4WChzY3JlZW5GcmFt
ZSkgLSBOU01heFgob3JpZ2luU2NyZWVuUmVjdCk7CisgICAgQ0dGbG9hdCBtYXhBdmFpbGFibGVI
b3Jpem9udGFsU3BhY2UgPSBmbWF4KGF2YWlsYWJsZVNwYWNlQXRMZWZ0LCBhdmFpbGFibGVTcGFj
ZUF0UmlnaHQpIC0gZWZmZWN0aXZlUGFkZGluZy53aWR0aDsKKyAgICBOU1NpemUgbWF4U3BhY2VB
dmFpbGFibGVPblhFZGdlID0gTlNNYWtlU2l6ZShtYXhBdmFpbGFibGVIb3Jpem9udGFsU3BhY2Us
IHNjcmVlbkZyYW1lLnNpemUuaGVpZ2h0IC0gZWZmZWN0aXZlUGFkZGluZy53aWR0aCk7CisgICAg
aWYgKHRhcmdldFNpemVGaXRzSW5BdmFpbGFibGVTcGFjZSh0YXJnZXRTaXplLCBtYXhTcGFjZUF2
YWlsYWJsZU9uWEVkZ2UpICYmIHRhcmdldFNpemVGaXRzSW5BdmFpbGFibGVTcGFjZSh0YXJnZXRT
aXplLCBsYXJnZXN0UG9wb3ZlclNpemUpKQorICAgICAgICByZXR1cm4gdGFyZ2V0U2l6ZTsKKwor
ICAgIC8vIEFkanVzdCB0aGUgbWF4aW11bSBzcGFjZSBhdmFpbGFibGUgaWYgaXQgaXMgbGFyZ2Vy
IHRoYW4gdGhlIGxhcmdlc3QgcG9wb3ZlciBzaXplLgorICAgIGlmIChtYXhTcGFjZUF2YWlsYWJs
ZU9uWUVkZ2Uud2lkdGggPiBsYXJnZXN0UG9wb3ZlclNpemUud2lkdGggJiYgbWF4U3BhY2VBdmFp
bGFibGVPbllFZGdlLmhlaWdodCA+IGxhcmdlc3RQb3BvdmVyU2l6ZS5oZWlnaHQpCisgICAgICAg
IG1heFNwYWNlQXZhaWxhYmxlT25ZRWRnZSA9IGxhcmdlc3RQb3BvdmVyU2l6ZTsKKyAgICBpZiAo
bWF4U3BhY2VBdmFpbGFibGVPblhFZGdlLndpZHRoID4gbGFyZ2VzdFBvcG92ZXJTaXplLndpZHRo
ICYmIG1heFNwYWNlQXZhaWxhYmxlT25YRWRnZS5oZWlnaHQgPiBsYXJnZXN0UG9wb3ZlclNpemUu
aGVpZ2h0KQorICAgICAgICBtYXhTcGFjZUF2YWlsYWJsZU9uWEVkZ2UgPSBsYXJnZXN0UG9wb3Zl
clNpemU7CisKKyAgICAvLyBJZiB0aGUgdGFyZ2V0IHNpemUgZG9lc24ndCBmaXQgYW55d2hlcmUs
IHdlJ2xsIGZpbmQgdGhlIGxhcmdlc3QgcmVjdCB0aGF0IGRvZXMgZml0IHRoYXQgYWxzbyBtYWlu
dGFpbnMgdGhlIG9yaWdpbmFsIHZpZXcncyBhc3BlY3QgcmF0aW8uCisgICAgQ0dGbG9hdCBhc3Bl
Y3RSYXRpbyA9IHRhcmdldFNpemUud2lkdGggLyB0YXJnZXRTaXplLmhlaWdodDsKKyAgICBGbG9h
dFJlY3QgbWF4VmVydGljYWxUYXJnZXRTaXplUHJlc2VydmluZ0FzcGVjdFJhdGlvUmVjdCA9IGxh
cmdlc3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChhc3BlY3RSYXRpbywgRmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgRmxvYXRTaXplKG1heFNwYWNlQXZhaWxhYmxlT25ZRWRnZSkpKTsKKyAg
ICBGbG9hdFJlY3QgbWF4SG9yaXpvbnRhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0aW9S
ZWN0ID0gbGFyZ2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KGFzcGVjdFJhdGlvLCBG
bG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUobWF4U3BhY2VBdmFpbGFibGVPblhFZGdl
KSkpOworCisgICAgTlNTaXplIG1heFZlcnRpY2FsVGFyZ2V0U2l6ZVByZXNlcnZpbmdBc3BlY3RS
YXRpbyA9IE5TTWFrZVNpemUobWF4VmVydGljYWxUYXJnZXRTaXplUHJlc2VydmluZ0FzcGVjdFJh
dGlvUmVjdC53aWR0aCgpLCBtYXhWZXJ0aWNhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0
aW9SZWN0LmhlaWdodCgpKTsKKyAgICBOU1NpemUgbWF4SG9ydGl6b250YWxUYXJnZXRTaXplUHJl
c2VydmluZ0FzcGVjdFJhdGlvID0gTlNNYWtlU2l6ZShtYXhIb3Jpem9udGFsVGFyZ2V0U2l6ZVBy
ZXNlcnZpbmdBc3BlY3RSYXRpb1JlY3Qud2lkdGgoKSwgbWF4SG9yaXpvbnRhbFRhcmdldFNpemVQ
cmVzZXJ2aW5nQXNwZWN0UmF0aW9SZWN0LmhlaWdodCgpKTsKKworICAgIE5TU2l6ZSBjb21wdXRl
ZFRhcmdldFNpemU7CisgICAgaWYgKChtYXhWZXJ0aWNhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNw
ZWN0UmF0aW8ud2lkdGggKiBtYXhWZXJ0aWNhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0
aW8uaGVpZ2h0KSA+IChtYXhIb3J0aXpvbnRhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0
aW8ud2lkdGggKiBtYXhIb3J0aXpvbnRhbFRhcmdldFNpemVQcmVzZXJ2aW5nQXNwZWN0UmF0aW8u
aGVpZ2h0KSkKKyAgICAgICAgY29tcHV0ZWRUYXJnZXRTaXplID0gbWF4VmVydGljYWxUYXJnZXRT
aXplUHJlc2VydmluZ0FzcGVjdFJhdGlvOworICAgIGVsc2UKKyAgICAgICAgY29tcHV0ZWRUYXJn
ZXRTaXplID0gbWF4SG9ydGl6b250YWxUYXJnZXRTaXplUHJlc2VydmluZ0FzcGVjdFJhdGlvOwor
CisgICAgLy8gTm93IG1ha2Ugc3VyZSB3aGF0IHdlJ3ZlIGNvbXB1dGVkIGlzbid0IHRvbyBzbWFs
bC4KKyAgICBpZiAoY29tcHV0ZWRUYXJnZXRTaXplLndpZHRoIDwgc21hbGxlc3RQb3BvdmVyU2l6
ZS53aWR0aCAmJiBjb21wdXRlZFRhcmdldFNpemUuaGVpZ2h0IDwgc21hbGxlc3RQb3BvdmVyU2l6
ZS5oZWlnaHQpIHsKKyAgICAgICAgZmxvYXQgbGltaXRXaWR0aCA9IHNtYWxsZXN0UG9wb3ZlclNp
emUud2lkdGggPiBjb21wdXRlZFRhcmdldFNpemUud2lkdGggPyBzbWFsbGVzdFBvcG92ZXJTaXpl
LndpZHRoIDogY29tcHV0ZWRUYXJnZXRTaXplLndpZHRoOworICAgICAgICBmbG9hdCBsaW1pdEhl
aWdodCA9IHNtYWxsZXN0UG9wb3ZlclNpemUuaGVpZ2h0ID4gY29tcHV0ZWRUYXJnZXRTaXplLmhl
aWdodCA/IHNtYWxsZXN0UG9wb3ZlclNpemUuaGVpZ2h0IDogY29tcHV0ZWRUYXJnZXRTaXplLmhl
aWdodDsKKyAgICAgICAgRmxvYXRSZWN0IHRhcmdldFJlY3RMYXJnZXJUaGFuTWluU2l6ZSA9IGxh
cmdlc3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChhc3BlY3RSYXRpbywgRmxvYXRSZWN0
KDAsIDAsIGxpbWl0V2lkdGgsIGxpbWl0SGVpZ2h0KSk7CisgICAgICAgIGNvbXB1dGVkVGFyZ2V0
U2l6ZSA9IE5TTWFrZVNpemUodGFyZ2V0UmVjdExhcmdlclRoYW5NaW5TaXplLnNpemUoKS53aWR0
aCgpLCB0YXJnZXRSZWN0TGFyZ2VyVGhhbk1pblNpemUuc2l6ZSgpLmhlaWdodCgpKTsKKworICAg
ICAgICAvLyBJZiBvdXIgb3JpZ25hbCBjb21wdXRlZFRhcmdldFNpemUgd2FzIHNvIHNtYWxsIHRo
YXQgd2UgaGFkIHRvIGdldCBoZXJlIGFuZCBtYWtlIGEgbmV3IGNvbXB1dGVkVGFyZ2V0U2l6ZSB0
aGF0IGlzCisgICAgICAgIC8vIGxhcmdlciB0aGFuIHRoZSBtaW5pbXVtLCB0aGVuIHRoZSBlbGVt
ZW50Qm91bmRpbmdCb3ggb2YgdGhlIF9oaXRUZXN0UmVzdWx0IGlzIHByb2JhYmx5IGh1Z2UuIFNv
IHdlIHNob3VsZCB1c2UKKyAgICAgICAgLy8gdGhlIGV2ZW50IG9yaWdpbiBhcyB0aGUgcG9wb3Zl
ciBvcmlnaW4gaW4gdGhpcyBjYXNlIGFuZCBub3Qgd29ycnkgYWJvdXQgb2JzY3VyaW5nIHRoZSBf
aGl0VGVzdFJlc3VsdC4KKyAgICAgICAgX3BvcG92ZXJPcmlnaW5SZWN0Lm9yaWdpbiA9IF9ldmVu
dExvY2F0aW9uSW5WaWV3OworICAgICAgICBfcG9wb3Zlck9yaWdpblJlY3Quc2l6ZSA9IE5TTWFr
ZVNpemUoMSwgMSk7CisgICAgfQorICAgIAorICAgIHJldHVybiBjb21wdXRlZFRhcmdldFNpemU7
Cit9CisKKy0gKHZvaWQpX3ByZXZpZXdXYXRjaGRvZ1RpbWVyRmlyZWQ6KE5TVGltZXIgKil0aW1l
cgoreworICAgIFtzZWxmIF9zaG93UHJldmlld107CisgICAgX3ByZXZpZXdXYXRjaGRvZ1RpbWVy
ID0gbmlsOworfQorCisjcHJhZ21hIG1hcmsgTlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250
cm9sbGVyCisKKy0gKHZvaWQpcmVjb2duaXplcldpbGxCZWdpbkFuaW1hdGlvbjooTlNJbW1lZGlh
dGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKXJlY29nbml6ZXIKK3sKKyAgICBfcmVjb2duaXpl
ciA9IHJlY29nbml6ZXI7CisgICAgX2RpZENvbXBsZXRlQW5pbWF0aW9uID0gZmFsc2U7CisgICAg
W3NlbGYgX2NyZWF0ZVByZXZpZXdQb3BvdmVyXTsKKworICAgIGlmIChbc2VsZi5jbGFzcyBfc2hv
dWxkSW1tZWRpYXRlbHlTaG93UHJldmlld10pCisgICAgICAgIFtzZWxmIF9zaG93UHJldmlld107
CisgICAgZWxzZSB7CisgICAgICAgIF9zaG91bGRTaG93UHJldmlld1doZW5Mb2FkZWQgPSB0cnVl
OworICAgICAgICBfcHJldmlld1dhdGNoZG9nVGltZXIgPSBbTlNUaW1lciBzY2hlZHVsZWRUaW1l
cldpdGhUaW1lSW50ZXJ2YWw6MSB0YXJnZXQ6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXZp
ZXdXYXRjaGRvZ1RpbWVyRmlyZWQ6KSB1c2VySW5mbzpuaWwgcmVwZWF0czpOT107CisgICAgfQor
fQorCistICh2b2lkKXJlY29nbml6ZXJEaWRVcGRhdGVBbmltYXRpb246KE5TSW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIgKilyZWNvZ25pemVyCit7CisgICAgW19wb3BvdmVyQW5pbWF0
aW9uQ29udHJvbGxlciByZWNvZ25pemVyRGlkVXBkYXRlQW5pbWF0aW9uOnJlY29nbml6ZXJdOwor
fQorCistICh2b2lkKXJlY29nbml6ZXJEaWRDYW5jZWxBbmltYXRpb246KE5TSW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIgKilyZWNvZ25pemVyCit7CisgICAgW3NlbGYgX2hpZGVQcmV2
aWV3XTsKKworICAgIFtfcG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIgcmVjb2duaXplckRpZENh
bmNlbEFuaW1hdGlvbjpyZWNvZ25pemVyXTsKK30KKworLSAodm9pZClyZWNvZ25pemVyRGlkQ29t
cGxldGVBbmltYXRpb246KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilyZWNv
Z25pemVyCit7CisgICAgX2RpZENvbXBsZXRlQW5pbWF0aW9uID0gdHJ1ZTsKKyAgICBbX3BvcG92
ZXJBbmltYXRpb25Db250cm9sbGVyIHJlY29nbml6ZXJEaWRDb21wbGV0ZUFuaW1hdGlvbjpyZWNv
Z25pemVyXTsKK30KKworLSAodm9pZClyZWNvZ25pemVyRGlkRGlzbWlzc0FuaW1hdGlvbjooTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKXJlY29nbml6ZXIKK3sKKyAgICBbc2Vs
ZiBfaGlkZVByZXZpZXddOworCisgICAgW19wb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlciByZWNv
Z25pemVyRGlkRGlzbWlzc0FuaW1hdGlvbjpyZWNvZ25pemVyXTsKK30KKworI3ByYWdtYSBtYXJr
IFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlckRlbGVnYXRlCisKKy0gKE5TVmlldyAqKXBhZ2VQ
cmV2aWV3Vmlld0NvbnRyb2xsZXI6KFdLUGFnZVByZXZpZXdWaWV3Q29udHJvbGxlciAqKXBhZ2VQ
cmV2aWV3Vmlld0NvbnRyb2xsZXIgdmlld0ZvclByZXZpZXdpbmdVUkw6KE5TVVJMICopdXJsIGlu
aXRpYWxGcmFtZVNpemU6KE5TU2l6ZSlpbml0aWFsRnJhbWVTaXplCit7CisgICAgcmV0dXJuIFtf
d2tWaWV3IF92aWV3Rm9yUHJldmlld2luZ1VSTDp1cmwgaW5pdGlhbEZyYW1lU2l6ZTppbml0aWFs
RnJhbWVTaXplXTsKK30KKworLSAoTlNTdHJpbmcgKilwYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
OihXS1BhZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIgKilwYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
IHRpdGxlRm9yUHJldmlld09mVVJMOihOU1VSTCAqKXVybAoreworICAgIHJldHVybiBbX3drVmll
dyBfdGl0bGVGb3JQcmV2aWV3T2ZVUkw6dXJsXTsKK30KKworLSAodm9pZClwYWdlUHJldmlld1Zp
ZXdDb250cm9sbGVyV2FzQ2xpY2tlZDooV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyICopcGFn
ZVByZXZpZXdWaWV3Q29udHJvbGxlcgoreworICAgIGlmIChOU1VSTCAqdXJsID0gcGFnZVByZXZp
ZXdWaWV3Q29udHJvbGxlci0+X3VybC5nZXQoKSkKKyAgICAgICAgW193a1ZpZXcgX2hhbmRsZUNs
aWNrSW5QcmV2aWV3VmlldzpwYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLT5fcHJldmlld1ZpZXcu
Z2V0KCkgVVJMOnVybF07Cit9CisKKyNwcmFnbWEgbWFyayBOU1BvcG92ZXJEZWxlZ2F0ZQorCist
ICh2b2lkKXBvcG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7
CisgICAgW3NlbGYgX2hpZGVQcmV2aWV3XTsKK30KKworQGVuZAorCisKKyNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZGYyZWY5MGUyMmIwMDNlN2JmZGI2MzI5NzEyOWRhYzgwOTMzYWI4MC4uZjdlMjhlZjgxM2E3
NGQ3MzQ5NmUyOTBkOTdkYjg5NjBjNjBiODgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTcwLDYgKzU3MCw4IEBACiAJCTI5
RDU1REYyMTYxQkY5RjEwMDMxQTJFMyAvKiBXZWJQYWdlR3JvdXBQcm94eU1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUQ1NURGMDE2MUJG
OUYxMDAzMUEyRTMgLyogV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQkyRDA3
MzBBMjE5RjlDN0RBMDBFOUQ5QzQgLyogV0tBY3Rpb25NZW51Q29udHJvbGxlci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMDczMEEwMTlGOUM3REEw
MEU5RDlDNCAvKiBXS0FjdGlvbk1lbnVDb250cm9sbGVyLm1tICovOyB9OwogCQkyRDA3MzBBMzE5
RjlDN0RBMDBFOUQ5QzQgLyogV0tBY3Rpb25NZW51Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQwNzMwQTExOUY5QzdEQTAwRTlEOUM0
IC8qIFdLQWN0aW9uTWVudUNvbnRyb2xsZXIuaCAqLzsgfTsKKwkJMkQwQjhBQ0ExQTQyQTM5QzAw
NkQ3RkM4IC8qIFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDBCOEFDODFBNDJBMzlDMDA2
RDdGQzggLyogV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsKKwkJ
MkQwQjhBQ0IxQTQyQTM5QzAwNkQ3RkM4IC8qIFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250
cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQwQjhBQzkxQTQyQTM5QzAwNkQ3RkM4IC8qIFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250
cm9sbGVyLm1tICovOyB9OwogCQkyRDEyNUM1RTE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1
cmVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDEyNUM1QzE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyLmgg
Ki87IH07CiAJCTJEMTI1QzVGMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDEyNUM1RDE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tICov
OyB9OwogCQkyRDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEMUI1RDVCMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMjYwMiw2ICsyNjA0LDggQEAKIAkJMjlE
NTVERjAxNjFCRjlGMTAwMzFBMkUzIC8qIFdlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUdyb3VwUHJveHlNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDA3MzBBMDE5RjlDN0RBMDBFOUQ5QzQg
LyogV0tBY3Rpb25NZW51Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLQWN0aW9uTWVudUNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJEMDczMEExMTlGOUM3REEwMEU5RDlDNCAvKiBXS0FjdGlvbk1lbnVDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVudUNv
bnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQwQjhBQzgxQTQyQTM5
QzAwNkQ3RkM4IC8qIFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld1BvcG92ZXJBbmltYXRpb25Db250
cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMEI4QUM5MUE0MkEzOUMw
MDZEN0ZDOCAvKiBXS1ByZXZpZXdQb3BvdmVyQW5pbWF0aW9uQ29udHJvbGxlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUHJldmlld1BvcG92ZXJBbmltYXRp
b25Db250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDEyNUM1QzE4
NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdHZXN0dXJlQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRDEyNUM1RDE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVD
b250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Vmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRDFCNUQ1QTE4NTg2NTk5MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3NjMsNiArNjc2Nyw4IEBACiAJCQkJOTMyMUQ1ODcxQTM4
RUU3NDAwODA1MkJFIC8qIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSAqLywKIAkJCQky
REVCMzQ2RjFBMzk4N0FCMDAzMEUyQkEgLyogV0tQYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmgg
Ki8sCiAJCQkJMkRFQjM0NzAxQTM5ODdBQjAwMzBFMkJBIC8qIFdLUGFnZVByZXZpZXdWaWV3Q29u
dHJvbGxlci5tbSAqLywKKwkJCQkyRDBCOEFDODFBNDJBMzlDMDA2RDdGQzggLyogV0tQcmV2aWV3
UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIuaCAqLywKKwkJCQkyRDBCOEFDOTFBNDJBMzlDMDA2
RDdGQzggLyogV0tQcmV2aWV3UG9wb3ZlckFuaW1hdGlvbkNvbnRyb2xsZXIubW0gKi8sCiAJCQkJ
MEZDQjRFNUMxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3LmggKi8sCiAJCQkJMEZD
QjRFNUQxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3Lm1tICovLAogCQkJCTBGQ0I0
RTVFMThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCAqLywK
QEAgLTczMjUsNiArNzMzMSw3IEBACiAJCQkJNEEzQ0MxOEYxOUIwN0I4QTAwRDE0QUVGIC8qIFdL
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZC
MTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOTBDMUY0MTI2NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMkQwQjhBQ0ExQTQyQTM5QzAwNkQ3RkM4IC8qIFdLUHJldmlld1BvcG92ZXJBbmlt
YXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTVFNzcyODE4M0RENkY2MDAw
NzIwM0YgLyogQXN5bmNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U4MUQ4RDEzMTlG
N0VGMDAyNDE5MTAgLyogRm9udEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMzYzNUFBMUEz
MTQ0QTMwMEVENjE5NyAvKiBBUElXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKQEAg
LTkyNjIsNiArOTI2OSw3IEBACiAJCQkJQkM3MkI5RkExMUU2NDc2QjAwMUVCNEVBIC8qIFdlYkJh
Y2tGb3J3YXJkTGlzdFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQTVBMTEyRjRG
QkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQw
NzMwQTIxOUY5QzdEQTAwRTlEOUM0IC8qIFdLQWN0aW9uTWVudUNvbnRyb2xsZXIubW0gaW4gU291
cmNlcyAqLywKKwkJCQkyRDBCOEFDQjFBNDJBMzlDMDA2RDdGQzggLyogV0tQcmV2aWV3UG9wb3Zl
ckFuaW1hdGlvbkNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NjgxNjBEMDE4NzY0
NTU3MDAyMUU3OUQgLyogV2luZG93U2VydmVyQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTU4QjZGMDkxOEZDQTczMzAwOENCQTUzIC8qIFdLRmlsZVVwbG9hZFBh
bmVsLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggZTg2NDZiZWQwNzBhMjY1YjhhMjJiZTI3
ZThkZGU0MTViNGRmNTg0YS4uNDM3ZWQxNmQ5NzAxMDlhMGQyYjM1YTI4NDZlMjA0NzJkODY1ZDA2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbQpAQCAtMTAwNCw2ICsxMDA0LDEzIEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybUFj
dGlvbk1lbnVIaXRUZXN0QXRMb2NhdGlvbihXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uSW5W
CiAKICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gY29yZVBhZ2UoKS0+Zm9jdXND
b250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCku
Zmlyc3RSYW5nZSgpOwogCisgICAgVVJMIGFic29sdXRlTGlua1VSTCA9IGhpdFRlc3RSZXN1bHQu
YWJzb2x1dGVMaW5rVVJMKCk7CisgICAgTm9kZSAqaW5uZXJOb2RlID0gaGl0VGVzdFJlc3VsdC5p
bm5lck5vZGUoKTsKKyAgICBpZiAoIWFic29sdXRlTGlua1VSTC5pc0VtcHR5KCkgJiYgaW5uZXJO
b2RlKSB7CisgICAgICAgIFJlZlB0cjxSYW5nZT4gbGlua1JhbmdlID0gcmFuZ2VPZkNvbnRlbnRz
KCppbm5lck5vZGUpOworICAgICAgICBhY3Rpb25NZW51UmVzdWx0LmxpbmtUZXh0SW5kaWNhdG9y
ID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKCpsaW5rUmFuZ2UsIHRleHRJbmRpY2F0
b3JUcmFuc2l0aW9uRm9yQWN0aW9uTWVudShzZWxlY3Rpb25SYW5nZS5nZXQoKSwgKmxpbmtSYW5n
ZSwgZm9ySW1tZWRpYXRlQWN0aW9uLCBmYWxzZSkpOworICAgIH0KKwogICAgIE5TRGljdGlvbmFy
eSAqb3B0aW9ucyA9IG5pbDsKICAgICBSZWZQdHI8UmFuZ2U+IGxvb2t1cFJhbmdlID0gbG9va3Vw
VGV4dEF0TG9jYXRpb24obG9jYXRpb25JblZpZXdDb29vcmRpbmF0ZXMsICZvcHRpb25zKTsKICAg
ICBhY3Rpb25NZW51UmVzdWx0Lmxvb2t1cFRleHQgPSBsb29rdXBSYW5nZSA/IGxvb2t1cFJhbmdl
LT50ZXh0KCkgOiBTdHJpbmcoKTsK
</data>
<flag name="review"
          id="268412"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>