<?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>161448</bug_id>
          
          <creation_ts>2016-08-31 11:56:24 -0700</creation_ts>
          <short_desc>AX: Cannot tab out of WKWebView for macOS</short_desc>
          <delta_ts>2019-01-15 14:53:46 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan Saunders">dasau</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bburg</cc>
    
    <cc>bdakin</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1225018</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Saunders">dasau</who>
    <bug_when>2016-08-31 11:56:24 -0700</bug_when>
    <thetext>When WKWebView control exists in a window with other controls that accept keyboard focus on macOS, there is no way to tab out of the WKWebView and access the other controls with keyboard. The keyView loop contains a cycle inside the WKWebView regardless of the page being loaded. This could block using WKWebView in accessible applications, without voiceover there is no way to exit the control using keyboard. WebView control does not have this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225019</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-08-31 11:57:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/28100085&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229013</commentid>
    <comment_count>2</comment_count>
    <who name="Dan Saunders">dasau</who>
    <bug_when>2016-09-12 17:39:20 -0700</bug_when>
    <thetext>UIDelegate::UIClient::takeFocus needs to be implemented to get this behavior</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494552</commentid>
    <comment_count>3</comment_count>
      <attachid>359141</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-14 23:51:29 -0800</bug_when>
    <thetext>Created attachment 359141
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494616</commentid>
    <comment_count>4</comment_count>
      <attachid>359141</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-15 07:26:31 -0800</bug_when>
    <thetext>Comment on attachment 359141
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:86
&gt; +        window = [[OffscreenWindow alloc] initWithSize:CGSizeMake(100, 100)];

adopt?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TabOutOfWebView.mm:61
&gt; +    RetainPtr&lt;TestWKWebView&gt; webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 100, 100, 100) configuration:[[WKWebViewConfiguration alloc] init] addToWindow:NO]);

Let&apos;s -autorelease the configuration, or put it in a RetainPtr and use adoptNS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494709</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-15 10:43:15 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #4)
&gt; Comment on attachment 359141 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=359141&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:86
&gt; &gt; +        window = [[OffscreenWindow alloc] initWithSize:CGSizeMake(100, 100)];
&gt; 
&gt; adopt?
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/TabOutOfWebView.mm:61
&gt; &gt; +    RetainPtr&lt;TestWKWebView&gt; webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 100, 100, 100) configuration:[[WKWebViewConfiguration alloc] init] addToWindow:NO]);
&gt; 
&gt; Let&apos;s -autorelease the configuration, or put it in a RetainPtr and use
&gt; adoptNS.

LOL I&apos;ve been ARCing too much. Thank you for your eyes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494724</commentid>
    <comment_count>6</comment_count>
      <attachid>359181</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-15 11:02:25 -0800</bug_when>
    <thetext>Created attachment 359181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494773</commentid>
    <comment_count>7</comment_count>
      <attachid>359193</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-15 13:03:58 -0800</bug_when>
    <thetext>Created attachment 359193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494830</commentid>
    <comment_count>8</comment_count>
      <attachid>359193</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-15 14:53:45 -0800</bug_when>
    <thetext>Comment on attachment 359193
Patch

Clearing flags on attachment: 359193

Committed r240010: &lt;https://trac.webkit.org/changeset/240010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494831</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-15 14:53:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359141</attachid>
            <date>2019-01-14 23:51:29 -0800</date>
            <delta_ts>2019-01-15 11:02:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161448-20190114235128.patch</filename>
            <type>text/plain</type>
            <size>35890</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA3ODc3Mzkw
M2ZiNzllNzU0NWU1YjE4NWFjNGFhOGI4YzZlZjZhNDAxLi5mZmFmNGY0YWRlMTVkZGVmMWRkNmZl
OGJlZWY0NTI5MjE4YzNkOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBDYW5ub3QgdGFiIG91dCBvZiBXS1dlYlZpZXcgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTQ0OAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjgxMDAwODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYWwvc3BpL21hYy9OU1ZpZXdTUEkuaDoKKyAgICAgICAgKiBwYWwvc3Bp
L21hYy9OU1dpbmRvd1NQSS5oOgorICAgICAgICBNb3ZlIHNvbWUgU1BJIGRlY2xhcmF0aW9ucyBp
biBoZXJlIGZyb20gV2ViS2l0TGVnYWN5LgorCiAyMDE5LTAxLTE0ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjM5OTAxLCByMjM5OTA5LCByMjM5OTEwLCByMjM5OTEyLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MzA0YTNm
NTUyNThkMjhkOTY2NTJhYzA3M2ZiMTFiYzgyMzVhZWFlLi5kYWFjZmIyZTU3Y2M0OTBkMGQ2NTNl
ODVkNmQyMWM2NjA1ZWE3MzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTAxLTE0
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENhbm5v
dCB0YWIgb3V0IG9mIFdLV2ViVmlldyBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDQ4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
ODEwMDA4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnRha2VGb2N1cyk6CisgICAgICAgIElmIHRoZSBVSURlbGVnYXRlIGRvZXNuJ3QgaW1w
bGVtZW50IHRha2VGb2N1cywgcHJvdmlkZSBhIHNpbXBsZSBkZWZhdWx0CisgICAgICAgIGltcGxl
bWVudGF0aW9uIHRoYXQganVzdCB1c2VzIEFwcEtpdCdzIGtleSB2aWV3IGxvb3AgdG8gbW92ZSB0
aGUgZm9jdXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6OlVJQ2xpZW50Ojp0YWtlRm9jdXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6
dGFrZUZvY3VzKToKKyAgICAgICAgTWFrZSBBUEk6OlVJQ2xpZW50J3MgdGFrZUZvY3VzIHJldHVy
biBhIGJvb2wgaW5kaWNhdGluZyB3aGV0aGVyIHRoZQorICAgICAgICBjbGllbnQgaW1wbGVtZW50
cyBpdCBvciBub3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6dGFrZUZvY3VzKToKKyAgICAgICAgUGx1bWIgdGFrZUZvY3VzIHRvIFdlYlZpZXdJbXBs
LgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dGFrZUZvY3VzKToKKyAgICAgICAgQm9ycm93IHRoZSByZWxldmFudCBwb3J0aW9uIG9m
IFdlYktpdExlZ2FjeSdzIGltcGxlbWVudGF0aW9uIG9mIHRha2VGb2N1cywKKyAgICAgICAgc2hp
ZnRpbmcgZm9jdXMgdG8gdGhlIG5leHQvcHJldmlvdXMga2V5IHZpZXcgaW4gdGhlIHdpbmRvdy4K
KwogMjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggYSBzdHlsZSBtaXN0YWtlIGluIFBhZ2VDbGllbnRJbXBsTWFjCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDFlMGQzMTI4MjkyNjg5OTliM2FhNWYyY2IxZWY2NDRh
YWNhNmFiMC4uOGNmZTQ5NjI5NmQwYTIzZGRhMzU4MjU0NzhmYTczNWFlZDBiM2UyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAxLTE0ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENhbm5vdCB0YWIg
b3V0IG9mIFdLV2ViVmlldyBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDQ4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODEwMDA4
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgIE1ha2UgdXNlIG9mIFNQSSBoZWFkZXJzLgorCiAyMDE5LTAxLTE0ICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjM5OTAxLCByMjM5OTA5LCByMjM5OTEwLCByMjM5OTEyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TVmlld1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TVmlld1NQSS5oCmluZGV4IDllZWRiNzNjOTIz
NDliYmU1ZDhjZDE2OWJjMDEyODQxNmNhZjJmYmIuLmQ3MWZmNmJkZTgyNzlkMDBjZDM0YTJkY2Iw
YjdiZTcwNjFiN2EyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9OU1ZpZXdTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNWaWV3
U1BJLmgKQEAgLTI4LDYgKzI4LDkgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29y
ZVNQSS5oPgogCiBAaW50ZXJmYWNlIE5TVmlldyAoKSA8Q0FMYXllckRlbGVnYXRlPgorCistIChO
U1ZpZXcgKilfZmluZExhc3RWaWV3SW5LZXlWaWV3TG9vcDsKKwogQGVuZAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFj
L05TV2luZG93U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dT
UEkuaAppbmRleCAwYmIyYTk5OGY0N2NlOGU4N2ZiNTVhZjc3OGM2MjY2ZGQ2MTAzNmZmLi4wOGFm
OTVhMDQ0YWQ2OTkwNDIwNjIxN2E0YzRhNzUwMDMwOWE0YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaApAQCAtMzcsNiArMzcsNyBAQAogCiBAaW50
ZXJmYWNlIE5TV2luZG93ICgpCiAKKy0gKGlkKV9vbGRGaXJzdFJlc3BvbmRlckJlZm9yZUJlY29t
aW5nOwogLSAoaWQpX25ld0ZpcnN0UmVzcG9uZGVyQWZ0ZXJSZXNpZ25pbmc7CiAtICh2b2lkKV9z
ZXRDdXJzb3JGb3JNb3VzZUxvY2F0aW9uOihOU1BvaW50KXBvaW50OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDQzZmY3NjNiOTA0OGNjNDBhOTY3ZDk0
NTZiYmUwM2FjYmI5NTAyN2MuLjA4OTQ4ZTc3NGY5MTcwNmNmMWEyMDEzOGFmOTBmZGZmYjhlNDZj
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC04MSw3
ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBib29sKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY2xvc2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCB0YWtlRm9jdXMoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgdGFrZUZvY3VzKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV0tG
b2N1c0RpcmVjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMo
V2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cyhXZWJL
aXQ6OldlYlBhZ2VQcm94eSopIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAppbmRleCBkNGVlOGNjMGI1ZmQ5YTg1MzU2MmRiZTAwZDU3MzEzNzc4OGMxZmE4Li42
YjQwYjlmMzcwNmQ0ZjM3ODUzYjM5ZGQyNTQ2MGE3NjRmMGJiYzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE1NTMsMTIgKzE1NTMsMTMgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xp
ZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmNsb3NlKHRvQVBJKHBhZ2Up
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCB0
YWtlRm9jdXMoV2ViUGFnZVByb3h5KiBwYWdlLCBXS0ZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikg
ZmluYWwKKyAgICAgICAgYm9vbCB0YWtlRm9jdXMoV2ViUGFnZVByb3h5KiBwYWdlLCBXS0ZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFt
X2NsaWVudC50YWtlRm9jdXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgbV9jbGllbnQudGFrZUZvY3VzKHRvQVBJ
KHBhZ2UpLCBkaXJlY3Rpb24sIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZm9jdXMoV2ViUGFnZVBy
b3h5KiBwYWdlKSBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCmluZGV4IDM4ZGQ3ZWNiY2ZiNWYyYTYwZmM4NmM5OGJlOGIwZjMxYTg1NGZmODYuLjZkNjgw
NjlhY2I2NDQwMDkxZTA4ZjFhYTllYWJhMTIwMGNmNTE2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIEFQSTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBj
dXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2luVXNhZ2UsIHVuc2ln
bmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVz
YWdlLCBGdW5jdGlvbjx2b2lkKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIGZpbmFsOwogICAgICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQo
dW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgICAg
IHZvaWQgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlKFdlYlBh
Z2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7Ci0gICAgICAgIHZvaWQgdGFrZUZvY3VzKFdl
YlBhZ2VQcm94eSosIFdLRm9jdXNEaXJlY3Rpb24pIGZpbmFsOworICAgICAgICBib29sIHRha2VG
b2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgICAgIHZvaWQgc2hvd1BhZ2UoV2ViUGFnZVByb3h5KikgZmluYWw7CiAgICAg
ICAgIHZvaWQgZm9jdXMoV2ViUGFnZVByb3h5KikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBjMTY4NTNmYTRkYjFjZTQ5MjQwMmFmY2Vl
ZGE1MTBmYjYwY2M2MmVlLi5kYWVjYWI0ZWM4NTE5MmFjZGNmNWJkMmJiZjAwMGM0Y2YwODNiNTA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTQ2
NiwxNiArNDY2LDE3IEBAIHN0YXRpYyBpbmxpbmUgX1dLRm9jdXNEaXJlY3Rpb24gdG9XS0ZvY3Vz
RGlyZWN0aW9uKFdLRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIHJldHVybiBfV0tGb2N1
c0RpcmVjdGlvbkZvcndhcmQ7CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnRha2VG
b2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK2Jvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnRha2VGb2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbikKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3VGFrZUZvY3VzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAKICAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0
KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCiAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dl
YlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyB0YWtlRm9jdXM6dG9XS0ZvY3VzRGlyZWN0aW9u
KGRpcmVjdGlvbildOworICAgIHJldHVybiB0cnVlOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggZjc1N2Q4
NzI0ZjI2N2ZkOTFhMDAwMjQ4ZjQ4ZDQyOTFiMzIzNTE3Zi4uYzY4ZGJjYzdjZWFiOTEyNGZiOWVl
OTVhNTJkNjhkZWU4ODNhYzc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV0tEcmFnRGVzdGluYXRp
b25BY3Rpb24uaCIKICNpbmNsdWRlICJXS0xheW91dE1vZGUuaCIKICNpbmNsdWRlICJfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4
dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbi5oPgpAQCAtNjAzLDYgKzYwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVmZmVj
dGl2ZUFwcGVhcmFuY2VEaWRDaGFuZ2UoKTsKICAgICBib29sIGVmZmVjdGl2ZUFwcGVhcmFuY2VJ
c0RhcmsoKTsKIAorICAgIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsK
KwogcHJpdmF0ZToKICNpZiBIQVZFKFRPVUNIX0JBUikKICAgICB2b2lkIHNldFVwVGV4dFRvdWNo
QmFyKE5TVG91Y2hCYXIgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCmluZGV4IGRhMmUzMmYyNTQ4ZjFkNTZhNjBiNjU2MGFkYmVmNTY5Mzc2NjYxZDUu
LmRiOTg3MWRkZTc4NmZjNjljYTYzYWJiOThhNThmZjU1YTQ4MmQwNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xNTcwLDYgKzE1NzAsMjAg
QEAgYm9vbCBXZWJWaWV3SW1wbDo6cmVzaWduRmlyc3RSZXNwb25kZXIoKQogICAgIHJldHVybiB0
cnVlOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjp0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJl
Y3Rpb24gZGlyZWN0aW9uKQoreworICAgIE5TVmlldyAqd2ViVmlldyA9IG1fdmlldy5nZXRBdXRv
cmVsZWFzZWQoKTsKKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Gb3J3YXJk
KSB7CisgICAgICAgIC8vIFNpbmNlIHdlJ3JlIHRyeWluZyB0byBtb3ZlIGZvY3VzIG91dCBvZiBt
X3dlYlZpZXcsIGFuZCBiZWNhdXNlCisgICAgICAgIC8vIG1fd2ViVmlldyBtYXkgY29udGFpbiBz
dWJ2aWV3cyB3aXRoaW4gaXQsIHdlIGFzayBpdCBmb3IgdGhlIG5leHQga2V5CisgICAgICAgIC8v
IHZpZXcgb2YgdGhlIGxhc3QgdmlldyBpbiBpdHMga2V5IHZpZXcgbG9vcC4gVGhpcyBtYWtlcyBt
X3dlYlZpZXcKKyAgICAgICAgLy8gYmVoYXZlIGFzIGlmIGl0IGhhZCBubyBzdWJ2aWV3cywgd2hp
Y2ggaXMgdGhlIGJlaGF2aW9yIHdlIHdhbnQuCisgICAgICAgIFt3ZWJWaWV3LndpbmRvdyBzZWxl
Y3RLZXlWaWV3Rm9sbG93aW5nVmlldzpbd2ViVmlldyBfZmluZExhc3RWaWV3SW5LZXlWaWV3TG9v
cF1dOworICAgIH0gZWxzZQorICAgICAgICBbd2ViVmlldy53aW5kb3cgc2VsZWN0S2V5Vmlld1By
ZWNlZGluZ1ZpZXc6d2ViVmlld107Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNob3dTYWZlQnJv
d3NpbmdXYXJuaW5nKGNvbnN0IFNhZmVCcm93c2luZ1dhcm5pbmcmIHdhcm5pbmcsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmFyaWFudDxDb250aW51ZVVuc2FmZUxvYWQsIFVSTD4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3ZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmgKaW5kZXggMTQ5NzE0YWIxZDIyNjVhNjgzNGQ1N2VmNDdiMTE2ZWE0ZTI5ZTM1
MS4uZmExMDkyNDIzYjcwMGM5NjllYjRmMjFkMjg2ZGU3MzE4NWU1OThiMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIldlYlBv
cHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Rm9jdXNEaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJbnRlcmZhY2VMYXlvdXRE
aXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4KICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTMwOSw2ICszMTAsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3Qg
TGF5ZXJUcmVlQ29udGV4dCYpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2Vi
Q29yZTo6Rm9jdXNEaXJlY3Rpb24pID0gMDsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0
dWFsIHZvaWQgcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCBwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hh
c0ZvY3VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgUGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBjOGFiNzAzMzNiNDAzOWE4Nzc5YzRjYTNmMzFlMTkwNzU2M2EzMzY5Li4w
YzhhNjg3NmYyNWFhZjRhMDAwYzVjMjBiMjNmOTQzMThjNWRkMThjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU4ODEsNyArNTg4MSwxMCBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
dGFrZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlvbikKIHsKLSAgICBtX3VpQ2xpZW50LT50YWtlRm9j
dXModGhpcywgKHN0YXRpY19jYXN0PEZvY3VzRGlyZWN0aW9uPihkaXJlY3Rpb24pID09IEZvY3Vz
RGlyZWN0aW9uRm9yd2FyZCkgPyBrV0tGb2N1c0RpcmVjdGlvbkZvcndhcmQgOiBrV0tGb2N1c0Rp
cmVjdGlvbkJhY2t3YXJkKTsKKyAgICBpZiAobV91aUNsaWVudC0+dGFrZUZvY3VzKHRoaXMsIChz
dGF0aWNfY2FzdDxGb2N1c0RpcmVjdGlvbj4oZGlyZWN0aW9uKSA9PSBGb2N1c0RpcmVjdGlvbkZv
cndhcmQpID8ga1dLRm9jdXNEaXJlY3Rpb25Gb3J3YXJkIDoga1dLRm9jdXNEaXJlY3Rpb25CYWNr
d2FyZCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2VDbGllbnQoKS50YWtlRm9jdXMoc3Rh
dGljX2Nhc3Q8Rm9jdXNEaXJlY3Rpb24+KGRpcmVjdGlvbikpOwogfQogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDdjZmRjNTc3Nzc5OTlm
NDRjNGNiYjQzY2QxMDZlM2JmZDljM2RhNWMuLjEyZGMyNWFiY2MzM2Y0ZGU1ZTZjNjM2MGViZDhj
MzJkMDVhNGFlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbE1hYy5oCkBAIC0yNjIsNiArMjYyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgd2luZG93SXNGcm9udFdp
bmRvd1VuZGVyTW91c2UoY29uc3QgTmF0aXZlV2ViTW91c2VFdmVudCYpIG92ZXJyaWRlOwogCisg
ICAgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIG92ZXJyaWRlOworCiAg
ICAgTlNWaWV3ICptX3ZpZXc7CiAgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gbV9pbXBsOwogI2lm
IFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCBhMGNlZmRkNzNlOWVkYzE5Y2JhNGViNTg3
NmZhZGM5MzcwNzZmZTUzLi41ZDdjMjM4ZWZkNjlmNjE1YWJmNWE3ZDU1NWQ0OGQyM2M0NzZlZTU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFj
Lm1tCkBAIC05NTcsNiArOTU3LDExIEBAIGJvb2wgUGFnZUNsaWVudEltcGw6OmVmZmVjdGl2ZUFw
cGVhcmFuY2VJc0RhcmsoKSBjb25zdAogICAgIHJldHVybiBtX2ltcGwtPmVmZmVjdGl2ZUFwcGVh
cmFuY2VJc0RhcmsoKTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6dGFrZUZvY3VzKFdlYkNv
cmU6OkZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBtX2ltcGwtPnRha2VGb2N1cyhk
aXJlY3Rpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0YzVkMThkYzAyY2NmZjJiN2VhYjk4MDUw
OTIxYTY3YTk4ZjY5Y2M1Li4zZTBhNWMyNzI2ZjU4MTZiZTkwZmZlYWMxMjc5ZGFlYmU2NDYyMzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC04NSw2ICs4NSw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMv
TlNWaWV3U1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9y
dCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgpAQCAtMTM1LDEwICsxMzYs
NiBAQCAtIChOU0N1cnNvciAqKV9jdXJzb3JSZWN0Q3Vyc29yOwogQGVuZAogI2VuZGlmCiAKLUBp
bnRlcmZhY2UgTlNWaWV3IChXZWJOU1ZpZXdEZXRhaWxzKQotLSAoTlNWaWV3ICopX2ZpbmRMYXN0
Vmlld0luS2V5Vmlld0xvb3A7Ci1AZW5kCi0KIC8vIEZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xk
IFNQSS4KIEBpbnRlcmZhY2UgTlNWaWV3IChXZWJPbGRXZWJLaXRQbHVnSW5EZXRhaWxzKQogLSAo
dm9pZClzZXRJc1NlbGVjdGVkOihCT09MKWlzU2VsZWN0ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWI4Mzg0NTNiMzI0NjRlNTFlMTJhMDI1MzYw
ZmViN2IyMzg1OWNmZC4uYTVlNDExODk0YWZhOThlNDEyYjYyNzNlZGU2ZjAxYjcxM2MxZDAwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzc1LDcg
KzM3NSw2IEBAIC0gKHZvaWQpX3dpbmRvd0NoYW5nZWRLZXlTdGF0ZTsKIEBlbmQKIAogQGludGVy
ZmFjZSBOU1dpbmRvdyAoV2ViTlNXaW5kb3dEZXRhaWxzKQotLSAoaWQpX29sZEZpcnN0UmVzcG9u
ZGVyQmVmb3JlQmVjb21pbmc7CiAtICh2b2lkKV9lbmFibGVTY3JlZW5VcGRhdGVzSWZOZWVkZWQ7
CiAtIChCT09MKV93cmFwc0NhcmJvbldpbmRvdzsKIC0gKEJPT0wpX2hhc0tleUFwcGVhcmFuY2U7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTdi
MjcyMDVjMzkzYzEyZmZkYjE2MzY3NGEwNTJiNTcwMWM2NTlmOS4uZjhlY2M4YjRmZjllNjQ4NTIw
NTU1NWM5MTRhNTljNmQ0YzMwODYxMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTAxLTE0ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENhbm5vdCB0YWIgb3V0IG9m
IFdLV2ViVmlldyBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYxNDQ4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODEwMDA4NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0
IHRoYXQgdGFiYmluZyBpbnRvIGFuZCBvdXQgb2YgV0tXZWJWaWV3IHdvcmtzIGNvcnJlY3RseS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29t
bWFuZEJhY2tGb3J3YXJkLm1tOgorICAgICAgICAoV2ViS2l0Ml9Db21tYW5kQmFja0ZvcndhcmRU
ZXN0OjpTZXRVcCk6CisgICAgICAgICgtW0NvbW1hbmRCYWNrRm9yd2FyZE9mZnNjcmVlbldpbmRv
dyBpc0tleVdpbmRvd10pOiBEZWxldGVkLgorICAgICAgICAoLVtDb21tYW5kQmFja0ZvcndhcmRP
ZmZzY3JlZW5XaW5kb3cgaXNWaXNpYmxlXSk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UYWJPdXRPZldlYlZpZXcubW06IEFkZGVkLgorICAgICAg
ICAoLVtGb2N1c2FibGVWaWV3IGNhbkJlY29tZUtleVZpZXddKToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL09mZnNjcmVlbldpbmRvdy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5XaW5kb3cubW06IEFkZGVkLgorICAg
ICAgICAoLVtPZmZzY3JlZW5XaW5kb3cgaW5pdFdpdGhTaXplOl0pOgorICAgICAgICAoLVtPZmZz
Y3JlZW5XaW5kb3cgaXNLZXlXaW5kb3ddKToKKyAgICAgICAgKC1bT2Zmc2NyZWVuV2luZG93IGlz
VmlzaWJsZV0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1BsYXRmb3JtV2ViVmlld01h
Yy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6aW5pdGlhbGl6
ZSk6CisgICAgICAgICgtW0FjdGl2ZU9mZnNjcmVlbldpbmRvdyBpc0tleVdpbmRvd10pOiBEZWxl
dGVkLgorICAgICAgICAoLVtBY3RpdmVPZmZzY3JlZW5XaW5kb3cgaXNWaXNpYmxlXSk6IERlbGV0
ZWQuCisgICAgICAgIEZhY3RvciBBY3RpdmVPZmZzY3JlZW5XaW5kb3cgb3V0IGludG8gT2Zmc2Ny
ZWVuV2luZG93IGFuZCBzaGFyZSBpdC4KKwogMjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGEgdGVzdCBpbXBsZW1lbnRhdGlv
biBmaWxlIHRoYXQgZ290IG1pc3BsYWNlZCBpbiB0aGUgWGNvZGUgcHJvamVjdApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjY2RkOGVlZDM5MjUwNmIxOGQ4OWYxMmY0MTZiZjAwM2ExNWVkYmUw
Li43YTEwNzJhY2RhYTJjMmFhNTA3Y2RiMmZjMjk3MDgxMDg0NWMzZjBhIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtOTAsNiArOTAsOCBAQAogCQkyRDIxRkU1OTFGMDQ2NDI5MDBCNThFN0Qg
LyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDIxRkU1ODFGMDQ2NDI4MDBC
NThFN0QgLyogV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRlQ2FsbGJhY2subW0gKi87
IH07CiAJCTJENENGOEJEMUQ4MzYwQ0MwMDAxQ0U4RCAvKiBXS1RodW1ibmFpbFZpZXcubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDRDRjhCQzFEODM2
MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tICovOyB9OwogCQkyRDUxQTBDNzFDOEJG
MDBDMDA3NjVDNDUgLyogRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDUxQTBDNTFDOEJGMDA0MDA3NjVD
NDUgLyogRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW0gKi87IH07CisJCTJENzAwNTk2MjFF
REEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDcwMDU5NTIxRURBMEM2MDAzNDYzQ0IgLyogVGFi
T3V0T2ZXZWJWaWV3Lm1tICovOyB9OworCQkyRDcwMDU5OTIxRURBNEQwMDAzNDYzQ0IgLyogT2Zm
c2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQ3MDA1OTcyMUVEQTREMDAwMzQ2M0NCIC8qIE9mZnNjcmVlbldpbmRvdy5tbSAqLzsg
fTsKIAkJMkQ4MzhCMUYxRUVGM0E1QzAwOUI5ODBFIC8qIFdLQ29udGVudFZpZXdFZGl0aW5nQWN0
aW9ucy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
ODM4QjFFMUVFRjNBNUIwMDlCOTgwRSAvKiBXS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW0g
Ki87IH07CiAJCTJEQURGMjYzMjFDQjhGMzIwMDNEM0UzQSAvKiBHZXRSZXNvdXJjZURhdGEubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREFERjI2MjIx
Q0I4RjMyMDAzRDNFM0EgLyogR2V0UmVzb3VyY2VEYXRhLm1tICovOyB9OwogCQkyREIwMjMyRjFF
NEU4NzE4MDA3MDcxMjMgLyogSW50ZXJhY3Rpb25EZWFkbG9ja0FmdGVyQ3Jhc2gubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREIwMjMyRTFFNEU4NzE4
MDA3MDcxMjMgLyogSW50ZXJhY3Rpb25EZWFkbG9ja0FmdGVyQ3Jhc2gubW0gKi87IH07CkBAIC0x
NDAzLDYgKzE0MDUsOSBAQAogCQkyRDUxQTBDNTFDOEJGMDA0MDA3NjVDNDUgLyogRE9NSFRNTFZp
ZGVvRWxlbWVudFdyYXBwZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkQ2MUVDMzAyMUIwQjc1QzAwQTdEMUNCIC8qIFBlbmNpbEtpdFRlc3RTUEkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGVuY2lsS2l0VGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRDY0MEI1NDE3ODc1REZGMDBCRkFGOTkgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9y
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxQaW5uaW5n
QmVoYXZpb3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ3MDA1OTUyMUVE
QTBDNjAwMzQ2M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFRhYk91dE9mV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkQ3MDA1OTcyMUVEQTREMDAwMzQ2M0NCIC8qIE9mZnNjcmVlbldpbmRvdy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE9mZnNjcmVlbldpbmRv
dy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ3MDA1OTgyMUVEQTREMDAwMzQ2
M0NCIC8qIE9mZnNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBPZmZzY3JlZW5XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4MTA0
Q0IxQkVDMTNFNzAwMjBEQTQ2IC8qIEZpbmRJblBhZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBGaW5kSW5QYWdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRDgzOEIxRTFFRUYzQTVCMDA5Qjk4MEUgLyogV0tDb250ZW50Vmlld0VkaXRpbmdB
Y3Rpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tDb250
ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RDlBNTNBRTFCMzFGQThEMDA3NEQ1QUEgLyogU2hyaW5rVG9GaXQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTaHJpbmtUb0ZpdC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI1NTgsNiArMjU2Myw3IEBACiAJCQkJQ0RDMDkzMkQyMUM5OTM0NDAw
MzBDNEIwIC8qIFN0b3BTdXNwZW5kUmVzdW1lQWxsTWVkaWEubW0gKi8sCiAJCQkJNTE1QkUxNzAx
RDQyOEJEMTAwREQ3QzY4IC8qIFN0b3JlQmxvYlRoZW5EZWxldGUubW0gKi8sCiAJCQkJMUM3MzRC
NTIyMDc4OEM0ODAwRjQzMEVBIC8qIFN5c3RlbUNvbG9ycy5tbSAqLywKKwkJCQkyRDcwMDU5NTIx
RURBMEM2MDAzNDYzQ0IgLyogVGFiT3V0T2ZXZWJWaWV3Lm1tICovLAogCQkJCUY0Q0Q3NEM3MjBG
REI0OTYwMERFMzc5NCAvKiBUZXN0VVJMU2NoZW1lSGFuZGxlci5oICovLAogCQkJCUY0Q0Q3NEM4
MjBGREI0OTYwMERFMzc5NCAvKiBUZXN0VVJMU2NoZW1lSGFuZGxlci5tbSAqLywKIAkJCQk1Q0I0
MEI0RDFGNEI5OEJFMDA3REM3QjkgLyogVUlEZWxlZ2F0ZS5tbSAqLywKQEAgLTMzNDgsNiArMzM1
NCw4IEBACiAJCQkJMkU3NzY1Q0UxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gKi8sCiAJ
CQkJRjQ0Mjg1MUIyMTQwREYyOTAwQ0NEQTIyIC8qIE5TRm9udFBhbmVsVGVzdGluZy5oICovLAog
CQkJCUY0NDI4NTFDMjE0MERGMjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcubW0gKi8s
CisJCQkJMkQ3MDA1OTgyMUVEQTREMDAwMzQ2M0NCIC8qIE9mZnNjcmVlbldpbmRvdy5oICovLAor
CQkJCTJENzAwNTk3MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cubW0gKi8sCiAJ
CQkJQkMxMzE4ODQxMTcxMTRCNjAwQjY5NzI3IC8qIFBsYXRmb3JtVXRpbGl0aWVzTWFjLm1tICov
LAogCQkJCUJDOTA5NTVDMTI1NTQ4QUEwMDA4Mzc1NiAvKiBQbGF0Zm9ybVdlYlZpZXdNYWMubW0g
Ki8sCiAJCQkJQzA4MTIyNDMxM0ZDMTlFQzAwREMzOUFFIC8qIFN5bnRoZXRpY0JhY2tpbmdTY2Fs
ZUZhY3RvcldpbmRvdy5oICovLApAQCAtNDExNSw2ICs0MTIzLDcgQEAKIAkJCQlBMTBGMDQ3RTFF
M0FEMjlDMDBDOTVFMTkgLyogTlNGaWxlTWFuYWdlckV4dHJhcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUY0NDI4NTFEMjE0MERGMjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcubW0gaW4g
U291cmNlcyAqLywKIAkJCQkzN0EyMkFBNzFEQ0FBMjcyMDBBRkJGQzQgLyogT2JzZXJ2ZWRSZW5k
ZXJpbmdQcm9ncmVzc0V2ZW50c0FmdGVyQ3Jhc2gubW0gaW4gU291cmNlcyAqLywKKwkJCQkyRDcw
MDU5OTIxRURBNEQwMDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdGMjUxQTQxMUFGNjAwNDQ3QzRDIC8qIE9wZW5BbmRDbG9zZVdpbmRvdy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUNFQkNBMTJGMUUzQTY2MDEwMEM3MzI5MyAvKiBPdmVycmlkZUNv
bnRlbnRTZWN1cml0eVBvbGljeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0I0REE5MUM4M0FF
NzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC00MjA5LDYgKzQy
MTgsNyBAQAogCQkJCTQ0MzNBMzk2MjA4MDQ0MTQwMDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVv
dXRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUE4MUE0MTFBMTkwMDQ0N0M0QyAv
KiBTeW50aGV0aWNCYWNraW5nU2NhbGVGYWN0b3JXaW5kb3cubSBpbiBTb3VyY2VzICovLAogCQkJ
CTFDNzM0QjUzMjA3ODhDNDgwMEY0MzBFQSAvKiBTeXN0ZW1Db2xvcnMubW0gaW4gU291cmNlcyAq
LywKKwkJCQkyRDcwMDU5NjIxRURBMEM2MDAzNDYzQ0IgLyogVGFiT3V0T2ZXZWJWaWV3Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMTYxQTQxMUFFNjAwNDQ3QzRDIC8qIFRlcm1pbmF0ZVR3
aWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUE5MUE0MTFBMUQwMDQ0N0M0QyAvKiBU
ZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ2
MTI4Q0IyMTFENDc1MTAwRDlGQURCIC8qIFRlc3REcmFnZ2luZ0luZm8ubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29t
bWFuZEJhY2tGb3J3YXJkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Db21tYW5kQmFja0ZvcndhcmQubW0KaW5kZXggYjNjNWFmOTA3YjJmYjVkOWM5MzUwZGRlNDM3
Y2M0MjdjMjg5ZWVmYy4uMDcyODY4ZjQ3YjdiOWFmNjBmNWU2YWJhNzExMDkxNDFiZTQ1MGY4YyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db21tYW5k
QmFja0ZvcndhcmQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Db21tYW5kQmFja0ZvcndhcmQubW0KQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFBMQVRGT1JN
KE1BQykKIAorI2ltcG9ydCAiT2Zmc2NyZWVuV2luZG93LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxl
Z2F0ZS5oIgpAQCAtMzYsMjAgKzM3LDYgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
bXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCi1AaW50
ZXJmYWNlIENvbW1hbmRCYWNrRm9yd2FyZE9mZnNjcmVlbldpbmRvdyA6IE5TV2luZG93Ci1AZW5k
Ci0KLUBpbXBsZW1lbnRhdGlvbiBDb21tYW5kQmFja0ZvcndhcmRPZmZzY3JlZW5XaW5kb3cKLS0g
KEJPT0wpaXNLZXlXaW5kb3cKLXsKLSAgICByZXR1cm4gWUVTOwotfQotLSAoQk9PTClpc1Zpc2li
bGUKLXsKLSAgICByZXR1cm4gWUVTOwotfQotQGVuZAotCiBlbnVtIEFycm93RGlyZWN0aW9uIHsK
ICAgICBMZWZ0LAogICAgIFJpZ2h0CkBAIC05NiwxMSArODMsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgU2V0VXAoKQogICAgIHsKLSAgICAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtb
Q29tbWFuZEJhY2tGb3J3YXJkT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRS
ZWN0Ok5TTWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5k
b3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwotICAgICAg
ICBbd2luZG93IHNldENvbG9yU3BhY2U6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBjb2xvclNwYWNl
XV07Ci0gICAgICAgIFt3aW5kb3cgb3JkZXJCYWNrOm5pbF07Ci0gICAgICAgIFt3aW5kb3cgc2V0
QXV0b2Rpc3BsYXk6Tk9dOwotICAgICAgICBbd2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpO
T107CisgICAgICAgIHdpbmRvdyA9IFtbT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aFNp
emU6Q0dTaXplTWFrZSgxMDAsIDEwMCldOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGFiT3V0T2ZXZWJWaWV3Lm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UYWJPdXRPZldlYlZpZXcubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzZiZDlmODMxYjVlZDM0NjgxYjM2YWU0MmYyMTNlYmEzNTI4NDYzNAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGFiT3V0
T2ZXZWJWaWV3Lm1tCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW1wb3J0ICJPZmZzY3JlZW5XaW5kb3cuaCIKKyNpbXBvcnQgIlBsYXRmb3Jt
VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxDYXJib24v
Q2FyYm9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorCitlbnVtIGNsYXNzIFRhYkRpcmVjdGlvbiA6IHVpbnQ4X3Qgewor
ICAgIEZvcndhcmQsCisgICAgQmFja3dhcmQsCit9OworCitAaW50ZXJmYWNlIE5TQXBwbGljYXRp
b24gKCkKKy0gKHZvaWQpX3NldEN1cnJlbnRFdmVudDooTlNFdmVudCAqKWV2ZW50OworQGVuZAor
CitAaW50ZXJmYWNlIEZvY3VzYWJsZVZpZXcgOiBOU1ZpZXcKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIEZvY3VzYWJsZVZpZXcKKworLSAoQk9PTCljYW5CZWNvbWVLZXlWaWV3Cit7CisgICAgcmV0
dXJuIFlFUzsKK30KKworQGVuZAorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFD
KQorCitURVNUKFdlYktpdCwgVGFiT3V0T2ZXZWJWaWV3KQoreworICAgIFJldGFpblB0cjxGb2N1
c2FibGVWaWV3PiBiZWZvcmVWaWV3ID0gYWRvcHROUyhbW0ZvY3VzYWJsZVZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAyMDAsIDEwMCwgMTAwKV0pOworICAgIFJldGFpblB0
cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAxMDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9u
OltbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0gYWRkVG9XaW5kb3c6Tk9dKTsK
KyAgICBSZXRhaW5QdHI8Rm9jdXNhYmxlVmlldz4gYWZ0ZXJWaWV3ID0gYWRvcHROUyhbW0ZvY3Vz
YWJsZVZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCld
KTsKKyAgICBSZXRhaW5QdHI8T2Zmc2NyZWVuV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbT2Zm
c2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aFNpemU6Q0dTaXplTWFrZSg4MDAsIDYwMCldKTsK
KworICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OmJlZm9yZVZpZXcuZ2V0KCld
OworICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOwor
ICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OmFmdGVyVmlldy5nZXQoKV07CisK
KyAgICBbYmVmb3JlVmlldyBzZXROZXh0S2V5Vmlldzp3ZWJWaWV3LmdldCgpXTsKKyAgICBbd2Vi
VmlldyBzZXROZXh0S2V5VmlldzphZnRlclZpZXcuZ2V0KCldOworICAgIFthZnRlclZpZXcgc2V0
TmV4dEtleVZpZXc6YmVmb3JlVmlldy5nZXQoKV07CisKKyAgICBhdXRvIHNpbXVsYXRlVGFiS2V5
UHJlc3MgPSBeKFRhYkRpcmVjdGlvbiBkaXJlY3Rpb24pIHsKKyAgICAgICAgTlNTdHJpbmcgKmNo
YXJhY3RlcnM7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IGtleUNvZGUgPSBrVktfVGFiOworICAg
ICAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBmbGFncyA9IDA7CisKKyAgICAgICAgc3dpdGNoIChk
aXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBUYWJEaXJlY3Rpb246OkZvcndhcmQ6CisgICAgICAg
ICAgICBjaGFyYWN0ZXJzID0gQCJcdCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBUYWJEaXJlY3Rpb246OkJhY2t3YXJkOgorICAgICAgICAgICAgY2hhcmFjdGVycyA9IEAiXHgw
MDE5IjsKKyAgICAgICAgICAgIGZsYWdzID0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtO
U0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duIGxvY2F0aW9uOk5TTWFr
ZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6ZmxhZ3MgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVu
dFRpbWUoKSB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6W05TR3Jh
cGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFj
dGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5
Q29kZV07CisKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6ZXZlbnRdOworICAgICAg
ICBbW3dpbmRvdyBmaXJzdFJlc3BvbmRlcl0ga2V5RG93bjpldmVudF07CisgICAgICAgIFtOU0Fw
cCBfc2V0Q3VycmVudEV2ZW50Om5pbF07CisKKyAgICAgICAgZXZlbnQgPSBbTlNFdmVudCBrZXlF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAgbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkg
bW9kaWZpZXJGbGFnczpmbGFncyB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRv
d051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdN
b2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXTsKKworICAg
ICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVudF07CisgICAgICAgIFtbd2luZG93IGZp
cnN0UmVzcG9uZGVyXSBrZXlVcDpldmVudF07CisgICAgICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2
ZW50Om5pbF07CisKKyAgICAgICAgLy8gQm91bmNlIHRocm91Z2ggSmF2YVNjcmlwdCBzbyB0aGF0
IGFzeW5jaHJvbm91cworICAgICAgICAvLyB3ZWIgY29udGVudCBmb2N1cyBjaGFuZ2VzIGhhdmUg
ZGVmaW5pdGVseSB0YWtlbiBlZmZlY3QuCisgICAgICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6QCIiXTsKKyAgICB9OworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiPGlucHV0IGlkPSdvbmUnPjxpbnB1dCBpZD0ndHdvJz4iXTsKKwor
ICAgIC8vIEZvY3VzIHRoZSBmaXJzdCB2aWV3LgorICAgIFt3aW5kb3cgbWFrZUZpcnN0UmVzcG9u
ZGVyOmJlZm9yZVZpZXcuZ2V0KCldOworICAgIEVYUEVDVF9FUShbd2luZG93IGZpcnN0UmVzcG9u
ZGVyXSwgYmVmb3JlVmlldy5nZXQoKSk7CisKKyAgICAvLyBUYWIgaW50byB0aGUgd2ViIHZpZXcs
IHdoaWNoIHdpbGwgZm9jdXMgdGhlIGZpcnN0IGlucHV0LgorICAgIHNpbXVsYXRlVGFiS2V5UHJl
c3MoVGFiRGlyZWN0aW9uOjpGb3J3YXJkKTsKKyAgICBFWFBFQ1RfRVEoW3dpbmRvdyBmaXJzdFJl
c3BvbmRlcl0sIHdlYlZpZXcuZ2V0KCkpOworICAgIEVYUEVDVF9XS19TVFJFUSgib25lIiwgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuaWQiXSk7CisKKyAgICAvLyBUYWIgZnJvbSB0aGUgZmlyc3QgaW5wdXQgdG8gdGhlIHNlY29u
ZCBpbnB1dC4KKyAgICBzaW11bGF0ZVRhYktleVByZXNzKFRhYkRpcmVjdGlvbjo6Rm9yd2FyZCk7
CisgICAgRVhQRUNUX0VRKFt3aW5kb3cgZmlyc3RSZXNwb25kZXJdLCB3ZWJWaWV3LmdldCgpKTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoInR3byIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIl0pOworCisgICAgLy8gVGFiIG91
dCBvZiB0aGUgd2ViIHZpZXcuCisgICAgc2ltdWxhdGVUYWJLZXlQcmVzcyhUYWJEaXJlY3Rpb246
OkZvcndhcmQpOworICAgIEVYUEVDVF9FUShbd2luZG93IGZpcnN0UmVzcG9uZGVyXSwgYWZ0ZXJW
aWV3LmdldCgpKTsKKworICAgIC8vIFJldmVyc2UtdGFiIGJhY2sgaW50byB0aGUgd2ViIHZpZXcu
CisgICAgc2ltdWxhdGVUYWJLZXlQcmVzcyhUYWJEaXJlY3Rpb246OkJhY2t3YXJkKTsKKyAgICBF
WFBFQ1RfRVEoW3dpbmRvdyBmaXJzdFJlc3BvbmRlcl0sIHdlYlZpZXcuZ2V0KCkpOworICAgIEVY
UEVDVF9XS19TVFJFUSgidHdvIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQiXSk7CisKKyAgICAvLyBSZXZlcnNlLXRhYiBm
cm9tIHRoZSBzZWNvbmQgaW5wdXQgdG8gdGhlIGZpcnN0IGlucHV0LgorICAgIHNpbXVsYXRlVGFi
S2V5UHJlc3MoVGFiRGlyZWN0aW9uOjpCYWNrd2FyZCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJv
bmUiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5pZCJdKTsKKworICAgIC8vIFJldmVyc2UtdGFiIGJhY2sgb3V0IG9mIHRoZSB3
ZWIgdmlldyB0byB0aGUgZmlyc3Qgdmlldy4KKyAgICBzaW11bGF0ZVRhYktleVByZXNzKFRhYkRp
cmVjdGlvbjo6QmFja3dhcmQpOworICAgIEVYUEVDVF9FUShbd2luZG93IGZpcnN0UmVzcG9uZGVy
XSwgYmVmb3JlVmlldy5nZXQoKSk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9tYWMvT2Zmc2NyZWVuV2luZG93LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9PZmZzY3JlZW5XaW5kb3cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGVmZTAyYjViMjhmMzA2ZWQ2YmJjMjkx
YjYzMDJkZTZlMWFkMGVkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9t
YWMvT2Zmc2NyZWVuV2luZG93LmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+
CisKK0BpbnRlcmZhY2UgT2Zmc2NyZWVuV2luZG93IDogTlNXaW5kb3cKKworLSAoaW5zdGFuY2V0
eXBlKWluaXQgTlNfVU5BVkFJTEFCTEU7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb250ZW50
UmVjdDooTlNSZWN0KWNvbnRlbnRSZWN0IHN0eWxlTWFzazooTlNXaW5kb3dTdHlsZU1hc2spc3R5
bGUgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKWJhY2tpbmdTdG9yZVR5cGUgZGVmZXI6KEJP
T0wpZmxhZyBOU19VTkFWQUlMQUJMRTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbnRlbnRS
ZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1dpbmRvd1N0eWxlTWFzaylzdHls
ZSBiYWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYmFja2luZ1N0b3JlVHlwZSBkZWZlcjooQk9P
TClmbGFnIHNjcmVlbjooTlNTY3JlZW4gKilzY3JlZW4gTlNfVU5BVkFJTEFCTEU7CisKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFNpemU6KENHU2l6ZSlzaXplOworCitAZW5kCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvT2Zmc2NyZWVuV2luZG93Lm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvT2Zmc2NyZWVuV2luZG93Lm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdh
MTAwZjc1ZTFlZGRiMjgwZTljNmM2MGViMDQwOTlhNTVkZjY2MDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5XaW5kb3cubW0KQEAgLTAsMCArMSw1
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiT2Zmc2NyZWVu
V2luZG93LmgiCisKK0BpbXBsZW1lbnRhdGlvbiBPZmZzY3JlZW5XaW5kb3cKKworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoU2l6ZTooQ0dTaXplKXNpemUKK3sKKyAgICBOU1JlY3QgcmVjdCA9IE5T
TWFrZVJlY3QoMCwgMCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOworICAgIE5TUmVjdCB3aW5k
b3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgWyhOU1NjcmVlbiAqKVtbTlNTY3Jl
ZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQgLSByZWN0LnNp
emUuaGVpZ2h0ICsgMTAwMDApOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVj
dDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2lu
ZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CisgICAgaWYgKCFzZWxmKQorICAg
ICAgICByZXR1cm4gbmlsOworCisgICAgc2VsZi5jb2xvclNwYWNlID0gW1tOU1NjcmVlbiBtYWlu
U2NyZWVuXSBjb2xvclNwYWNlXTsKKyAgICBbc2VsZiBvcmRlckJhY2s6bmlsXTsKKyAgICBzZWxm
LmF1dG9kaXNwbGF5ID0gTk87CisgICAgc2VsZi5yZWxlYXNlZFdoZW5DbG9zZWQgPSBOTzsKKwor
ICAgIHJldHVybiBzZWxmOworfQorCistIChCT09MKWlzS2V5V2luZG93Cit7CisgICAgcmV0dXJu
IFlFUzsKK30KKworLSAoQk9PTClpc1Zpc2libGUKK3sKKyAgICByZXR1cm4gWUVTOworfQorCitA
ZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdN
YWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5k
ZXggY2IxODI2ZGM2OWI3YmE4NTBjODBkZjdhNWE5MThkZjg4MDNhMDRmNS4uNDAzMzlkZTdhZjJl
YjdlYTlhZjY0YTU2YzIwYmZhMmVmNDEyYjBkYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
bWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMjYsMjUgKzI2LDEyIEBACiAjaW1wb3J0ICJj
b25maWcuaCIKICNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgogCisjaW1wb3J0ICJPZmZzY3Jl
ZW5XaW5kb3cuaCIKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPFdlYktpdC9X
S1JldGFpblB0ci5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KICNpbXBvcnQg
PHd0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oPgogCi1AaW50ZXJmYWNl
IEFjdGl2ZU9mZnNjcmVlbldpbmRvdyA6IE5TV2luZG93Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlv
biBBY3RpdmVPZmZzY3JlZW5XaW5kb3cKLS0gKEJPT0wpaXNLZXlXaW5kb3cKLXsKLSAgICByZXR1
cm4gWUVTOwotfQotLSAoQk9PTClpc1Zpc2libGUKLXsKLSAgICByZXR1cm4gWUVTOwotfQotQGVu
ZAotCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpp
bml0aWFsaXplKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgQ2xhc3Mgd2tW
aWV3U3ViY2xhc3MpCkBAIC01MywxMyArNDAsOCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6aW5p
dGlhbGl6ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIENsYXNzIHdrVgog
ICAgIG1fdmlldyA9IFtbd2tWaWV3U3ViY2xhc3MgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBj
b25maWd1cmF0aW9uUmVmOmNvbmZpZ3VyYXRpb25dOwogICAgIFttX3ZpZXcgc2V0V2luZG93T2Nj
bHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDpOT107CiAKLSAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5T
T2Zmc2V0UmVjdChyZWN0LCAtMTAwMDAsIFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNd
IG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCAr
IDEwMDAwKTsKLSAgICBtX3dpbmRvdyA9IFtbQWN0aXZlT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBp
bml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNr
Qm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKLSAg
ICBbbV93aW5kb3cgc2V0Q29sb3JTcGFjZTpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGNvbG9yU3Bh
Y2VdXTsKKyAgICBtX3dpbmRvdyA9IFtbT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aFNp
emU6TlNTaXplVG9DR1NpemUocmVjdC5zaXplKV07CiAgICAgW1ttX3dpbmRvdyBjb250ZW50Vmll
d10gYWRkU3VidmlldzptX3ZpZXddOwotICAgIFttX3dpbmRvdyBvcmRlckJhY2s6bmlsXTsKLSAg
ICBbbV93aW5kb3cgc2V0QXV0b2Rpc3BsYXk6Tk9dOwotICAgIFttX3dpbmRvdyBzZXRSZWxlYXNl
ZFdoZW5DbG9zZWQ6Tk9dOwogfQogCiBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359181</attachid>
            <date>2019-01-15 11:02:25 -0800</date>
            <delta_ts>2019-01-15 13:03:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161448-20190115110224.patch</filename>
            <type>text/plain</type>
            <size>36255</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA3ODc3Mzkw
M2ZiNzllNzU0NWU1YjE4NWFjNGFhOGI4YzZlZjZhNDAxLi5mZmFmNGY0YWRlMTVkZGVmMWRkNmZl
OGJlZWY0NTI5MjE4YzNkOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBDYW5ub3QgdGFiIG91dCBvZiBXS1dlYlZpZXcgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTQ0OAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjgxMDAwODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYWwvc3BpL21hYy9OU1ZpZXdTUEkuaDoKKyAgICAgICAgKiBwYWwvc3Bp
L21hYy9OU1dpbmRvd1NQSS5oOgorICAgICAgICBNb3ZlIHNvbWUgU1BJIGRlY2xhcmF0aW9ucyBp
biBoZXJlIGZyb20gV2ViS2l0TGVnYWN5LgorCiAyMDE5LTAxLTE0ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjM5OTAxLCByMjM5OTA5LCByMjM5OTEwLCByMjM5OTEyLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MzA0YTNm
NTUyNThkMjhkOTY2NTJhYzA3M2ZiMTFiYzgyMzVhZWFlLi5kYWFjZmIyZTU3Y2M0OTBkMGQ2NTNl
ODVkNmQyMWM2NjA1ZWE3MzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTAxLTE0
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENhbm5v
dCB0YWIgb3V0IG9mIFdLV2ViVmlldyBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDQ4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
ODEwMDA4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnRha2VGb2N1cyk6CisgICAgICAgIElmIHRoZSBVSURlbGVnYXRlIGRvZXNuJ3QgaW1w
bGVtZW50IHRha2VGb2N1cywgcHJvdmlkZSBhIHNpbXBsZSBkZWZhdWx0CisgICAgICAgIGltcGxl
bWVudGF0aW9uIHRoYXQganVzdCB1c2VzIEFwcEtpdCdzIGtleSB2aWV3IGxvb3AgdG8gbW92ZSB0
aGUgZm9jdXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6OlVJQ2xpZW50Ojp0YWtlRm9jdXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6
dGFrZUZvY3VzKToKKyAgICAgICAgTWFrZSBBUEk6OlVJQ2xpZW50J3MgdGFrZUZvY3VzIHJldHVy
biBhIGJvb2wgaW5kaWNhdGluZyB3aGV0aGVyIHRoZQorICAgICAgICBjbGllbnQgaW1wbGVtZW50
cyBpdCBvciBub3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6dGFrZUZvY3VzKToKKyAgICAgICAgUGx1bWIgdGFrZUZvY3VzIHRvIFdlYlZpZXdJbXBs
LgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dGFrZUZvY3VzKToKKyAgICAgICAgQm9ycm93IHRoZSByZWxldmFudCBwb3J0aW9uIG9m
IFdlYktpdExlZ2FjeSdzIGltcGxlbWVudGF0aW9uIG9mIHRha2VGb2N1cywKKyAgICAgICAgc2hp
ZnRpbmcgZm9jdXMgdG8gdGhlIG5leHQvcHJldmlvdXMga2V5IHZpZXcgaW4gdGhlIHdpbmRvdy4K
KwogMjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggYSBzdHlsZSBtaXN0YWtlIGluIFBhZ2VDbGllbnRJbXBsTWFjCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDFlMGQzMTI4MjkyNjg5OTliM2FhNWYyY2IxZWY2NDRh
YWNhNmFiMC4uOGNmZTQ5NjI5NmQwYTIzZGRhMzU4MjU0NzhmYTczNWFlZDBiM2UyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAxLTE0ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENhbm5vdCB0YWIg
b3V0IG9mIFdLV2ViVmlldyBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDQ4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODEwMDA4
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgIE1ha2UgdXNlIG9mIFNQSSBoZWFkZXJzLgorCiAyMDE5LTAxLTE0ICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjM5OTAxLCByMjM5OTA5LCByMjM5OTEwLCByMjM5OTEyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TVmlld1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TVmlld1NQSS5oCmluZGV4IDllZWRiNzNjOTIz
NDliYmU1ZDhjZDE2OWJjMDEyODQxNmNhZjJmYmIuLmQ3MWZmNmJkZTgyNzlkMDBjZDM0YTJkY2Iw
YjdiZTcwNjFiN2EyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9OU1ZpZXdTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNWaWV3
U1BJLmgKQEAgLTI4LDYgKzI4LDkgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29y
ZVNQSS5oPgogCiBAaW50ZXJmYWNlIE5TVmlldyAoKSA8Q0FMYXllckRlbGVnYXRlPgorCistIChO
U1ZpZXcgKilfZmluZExhc3RWaWV3SW5LZXlWaWV3TG9vcDsKKwogQGVuZAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFj
L05TV2luZG93U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dT
UEkuaAppbmRleCAwYmIyYTk5OGY0N2NlOGU4N2ZiNTVhZjc3OGM2MjY2ZGQ2MTAzNmZmLi4wOGFm
OTVhMDQ0YWQ2OTkwNDIwNjIxN2E0YzRhNzUwMDMwOWE0YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaApAQCAtMzcsNiArMzcsNyBAQAogCiBAaW50
ZXJmYWNlIE5TV2luZG93ICgpCiAKKy0gKGlkKV9vbGRGaXJzdFJlc3BvbmRlckJlZm9yZUJlY29t
aW5nOwogLSAoaWQpX25ld0ZpcnN0UmVzcG9uZGVyQWZ0ZXJSZXNpZ25pbmc7CiAtICh2b2lkKV9z
ZXRDdXJzb3JGb3JNb3VzZUxvY2F0aW9uOihOU1BvaW50KXBvaW50OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDQzZmY3NjNiOTA0OGNjNDBhOTY3ZDk0
NTZiYmUwM2FjYmI5NTAyN2MuLjA4OTQ4ZTc3NGY5MTcwNmNmMWEyMDEzOGFmOTBmZGZmYjhlNDZj
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC04MSw3
ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBib29sKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY2xvc2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCB0YWtlRm9jdXMoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgdGFrZUZvY3VzKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV0tG
b2N1c0RpcmVjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMo
V2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cyhXZWJL
aXQ6OldlYlBhZ2VQcm94eSopIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAppbmRleCBkNGVlOGNjMGI1ZmQ5YTg1MzU2MmRiZTAwZDU3MzEzNzc4OGMxZmE4Li42
YjQwYjlmMzcwNmQ0ZjM3ODUzYjM5ZGQyNTQ2MGE3NjRmMGJiYzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE1NTMsMTIgKzE1NTMsMTMgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xp
ZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmNsb3NlKHRvQVBJKHBhZ2Up
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCB0
YWtlRm9jdXMoV2ViUGFnZVByb3h5KiBwYWdlLCBXS0ZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikg
ZmluYWwKKyAgICAgICAgYm9vbCB0YWtlRm9jdXMoV2ViUGFnZVByb3h5KiBwYWdlLCBXS0ZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFt
X2NsaWVudC50YWtlRm9jdXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgbV9jbGllbnQudGFrZUZvY3VzKHRvQVBJ
KHBhZ2UpLCBkaXJlY3Rpb24sIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZm9jdXMoV2ViUGFnZVBy
b3h5KiBwYWdlKSBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCmluZGV4IDM4ZGQ3ZWNiY2ZiNWYyYTYwZmM4NmM5OGJlOGIwZjMxYTg1NGZmODYuLjZkNjgw
NjlhY2I2NDQwMDkxZTA4ZjFhYTllYWJhMTIwMGNmNTE2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIEFQSTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBj
dXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2luVXNhZ2UsIHVuc2ln
bmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVz
YWdlLCBGdW5jdGlvbjx2b2lkKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIGZpbmFsOwogICAgICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQo
dW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgICAg
IHZvaWQgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlKFdlYlBh
Z2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7Ci0gICAgICAgIHZvaWQgdGFrZUZvY3VzKFdl
YlBhZ2VQcm94eSosIFdLRm9jdXNEaXJlY3Rpb24pIGZpbmFsOworICAgICAgICBib29sIHRha2VG
b2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgICAgIHZvaWQgc2hvd1BhZ2UoV2ViUGFnZVByb3h5KikgZmluYWw7CiAgICAg
ICAgIHZvaWQgZm9jdXMoV2ViUGFnZVByb3h5KikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBjMTY4NTNmYTRkYjFjZTQ5MjQwMmFmY2Vl
ZGE1MTBmYjYwY2M2MmVlLi5kYWVjYWI0ZWM4NTE5MmFjZGNmNWJkMmJiZjAwMGM0Y2YwODNiNTA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTQ2
NiwxNiArNDY2LDE3IEBAIHN0YXRpYyBpbmxpbmUgX1dLRm9jdXNEaXJlY3Rpb24gdG9XS0ZvY3Vz
RGlyZWN0aW9uKFdLRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIHJldHVybiBfV0tGb2N1
c0RpcmVjdGlvbkZvcndhcmQ7CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnRha2VG
b2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK2Jvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnRha2VGb2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbikKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3VGFrZUZvY3VzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAKICAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0
KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCiAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dl
YlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyB0YWtlRm9jdXM6dG9XS0ZvY3VzRGlyZWN0aW9u
KGRpcmVjdGlvbildOworICAgIHJldHVybiB0cnVlOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggZjc1N2Q4
NzI0ZjI2N2ZkOTFhMDAwMjQ4ZjQ4ZDQyOTFiMzIzNTE3Zi4uYzY4ZGJjYzdjZWFiOTEyNGZiOWVl
OTVhNTJkNjhkZWU4ODNhYzc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV0tEcmFnRGVzdGluYXRp
b25BY3Rpb24uaCIKICNpbmNsdWRlICJXS0xheW91dE1vZGUuaCIKICNpbmNsdWRlICJfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4
dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbi5oPgpAQCAtNjAzLDYgKzYwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVmZmVj
dGl2ZUFwcGVhcmFuY2VEaWRDaGFuZ2UoKTsKICAgICBib29sIGVmZmVjdGl2ZUFwcGVhcmFuY2VJ
c0RhcmsoKTsKIAorICAgIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsK
KwogcHJpdmF0ZToKICNpZiBIQVZFKFRPVUNIX0JBUikKICAgICB2b2lkIHNldFVwVGV4dFRvdWNo
QmFyKE5TVG91Y2hCYXIgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCmluZGV4IGRhMmUzMmYyNTQ4ZjFkNTZhNjBiNjU2MGFkYmVmNTY5Mzc2NjYxZDUu
LmQ1MWVmNWQ5ZmUxNzJjYzA2MTZjYTA1ZmRkM2YxOWE2MzZkODJmOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMTIsNiArMTEyLDcgQEAK
ICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TU3BlbGxDaGVja2VyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1RleHRG
aW5kZXJTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KICNpbXBvcnQgPHN5cy9zdGF0Lmg+CiAjaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTE1NzAsNiArMTU3MSwyMCBAQCBib29sIFdlYlZp
ZXdJbXBsOjpyZXNpZ25GaXJzdFJlc3BvbmRlcigpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Zv
aWQgV2ViVmlld0ltcGw6OnRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24pCit7CisgICAgTlNWaWV3ICp3ZWJWaWV3ID0gbV92aWV3LmdldEF1dG9yZWxlYXNlZCgpOwor
CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkZvcndhcmQpIHsKKyAgICAgICAg
Ly8gU2luY2Ugd2UncmUgdHJ5aW5nIHRvIG1vdmUgZm9jdXMgb3V0IG9mIG1fd2ViVmlldywgYW5k
IGJlY2F1c2UKKyAgICAgICAgLy8gbV93ZWJWaWV3IG1heSBjb250YWluIHN1YnZpZXdzIHdpdGhp
biBpdCwgd2UgYXNrIGl0IGZvciB0aGUgbmV4dCBrZXkKKyAgICAgICAgLy8gdmlldyBvZiB0aGUg
bGFzdCB2aWV3IGluIGl0cyBrZXkgdmlldyBsb29wLiBUaGlzIG1ha2VzIG1fd2ViVmlldworICAg
ICAgICAvLyBiZWhhdmUgYXMgaWYgaXQgaGFkIG5vIHN1YnZpZXdzLCB3aGljaCBpcyB0aGUgYmVo
YXZpb3Igd2Ugd2FudC4KKyAgICAgICAgW3dlYlZpZXcud2luZG93IHNlbGVjdEtleVZpZXdGb2xs
b3dpbmdWaWV3Olt3ZWJWaWV3IF9maW5kTGFzdFZpZXdJbktleVZpZXdMb29wXV07CisgICAgfSBl
bHNlCisgICAgICAgIFt3ZWJWaWV3LndpbmRvdyBzZWxlY3RLZXlWaWV3UHJlY2VkaW5nVmlldzp3
ZWJWaWV3XTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmco
Y29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYgd2FybmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWYXJpYW50PENvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBpZiAoIW1fdmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApp
bmRleCAxNDk3MTRhYjFkMjI2NWE2ODM0ZDU3ZWY0N2IxMTZlYTRlMjllMzUxLi5hYWFiY2MyODhj
NDc4ODkyMDA3NTMxZWZlNDBhOTIwMWU5ZWExZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHku
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgpAQCAtMzA5LDYgKzMxMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250
ZXh0JikgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0Rp
cmVjdGlvbikgeyB9CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHBsdWdp
bkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1
dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
YzhhYjcwMzMzYjQwMzlhODc3OWM0Y2EzZjMxZTE5MDc1NjNhMzM2OS4uMGM4YTY4NzZmMjVhYWY0
YTAwMGM1YzIwYjIzZjk0MzE4YzVkZDE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC01ODgxLDcgKzU4ODEsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dEZvY3VzKGJvb2wgZm9jdXNlZCkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnRha2VGb2N1cyh1aW50
MzJfdCBkaXJlY3Rpb24pCiB7Ci0gICAgbV91aUNsaWVudC0+dGFrZUZvY3VzKHRoaXMsIChzdGF0
aWNfY2FzdDxGb2N1c0RpcmVjdGlvbj4oZGlyZWN0aW9uKSA9PSBGb2N1c0RpcmVjdGlvbkZvcndh
cmQpID8ga1dLRm9jdXNEaXJlY3Rpb25Gb3J3YXJkIDoga1dLRm9jdXNEaXJlY3Rpb25CYWNrd2Fy
ZCk7CisgICAgaWYgKG1fdWlDbGllbnQtPnRha2VGb2N1cyh0aGlzLCAoc3RhdGljX2Nhc3Q8Rm9j
dXNEaXJlY3Rpb24+KGRpcmVjdGlvbikgPT0gRm9jdXNEaXJlY3Rpb25Gb3J3YXJkKSA/IGtXS0Zv
Y3VzRGlyZWN0aW9uRm9yd2FyZCA6IGtXS0ZvY3VzRGlyZWN0aW9uQmFja3dhcmQpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBwYWdlQ2xpZW50KCkudGFrZUZvY3VzKHN0YXRpY19jYXN0PEZvY3Vz
RGlyZWN0aW9uPihkaXJlY3Rpb24pKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldFRvb2xU
aXAoY29uc3QgU3RyaW5nJiB0b29sVGlwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA3Y2ZkYzU3Nzc3OTk5ZjQ0YzRjYmI0M2NkMTA2
ZTNiZmQ5YzNkYTVjLi4xMmRjMjVhYmNjMzNmNGRlNWU2YzYzNjBlYmQ4YzMyZDA1YTRhZTc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApA
QCAtMjYyLDYgKzI2Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKSBvdmVycmlkZTsKICAgICBib29sIHdpbmRvd0lzRnJvbnRXaW5kb3dVbmRlck1vdXNl
KGNvbnN0IE5hdGl2ZVdlYk1vdXNlRXZlbnQmKSBvdmVycmlkZTsKIAorICAgIHZvaWQgdGFrZUZv
Y3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKSBvdmVycmlkZTsKKwogICAgIE5TVmlldyAqbV92
aWV3OwogICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IG1faW1wbDsKICNpZiBVU0UoQVVUT0NPUlJF
Q1RJT05fUEFORUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMubW0KaW5kZXggYTBjZWZkZDczZTllZGMxOWNiYTRlYjU4NzZmYWRjOTM3MDc2ZmU1
My4uNWQ3YzIzOGVmZDY5ZjYxNWFiZjVhN2Q1NTVkNDhkMjNjNDc2ZWU1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtOTU3LDYg
Kzk1NywxMSBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjplZmZlY3RpdmVBcHBlYXJhbmNlSXNEYXJr
KCkgY29uc3QKICAgICByZXR1cm4gbV9pbXBsLT5lZmZlY3RpdmVBcHBlYXJhbmNlSXNEYXJrKCk7
CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24pCit7CisgICAgbV9pbXBsLT50YWtlRm9jdXMoZGlyZWN0aW9uKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KaW5kZXggNGM1ZDE4ZGMwMmNjZmYyYjdlYWI5ODA1MDkyMWE2N2E5OGY2OWNj
NS4uM2UwYTVjMjcyNmY1ODE2YmU5MGZmZWFjMTI3OWRhZWJlNjQ2MjM1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbQpAQCAtODUsNiArODUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZXJpYWxpemVkQ3J5
cHRvS2V5V3JhcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2luZG93RmVhdHVyZXMuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQSS5oPgog
I2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIu
aD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KQEAgLTEzNSwxMCArMTM2LDYgQEAgLSAoTlNDdXJz
b3IgKilfY3Vyc29yUmVjdEN1cnNvcjsKIEBlbmQKICNlbmRpZgogCi1AaW50ZXJmYWNlIE5TVmll
dyAoV2ViTlNWaWV3RGV0YWlscykKLS0gKE5TVmlldyAqKV9maW5kTGFzdFZpZXdJbktleVZpZXdM
b29wOwotQGVuZAotCiAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBTUEkuCiBAaW50ZXJm
YWNlIE5TVmlldyAoV2ViT2xkV2ViS2l0UGx1Z0luRGV0YWlscykKIC0gKHZvaWQpc2V0SXNTZWxl
Y3RlZDooQk9PTClpc1NlbGVjdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IGFiODM4NDUzYjMyNDY0ZTUxZTEyYTAyNTM2MGZlYjdiMjM4NTljZmQu
LmE1ZTQxMTg5NGFmYTk4ZTQxMmI2MjczZWRlNmYwMWI3MTNjMWQwMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTM3NSw3ICszNzUsNiBAQCAtICh2
b2lkKV93aW5kb3dDaGFuZ2VkS2V5U3RhdGU7CiBAZW5kCiAKIEBpbnRlcmZhY2UgTlNXaW5kb3cg
KFdlYk5TV2luZG93RGV0YWlscykKLS0gKGlkKV9vbGRGaXJzdFJlc3BvbmRlckJlZm9yZUJlY29t
aW5nOwogLSAodm9pZClfZW5hYmxlU2NyZWVuVXBkYXRlc0lmTmVlZGVkOwogLSAoQk9PTClfd3Jh
cHNDYXJib25XaW5kb3c7CiAtIChCT09MKV9oYXNLZXlBcHBlYXJhbmNlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk3YjI3MjA1YzM5M2MxMmZm
ZGIxNjM2NzRhMDUyYjU3MDFjNjU5ZjkuLmY4ZWNjOGI0ZmY5ZTY0ODUyMDU1NTVjOTE0YTU5YzZk
NGMzMDg2MTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDYW5ub3QgdGFiIG91dCBvZiBXS1dlYlZpZXcgb24g
bWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MTQ0OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgxMDAwODU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0aGF0IHRhYmJpbmcg
aW50byBhbmQgb3V0IG9mIFdLV2ViVmlldyB3b3JrcyBjb3JyZWN0bHkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbW1hbmRCYWNrRm9yd2Fy
ZC5tbToKKyAgICAgICAgKFdlYktpdDJfQ29tbWFuZEJhY2tGb3J3YXJkVGVzdDo6U2V0VXApOgor
ICAgICAgICAoLVtDb21tYW5kQmFja0ZvcndhcmRPZmZzY3JlZW5XaW5kb3cgaXNLZXlXaW5kb3dd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bQ29tbWFuZEJhY2tGb3J3YXJkT2Zmc2NyZWVuV2luZG93
IGlzVmlzaWJsZV0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVGFiT3V0T2ZXZWJWaWV3Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bRm9jdXNhYmxl
VmlldyBjYW5CZWNvbWVLZXlWaWV3XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5XaW5kb3cuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9tYWMvT2Zmc2NyZWVuV2luZG93Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bT2Zmc2Ny
ZWVuV2luZG93IGluaXRXaXRoU2l6ZTpdKToKKyAgICAgICAgKC1bT2Zmc2NyZWVuV2luZG93IGlz
S2V5V2luZG93XSk6CisgICAgICAgICgtW09mZnNjcmVlbldpbmRvdyBpc1Zpc2libGVdKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUpOgorICAgICAgICAo
LVtBY3RpdmVPZmZzY3JlZW5XaW5kb3cgaXNLZXlXaW5kb3ddKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bQWN0aXZlT2Zmc2NyZWVuV2luZG93IGlzVmlzaWJsZV0pOiBEZWxldGVkLgorICAgICAgICBG
YWN0b3IgQWN0aXZlT2Zmc2NyZWVuV2luZG93IG91dCBpbnRvIE9mZnNjcmVlbldpbmRvdyBhbmQg
c2hhcmUgaXQuCisKIDIwMTktMDEtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBhIHRlc3QgaW1wbGVtZW50YXRpb24gZmlsZSB0aGF0IGdv
dCBtaXNwbGFjZWQgaW4gdGhlIFhjb2RlIHByb2plY3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggY2NkZDhlZWQzOTI1MDZiMThkODlmMTJmNDE2YmYwMDNhMTVlZGJlMC4uN2ExMDcyYWNkYWEy
YzJhYTUwN2NkYjJmYzI5NzA4MTA4NDVjM2YwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTkwLDYgKzkwLDggQEAKIAkJMkQyMUZFNTkxRjA0NjQyOTAwQjU4RTdEIC8qIFdLUERGVmlld1N0
YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyMUZFNTgxRjA0NjQyODAwQjU4RTdEIC8qIFdLUERG
Vmlld1N0YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1tICovOyB9OwogCQkyRDRDRjhC
RDFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8q
IFdLVGh1bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ1MUEwQzcxQzhCRjAwQzAwNzY1QzQ1IC8q
IERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxW
aWRlb0VsZW1lbnRXcmFwcGVyLm1tICovOyB9OworCQkyRDcwMDU5NjIxRURBMEM2MDAzNDYzQ0Ig
LyogVGFiT3V0T2ZXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2M0NCIC8qIFRhYk91dE9mV2ViVmlldy5t
bSAqLzsgfTsKKwkJMkQ3MDA1OTkyMUVEQTREMDAwMzQ2M0NCIC8qIE9mZnNjcmVlbldpbmRvdy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENzAwNTk3
MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cubW0gKi87IH07CiAJCTJEODM4QjFG
MUVFRjNBNUMwMDlCOTgwRSAvKiBXS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDgzOEIxRTFFRUYzQTVC
MDA5Qjk4MEUgLyogV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tICovOyB9OwogCQkyREFE
RjI2MzIxQ0I4RjMyMDAzRDNFM0EgLyogR2V0UmVzb3VyY2VEYXRhLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBREYyNjIyMUNCOEYzMjAwM0QzRTNB
IC8qIEdldFJlc291cmNlRGF0YS5tbSAqLzsgfTsKIAkJMkRCMDIzMkYxRTRFODcxODAwNzA3MTIz
IC8qIEludGVyYWN0aW9uRGVhZGxvY2tBZnRlckNyYXNoLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRCMDIzMkUxRTRFODcxODAwNzA3MTIzIC8qIElu
dGVyYWN0aW9uRGVhZGxvY2tBZnRlckNyYXNoLm1tICovOyB9OwpAQCAtMTQwMyw2ICsxNDA1LDkg
QEAKIAkJMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFw
cGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTFZp
ZGVvRWxlbWVudFdyYXBwZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENjFF
QzMwMjFCMEI3NUMwMEE3RDFDQiAvKiBQZW5jaWxLaXRUZXN0U1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBlbmNpbEtpdFRlc3RTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ2NDBC
NTQxNzg3NURGRjAwQkZBRjk5IC8qIFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENzAwNTk1MjFFREEwQzYwMDM0NjNDQiAv
KiBUYWJPdXRPZldlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBUYWJPdXRPZldlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
NzAwNTk3MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBPZmZzY3JlZW5XaW5kb3cubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENzAwNTk4MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3Jl
ZW5XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT2Zmc2NyZWVuV2lu
ZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODEwNENCMUJFQzEzRTcwMDIw
REE0NiAvKiBGaW5kSW5QYWdlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRmluZEluUGFnZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4MzhC
MUUxRUVGM0E1QjAwOUI5ODBFIC8qIFdLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQ29udGVudFZpZXdFZGl0aW5n
QWN0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5QTUzQUUxQjMxRkE4
RDAwNzRENUFBIC8qIFNocmlua1RvRml0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU2hyaW5rVG9GaXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNTU4LDYgKzI1NjMsNyBAQAogCQkJCUNEQzA5MzJEMjFDOTkzNDQwMDMwQzRCMCAvKiBTdG9w
U3VzcGVuZFJlc3VtZUFsbE1lZGlhLm1tICovLAogCQkJCTUxNUJFMTcwMUQ0MjhCRDEwMEREN0M2
OCAvKiBTdG9yZUJsb2JUaGVuRGVsZXRlLm1tICovLAogCQkJCTFDNzM0QjUyMjA3ODhDNDgwMEY0
MzBFQSAvKiBTeXN0ZW1Db2xvcnMubW0gKi8sCisJCQkJMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2M0NC
IC8qIFRhYk91dE9mV2ViVmlldy5tbSAqLywKIAkJCQlGNENENzRDNzIwRkRCNDk2MDBERTM3OTQg
LyogVGVzdFVSTFNjaGVtZUhhbmRsZXIuaCAqLywKIAkJCQlGNENENzRDODIwRkRCNDk2MDBERTM3
OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi8sCiAJCQkJNUNCNDBCNEQxRjRCOThCRTAw
N0RDN0I5IC8qIFVJRGVsZWdhdGUubW0gKi8sCkBAIC0zMzQ4LDYgKzMzNTQsOCBAQAogCQkJCTJF
Nzc2NUNFMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tICovLAogCQkJCUY0NDI4NTFCMjE0
MERGMjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcuaCAqLywKIAkJCQlGNDQyODUxQzIx
NDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tICovLAorCQkJCTJENzAwNTk4
MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cuaCAqLywKKwkJCQkyRDcwMDU5NzIx
RURBNEQwMDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tICovLAogCQkJCUJDMTMxODg0MTE3
MTE0QjYwMEI2OTcyNyAvKiBQbGF0Zm9ybVV0aWxpdGllc01hYy5tbSAqLywKIAkJCQlCQzkwOTU1
QzEyNTU0OEFBMDAwODM3NTYgLyogUGxhdGZvcm1XZWJWaWV3TWFjLm1tICovLAogCQkJCUMwODEy
MjQzMTNGQzE5RUMwMERDMzlBRSAvKiBTeW50aGV0aWNCYWNraW5nU2NhbGVGYWN0b3JXaW5kb3cu
aCAqLywKQEAgLTQxMTUsNiArNDEyMyw3IEBACiAJCQkJQTEwRjA0N0UxRTNBRDI5QzAwQzk1RTE5
IC8qIE5TRmlsZU1hbmFnZXJFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDQyODUxRDIx
NDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzdBMjJBQTcxRENBQTI3MjAwQUZCRkM0IC8qIE9ic2VydmVkUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudHNBZnRlckNyYXNoLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ3MDA1OTkyMUVEQTREMDAw
MzQ2M0NCIC8qIE9mZnNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjI1
MUE0MTFBRjYwMDQ0N0M0QyAvKiBPcGVuQW5kQ2xvc2VXaW5kb3cubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDRUJDQTEyRjFFM0E2NjAxMDBDNzMyOTMgLyogT3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQ
b2xpY3kubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyog
UGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNDIwOSw2ICs0MjE4LDcgQEAKIAkJCQk0
NDMzQTM5NjIwODA0NDE0MDA5MUVENTcgLyogU3luY2hyb25vdXNUaW1lb3V0VGVzdHMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3Q0NFN0VBODFBNDExQTE5MDA0NDdDNEMgLyogU3ludGhldGljQmFj
a2luZ1NjYWxlRmFjdG9yV2luZG93Lm0gaW4gU291cmNlcyAqLywKIAkJCQkxQzczNEI1MzIwNzg4
QzQ4MDBGNDMwRUEgLyogU3lzdGVtQ29sb3JzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ3MDA1
OTYyMUVEQTBDNjAwMzQ2M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RjE2MUE0MTFBRTYwMDQ0N0M0QyAvKiBUZXJtaW5hdGVUd2ljZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0VBOTFBNDExQTFEMDA0NDdDNEMgLyogVGVzdEJyb3dzaW5nQ29u
dGV4dExvYWREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NjEyOENCMjExRDQ3NTEw
MEQ5RkFEQiAvKiBUZXN0RHJhZ2dpbmdJbmZvLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbW1hbmRCYWNrRm9yd2Fy
ZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tG
b3J3YXJkLm1tCmluZGV4IGIzYzVhZjkwN2IyZmI1ZDljOTM1MGRkZTQzN2NjNDI3YzI4OWVlZmMu
LmE0OGM3ODM4ZWIyYjE5YTUwMDc3MTdmYjQ1YjdlMTY3NmFhM2FhMWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tG
b3J3YXJkLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBv
cnQgIk9mZnNjcmVlbldpbmRvdy5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNp
bXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKQEAgLTM2
LDIwICszNyw2IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAotQGludGVyZmFjZSBDb21tYW5k
QmFja0ZvcndhcmRPZmZzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwotQGVuZAotCi1AaW1wbGVtZW50
YXRpb24gQ29tbWFuZEJhY2tGb3J3YXJkT2Zmc2NyZWVuV2luZG93Ci0tIChCT09MKWlzS2V5V2lu
ZG93Ci17Ci0gICAgcmV0dXJuIFlFUzsKLX0KLS0gKEJPT0wpaXNWaXNpYmxlCi17Ci0gICAgcmV0
dXJuIFlFUzsKLX0KLUBlbmQKLQogZW51bSBBcnJvd0RpcmVjdGlvbiB7CiAgICAgTGVmdCwKICAg
ICBSaWdodApAQCAtOTYsMTEgKzgzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIFNl
dFVwKCkKICAgICB7Ci0gICAgICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW0NvbW1hbmRCYWNrRm9y
d2FyZE9mZnNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0
KDAsIDAsIDEwMCwgMTAwKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKLSAgICAgICAgW3dpbmRvdyBzZXRD
b2xvclNwYWNlOltbTlNTY3JlZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV1dOwotICAgICAgICBb
d2luZG93IG9yZGVyQmFjazpuaWxdOwotICAgICAgICBbd2luZG93IHNldEF1dG9kaXNwbGF5Ok5P
XTsKLSAgICAgICAgW3dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOworICAgICAgICB3
aW5kb3cgPSBhZG9wdE5TKFtbT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aFNpemU6Q0dT
aXplTWFrZSgxMDAsIDEwMCldKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RhYk91dE9mV2ViVmlldy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGFiT3V0T2ZXZWJWaWV3Lm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYwMDdjYWQyYjA1YjhiNzZmYWM4OTU3NDk0ZTczNzI1NDUyOTAwZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RhYk91dE9mV2Vi
Vmlldy5tbQpAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2ltcG9ydCAiT2Zmc2NyZWVuV2luZG93LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8Q2FyYm9uL0NhcmJv
bi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKworZW51bSBjbGFzcyBUYWJEaXJlY3Rpb24gOiB1aW50OF90IHsKKyAgICBG
b3J3YXJkLAorICAgIEJhY2t3YXJkLAorfTsKKworQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uICgp
CistICh2b2lkKV9zZXRDdXJyZW50RXZlbnQ6KE5TRXZlbnQgKilldmVudDsKK0BlbmQKKworQGlu
dGVyZmFjZSBGb2N1c2FibGVWaWV3IDogTlNWaWV3CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBG
b2N1c2FibGVWaWV3CisKKy0gKEJPT0wpY2FuQmVjb21lS2V5VmlldworeworICAgIHJldHVybiBZ
RVM7Cit9CisKK0BlbmQKKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykKKwor
VEVTVChXZWJLaXQsIFRhYk91dE9mV2ViVmlldykKK3sKKyAgICBSZXRhaW5QdHI8Rm9jdXNhYmxl
Vmlldz4gYmVmb3JlVmlldyA9IGFkb3B0TlMoW1tGb2N1c2FibGVWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMjAwLCAxMDAsIDEwMCldKTsKKyAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDEwMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKSBhZGRUb1dpbmRvdzpOT10pOworICAgIFJldGFpblB0cjxGb2N1c2FibGVWaWV3PiBhZnRl
clZpZXcgPSBhZG9wdE5TKFtbRm9jdXNhYmxlVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDEwMCwgMTAwKV0pOworICAgIFJldGFpblB0cjxPZmZzY3JlZW5XaW5kb3c+
IHdpbmRvdyA9IGFkb3B0TlMoW1tPZmZzY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoU2l6ZTpD
R1NpemVNYWtlKDgwMCwgNjAwKV0pOworCisgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1
YnZpZXc6YmVmb3JlVmlldy5nZXQoKV07CisgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1
YnZpZXc6d2ViVmlldy5nZXQoKV07CisgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZp
ZXc6YWZ0ZXJWaWV3LmdldCgpXTsKKworICAgIFtiZWZvcmVWaWV3IHNldE5leHRLZXlWaWV3Ondl
YlZpZXcuZ2V0KCldOworICAgIFt3ZWJWaWV3IHNldE5leHRLZXlWaWV3OmFmdGVyVmlldy5nZXQo
KV07CisgICAgW2FmdGVyVmlldyBzZXROZXh0S2V5VmlldzpiZWZvcmVWaWV3LmdldCgpXTsKKwor
ICAgIGF1dG8gc2ltdWxhdGVUYWJLZXlQcmVzcyA9IF4oVGFiRGlyZWN0aW9uIGRpcmVjdGlvbikg
eworICAgICAgICBOU1N0cmluZyAqY2hhcmFjdGVyczsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQg
a2V5Q29kZSA9IGtWS19UYWI7CisgICAgICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIGZsYWdzID0g
MDsKKworICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgICAgICBjYXNlIFRhYkRpcmVj
dGlvbjo6Rm9yd2FyZDoKKyAgICAgICAgICAgIGNoYXJhY3RlcnMgPSBAIlx0IjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFRhYkRpcmVjdGlvbjo6QmFja3dhcmQ6CisgICAgICAg
ICAgICBjaGFyYWN0ZXJzID0gQCJceDAwMTkiOworICAgICAgICAgICAgZmxhZ3MgPSBOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUtleURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczpmbGFncyB0
aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRv
d051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGNoYXJh
Y3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBp
c0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXTsKKworICAgICAgICBbTlNBcHAgX3NldEN1cnJl
bnRFdmVudDpldmVudF07CisgICAgICAgIFtbd2luZG93IGZpcnN0UmVzcG9uZGVyXSBrZXlEb3du
OmV2ZW50XTsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKworICAgICAg
ICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBsb2Nh
dGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOmZsYWdzIHRpbWVzdGFtcDpHZXRD
dXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250
ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gY2hhcmFjdGVyczpjaGFyYWN0
ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBr
ZXlDb2RlOmtleUNvZGVdOworCisgICAgICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50OmV2ZW50
XTsKKyAgICAgICAgW1t3aW5kb3cgZmlyc3RSZXNwb25kZXJdIGtleVVwOmV2ZW50XTsKKyAgICAg
ICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKworICAgICAgICAvLyBCb3VuY2UgdGhy
b3VnaCBKYXZhU2NyaXB0IHNvIHRoYXQgYXN5bmNocm9ub3VzCisgICAgICAgIC8vIHdlYiBjb250
ZW50IGZvY3VzIGNoYW5nZXMgaGF2ZSBkZWZpbml0ZWx5IHRha2VuIGVmZmVjdC4KKyAgICAgICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIiJdOworICAgIH07CisKKyAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J29uZSc+
PGlucHV0IGlkPSd0d28nPiJdOworCisgICAgLy8gRm9jdXMgdGhlIGZpcnN0IHZpZXcuCisgICAg
W3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6YmVmb3JlVmlldy5nZXQoKV07CisgICAgRVhQRUNU
X0VRKFt3aW5kb3cgZmlyc3RSZXNwb25kZXJdLCBiZWZvcmVWaWV3LmdldCgpKTsKKworICAgIC8v
IFRhYiBpbnRvIHRoZSB3ZWIgdmlldywgd2hpY2ggd2lsbCBmb2N1cyB0aGUgZmlyc3QgaW5wdXQu
CisgICAgc2ltdWxhdGVUYWJLZXlQcmVzcyhUYWJEaXJlY3Rpb246OkZvcndhcmQpOworICAgIEVY
UEVDVF9FUShbd2luZG93IGZpcnN0UmVzcG9uZGVyXSwgd2ViVmlldy5nZXQoKSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKCJvbmUiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCJdKTsKKworICAgIC8vIFRhYiBmcm9tIHRoZSBm
aXJzdCBpbnB1dCB0byB0aGUgc2Vjb25kIGlucHV0LgorICAgIHNpbXVsYXRlVGFiS2V5UHJlc3Mo
VGFiRGlyZWN0aW9uOjpGb3J3YXJkKTsKKyAgICBFWFBFQ1RfRVEoW3dpbmRvdyBmaXJzdFJlc3Bv
bmRlcl0sIHdlYlZpZXcuZ2V0KCkpOworICAgIEVYUEVDVF9XS19TVFJFUSgidHdvIiwgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
aWQiXSk7CisKKyAgICAvLyBUYWIgb3V0IG9mIHRoZSB3ZWIgdmlldy4KKyAgICBzaW11bGF0ZVRh
YktleVByZXNzKFRhYkRpcmVjdGlvbjo6Rm9yd2FyZCk7CisgICAgRVhQRUNUX0VRKFt3aW5kb3cg
Zmlyc3RSZXNwb25kZXJdLCBhZnRlclZpZXcuZ2V0KCkpOworCisgICAgLy8gUmV2ZXJzZS10YWIg
YmFjayBpbnRvIHRoZSB3ZWIgdmlldy4KKyAgICBzaW11bGF0ZVRhYktleVByZXNzKFRhYkRpcmVj
dGlvbjo6QmFja3dhcmQpOworICAgIEVYUEVDVF9FUShbd2luZG93IGZpcnN0UmVzcG9uZGVyXSwg
d2ViVmlldy5nZXQoKSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ0d28iLCBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCJdKTsK
KworICAgIC8vIFJldmVyc2UtdGFiIGZyb20gdGhlIHNlY29uZCBpbnB1dCB0byB0aGUgZmlyc3Qg
aW5wdXQuCisgICAgc2ltdWxhdGVUYWJLZXlQcmVzcyhUYWJEaXJlY3Rpb246OkJhY2t3YXJkKTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoIm9uZSIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIl0pOworCisgICAgLy8gUmV2ZXJz
ZS10YWIgYmFjayBvdXQgb2YgdGhlIHdlYiB2aWV3IHRvIHRoZSBmaXJzdCB2aWV3LgorICAgIHNp
bXVsYXRlVGFiS2V5UHJlc3MoVGFiRGlyZWN0aW9uOjpCYWNrd2FyZCk7CisgICAgRVhQRUNUX0VR
KFt3aW5kb3cgZmlyc3RSZXNwb25kZXJdLCBiZWZvcmVWaWV3LmdldCgpKTsKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5XaW5kb3cuaCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL09mZnNjcmVlbldpbmRvdy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0
ZWZlMDJiNWIyOGYzMDZlZDZiYmMyOTFiNjMwMmRlNmUxYWQwZWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5XaW5kb3cuaApAQCAtMCwwICsxLDQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNp
bXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworQGludGVyZmFjZSBPZmZzY3JlZW5XaW5kb3cgOiBO
U1dpbmRvdworCistIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aENvbnRlbnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNr
OihOU1dpbmRvd1N0eWxlTWFzaylzdHlsZSBiYWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYmFj
a2luZ1N0b3JlVHlwZSBkZWZlcjooQk9PTClmbGFnIE5TX1VOQVZBSUxBQkxFOworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoQ29udGVudFJlY3Q6KE5TUmVjdCljb250ZW50UmVjdCBzdHlsZU1hc2s6
KE5TV2luZG93U3R5bGVNYXNrKXN0eWxlIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlwZSliYWNr
aW5nU3RvcmVUeXBlIGRlZmVyOihCT09MKWZsYWcgc2NyZWVuOihOU1NjcmVlbiAqKXNjcmVlbiBO
U19VTkFWQUlMQUJMRTsKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU2l6ZTooQ0dTaXplKXNp
emU7CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9PZmZzY3JlZW5XaW5kb3cubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5X
aW5kb3cubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ExMDBmNzVlMWVkZGIyODBlOWM2YzYwZWIwNDA5OWE1NWRm
NjYwMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL09mZnNjcmVl
bldpbmRvdy5tbQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJPZmZzY3JlZW5XaW5kb3cuaCIKKworQGltcGxlbWVudGF0aW9uIE9mZnNj
cmVlbldpbmRvdworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTaXplOihDR1NpemUpc2l6ZQor
eworICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoLCBzaXplLmhl
aWdodCk7CisgICAgTlNSZWN0IHdpbmRvd1JlY3QgPSBOU09mZnNldFJlY3QocmVjdCwgLTEwMDAw
LCBbKE5TU2NyZWVuICopW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBdIGZyYW1l
XS5zaXplLmhlaWdodCAtIHJlY3Quc2l6ZS5oZWlnaHQgKyAxMDAwMCk7CisgICAgc2VsZiA9IFtz
dXBlciBpbml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5
bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVT
XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBzZWxmLmNvbG9y
U3BhY2UgPSBbW05TU2NyZWVuIG1haW5TY3JlZW5dIGNvbG9yU3BhY2VdOworICAgIFtzZWxmIG9y
ZGVyQmFjazpuaWxdOworICAgIHNlbGYuYXV0b2Rpc3BsYXkgPSBOTzsKKyAgICBzZWxmLnJlbGVh
c2VkV2hlbkNsb3NlZCA9IE5POworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKEJPT0wpaXNL
ZXlXaW5kb3cKK3sKKyAgICByZXR1cm4gWUVTOworfQorCistIChCT09MKWlzVmlzaWJsZQorewor
ICAgIHJldHVybiBZRVM7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Bs
YXRmb3JtV2ViVmlld01hYy5tbQppbmRleCBjYjE4MjZkYzY5YjdiYTg1MGM4MGRmN2E1YTkxOGRm
ODgwM2EwNGY1Li40MDMzOWRlN2FmMmViN2VhOWFmNjRhNTZjMjBiZmEyZWY0MTJiMGRiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBAIC0yNiwy
NSArMjYsMTIgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3
LmgiCiAKKyNpbXBvcnQgIk9mZnNjcmVlbldpbmRvdy5oIgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJv
bi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tW
aWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKLUBpbnRlcmZhY2UgQWN0aXZlT2Zmc2NyZWVuV2luZG93IDogTlNXaW5kb3cK
LUBlbmQKLQotQGltcGxlbWVudGF0aW9uIEFjdGl2ZU9mZnNjcmVlbldpbmRvdwotLSAoQk9PTClp
c0tleVdpbmRvdwotewotICAgIHJldHVybiBZRVM7Ci19Ci0tIChCT09MKWlzVmlzaWJsZQotewot
ICAgIHJldHVybiBZRVM7Ci19Ci1AZW5kCi0KIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAog
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBj
b25maWd1cmF0aW9uLCBDbGFzcyB3a1ZpZXdTdWJjbGFzcykKQEAgLTUzLDEzICs0MCw4IEBAIHZv
aWQgUGxhdGZvcm1XZWJWaWV3Ojppbml0aWFsaXplKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgQ2xhc3Mgd2tWCiAgICAgbV92aWV3ID0gW1t3a1ZpZXdTdWJjbGFzcyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlvbl07CiAg
ICAgW21fdmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOk5PXTsKIAotICAg
IE5TUmVjdCB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgWyhOU1NjcmVl
biAqKVtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWln
aHQgLSByZWN0LnNpemUuaGVpZ2h0ICsgMTAwMDApOwotICAgIG1fd2luZG93ID0gW1tBY3RpdmVP
ZmZzY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHls
ZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVC
dWZmZXJlZCBkZWZlcjpZRVNdOwotICAgIFttX3dpbmRvdyBzZXRDb2xvclNwYWNlOltbTlNTY3Jl
ZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV1dOworICAgIG1fd2luZG93ID0gW1tPZmZzY3JlZW5X
aW5kb3cgYWxsb2NdIGluaXRXaXRoU2l6ZTpOU1NpemVUb0NHU2l6ZShyZWN0LnNpemUpXTsKICAg
ICBbW21fd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3Om1fdmlld107Ci0gICAgW21fd2lu
ZG93IG9yZGVyQmFjazpuaWxdOwotICAgIFttX3dpbmRvdyBzZXRBdXRvZGlzcGxheTpOT107Ci0g
ICAgW21fd2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CiB9CiAKIFBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlv
bikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359193</attachid>
            <date>2019-01-15 13:03:58 -0800</date>
            <delta_ts>2019-01-15 14:53:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161448-20190115130358.patch</filename>
            <type>text/plain</type>
            <size>36255</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCA3ODc3Mzkw
M2ZiNzllNzU0NWU1YjE4NWFjNGFhOGI4YzZlZjZhNDAxLi5mZmFmNGY0YWRlMTVkZGVmMWRkNmZl
OGJlZWY0NTI5MjE4YzNkOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBDYW5ub3QgdGFiIG91dCBvZiBXS1dlYlZpZXcgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTQ0OAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjgxMDAwODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYWwvc3BpL21hYy9OU1ZpZXdTUEkuaDoKKyAgICAgICAgKiBwYWwvc3Bp
L21hYy9OU1dpbmRvd1NQSS5oOgorICAgICAgICBNb3ZlIHNvbWUgU1BJIGRlY2xhcmF0aW9ucyBp
biBoZXJlIGZyb20gV2ViS2l0TGVnYWN5LgorCiAyMDE5LTAxLTE0ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjM5OTAxLCByMjM5OTA5LCByMjM5OTEwLCByMjM5OTEyLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4MzA0YTNm
NTUyNThkMjhkOTY2NTJhYzA3M2ZiMTFiYzgyMzVhZWFlLi5kYWFjZmIyZTU3Y2M0OTBkMGQ2NTNl
ODVkNmQyMWM2NjA1ZWE3MzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTAxLTE0
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENhbm5v
dCB0YWIgb3V0IG9mIFdLV2ViVmlldyBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDQ4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
ODEwMDA4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnRha2VGb2N1cyk6CisgICAgICAgIElmIHRoZSBVSURlbGVnYXRlIGRvZXNuJ3QgaW1w
bGVtZW50IHRha2VGb2N1cywgcHJvdmlkZSBhIHNpbXBsZSBkZWZhdWx0CisgICAgICAgIGltcGxl
bWVudGF0aW9uIHRoYXQganVzdCB1c2VzIEFwcEtpdCdzIGtleSB2aWV3IGxvb3AgdG8gbW92ZSB0
aGUgZm9jdXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6OlVJQ2xpZW50Ojp0YWtlRm9jdXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6
dGFrZUZvY3VzKToKKyAgICAgICAgTWFrZSBBUEk6OlVJQ2xpZW50J3MgdGFrZUZvY3VzIHJldHVy
biBhIGJvb2wgaW5kaWNhdGluZyB3aGV0aGVyIHRoZQorICAgICAgICBjbGllbnQgaW1wbGVtZW50
cyBpdCBvciBub3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6dGFrZUZvY3VzKToKKyAgICAgICAgUGx1bWIgdGFrZUZvY3VzIHRvIFdlYlZpZXdJbXBs
LgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dGFrZUZvY3VzKToKKyAgICAgICAgQm9ycm93IHRoZSByZWxldmFudCBwb3J0aW9uIG9m
IFdlYktpdExlZ2FjeSdzIGltcGxlbWVudGF0aW9uIG9mIHRha2VGb2N1cywKKyAgICAgICAgc2hp
ZnRpbmcgZm9jdXMgdG8gdGhlIG5leHQvcHJldmlvdXMga2V5IHZpZXcgaW4gdGhlIHdpbmRvdy4K
KwogMjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggYSBzdHlsZSBtaXN0YWtlIGluIFBhZ2VDbGllbnRJbXBsTWFjCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDFlMGQzMTI4MjkyNjg5OTliM2FhNWYyY2IxZWY2NDRh
YWNhNmFiMC4uOGNmZTQ5NjI5NmQwYTIzZGRhMzU4MjU0NzhmYTczNWFlZDBiM2UyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAxLTE0ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIENhbm5vdCB0YWIg
b3V0IG9mIFdLV2ViVmlldyBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDQ4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODEwMDA4
NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgIE1ha2UgdXNlIG9mIFNQSSBoZWFkZXJzLgorCiAyMDE5LTAxLTE0ICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjM5OTAxLCByMjM5OTA5LCByMjM5OTEwLCByMjM5OTEyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TVmlld1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL05TVmlld1NQSS5oCmluZGV4IDllZWRiNzNjOTIz
NDliYmU1ZDhjZDE2OWJjMDEyODQxNmNhZjJmYmIuLmQ3MWZmNmJkZTgyNzlkMDBjZDM0YTJkY2Iw
YjdiZTcwNjFiN2EyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21h
Yy9OU1ZpZXdTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNWaWV3
U1BJLmgKQEAgLTI4LDYgKzI4LDkgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29y
ZVNQSS5oPgogCiBAaW50ZXJmYWNlIE5TVmlldyAoKSA8Q0FMYXllckRlbGVnYXRlPgorCistIChO
U1ZpZXcgKilfZmluZExhc3RWaWV3SW5LZXlWaWV3TG9vcDsKKwogQGVuZAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFj
L05TV2luZG93U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dT
UEkuaAppbmRleCAwYmIyYTk5OGY0N2NlOGU4N2ZiNTVhZjc3OGM2MjY2ZGQ2MTAzNmZmLi4wOGFm
OTVhMDQ0YWQ2OTkwNDIwNjIxN2E0YzRhNzUwMDMwOWE0YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaApAQCAtMzcsNiArMzcsNyBAQAogCiBAaW50
ZXJmYWNlIE5TV2luZG93ICgpCiAKKy0gKGlkKV9vbGRGaXJzdFJlc3BvbmRlckJlZm9yZUJlY29t
aW5nOwogLSAoaWQpX25ld0ZpcnN0UmVzcG9uZGVyQWZ0ZXJSZXNpZ25pbmc7CiAtICh2b2lkKV9z
ZXRDdXJzb3JGb3JNb3VzZUxvY2F0aW9uOihOU1BvaW50KXBvaW50OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDQzZmY3NjNiOTA0OGNjNDBhOTY3ZDk0
NTZiYmUwM2FjYmI5NTAyN2MuLjA4OTQ4ZTc3NGY5MTcwNmNmMWEyMDEzOGFmOTBmZGZmYjhlNDZj
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC04MSw3
ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBib29sKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY2xvc2UoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCB0YWtlRm9jdXMoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgdGFrZUZvY3VzKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV0tG
b2N1c0RpcmVjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMo
V2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cyhXZWJL
aXQ6OldlYlBhZ2VQcm94eSopIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAppbmRleCBkNGVlOGNjMGI1ZmQ5YTg1MzU2MmRiZTAwZDU3MzEzNzc4OGMxZmE4Li42
YjQwYjlmMzcwNmQ0ZjM3ODUzYjM5ZGQyNTQ2MGE3NjRmMGJiYzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE1NTMsMTIgKzE1NTMsMTMgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xp
ZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmNsb3NlKHRvQVBJKHBhZ2Up
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCB0
YWtlRm9jdXMoV2ViUGFnZVByb3h5KiBwYWdlLCBXS0ZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikg
ZmluYWwKKyAgICAgICAgYm9vbCB0YWtlRm9jdXMoV2ViUGFnZVByb3h5KiBwYWdlLCBXS0ZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFt
X2NsaWVudC50YWtlRm9jdXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgbV9jbGllbnQudGFrZUZvY3VzKHRvQVBJ
KHBhZ2UpLCBkaXJlY3Rpb24sIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZm9jdXMoV2ViUGFnZVBy
b3h5KiBwYWdlKSBmaW5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCmluZGV4IDM4ZGQ3ZWNiY2ZiNWYyYTYwZmM4NmM5OGJlOGIwZjMxYTg1NGZmODYuLjZkNjgw
NjlhY2I2NDQwMDkxZTA4ZjFhYTllYWJhMTIwMGNmNTE2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQ
cm94eSosIEFQSTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBXVEY6OlN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBj
dXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50T3JpZ2luVXNhZ2UsIHVuc2ln
bmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIHVuc2lnbmVkIGxvbmcgbG9uZyBleHBlY3RlZFVz
YWdlLCBGdW5jdGlvbjx2b2lkKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIGZpbmFsOwogICAgICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQsIEZ1bmN0aW9uPHZvaWQo
dW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgICAg
IHZvaWQgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlKFdlYlBh
Z2VQcm94eSYsIEFQSTo6T2JqZWN0KikgZmluYWw7Ci0gICAgICAgIHZvaWQgdGFrZUZvY3VzKFdl
YlBhZ2VQcm94eSosIFdLRm9jdXNEaXJlY3Rpb24pIGZpbmFsOworICAgICAgICBib29sIHRha2VG
b2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgICAgIHZvaWQgc2hvd1BhZ2UoV2ViUGFnZVByb3h5KikgZmluYWw7CiAgICAg
ICAgIHZvaWQgZm9jdXMoV2ViUGFnZVByb3h5KikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBjMTY4NTNmYTRkYjFjZTQ5MjQwMmFmY2Vl
ZGE1MTBmYjYwY2M2MmVlLi5kYWVjYWI0ZWM4NTE5MmFjZGNmNWJkMmJiZjAwMGM0Y2YwODNiNTA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTQ2
NiwxNiArNDY2LDE3IEBAIHN0YXRpYyBpbmxpbmUgX1dLRm9jdXNEaXJlY3Rpb24gdG9XS0ZvY3Vz
RGlyZWN0aW9uKFdLRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgIHJldHVybiBfV0tGb2N1
c0RpcmVjdGlvbkZvcndhcmQ7CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnRha2VG
b2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK2Jvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnRha2VGb2N1cyhXZWJQYWdlUHJveHkqLCBXS0ZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbikKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3VGFrZUZvY3VzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAKICAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0
KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCiAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dl
YlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyB0YWtlRm9jdXM6dG9XS0ZvY3VzRGlyZWN0aW9u
KGRpcmVjdGlvbildOworICAgIHJldHVybiB0cnVlOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggZjc1N2Q4
NzI0ZjI2N2ZkOTFhMDAwMjQ4ZjQ4ZDQyOTFiMzIzNTE3Zi4uYzY4ZGJjYzdjZWFiOTEyNGZiOWVl
OTVhNTJkNjhkZWU4ODNhYzc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV0tEcmFnRGVzdGluYXRp
b25BY3Rpb24uaCIKICNpbmNsdWRlICJXS0xheW91dE1vZGUuaCIKICNpbmNsdWRlICJfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4
dEluZGljYXRvcldpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbi5oPgpAQCAtNjAzLDYgKzYwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVmZmVj
dGl2ZUFwcGVhcmFuY2VEaWRDaGFuZ2UoKTsKICAgICBib29sIGVmZmVjdGl2ZUFwcGVhcmFuY2VJ
c0RhcmsoKTsKIAorICAgIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsK
KwogcHJpdmF0ZToKICNpZiBIQVZFKFRPVUNIX0JBUikKICAgICB2b2lkIHNldFVwVGV4dFRvdWNo
QmFyKE5TVG91Y2hCYXIgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCmluZGV4IGRhMmUzMmYyNTQ4ZjFkNTZhNjBiNjU2MGFkYmVmNTY5Mzc2NjYxZDUu
LmQ1MWVmNWQ5ZmUxNzJjYzA2MTZjYTA1ZmRkM2YxOWE2MzZkODJmOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMTIsNiArMTEyLDcgQEAK
ICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaD4KICNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TU3BlbGxDaGVja2VyU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1RleHRG
aW5kZXJTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNXaW5kb3dTUEkuaD4KICNpbXBvcnQgPHN5cy9zdGF0Lmg+CiAjaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTE1NzAsNiArMTU3MSwyMCBAQCBib29sIFdlYlZp
ZXdJbXBsOjpyZXNpZ25GaXJzdFJlc3BvbmRlcigpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Zv
aWQgV2ViVmlld0ltcGw6OnRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24pCit7CisgICAgTlNWaWV3ICp3ZWJWaWV3ID0gbV92aWV3LmdldEF1dG9yZWxlYXNlZCgpOwor
CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkZvcndhcmQpIHsKKyAgICAgICAg
Ly8gU2luY2Ugd2UncmUgdHJ5aW5nIHRvIG1vdmUgZm9jdXMgb3V0IG9mIG1fd2ViVmlldywgYW5k
IGJlY2F1c2UKKyAgICAgICAgLy8gbV93ZWJWaWV3IG1heSBjb250YWluIHN1YnZpZXdzIHdpdGhp
biBpdCwgd2UgYXNrIGl0IGZvciB0aGUgbmV4dCBrZXkKKyAgICAgICAgLy8gdmlldyBvZiB0aGUg
bGFzdCB2aWV3IGluIGl0cyBrZXkgdmlldyBsb29wLiBUaGlzIG1ha2VzIG1fd2ViVmlldworICAg
ICAgICAvLyBiZWhhdmUgYXMgaWYgaXQgaGFkIG5vIHN1YnZpZXdzLCB3aGljaCBpcyB0aGUgYmVo
YXZpb3Igd2Ugd2FudC4KKyAgICAgICAgW3dlYlZpZXcud2luZG93IHNlbGVjdEtleVZpZXdGb2xs
b3dpbmdWaWV3Olt3ZWJWaWV3IF9maW5kTGFzdFZpZXdJbktleVZpZXdMb29wXV07CisgICAgfSBl
bHNlCisgICAgICAgIFt3ZWJWaWV3LndpbmRvdyBzZWxlY3RLZXlWaWV3UHJlY2VkaW5nVmlldzp3
ZWJWaWV3XTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2hvd1NhZmVCcm93c2luZ1dhcm5pbmco
Y29uc3QgU2FmZUJyb3dzaW5nV2FybmluZyYgd2FybmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWYXJpYW50PENvbnRpbnVlVW5zYWZlTG9hZCwgVVJMPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBpZiAoIW1fdmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApp
bmRleCAxNDk3MTRhYjFkMjI2NWE2ODM0ZDU3ZWY0N2IxMTZlYTRlMjllMzUxLi5hYWFiY2MyODhj
NDc4ODkyMDA3NTMxZWZlNDBhOTIwMWU5ZWExZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHku
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgpAQCAtMzA5LDYgKzMxMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250
ZXh0JikgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0Rp
cmVjdGlvbikgeyB9CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHBsdWdp
bkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1
dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
YzhhYjcwMzMzYjQwMzlhODc3OWM0Y2EzZjMxZTE5MDc1NjNhMzM2OS4uMGM4YTY4NzZmMjVhYWY0
YTAwMGM1YzIwYjIzZjk0MzE4YzVkZDE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC01ODgxLDcgKzU4ODEsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dEZvY3VzKGJvb2wgZm9jdXNlZCkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnRha2VGb2N1cyh1aW50
MzJfdCBkaXJlY3Rpb24pCiB7Ci0gICAgbV91aUNsaWVudC0+dGFrZUZvY3VzKHRoaXMsIChzdGF0
aWNfY2FzdDxGb2N1c0RpcmVjdGlvbj4oZGlyZWN0aW9uKSA9PSBGb2N1c0RpcmVjdGlvbkZvcndh
cmQpID8ga1dLRm9jdXNEaXJlY3Rpb25Gb3J3YXJkIDoga1dLRm9jdXNEaXJlY3Rpb25CYWNrd2Fy
ZCk7CisgICAgaWYgKG1fdWlDbGllbnQtPnRha2VGb2N1cyh0aGlzLCAoc3RhdGljX2Nhc3Q8Rm9j
dXNEaXJlY3Rpb24+KGRpcmVjdGlvbikgPT0gRm9jdXNEaXJlY3Rpb25Gb3J3YXJkKSA/IGtXS0Zv
Y3VzRGlyZWN0aW9uRm9yd2FyZCA6IGtXS0ZvY3VzRGlyZWN0aW9uQmFja3dhcmQpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBwYWdlQ2xpZW50KCkudGFrZUZvY3VzKHN0YXRpY19jYXN0PEZvY3Vz
RGlyZWN0aW9uPihkaXJlY3Rpb24pKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldFRvb2xU
aXAoY29uc3QgU3RyaW5nJiB0b29sVGlwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA3Y2ZkYzU3Nzc3OTk5ZjQ0YzRjYmI0M2NkMTA2
ZTNiZmQ5YzNkYTVjLi4xMmRjMjVhYmNjMzNmNGRlNWU2YzYzNjBlYmQ4YzMyZDA1YTRhZTc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApA
QCAtMjYyLDYgKzI2Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKSBvdmVycmlkZTsKICAgICBib29sIHdpbmRvd0lzRnJvbnRXaW5kb3dVbmRlck1vdXNl
KGNvbnN0IE5hdGl2ZVdlYk1vdXNlRXZlbnQmKSBvdmVycmlkZTsKIAorICAgIHZvaWQgdGFrZUZv
Y3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKSBvdmVycmlkZTsKKwogICAgIE5TVmlldyAqbV92
aWV3OwogICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IG1faW1wbDsKICNpZiBVU0UoQVVUT0NPUlJF
Q1RJT05fUEFORUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMubW0KaW5kZXggYTBjZWZkZDczZTllZGMxOWNiYTRlYjU4NzZmYWRjOTM3MDc2ZmU1
My4uNWQ3YzIzOGVmZDY5ZjYxNWFiZjVhN2Q1NTVkNDhkMjNjNDc2ZWU1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpAQCAtOTU3LDYg
Kzk1NywxMSBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjplZmZlY3RpdmVBcHBlYXJhbmNlSXNEYXJr
KCkgY29uc3QKICAgICByZXR1cm4gbV9pbXBsLT5lZmZlY3RpdmVBcHBlYXJhbmNlSXNEYXJrKCk7
CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24pCit7CisgICAgbV9pbXBsLT50YWtlRm9jdXMoZGlyZWN0aW9uKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KaW5kZXggNGM1ZDE4ZGMwMmNjZmYyYjdlYWI5ODA1MDkyMWE2N2E5OGY2OWNj
NS4uM2UwYTVjMjcyNmY1ODE2YmU5MGZmZWFjMTI3OWRhZWJlNjQ2MjM1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbQpAQCAtODUsNiArODUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZXJpYWxpemVkQ3J5
cHRvS2V5V3JhcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2luZG93RmVhdHVyZXMuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL05TVmlld1NQSS5oPgog
I2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIu
aD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KQEAgLTEzNSwxMCArMTM2LDYgQEAgLSAoTlNDdXJz
b3IgKilfY3Vyc29yUmVjdEN1cnNvcjsKIEBlbmQKICNlbmRpZgogCi1AaW50ZXJmYWNlIE5TVmll
dyAoV2ViTlNWaWV3RGV0YWlscykKLS0gKE5TVmlldyAqKV9maW5kTGFzdFZpZXdJbktleVZpZXdM
b29wOwotQGVuZAotCiAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBTUEkuCiBAaW50ZXJm
YWNlIE5TVmlldyAoV2ViT2xkV2ViS2l0UGx1Z0luRGV0YWlscykKIC0gKHZvaWQpc2V0SXNTZWxl
Y3RlZDooQk9PTClpc1NlbGVjdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IGFiODM4NDUzYjMyNDY0ZTUxZTEyYTAyNTM2MGZlYjdiMjM4NTljZmQu
LmE1ZTQxMTg5NGFmYTk4ZTQxMmI2MjczZWRlNmYwMWI3MTNjMWQwMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTM3NSw3ICszNzUsNiBAQCAtICh2
b2lkKV93aW5kb3dDaGFuZ2VkS2V5U3RhdGU7CiBAZW5kCiAKIEBpbnRlcmZhY2UgTlNXaW5kb3cg
KFdlYk5TV2luZG93RGV0YWlscykKLS0gKGlkKV9vbGRGaXJzdFJlc3BvbmRlckJlZm9yZUJlY29t
aW5nOwogLSAodm9pZClfZW5hYmxlU2NyZWVuVXBkYXRlc0lmTmVlZGVkOwogLSAoQk9PTClfd3Jh
cHNDYXJib25XaW5kb3c7CiAtIChCT09MKV9oYXNLZXlBcHBlYXJhbmNlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk3YjI3MjA1YzM5M2MxMmZm
ZGIxNjM2NzRhMDUyYjU3MDFjNjU5ZjkuLmY4ZWNjOGI0ZmY5ZTY0ODUyMDU1NTVjOTE0YTU5YzZk
NGMzMDg2MTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMiBAQAorMjAxOS0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KKworICAgICAgICBDYW5ub3QgdGFiIG91dCBvZiBXS1dlYlZpZXcgb24g
bWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MTQ0OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgxMDAwODU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCB0aGF0IHRhYmJpbmcg
aW50byBhbmQgb3V0IG9mIFdLV2ViVmlldyB3b3JrcyBjb3JyZWN0bHkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbW1hbmRCYWNrRm9yd2Fy
ZC5tbToKKyAgICAgICAgKFdlYktpdDJfQ29tbWFuZEJhY2tGb3J3YXJkVGVzdDo6U2V0VXApOgor
ICAgICAgICAoLVtDb21tYW5kQmFja0ZvcndhcmRPZmZzY3JlZW5XaW5kb3cgaXNLZXlXaW5kb3dd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bQ29tbWFuZEJhY2tGb3J3YXJkT2Zmc2NyZWVuV2luZG93
IGlzVmlzaWJsZV0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVGFiT3V0T2ZXZWJWaWV3Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bRm9jdXNhYmxl
VmlldyBjYW5CZWNvbWVLZXlWaWV3XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5XaW5kb3cuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9tYWMvT2Zmc2NyZWVuV2luZG93Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bT2Zmc2Ny
ZWVuV2luZG93IGluaXRXaXRoU2l6ZTpdKToKKyAgICAgICAgKC1bT2Zmc2NyZWVuV2luZG93IGlz
S2V5V2luZG93XSk6CisgICAgICAgICgtW09mZnNjcmVlbldpbmRvdyBpc1Zpc2libGVdKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUpOgorICAgICAgICAo
LVtBY3RpdmVPZmZzY3JlZW5XaW5kb3cgaXNLZXlXaW5kb3ddKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bQWN0aXZlT2Zmc2NyZWVuV2luZG93IGlzVmlzaWJsZV0pOiBEZWxldGVkLgorICAgICAgICBG
YWN0b3IgQWN0aXZlT2Zmc2NyZWVuV2luZG93IG91dCBpbnRvIE9mZnNjcmVlbldpbmRvdyBhbmQg
c2hhcmUgaXQuCisKIDIwMTktMDEtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBhIHRlc3QgaW1wbGVtZW50YXRpb24gZmlsZSB0aGF0IGdv
dCBtaXNwbGFjZWQgaW4gdGhlIFhjb2RlIHByb2plY3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggY2NkZDhlZWQzOTI1MDZiMThkODlmMTJmNDE2YmYwMDNhMTVlZGJlMC4uN2ExMDcyYWNkYWEy
YzJhYTUwN2NkYjJmYzI5NzA4MTA4NDVjM2YwYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTkwLDYgKzkwLDggQEAKIAkJMkQyMUZFNTkxRjA0NjQyOTAwQjU4RTdEIC8qIFdLUERGVmlld1N0
YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyMUZFNTgxRjA0NjQyODAwQjU4RTdEIC8qIFdLUERG
Vmlld1N0YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1tICovOyB9OwogCQkyRDRDRjhC
RDFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8q
IFdLVGh1bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ1MUEwQzcxQzhCRjAwQzAwNzY1QzQ1IC8q
IERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxW
aWRlb0VsZW1lbnRXcmFwcGVyLm1tICovOyB9OworCQkyRDcwMDU5NjIxRURBMEM2MDAzNDYzQ0Ig
LyogVGFiT3V0T2ZXZWJWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2M0NCIC8qIFRhYk91dE9mV2ViVmlldy5t
bSAqLzsgfTsKKwkJMkQ3MDA1OTkyMUVEQTREMDAwMzQ2M0NCIC8qIE9mZnNjcmVlbldpbmRvdy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENzAwNTk3
MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cubW0gKi87IH07CiAJCTJEODM4QjFG
MUVFRjNBNUMwMDlCOTgwRSAvKiBXS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDgzOEIxRTFFRUYzQTVC
MDA5Qjk4MEUgLyogV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tICovOyB9OwogCQkyREFE
RjI2MzIxQ0I4RjMyMDAzRDNFM0EgLyogR2V0UmVzb3VyY2VEYXRhLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBREYyNjIyMUNCOEYzMjAwM0QzRTNB
IC8qIEdldFJlc291cmNlRGF0YS5tbSAqLzsgfTsKIAkJMkRCMDIzMkYxRTRFODcxODAwNzA3MTIz
IC8qIEludGVyYWN0aW9uRGVhZGxvY2tBZnRlckNyYXNoLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRCMDIzMkUxRTRFODcxODAwNzA3MTIzIC8qIElu
dGVyYWN0aW9uRGVhZGxvY2tBZnRlckNyYXNoLm1tICovOyB9OwpAQCAtMTQwMyw2ICsxNDA1LDkg
QEAKIAkJMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFw
cGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTFZp
ZGVvRWxlbWVudFdyYXBwZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENjFF
QzMwMjFCMEI3NUMwMEE3RDFDQiAvKiBQZW5jaWxLaXRUZXN0U1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBlbmNpbEtpdFRlc3RTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ2NDBC
NTQxNzg3NURGRjAwQkZBRjk5IC8qIFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENzAwNTk1MjFFREEwQzYwMDM0NjNDQiAv
KiBUYWJPdXRPZldlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBUYWJPdXRPZldlYlZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
NzAwNTk3MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBPZmZzY3JlZW5XaW5kb3cubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENzAwNTk4MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3Jl
ZW5XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT2Zmc2NyZWVuV2lu
ZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODEwNENCMUJFQzEzRTcwMDIw
REE0NiAvKiBGaW5kSW5QYWdlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRmluZEluUGFnZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ4MzhC
MUUxRUVGM0E1QjAwOUI5ODBFIC8qIFdLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQ29udGVudFZpZXdFZGl0aW5n
QWN0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5QTUzQUUxQjMxRkE4
RDAwNzRENUFBIC8qIFNocmlua1RvRml0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU2hyaW5rVG9GaXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNTU4LDYgKzI1NjMsNyBAQAogCQkJCUNEQzA5MzJEMjFDOTkzNDQwMDMwQzRCMCAvKiBTdG9w
U3VzcGVuZFJlc3VtZUFsbE1lZGlhLm1tICovLAogCQkJCTUxNUJFMTcwMUQ0MjhCRDEwMEREN0M2
OCAvKiBTdG9yZUJsb2JUaGVuRGVsZXRlLm1tICovLAogCQkJCTFDNzM0QjUyMjA3ODhDNDgwMEY0
MzBFQSAvKiBTeXN0ZW1Db2xvcnMubW0gKi8sCisJCQkJMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2M0NC
IC8qIFRhYk91dE9mV2ViVmlldy5tbSAqLywKIAkJCQlGNENENzRDNzIwRkRCNDk2MDBERTM3OTQg
LyogVGVzdFVSTFNjaGVtZUhhbmRsZXIuaCAqLywKIAkJCQlGNENENzRDODIwRkRCNDk2MDBERTM3
OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi8sCiAJCQkJNUNCNDBCNEQxRjRCOThCRTAw
N0RDN0I5IC8qIFVJRGVsZWdhdGUubW0gKi8sCkBAIC0zMzQ4LDYgKzMzNTQsOCBAQAogCQkJCTJF
Nzc2NUNFMTZDNEQ4MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tICovLAogCQkJCUY0NDI4NTFCMjE0
MERGMjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcuaCAqLywKIAkJCQlGNDQyODUxQzIx
NDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tICovLAorCQkJCTJENzAwNTk4
MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cuaCAqLywKKwkJCQkyRDcwMDU5NzIx
RURBNEQwMDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tICovLAogCQkJCUJDMTMxODg0MTE3
MTE0QjYwMEI2OTcyNyAvKiBQbGF0Zm9ybVV0aWxpdGllc01hYy5tbSAqLywKIAkJCQlCQzkwOTU1
QzEyNTU0OEFBMDAwODM3NTYgLyogUGxhdGZvcm1XZWJWaWV3TWFjLm1tICovLAogCQkJCUMwODEy
MjQzMTNGQzE5RUMwMERDMzlBRSAvKiBTeW50aGV0aWNCYWNraW5nU2NhbGVGYWN0b3JXaW5kb3cu
aCAqLywKQEAgLTQxMTUsNiArNDEyMyw3IEBACiAJCQkJQTEwRjA0N0UxRTNBRDI5QzAwQzk1RTE5
IC8qIE5TRmlsZU1hbmFnZXJFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDQyODUxRDIx
NDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzdBMjJBQTcxRENBQTI3MjAwQUZCRkM0IC8qIE9ic2VydmVkUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudHNBZnRlckNyYXNoLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ3MDA1OTkyMUVEQTREMDAw
MzQ2M0NCIC8qIE9mZnNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjI1
MUE0MTFBRjYwMDQ0N0M0QyAvKiBPcGVuQW5kQ2xvc2VXaW5kb3cubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDRUJDQTEyRjFFM0E2NjAxMDBDNzMyOTMgLyogT3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQ
b2xpY3kubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NCNERBOTFDODNBRTczMDBDQzY5MTggLyog
UGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNDIwOSw2ICs0MjE4LDcgQEAKIAkJCQk0
NDMzQTM5NjIwODA0NDE0MDA5MUVENTcgLyogU3luY2hyb25vdXNUaW1lb3V0VGVzdHMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3Q0NFN0VBODFBNDExQTE5MDA0NDdDNEMgLyogU3ludGhldGljQmFj
a2luZ1NjYWxlRmFjdG9yV2luZG93Lm0gaW4gU291cmNlcyAqLywKIAkJCQkxQzczNEI1MzIwNzg4
QzQ4MDBGNDMwRUEgLyogU3lzdGVtQ29sb3JzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ3MDA1
OTYyMUVEQTBDNjAwMzQ2M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RjE2MUE0MTFBRTYwMDQ0N0M0QyAvKiBUZXJtaW5hdGVUd2ljZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0VBOTFBNDExQTFEMDA0NDdDNEMgLyogVGVzdEJyb3dzaW5nQ29u
dGV4dExvYWREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NjEyOENCMjExRDQ3NTEw
MEQ5RkFEQiAvKiBUZXN0RHJhZ2dpbmdJbmZvLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbW1hbmRCYWNrRm9yd2Fy
ZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tG
b3J3YXJkLm1tCmluZGV4IGIzYzVhZjkwN2IyZmI1ZDljOTM1MGRkZTQzN2NjNDI3YzI4OWVlZmMu
LmE0OGM3ODM4ZWIyYjE5YTUwMDc3MTdmYjQ1YjdlMTY3NmFhM2FhMWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tG
b3J3YXJkLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBv
cnQgIk9mZnNjcmVlbldpbmRvdy5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNp
bXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKQEAgLTM2
LDIwICszNyw2IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvbWFj
L0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KIAotQGludGVyZmFjZSBDb21tYW5k
QmFja0ZvcndhcmRPZmZzY3JlZW5XaW5kb3cgOiBOU1dpbmRvdwotQGVuZAotCi1AaW1wbGVtZW50
YXRpb24gQ29tbWFuZEJhY2tGb3J3YXJkT2Zmc2NyZWVuV2luZG93Ci0tIChCT09MKWlzS2V5V2lu
ZG93Ci17Ci0gICAgcmV0dXJuIFlFUzsKLX0KLS0gKEJPT0wpaXNWaXNpYmxlCi17Ci0gICAgcmV0
dXJuIFlFUzsKLX0KLUBlbmQKLQogZW51bSBBcnJvd0RpcmVjdGlvbiB7CiAgICAgTGVmdCwKICAg
ICBSaWdodApAQCAtOTYsMTEgKzgzLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIFNl
dFVwKCkKICAgICB7Ci0gICAgICAgIE5TV2luZG93ICp3aW5kb3cgPSBbW0NvbW1hbmRCYWNrRm9y
d2FyZE9mZnNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0
KDAsIDAsIDEwMCwgMTAwKSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKLSAgICAgICAgW3dpbmRvdyBzZXRD
b2xvclNwYWNlOltbTlNTY3JlZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV1dOwotICAgICAgICBb
d2luZG93IG9yZGVyQmFjazpuaWxdOwotICAgICAgICBbd2luZG93IHNldEF1dG9kaXNwbGF5Ok5P
XTsKLSAgICAgICAgW3dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOworICAgICAgICB3
aW5kb3cgPSBhZG9wdE5TKFtbT2Zmc2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aFNpemU6Q0dT
aXplTWFrZSgxMDAsIDEwMCldKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RhYk91dE9mV2ViVmlldy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGFiT3V0T2ZXZWJWaWV3Lm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBiYzJmOWU3ZWFhNzMwZDVhZmI1MmM3NGFkMTRkZmYxYzJlMjUxN2EKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1RhYk91dE9mV2Vi
Vmlldy5tbQpAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiT2Zm
c2NyZWVuV2luZG93LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAi
VGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgorI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworZW51
bSBjbGFzcyBUYWJEaXJlY3Rpb24gOiB1aW50OF90IHsKKyAgICBGb3J3YXJkLAorICAgIEJhY2t3
YXJkLAorfTsKKworQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uICgpCistICh2b2lkKV9zZXRDdXJy
ZW50RXZlbnQ6KE5TRXZlbnQgKilldmVudDsKK0BlbmQKKworQGludGVyZmFjZSBGb2N1c2FibGVW
aWV3IDogTlNWaWV3CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBGb2N1c2FibGVWaWV3CisKKy0g
KEJPT0wpY2FuQmVjb21lS2V5VmlldworeworICAgIHJldHVybiBZRVM7Cit9CisKK0BlbmQKKwor
VEVTVChXZWJLaXQsIFRhYk91dE9mV2ViVmlldykKK3sKKyAgICBSZXRhaW5QdHI8Rm9jdXNhYmxl
Vmlldz4gYmVmb3JlVmlldyA9IGFkb3B0TlMoW1tGb2N1c2FibGVWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMjAwLCAxMDAsIDEwMCldKTsKKyAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDEwMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKSBhZGRUb1dpbmRvdzpOT10pOworICAgIFJldGFpblB0cjxGb2N1c2FibGVWaWV3PiBhZnRl
clZpZXcgPSBhZG9wdE5TKFtbRm9jdXNhYmxlVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDEwMCwgMTAwKV0pOworICAgIFJldGFpblB0cjxPZmZzY3JlZW5XaW5kb3c+
IHdpbmRvdyA9IGFkb3B0TlMoW1tPZmZzY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoU2l6ZTpD
R1NpemVNYWtlKDgwMCwgNjAwKV0pOworCisgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1
YnZpZXc6YmVmb3JlVmlldy5nZXQoKV07CisgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1
YnZpZXc6d2ViVmlldy5nZXQoKV07CisgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZp
ZXc6YWZ0ZXJWaWV3LmdldCgpXTsKKworICAgIFtiZWZvcmVWaWV3IHNldE5leHRLZXlWaWV3Ondl
YlZpZXcuZ2V0KCldOworICAgIFt3ZWJWaWV3IHNldE5leHRLZXlWaWV3OmFmdGVyVmlldy5nZXQo
KV07CisgICAgW2FmdGVyVmlldyBzZXROZXh0S2V5VmlldzpiZWZvcmVWaWV3LmdldCgpXTsKKwor
ICAgIGF1dG8gc2ltdWxhdGVUYWJLZXlQcmVzcyA9IF4oVGFiRGlyZWN0aW9uIGRpcmVjdGlvbikg
eworICAgICAgICBOU1N0cmluZyAqY2hhcmFjdGVyczsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQg
a2V5Q29kZSA9IGtWS19UYWI7CisgICAgICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIGZsYWdzID0g
MDsKKworICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgICAgICBjYXNlIFRhYkRpcmVj
dGlvbjo6Rm9yd2FyZDoKKyAgICAgICAgICAgIGNoYXJhY3RlcnMgPSBAIlx0IjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFRhYkRpcmVjdGlvbjo6QmFja3dhcmQ6CisgICAgICAg
ICAgICBjaGFyYWN0ZXJzID0gQCJceDAwMTkiOworICAgICAgICAgICAgZmxhZ3MgPSBOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUtleURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczpmbGFncyB0
aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRv
d051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGNoYXJh
Y3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBp
c0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXTsKKworICAgICAgICBbTlNBcHAgX3NldEN1cnJl
bnRFdmVudDpldmVudF07CisgICAgICAgIFtbd2luZG93IGZpcnN0UmVzcG9uZGVyXSBrZXlEb3du
OmV2ZW50XTsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKworICAgICAg
ICBldmVudCA9IFtOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBsb2Nh
dGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOmZsYWdzIHRpbWVzdGFtcDpHZXRD
dXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250
ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gY2hhcmFjdGVyczpjaGFyYWN0
ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBr
ZXlDb2RlOmtleUNvZGVdOworCisgICAgICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50OmV2ZW50
XTsKKyAgICAgICAgW1t3aW5kb3cgZmlyc3RSZXNwb25kZXJdIGtleVVwOmV2ZW50XTsKKyAgICAg
ICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKworICAgICAgICAvLyBCb3VuY2UgdGhy
b3VnaCBKYXZhU2NyaXB0IHNvIHRoYXQgYXN5bmNocm9ub3VzCisgICAgICAgIC8vIHdlYiBjb250
ZW50IGZvY3VzIGNoYW5nZXMgaGF2ZSBkZWZpbml0ZWx5IHRha2VuIGVmZmVjdC4KKyAgICAgICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIiJdOworICAgIH07CisKKyAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aW5wdXQgaWQ9J29uZSc+
PGlucHV0IGlkPSd0d28nPiJdOworCisgICAgLy8gRm9jdXMgdGhlIGZpcnN0IHZpZXcuCisgICAg
W3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6YmVmb3JlVmlldy5nZXQoKV07CisgICAgRVhQRUNU
X0VRKFt3aW5kb3cgZmlyc3RSZXNwb25kZXJdLCBiZWZvcmVWaWV3LmdldCgpKTsKKworICAgIC8v
IFRhYiBpbnRvIHRoZSB3ZWIgdmlldywgd2hpY2ggd2lsbCBmb2N1cyB0aGUgZmlyc3QgaW5wdXQu
CisgICAgc2ltdWxhdGVUYWJLZXlQcmVzcyhUYWJEaXJlY3Rpb246OkZvcndhcmQpOworICAgIEVY
UEVDVF9FUShbd2luZG93IGZpcnN0UmVzcG9uZGVyXSwgd2ViVmlldy5nZXQoKSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKCJvbmUiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCJdKTsKKworICAgIC8vIFRhYiBmcm9tIHRoZSBm
aXJzdCBpbnB1dCB0byB0aGUgc2Vjb25kIGlucHV0LgorICAgIHNpbXVsYXRlVGFiS2V5UHJlc3Mo
VGFiRGlyZWN0aW9uOjpGb3J3YXJkKTsKKyAgICBFWFBFQ1RfRVEoW3dpbmRvdyBmaXJzdFJlc3Bv
bmRlcl0sIHdlYlZpZXcuZ2V0KCkpOworICAgIEVYUEVDVF9XS19TVFJFUSgidHdvIiwgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
aWQiXSk7CisKKyAgICAvLyBUYWIgb3V0IG9mIHRoZSB3ZWIgdmlldy4KKyAgICBzaW11bGF0ZVRh
YktleVByZXNzKFRhYkRpcmVjdGlvbjo6Rm9yd2FyZCk7CisgICAgRVhQRUNUX0VRKFt3aW5kb3cg
Zmlyc3RSZXNwb25kZXJdLCBhZnRlclZpZXcuZ2V0KCkpOworCisgICAgLy8gUmV2ZXJzZS10YWIg
YmFjayBpbnRvIHRoZSB3ZWIgdmlldy4KKyAgICBzaW11bGF0ZVRhYktleVByZXNzKFRhYkRpcmVj
dGlvbjo6QmFja3dhcmQpOworICAgIEVYUEVDVF9FUShbd2luZG93IGZpcnN0UmVzcG9uZGVyXSwg
d2ViVmlldy5nZXQoKSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ0d28iLCBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCJdKTsK
KworICAgIC8vIFJldmVyc2UtdGFiIGZyb20gdGhlIHNlY29uZCBpbnB1dCB0byB0aGUgZmlyc3Qg
aW5wdXQuCisgICAgc2ltdWxhdGVUYWJLZXlQcmVzcyhUYWJEaXJlY3Rpb246OkJhY2t3YXJkKTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoIm9uZSIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIl0pOworCisgICAgLy8gUmV2ZXJz
ZS10YWIgYmFjayBvdXQgb2YgdGhlIHdlYiB2aWV3IHRvIHRoZSBmaXJzdCB2aWV3LgorICAgIHNp
bXVsYXRlVGFiS2V5UHJlc3MoVGFiRGlyZWN0aW9uOjpCYWNrd2FyZCk7CisgICAgRVhQRUNUX0VR
KFt3aW5kb3cgZmlyc3RSZXNwb25kZXJdLCBiZWZvcmVWaWV3LmdldCgpKTsKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5XaW5kb3cuaCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL09mZnNjcmVlbldpbmRvdy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0
ZWZlMDJiNWIyOGYzMDZlZDZiYmMyOTFiNjMwMmRlNmUxYWQwZWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5XaW5kb3cuaApAQCAtMCwwICsxLDQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNp
bXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KKworQGludGVyZmFjZSBPZmZzY3JlZW5XaW5kb3cgOiBO
U1dpbmRvdworCistIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aENvbnRlbnRSZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNr
OihOU1dpbmRvd1N0eWxlTWFzaylzdHlsZSBiYWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYmFj
a2luZ1N0b3JlVHlwZSBkZWZlcjooQk9PTClmbGFnIE5TX1VOQVZBSUxBQkxFOworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoQ29udGVudFJlY3Q6KE5TUmVjdCljb250ZW50UmVjdCBzdHlsZU1hc2s6
KE5TV2luZG93U3R5bGVNYXNrKXN0eWxlIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlwZSliYWNr
aW5nU3RvcmVUeXBlIGRlZmVyOihCT09MKWZsYWcgc2NyZWVuOihOU1NjcmVlbiAqKXNjcmVlbiBO
U19VTkFWQUlMQUJMRTsKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU2l6ZTooQ0dTaXplKXNp
emU7CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9PZmZzY3JlZW5XaW5kb3cubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9PZmZzY3JlZW5X
aW5kb3cubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ExMDBmNzVlMWVkZGIyODBlOWM2YzYwZWIwNDA5OWE1NWRm
NjYwMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL09mZnNjcmVl
bldpbmRvdy5tbQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJPZmZzY3JlZW5XaW5kb3cuaCIKKworQGltcGxlbWVudGF0aW9uIE9mZnNj
cmVlbldpbmRvdworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTaXplOihDR1NpemUpc2l6ZQor
eworICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBzaXplLndpZHRoLCBzaXplLmhl
aWdodCk7CisgICAgTlNSZWN0IHdpbmRvd1JlY3QgPSBOU09mZnNldFJlY3QocmVjdCwgLTEwMDAw
LCBbKE5TU2NyZWVuICopW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBdIGZyYW1l
XS5zaXplLmhlaWdodCAtIHJlY3Quc2l6ZS5oZWlnaHQgKyAxMDAwMCk7CisgICAgc2VsZiA9IFtz
dXBlciBpbml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TV2luZG93U3R5
bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVT
XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBzZWxmLmNvbG9y
U3BhY2UgPSBbW05TU2NyZWVuIG1haW5TY3JlZW5dIGNvbG9yU3BhY2VdOworICAgIFtzZWxmIG9y
ZGVyQmFjazpuaWxdOworICAgIHNlbGYuYXV0b2Rpc3BsYXkgPSBOTzsKKyAgICBzZWxmLnJlbGVh
c2VkV2hlbkNsb3NlZCA9IE5POworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKEJPT0wpaXNL
ZXlXaW5kb3cKK3sKKyAgICByZXR1cm4gWUVTOworfQorCistIChCT09MKWlzVmlzaWJsZQorewor
ICAgIHJldHVybiBZRVM7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Bs
YXRmb3JtV2ViVmlld01hYy5tbQppbmRleCBjYjE4MjZkYzY5YjdiYTg1MGM4MGRmN2E1YTkxOGRm
ODgwM2EwNGY1Li40MDMzOWRlN2FmMmViN2VhOWFmNjRhNTZjMjBiZmEyZWY0MTJiMGRiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBAIC0yNiwy
NSArMjYsMTIgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3
LmgiCiAKKyNpbXBvcnQgIk9mZnNjcmVlbldpbmRvdy5oIgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJv
bi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tW
aWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFy
YXRpb25zLmg+CiAKLUBpbnRlcmZhY2UgQWN0aXZlT2Zmc2NyZWVuV2luZG93IDogTlNXaW5kb3cK
LUBlbmQKLQotQGltcGxlbWVudGF0aW9uIEFjdGl2ZU9mZnNjcmVlbldpbmRvdwotLSAoQk9PTClp
c0tleVdpbmRvdwotewotICAgIHJldHVybiBZRVM7Ci19Ci0tIChCT09MKWlzVmlzaWJsZQotewot
ICAgIHJldHVybiBZRVM7Ci19Ci1AZW5kCi0KIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAog
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmluaXRpYWxpemUoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBj
b25maWd1cmF0aW9uLCBDbGFzcyB3a1ZpZXdTdWJjbGFzcykKQEAgLTUzLDEzICs0MCw4IEBAIHZv
aWQgUGxhdGZvcm1XZWJWaWV3Ojppbml0aWFsaXplKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgQ2xhc3Mgd2tWCiAgICAgbV92aWV3ID0gW1t3a1ZpZXdTdWJjbGFzcyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbmZpZ3VyYXRpb25SZWY6Y29uZmlndXJhdGlvbl07CiAg
ICAgW21fdmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOk5PXTsKIAotICAg
IE5TUmVjdCB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgWyhOU1NjcmVl
biAqKVtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWln
aHQgLSByZWN0LnNpemUuaGVpZ2h0ICsgMTAwMDApOwotICAgIG1fd2luZG93ID0gW1tBY3RpdmVP
ZmZzY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHls
ZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVC
dWZmZXJlZCBkZWZlcjpZRVNdOwotICAgIFttX3dpbmRvdyBzZXRDb2xvclNwYWNlOltbTlNTY3Jl
ZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV1dOworICAgIG1fd2luZG93ID0gW1tPZmZzY3JlZW5X
aW5kb3cgYWxsb2NdIGluaXRXaXRoU2l6ZTpOU1NpemVUb0NHU2l6ZShyZWN0LnNpemUpXTsKICAg
ICBbW21fd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3Om1fdmlld107Ci0gICAgW21fd2lu
ZG93IG9yZGVyQmFjazpuaWxdOwotICAgIFttX3dpbmRvdyBzZXRBdXRvZGlzcGxheTpOT107Ci0g
ICAgW21fd2luZG93IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107CiB9CiAKIFBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlv
bikK
</data>

          </attachment>
      

    </bug>

</bugzilla>